diff --git a/.gitignore b/.gitignore
index 6b3794e52..5a57bc90f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
node_modules/
+dist/
currentSnippet\.js
*.md.temp.js
.idea
diff --git a/dist/_30s.es5.js b/dist/_30s.es5.js
index 2ee4a9491..9e581e5c9 100644
--- a/dist/_30s.es5.js
+++ b/dist/_30s.es5.js
@@ -1,539 +1,736 @@
(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global._30s = factory());
-}(this, (function () { 'use strict';
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
+ (factory((global._30s = {})));
+}(this, (function (exports) { 'use strict';
-var fs = typeof require !== "undefined" && require('fs');
-var JSONToFile = function JSONToFile(obj, filename) {
- return fs.writeFile(filename + ".json", JSON.stringify(obj, null, 2));
-};
+ var CSVToArray = function CSVToArray(data) {
+ var delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';
+ var omitFirstRow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+ return data.slice(omitFirstRow ? data.indexOf('\n') + 1 : 0).split('\n').map(function (v) {
+ return v.split(delimiter);
+ });
+ };
-var RGBToHex = function RGBToHex(r, g, b) {
- return ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0');
-};
+ var CSVToJSON = function CSVToJSON(data) {
+ var delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';
+ var titles = data.slice(0, data.indexOf('\n')).split(delimiter);
+ return data.slice(data.indexOf('\n') + 1).split('\n').map(function (v) {
+ var values = v.split(delimiter);
+ return titles.reduce(function (obj, title, index) {
+ return obj[title] = values[index], obj;
+ }, {});
+ });
+ };
-var URLJoin = function URLJoin() {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
+ var fs = typeof require !== "undefined" && require('fs');
+
+ var JSONToFile = function JSONToFile(obj, filename) {
+ return fs.writeFile("".concat(filename, ".json"), JSON.stringify(obj, null, 2));
+ };
+
+ function _typeof(obj) {
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+ _typeof = function (obj) {
+ return typeof obj;
+ };
+ } else {
+ _typeof = function (obj) {
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ };
+ }
+
+ return _typeof(obj);
}
- return args.join('/').replace(/[\/]+/g, '/').replace(/^(.+):\//, '$1://').replace(/^file:/, 'file:/').replace(/\/(\?|&|#[^!])/g, '$1').replace(/\?/g, '&').replace('&', '?');
-};
+ function _defineProperty(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
-var UUIDGeneratorBrowser = function UUIDGeneratorBrowser() {
- return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (c) {
- return (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16);
- });
-};
+ return obj;
+ }
-var crypto$1 = typeof require !== "undefined" && require('crypto');
-var UUIDGeneratorNode = function UUIDGeneratorNode() {
- return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (c) {
- return (c ^ crypto$1.randomBytes(1)[0] & 15 >> c / 4).toString(16);
- });
-};
+ function _objectSpread(target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i] != null ? arguments[i] : {};
+ var ownKeys = Object.keys(source);
-var all = function all(arr) {
- var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Boolean;
- return arr.every(fn);
-};
+ if (typeof Object.getOwnPropertySymbols === 'function') {
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
+ }));
+ }
-var any = function any(arr) {
- var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Boolean;
- return arr.some(fn);
-};
+ ownKeys.forEach(function (key) {
+ _defineProperty(target, key, source[key]);
+ });
+ }
-var approximatelyEqual = function approximatelyEqual(v1, v2) {
- var epsilon = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.001;
- return Math.abs(v1 - v2) < epsilon;
-};
+ return target;
+ }
-var arrayToHtmlList = function arrayToHtmlList(arr, listID) {
- return arr.map(function (item) {
- return document.querySelector('#' + listID).innerHTML += '
' + item + '';
- });
-};
+ function _slicedToArray(arr, i) {
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
+ }
-function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ function _toArray(arr) {
+ return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest();
+ }
-var ary = function ary(fn, n) {
- return function () {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+ function _toConsumableArray(arr) {
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
+ }
+
+ function _arrayWithoutHoles(arr) {
+ if (Array.isArray(arr)) {
+ for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
+
+ return arr2;
+ }
+ }
+
+ function _arrayWithHoles(arr) {
+ if (Array.isArray(arr)) return arr;
+ }
+
+ function _iterableToArray(iter) {
+ if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
+ }
+
+ function _iterableToArrayLimit(arr, i) {
+ var _arr = [];
+ var _n = true;
+ var _d = false;
+ var _e = undefined;
+
+ try {
+ for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
+ _arr.push(_s.value);
+
+ if (i && _arr.length === i) break;
+ }
+ } catch (err) {
+ _d = true;
+ _e = err;
+ } finally {
+ try {
+ if (!_n && _i["return"] != null) _i["return"]();
+ } finally {
+ if (_d) throw _e;
+ }
+ }
+
+ return _arr;
+ }
+
+ function _nonIterableSpread() {
+ throw new TypeError("Invalid attempt to spread non-iterable instance");
+ }
+
+ function _nonIterableRest() {
+ throw new TypeError("Invalid attempt to destructure non-iterable instance");
+ }
+
+ var JSONtoCSV = function JSONtoCSV(arr, columns) {
+ var delimiter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ',';
+ return [columns.join(delimiter)].concat(_toConsumableArray(arr.map(function (obj) {
+ return columns.reduce(function (acc, key) {
+ return "".concat(acc).concat(!acc.length ? '' : delimiter, "\"").concat(!obj[key] ? '' : obj[key], "\"");
+ }, '');
+ }))).join('\n');
+ };
+
+ var RGBToHex = function RGBToHex(r, g, b) {
+ return ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0');
+ };
+
+ var URLJoin = function URLJoin() {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
- return fn.apply(undefined, _toConsumableArray(args.slice(0, n)));
+ return args.join('/').replace(/[\/]+/g, '/').replace(/^(.+):\//, '$1://').replace(/^file:/, 'file:/').replace(/\/(\?|&|#[^!])/g, '$1').replace(/\?/g, '&').replace('&', '?');
};
-};
-var atob = function atob(str) {
- return new Buffer(str, 'base64').toString('binary');
-};
-
-var attempt = function attempt(fn) {
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- args[_key - 1] = arguments[_key];
- }
-
- try {
- return fn(args);
- } catch (e) {
- return e instanceof Error ? e : new Error(e);
- }
-};
-
-var average = function average() {
- for (var _len = arguments.length, nums = Array(_len), _key = 0; _key < _len; _key++) {
- nums[_key] = arguments[_key];
- }
-
- return [].concat(nums).reduce(function (acc, val) {
- return acc + val;
- }, 0) / nums.length;
-};
-
-var averageBy = function averageBy(arr, fn) {
- return arr.map(typeof fn === 'function' ? fn : function (val) {
- return val[fn];
- }).reduce(function (acc, val) {
- return acc + val;
- }, 0) / arr.length;
-};
-
-var bifurcate = function bifurcate(arr, filter) {
- return arr.reduce(function (acc, val, i) {
- return acc[filter[i] ? 0 : 1].push(val), acc;
- }, [[], []]);
-};
-
-var bifurcateBy = function bifurcateBy(arr, fn) {
- return arr.reduce(function (acc, val, i) {
- return acc[fn(val, i) ? 0 : 1].push(val), acc;
- }, [[], []]);
-};
-
-var bind = function bind(fn, context) {
- for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
- args[_key - 2] = arguments[_key];
- }
-
- return function () {
- return fn.apply(context, args.concat.apply(args, arguments));
+ var UUIDGeneratorBrowser = function UUIDGeneratorBrowser() {
+ return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (c) {
+ return (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16);
+ });
};
-};
-var bindAll = function bindAll(obj) {
- for (var _len = arguments.length, fns = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- fns[_key - 1] = arguments[_key];
- }
+ var crypto$1 = typeof require !== "undefined" && require('crypto');
- return fns.forEach(function (fn) {
- return f = obj[fn], obj[fn] = function () {
- return f.apply(obj);
- };
- });
-};
-
-var bindKey = function bindKey(context, fn) {
- for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
- args[_key - 2] = arguments[_key];
- }
-
- return function () {
- return context[fn].apply(context, args.concat.apply(args, arguments));
+ var UUIDGeneratorNode = function UUIDGeneratorNode() {
+ return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (c) {
+ return (c ^ crypto$1.randomBytes(1)[0] & 15 >> c / 4).toString(16);
+ });
};
-};
-var binomialCoefficient = function binomialCoefficient(n, k) {
- if (Number.isNaN(n) || Number.isNaN(k)) return NaN;
- if (k < 0 || k > n) return 0;
- if (k === 0 || k === n) return 1;
- if (k === 1 || k === n - 1) return n;
- if (n - k < k) k = n - k;
- var res = n;
- for (var j = 2; j <= k; j++) {
- res *= (n - j + 1) / j;
- }return Math.round(res);
-};
-
-var bottomVisible = function bottomVisible() {
- return document.documentElement.clientHeight + window.scrollY >= (document.documentElement.scrollHeight || document.documentElement.clientHeight);
-};
-
-var btoa = function btoa(str) {
- return new Buffer(str, 'binary').toString('base64');
-};
-
-var byteSize = function byteSize(str) {
- return new Blob([str]).size;
-};
-
-var call = function call(key) {
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- args[_key - 1] = arguments[_key];
- }
-
- return function (context) {
- return context[key].apply(context, args);
+ var all = function all(arr) {
+ var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Boolean;
+ return arr.every(fn);
};
-};
-function _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }
-
-var capitalize = function capitalize(_ref) {
- var _ref2 = _toArray(_ref),
- first = _ref2[0],
- rest = _ref2.slice(1);
-
- var lowerRest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- return first.toUpperCase() + (lowerRest ? rest.join('').toLowerCase() : rest.join(''));
-};
-
-var capitalizeEveryWord = function capitalizeEveryWord(str) {
- return str.replace(/\b[a-z]/g, function (char) {
- return char.toUpperCase();
- });
-};
-
-var castArray = function castArray(val) {
- return Array.isArray(val) ? val : [val];
-};
-
-var chainAsync = function chainAsync(fns) {
- var curr = 0;
- var next = function next() {
- return fns[curr++](next);
+ var allEqual = function allEqual(arr) {
+ return arr.every(function (val) {
+ return val === arr[0];
+ });
};
- next();
-};
-var chunk = function chunk(arr, size) {
- return Array.from({ length: Math.ceil(arr.length / size) }, function (v, i) {
- return arr.slice(i * size, i * size + size);
- });
-};
-
-var clampNumber = function clampNumber(num, a, b) {
- return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));
-};
-
-var cloneRegExp = function cloneRegExp(regExp) {
- return new RegExp(regExp.source, regExp.flags);
-};
-
-var coalesce = function coalesce() {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- return args.find(function (_) {
- return ![undefined, null].includes(_);
- });
-};
-
-var coalesceFactory = function coalesceFactory(valid) {
- return function () {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- return args.find(valid);
+ var any = function any(arr) {
+ var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Boolean;
+ return arr.some(fn);
};
-};
-var collectInto = function collectInto(fn) {
- return function () {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- return fn(args);
+ var approximatelyEqual = function approximatelyEqual(v1, v2) {
+ var epsilon = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.001;
+ return Math.abs(v1 - v2) < epsilon;
};
-};
-var colorize = function colorize() {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- return {
- black: '\x1B[30m' + args.join(' '),
- red: '\x1B[31m' + args.join(' '),
- green: '\x1B[32m' + args.join(' '),
- yellow: '\x1B[33m' + args.join(' '),
- blue: '\x1B[34m' + args.join(' '),
- magenta: '\x1B[35m' + args.join(' '),
- cyan: '\x1B[36m' + args.join(' '),
- white: '\x1B[37m' + args.join(' '),
- bgBlack: '\x1B[40m' + args.join(' ') + '\x1B[0m',
- bgRed: '\x1B[41m' + args.join(' ') + '\x1B[0m',
- bgGreen: '\x1B[42m' + args.join(' ') + '\x1B[0m',
- bgYellow: '\x1B[43m' + args.join(' ') + '\x1B[0m',
- bgBlue: '\x1B[44m' + args.join(' ') + '\x1B[0m',
- bgMagenta: '\x1B[45m' + args.join(' ') + '\x1B[0m',
- bgCyan: '\x1B[46m' + args.join(' ') + '\x1B[0m',
- bgWhite: '\x1B[47m' + args.join(' ') + '\x1B[0m'
+ var arrayToCSV = function arrayToCSV(arr) {
+ var delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';
+ return arr.map(function (v) {
+ return v.map(function (x) {
+ return "\"".concat(x, "\"");
+ }).join(delimiter);
+ }).join('\n');
};
-};
-var compact = function compact(arr) {
- return arr.filter(Boolean);
-};
+ var arrayToHtmlList = function arrayToHtmlList(arr, listID) {
+ return function (el) {
+ return el = document.querySelector('#' + listID), el.innerHTML += arr.map(function (item) {
+ return "".concat(item, "");
+ }).join('');
+ }();
+ };
-var compose = function compose() {
- for (var _len = arguments.length, fns = Array(_len), _key = 0; _key < _len; _key++) {
- fns[_key] = arguments[_key];
- }
-
- return fns.reduce(function (f, g) {
+ var ary = function ary(fn, n) {
return function () {
- return f(g.apply(undefined, arguments));
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ return fn.apply(void 0, _toConsumableArray(args.slice(0, n)));
};
- });
-};
+ };
-var composeRight = function composeRight() {
- for (var _len = arguments.length, fns = Array(_len), _key = 0; _key < _len; _key++) {
- fns[_key] = arguments[_key];
- }
+ var atob = function atob(str) {
+ return new Buffer(str, 'base64').toString('binary');
+ };
+
+ var attempt = function attempt(fn) {
+ try {
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+
+ return fn.apply(void 0, args);
+ } catch (e) {
+ return e instanceof Error ? e : new Error(e);
+ }
+ };
+
+ var average = function average() {
+ for (var _len = arguments.length, nums = new Array(_len), _key = 0; _key < _len; _key++) {
+ nums[_key] = arguments[_key];
+ }
+
+ return nums.reduce(function (acc, val) {
+ return acc + val;
+ }, 0) / nums.length;
+ };
+
+ var averageBy = function averageBy(arr, fn) {
+ return arr.map(typeof fn === 'function' ? fn : function (val) {
+ return val[fn];
+ }).reduce(function (acc, val) {
+ return acc + val;
+ }, 0) / arr.length;
+ };
+
+ var bifurcate = function bifurcate(arr, filter) {
+ return arr.reduce(function (acc, val, i) {
+ return acc[filter[i] ? 0 : 1].push(val), acc;
+ }, [[], []]);
+ };
+
+ var bifurcateBy = function bifurcateBy(arr, fn) {
+ return arr.reduce(function (acc, val, i) {
+ return acc[fn(val, i) ? 0 : 1].push(val), acc;
+ }, [[], []]);
+ };
+
+ var bind = function bind(fn, context) {
+ for (var _len = arguments.length, boundArgs = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
+ boundArgs[_key - 2] = arguments[_key];
+ }
- return fns.reduce(function (f, g) {
return function () {
- return g(f.apply(undefined, arguments));
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+ args[_key2] = arguments[_key2];
+ }
+
+ return fn.apply(context, boundArgs.concat(args));
};
- });
-};
+ };
-function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ var bindAll = function bindAll(obj) {
+ for (var _len = arguments.length, fns = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ fns[_key - 1] = arguments[_key];
+ }
-var converge = function converge(converger, fns) {
- return function () {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+ return fns.forEach(function (fn) {
+ return f = obj[fn], obj[fn] = function () {
+ return f.apply(obj);
+ };
+ });
+ };
+
+ var bindKey = function bindKey(context, fn) {
+ for (var _len = arguments.length, boundArgs = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
+ boundArgs[_key - 2] = arguments[_key];
+ }
+
+ return function () {
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+ args[_key2] = arguments[_key2];
+ }
+
+ return context[fn].apply(context, boundArgs.concat(args));
+ };
+ };
+
+ var binomialCoefficient = function binomialCoefficient(n, k) {
+ if (Number.isNaN(n) || Number.isNaN(k)) return NaN;
+ if (k < 0 || k > n) return 0;
+ if (k === 0 || k === n) return 1;
+ if (k === 1 || k === n - 1) return n;
+ if (n - k < k) k = n - k;
+ var res = n;
+
+ for (var j = 2; j <= k; j++) {
+ res *= (n - j + 1) / j;
+ }
+
+ return Math.round(res);
+ };
+
+ var bottomVisible = function bottomVisible() {
+ return document.documentElement.clientHeight + window.scrollY >= (document.documentElement.scrollHeight || document.documentElement.clientHeight);
+ };
+
+ var btoa = function btoa(str) {
+ return new Buffer(str, 'binary').toString('base64');
+ };
+
+ var byteSize = function byteSize(str) {
+ return new Blob([str]).size;
+ };
+
+ var call = function call(key) {
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+
+ return function (context) {
+ return context[key].apply(context, args);
+ };
+ };
+
+ var capitalize = function capitalize(_ref) {
+ var _ref2 = _toArray(_ref),
+ first = _ref2[0],
+ rest = _ref2.slice(1);
+
+ var lowerRest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+ return first.toUpperCase() + (lowerRest ? rest.join('').toLowerCase() : rest.join(''));
+ };
+
+ var capitalizeEveryWord = function capitalizeEveryWord(str) {
+ return str.replace(/\b[a-z]/g, function (char) {
+ return char.toUpperCase();
+ });
+ };
+
+ var castArray = function castArray(val) {
+ return Array.isArray(val) ? val : [val];
+ };
+
+ var chainAsync = function chainAsync(fns) {
+ var curr = 0;
+
+ var next = function next() {
+ return fns[curr++](next);
+ };
+
+ next();
+ };
+
+ var chunk = function chunk(arr, size) {
+ return Array.from({
+ length: Math.ceil(arr.length / size)
+ }, function (v, i) {
+ return arr.slice(i * size, i * size + size);
+ });
+ };
+
+ var clampNumber = function clampNumber(num, a, b) {
+ return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));
+ };
+
+ var cloneRegExp = function cloneRegExp(regExp) {
+ return new RegExp(regExp.source, regExp.flags);
+ };
+
+ var coalesce = function coalesce() {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
- return converger.apply(undefined, _toConsumableArray$1(fns.map(function (fn) {
- return fn.apply(null, args);
+ return args.find(function (_) {
+ return ![undefined, null].includes(_);
+ });
+ };
+
+ var coalesceFactory = function coalesceFactory(valid) {
+ return function () {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ return args.find(valid);
+ };
+ };
+
+ var collectInto = function collectInto(fn) {
+ return function () {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ return fn(args);
+ };
+ };
+
+ var colorize = function colorize() {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ return {
+ black: "\x1B[30m".concat(args.join(' ')),
+ red: "\x1B[31m".concat(args.join(' ')),
+ green: "\x1B[32m".concat(args.join(' ')),
+ yellow: "\x1B[33m".concat(args.join(' ')),
+ blue: "\x1B[34m".concat(args.join(' ')),
+ magenta: "\x1B[35m".concat(args.join(' ')),
+ cyan: "\x1B[36m".concat(args.join(' ')),
+ white: "\x1B[37m".concat(args.join(' ')),
+ bgBlack: "\x1B[40m".concat(args.join(' '), "\x1B[0m"),
+ bgRed: "\x1B[41m".concat(args.join(' '), "\x1B[0m"),
+ bgGreen: "\x1B[42m".concat(args.join(' '), "\x1B[0m"),
+ bgYellow: "\x1B[43m".concat(args.join(' '), "\x1B[0m"),
+ bgBlue: "\x1B[44m".concat(args.join(' '), "\x1B[0m"),
+ bgMagenta: "\x1B[45m".concat(args.join(' '), "\x1B[0m"),
+ bgCyan: "\x1B[46m".concat(args.join(' '), "\x1B[0m"),
+ bgWhite: "\x1B[47m".concat(args.join(' '), "\x1B[0m")
+ };
+ };
+
+ var compact = function compact(arr) {
+ return arr.filter(Boolean);
+ };
+
+ var compose = function compose() {
+ for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {
+ fns[_key] = arguments[_key];
+ }
+
+ return fns.reduce(function (f, g) {
+ return function () {
+ return f(g.apply(void 0, arguments));
+ };
+ });
+ };
+
+ var composeRight = function composeRight() {
+ for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {
+ fns[_key] = arguments[_key];
+ }
+
+ return fns.reduce(function (f, g) {
+ return function () {
+ return g(f.apply(void 0, arguments));
+ };
+ });
+ };
+
+ var converge = function converge(converger, fns) {
+ return function () {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ return converger.apply(void 0, _toConsumableArray(fns.map(function (fn) {
+ return fn.apply(null, args);
+ })));
+ };
+ };
+
+ var copyToClipboard = function copyToClipboard(str) {
+ var el = document.createElement('textarea');
+ el.value = str;
+ el.setAttribute('readonly', '');
+ el.style.position = 'absolute';
+ el.style.left = '-9999px';
+ document.body.appendChild(el);
+ var selected = document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false;
+ el.select();
+ document.execCommand('copy');
+ document.body.removeChild(el);
+
+ if (selected) {
+ document.getSelection().removeAllRanges();
+ document.getSelection().addRange(selected);
+ }
+ };
+
+ var countBy = function countBy(arr, fn) {
+ return arr.map(typeof fn === 'function' ? fn : function (val) {
+ return val[fn];
+ }).reduce(function (acc, val, i) {
+ acc[val] = (acc[val] || 0) + 1;
+ return acc;
+ }, {});
+ };
+
+ var countOccurrences = function countOccurrences(arr, val) {
+ return arr.reduce(function (a, v) {
+ return v === val ? a + 1 : a;
+ }, 0);
+ };
+
+ var counter = function counter(selector, start, end) {
+ var step = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
+ var duration = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 2000;
+
+ var current = start,
+ _step = (end - start) * step < 0 ? -step : step,
+ timer = setInterval(function () {
+ current += _step;
+ document.querySelector(selector).innerHTML = current;
+ if (current >= end) document.querySelector(selector).innerHTML = end;
+ if (current >= end) clearInterval(timer);
+ }, Math.abs(Math.floor(duration / (end - start))));
+
+ return timer;
+ };
+
+ var createElement = function createElement(str) {
+ var el = document.createElement('div');
+ el.innerHTML = str;
+ return el.firstElementChild;
+ };
+
+ var createEventHub = function createEventHub() {
+ return {
+ hub: Object.create(null),
+ emit: function emit(event, data) {
+ (this.hub[event] || []).forEach(function (handler) {
+ return handler(data);
+ });
+ },
+ on: function on(event, handler) {
+ if (!this.hub[event]) this.hub[event] = [];
+ this.hub[event].push(handler);
+ },
+ off: function off(event, handler) {
+ var i = (this.hub[event] || []).findIndex(function (h) {
+ return h === handler;
+ });
+ if (i > -1) this.hub[event].splice(i, 1);
+ }
+ };
+ };
+
+ var currentURL = function currentURL() {
+ return window.location.href;
+ };
+
+ var curry = function curry(fn) {
+ var arity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : fn.length;
+
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
+ args[_key - 2] = arguments[_key];
+ }
+
+ return arity <= args.length ? fn.apply(void 0, args) : curry.bind.apply(curry, [null, fn, arity].concat(args));
+ };
+
+ var dayOfYear = function dayOfYear(date) {
+ return Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24);
+ };
+
+ var debounce = function debounce(fn) {
+ var ms = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
+ var timeoutId;
+ return function () {
+ var _this = this;
+
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ clearTimeout(timeoutId);
+ timeoutId = setTimeout(function () {
+ return fn.apply(_this, args);
+ }, ms);
+ };
+ };
+
+ var decapitalize = function decapitalize(_ref) {
+ var _ref2 = _toArray(_ref),
+ first = _ref2[0],
+ rest = _ref2.slice(1);
+
+ var upperRest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+ return first.toLowerCase() + (upperRest ? rest.join('').toUpperCase() : rest.join(''));
+ };
+
+ var deepClone = function deepClone(obj) {
+ var clone = Object.assign({}, obj);
+ Object.keys(clone).forEach(function (key) {
+ return clone[key] = _typeof(obj[key]) === 'object' ? deepClone(obj[key]) : obj[key];
+ });
+ return Array.isArray(obj) ? (clone.length = obj.length) && Array.from(clone) : clone;
+ };
+
+ var deepFlatten = function deepFlatten(arr) {
+ var _ref;
+
+ return (_ref = []).concat.apply(_ref, _toConsumableArray(arr.map(function (v) {
+ return Array.isArray(v) ? deepFlatten(v) : v;
})));
};
-};
-var copyToClipboard = function copyToClipboard(str) {
- var el = document.createElement('textarea');
- el.value = str;
- el.setAttribute('readonly', '');
- el.style.position = 'absolute';
- el.style.left = '-9999px';
- document.body.appendChild(el);
- var selected = document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false;
- el.select();
- document.execCommand('copy');
- document.body.removeChild(el);
- if (selected) {
- document.getSelection().removeAllRanges();
- document.getSelection().addRange(selected);
- }
-};
-
-var countBy = function countBy(arr, fn) {
- return arr.map(typeof fn === 'function' ? fn : function (val) {
- return val[fn];
- }).reduce(function (acc, val, i) {
- acc[val] = (acc[val] || 0) + 1;
- return acc;
- }, {});
-};
-
-var countOccurrences = function countOccurrences(arr, val) {
- return arr.reduce(function (a, v) {
- return v === val ? a + 1 : a + 0;
- }, 0);
-};
-
-var createElement = function createElement(str) {
- var el = document.createElement('div');
- el.innerHTML = str;
- return el.firstElementChild;
-};
-
-var createEventHub = function createEventHub() {
- return {
- hub: Object.create(null),
- emit: function emit(event, data) {
- (this.hub[event] || []).forEach(function (handler) {
- return handler(data);
- });
- },
- on: function on(event, handler) {
- if (!this.hub[event]) this.hub[event] = [];
- this.hub[event].push(handler);
- },
- off: function off(event, handler) {
- var i = (this.hub[event] || []).findIndex(function (h) {
- return h === handler;
- });
- if (i > -1) this.hub[event].splice(i, 1);
- }
+ var deepFreeze = function deepFreeze(obj) {
+ return Object.keys(obj).forEach(function (prop) {
+ return !obj[prop] instanceof Object || Object.isFrozen(obj[prop]) ? null : deepFreeze(obj[prop]);
+ }) || Object.freeze(obj);
};
-};
-var currentURL = function currentURL() {
- return window.location.href;
-};
-
-var curry = function curry(fn) {
- for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
- args[_key - 2] = arguments[_key];
- }
-
- var arity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : fn.length;
- return arity <= args.length ? fn.apply(undefined, args) : curry.bind.apply(curry, [null, fn, arity].concat(args));
-};
-
-var debounce = function debounce(fn) {
- var ms = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-
- var timeoutId = void 0;
- return function () {
- var _this = this;
-
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
+ var defaults = function defaults(obj) {
+ for (var _len = arguments.length, defs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ defs[_key - 1] = arguments[_key];
}
- clearTimeout(timeoutId);
- timeoutId = setTimeout(function () {
- return fn.apply(_this, args);
- }, ms);
+ return Object.assign.apply(Object, [{}, obj].concat(_toConsumableArray(defs.reverse()), [obj]));
};
-};
-function _toArray$1(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }
+ var defer = function defer(fn) {
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
-var decapitalize = function decapitalize(_ref) {
- var _ref2 = _toArray$1(_ref),
- first = _ref2[0],
- rest = _ref2.slice(1);
+ return setTimeout.apply(void 0, [fn, 1].concat(args));
+ };
- var upperRest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- return first.toLowerCase() + (upperRest ? rest.join('').toUpperCase() : rest.join(''));
-};
+ var degreesToRads = function degreesToRads(deg) {
+ return deg * Math.PI / 180.0;
+ };
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
+ var delay = function delay(fn, wait) {
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
+ args[_key - 2] = arguments[_key];
+ }
-var deepClone = function deepClone(obj) {
- var clone = Object.assign({}, obj);
- Object.keys(clone).forEach(function (key) {
- return clone[key] = _typeof(obj[key]) === 'object' ? deepClone(obj[key]) : obj[key];
- });
- return clone;
-};
+ return setTimeout.apply(void 0, [fn, wait].concat(args));
+ };
-function _toConsumableArray$2(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ var detectDeviceType = function detectDeviceType() {
+ return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ? 'Mobile' : 'Desktop';
+ };
-var deepFlatten = function deepFlatten(arr) {
- var _ref;
+ var difference = function difference(a, b) {
+ var s = new Set(b);
+ return a.filter(function (x) {
+ return !s.has(x);
+ });
+ };
- return (_ref = []).concat.apply(_ref, _toConsumableArray$2(arr.map(function (v) {
- return Array.isArray(v) ? deepFlatten(v) : v;
- })));
-};
+ var differenceBy = function differenceBy(a, b, fn) {
+ var s = new Set(b.map(function (v) {
+ return fn(v);
+ }));
+ return a.filter(function (x) {
+ return !s.has(fn(x));
+ });
+ };
-function _toConsumableArray$3(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ var differenceWith = function differenceWith(arr, val, comp) {
+ return arr.filter(function (a) {
+ return val.findIndex(function (b) {
+ return comp(a, b);
+ }) === -1;
+ });
+ };
-var defaults = function defaults(obj) {
- for (var _len = arguments.length, defs = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- defs[_key - 1] = arguments[_key];
- }
+ var dig = function dig(obj, target) {
+ return target in obj ? obj[target] : Object.values(obj).reduce(function (acc, val) {
+ if (acc !== undefined) return acc;
+ if (_typeof(val) === 'object') return dig(val, target);
+ }, undefined);
+ };
- return Object.assign.apply(Object, [{}, obj].concat(_toConsumableArray$3(defs.reverse()), [obj]));
-};
+ var digitize = function digitize(n) {
+ return _toConsumableArray("".concat(n)).map(function (i) {
+ return parseInt(i);
+ });
+ };
-var defer = function defer(fn) {
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- args[_key - 1] = arguments[_key];
- }
+ var distance = function distance(x0, y0, x1, y1) {
+ return Math.hypot(x1 - x0, y1 - y0);
+ };
- return setTimeout.apply(undefined, [fn, 1].concat(args));
-};
+ var drop = function drop(arr) {
+ var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
+ return arr.slice(n);
+ };
-var degreesToRads = function degreesToRads(deg) {
- return deg * Math.PI / 180.0;
-};
+ var dropRight = function dropRight(arr) {
+ var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
+ return arr.slice(0, -n);
+ };
-var delay = function delay(fn, wait) {
- for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
- args[_key - 2] = arguments[_key];
- }
+ var dropRightWhile = function dropRightWhile(arr, func) {
+ while (arr.length > 0 && !func(arr[arr.length - 1])) {
+ arr = arr.slice(0, -1);
+ }
- return setTimeout.apply(undefined, [fn, wait].concat(args));
-};
+ return arr;
+ };
-var detectDeviceType = function detectDeviceType() {
- return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ? 'Mobile' : 'Desktop'
- );
-};
+ var dropWhile = function dropWhile(arr, func) {
+ while (arr.length > 0 && !func(arr[0])) {
+ arr = arr.slice(1);
+ }
-var difference = function difference(a, b) {
- var s = new Set(b);
- return a.filter(function (x) {
- return !s.has(x);
- });
-};
+ return arr;
+ };
-var differenceBy = function differenceBy(a, b, fn) {
- var s = new Set(b.map(function (v) {
- return fn(v);
- }));
- return a.filter(function (x) {
- return !s.has(fn(x));
- });
-};
+ var elementContains = function elementContains(parent, child) {
+ return parent !== child && parent.contains(child);
+ };
-var differenceWith = function differenceWith(arr, val, comp) {
- return arr.filter(function (a) {
- return val.findIndex(function (b) {
- return comp(a, b);
- }) === -1;
- });
-};
-
-function _toConsumableArray$4(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var digitize = function digitize(n) {
- return [].concat(_toConsumableArray$4("" + n)).map(function (i) {
- return parseInt(i);
- });
-};
-
-var distance = function distance(x0, y0, x1, y1) {
- return Math.hypot(x1 - x0, y1 - y0);
-};
-
-var drop = function drop(arr) {
- var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
- return arr.slice(n);
-};
-
-var dropRight = function dropRight(arr) {
- var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
- return arr.slice(0, -n);
-};
-
-var dropRightWhile = function dropRightWhile(arr, func) {
- while (arr.length > 0 && !func(arr[arr.length - 1])) {
- arr = arr.slice(0, -1);
- }return arr;
-};
-
-var dropWhile = function dropWhile(arr, func) {
- while (arr.length > 0 && !func(arr[0])) {
- arr = arr.slice(1);
- }return arr;
-};
-
-var elementIsVisibleInViewport = function elementIsVisibleInViewport(el) {
+ var elementIsVisibleInViewport = function elementIsVisibleInViewport(el) {
var partiallyVisible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var _el$getBoundingClient = el.getBoundingClientRect(),
@@ -545,1964 +742,2495 @@ var elementIsVisibleInViewport = function elementIsVisibleInViewport(el) {
var _window = window,
innerHeight = _window.innerHeight,
innerWidth = _window.innerWidth;
-
return partiallyVisible ? (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth) : top >= 0 && left >= 0 && bottom <= innerHeight && right <= innerWidth;
-};
-
-var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
-
-function _toArray$2(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }
-
-var elo = function elo(_ref) {
- var _ref2 = _toArray$2(_ref),
- ratings = _ref2.slice(0);
-
- var kFactor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 32;
- var selfRating = arguments[2];
-
- var _ratings = _slicedToArray(ratings, 2),
- a = _ratings[0],
- b = _ratings[1];
-
- var expectedScore = function expectedScore(self, opponent) {
- return 1 / (1 + Math.pow(10, (opponent - self) / 400));
};
- var newRating = function newRating(rating, i) {
- return (selfRating || rating) + kFactor * (i - expectedScore(i ? a : b, i ? b : a));
- };
- if (ratings.length === 2) {
- return [newRating(a, 1), newRating(b, 0)];
- } else {
- for (var i = 0; i < ratings.length; i++) {
+
+ var elo = function elo(_ref) {
+ var _ref2 = _toArray(_ref),
+ ratings = _ref2.slice(0);
+
+ var kFactor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 32;
+ var selfRating = arguments.length > 2 ? arguments[2] : undefined;
+
+ var _ratings = _slicedToArray(ratings, 2),
+ a = _ratings[0],
+ b = _ratings[1];
+
+ var expectedScore = function expectedScore(self, opponent) {
+ return 1 / (1 + Math.pow(10, (opponent - self) / 400));
+ };
+
+ var newRating = function newRating(rating, i) {
+ return (selfRating || rating) + kFactor * (i - expectedScore(i ? a : b, i ? b : a));
+ };
+
+ if (ratings.length === 2) {
+ return [newRating(a, 1), newRating(b, 0)];
+ }
+
+ for (var i = 0, len = ratings.length; i < len; i++) {
var j = i;
- while (j < ratings.length - 1) {
- var _elo = elo([ratings[i], ratings[j + 1]], kFactor);
+
+ while (j < len - 1) {
+ j++;
+
+ var _elo = elo([ratings[i], ratings[j]], kFactor);
var _elo2 = _slicedToArray(_elo, 2);
ratings[i] = _elo2[0];
- ratings[j + 1] = _elo2[1];
-
- j++;
+ ratings[j] = _elo2[1];
}
}
- }
- return ratings;
-};
-var _typeof$1 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-var equals = function equals(a, b) {
- if (a === b) return true;
- if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime();
- if (!a || !b || (typeof a === 'undefined' ? 'undefined' : _typeof$1(a)) != 'object' && (typeof b === 'undefined' ? 'undefined' : _typeof$1(b)) !== 'object') return a === b;
- if (a === null || a === undefined || b === null || b === undefined) return false;
- if (a.prototype !== b.prototype) return false;
- var keys = Object.keys(a);
- if (keys.length !== Object.keys(b).length) return false;
- return keys.every(function (k) {
- return equals(a[k], b[k]);
- });
-};
-
-var escapeHTML = function escapeHTML(str) {
- return str.replace(/[&<>'"]/g, function (tag) {
- return {
- '&': '&',
- '<': '<',
- '>': '>',
- "'": ''',
- '"': '"'
- }[tag] || tag;
- });
-};
-
-var escapeRegExp = function escapeRegExp(str) {
- return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
-};
-
-var everyNth = function everyNth(arr, nth) {
- return arr.filter(function (e, i) {
- return i % nth === nth - 1;
- });
-};
-
-var extendHex = function extendHex(shortHex) {
- return '#' + shortHex.slice(shortHex.startsWith('#') ? 1 : 0).split('').map(function (x) {
- return x + x;
- }).join('');
-};
-
-var factorial = function factorial(n) {
- return n < 0 ? function () {
- throw new TypeError('Negative numbers are not allowed!');
- }() : n <= 1 ? 1 : n * factorial(n - 1);
-};
-
-var fibonacci = function fibonacci(n) {
- return Array.from({ length: n }).reduce(function (acc, val, i) {
- return acc.concat(i > 1 ? acc[i - 1] + acc[i - 2] : i);
- }, []);
-};
-
-var filterNonUnique = function filterNonUnique(arr) {
- return arr.filter(function (i) {
- return arr.indexOf(i) === arr.lastIndexOf(i);
- });
-};
-
-var findKey = function findKey(obj, fn) {
- return Object.keys(obj).find(function (key) {
- return fn(obj[key], key, obj);
- });
-};
-
-var findLast = function findLast(arr, fn) {
- return arr.filter(fn).slice(-1)[0];
-};
-
-var findLastIndex = function findLastIndex(arr, fn) {
- return arr.map(function (val, i) {
- return [i, val];
- }).filter(function (val) {
- return fn(val[1], val[0], arr);
- }).slice(-1)[0][0];
-};
-
-var findLastKey = function findLastKey(obj, fn) {
- return Object.keys(obj).reverse().find(function (key) {
- return fn(obj[key], key, obj);
- });
-};
-
-var flatten = function flatten(arr) {
- var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
- return depth !== 1 ? arr.reduce(function (a, v) {
- return a.concat(Array.isArray(v) ? flatten(v, depth - 1) : v);
- }, []) : arr.reduce(function (a, v) {
- return a.concat(v);
- }, []);
-};
-
-var _typeof$2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-var flattenObject = function flattenObject(obj) {
- var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
- return Object.keys(obj).reduce(function (acc, k) {
- var pre = prefix.length ? prefix + '.' : '';
- if (_typeof$2(obj[k]) === 'object') Object.assign(acc, flattenObject(obj[k], pre + k));else acc[pre + k] = obj[k];
- return acc;
- }, {});
-};
-
-var flip = function flip(fn) {
- return function (first) {
- for (var _len = arguments.length, rest = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- rest[_key - 1] = arguments[_key];
- }
-
- return fn.apply(undefined, rest.concat([first]));
+ return ratings;
};
-};
-var forEachRight = function forEachRight(arr, callback) {
- return arr.slice(0).reverse().forEach(callback);
-};
-
-var forOwn = function forOwn(obj, fn) {
- return Object.keys(obj).forEach(function (key) {
- return fn(obj[key], key, obj);
- });
-};
-
-var forOwnRight = function forOwnRight(obj, fn) {
- return Object.keys(obj).reverse().forEach(function (key) {
- return fn(obj[key], key, obj);
- });
-};
-
-var formatDuration = function formatDuration(ms) {
- if (ms < 0) ms = -ms;
- var time = {
- day: Math.floor(ms / 86400000),
- hour: Math.floor(ms / 3600000) % 24,
- minute: Math.floor(ms / 60000) % 60,
- second: Math.floor(ms / 1000) % 60,
- millisecond: Math.floor(ms) % 1000
+ var equals = function equals(a, b) {
+ if (a === b) return true;
+ if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime();
+ if (!a || !b || _typeof(a) !== 'object' && _typeof(b) !== 'object') return a === b;
+ if (a === null || a === undefined || b === null || b === undefined) return false;
+ if (a.prototype !== b.prototype) return false;
+ var keys = Object.keys(a);
+ if (keys.length !== Object.keys(b).length) return false;
+ return keys.every(function (k) {
+ return equals(a[k], b[k]);
+ });
};
- return Object.entries(time).filter(function (val) {
- return val[1] !== 0;
- }).map(function (val) {
- return val[1] + ' ' + (val[1] !== 1 ? val[0] + 's' : val[0]);
- }).join(', ');
-};
-var fromCamelCase = function fromCamelCase(str) {
- var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '_';
- return str.replace(/([a-z\d])([A-Z])/g, '$1' + separator + '$2').replace(/([A-Z]+)([A-Z][a-z\d]+)/g, '$1' + separator + '$2').toLowerCase();
-};
-
-var functionName = function functionName(fn) {
- return console.debug(fn.name), fn;
-};
-
-function _toConsumableArray$5(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var functions = function functions(obj) {
- var inherited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- return (inherited ? [].concat(_toConsumableArray$5(Object.keys(obj)), _toConsumableArray$5(Object.keys(Object.getPrototypeOf(obj)))) : Object.keys(obj)).filter(function (key) {
- return typeof obj[key] === 'function';
- });
-};
-
-var gcd = function gcd() {
- for (var _len = arguments.length, arr = Array(_len), _key = 0; _key < _len; _key++) {
- arr[_key] = arguments[_key];
- }
-
- var _gcd = function _gcd(x, y) {
- return !y ? x : gcd(y, x % y);
+ var escapeHTML = function escapeHTML(str) {
+ return str.replace(/[&<>'"]/g, function (tag) {
+ return {
+ '&': '&',
+ '<': '<',
+ '>': '>',
+ "'": ''',
+ '"': '"'
+ }[tag] || tag;
+ });
};
- return [].concat(arr).reduce(function (a, b) {
- return _gcd(a, b);
- });
-};
-var geometricProgression = function geometricProgression(end) {
- var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
- var step = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;
- return Array.from({ length: Math.floor(Math.log(end / start) / Math.log(step)) + 1 }).map(function (v, i) {
- return start * Math.pow(step, i);
- });
-};
-
-var get = function get(from) {
- for (var _len = arguments.length, selectors = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- selectors[_key - 1] = arguments[_key];
- }
-
- return [].concat(selectors).map(function (s) {
- return s.replace(/\[([^\[\]]*)\]/g, '.$1.').split('.').filter(function (t) {
- return t !== '';
- }).reduce(function (prev, cur) {
- return prev && prev[cur];
- }, from);
- });
-};
-
-var getColonTimeFromDate = function getColonTimeFromDate(date) {
- return date.toTimeString().slice(0, 8);
-};
-
-var getDaysDiffBetweenDates = function getDaysDiffBetweenDates(dateInitial, dateFinal) {
- return (dateFinal - dateInitial) / (1000 * 3600 * 24);
-};
-
-var getMeridiemSuffixOfInteger = function getMeridiemSuffixOfInteger(num) {
- return num === 0 || num === 24 ? 12 + 'am' : num === 12 ? 12 + 'pm' : num < 12 ? num % 12 + 'am' : num % 12 + 'pm';
-};
-
-var getScrollPosition = function getScrollPosition() {
- var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
- return {
- x: el.pageXOffset !== undefined ? el.pageXOffset : el.scrollLeft,
- y: el.pageYOffset !== undefined ? el.pageYOffset : el.scrollTop
+ var escapeRegExp = function escapeRegExp(str) {
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
};
-};
-var getStyle = function getStyle(el, ruleName) {
- return getComputedStyle(el)[ruleName];
-};
-
-var getType = function getType(v) {
- return v === undefined ? 'undefined' : v === null ? 'null' : v.constructor.name.toLowerCase();
-};
-
-var getURLParameters = function getURLParameters(url) {
- return (url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(function (a, v) {
- return a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1), a;
- }, {});
-};
-
-var groupBy = function groupBy(arr, fn) {
- return arr.map(typeof fn === 'function' ? fn : function (val) {
- return val[fn];
- }).reduce(function (acc, val, i) {
- acc[val] = (acc[val] || []).concat(arr[i]);
- return acc;
- }, {});
-};
-
-var hammingDistance = function hammingDistance(num1, num2) {
- return ((num1 ^ num2).toString(2).match(/1/g) || '').length;
-};
-
-var hasClass = function hasClass(el, className) {
- return el.classList.contains(className);
-};
-
-var hasFlags = function hasFlags() {
- for (var _len = arguments.length, flags = Array(_len), _key = 0; _key < _len; _key++) {
- flags[_key] = arguments[_key];
- }
-
- return flags.every(function (flag) {
- return process.argv.includes(/^-{1,2}/.test(flag) ? flag : '--' + flag);
- });
-};
-
-var hashBrowser = function hashBrowser(val) {
- return crypto.subtle.digest('SHA-256', new TextEncoder('utf-8').encode(val)).then(function (h) {
- var hexes = [],
- view = new DataView(h);
- for (var i = 0; i < view.byteLength; i += 4) {
- hexes.push(('00000000' + view.getUint32(i).toString(16)).slice(-8));
- }return hexes.join('');
- });
-};
-
-var crypto$2 = typeof require !== "undefined" && require('crypto');
-var hashNode = function hashNode(val) {
- return new Promise(function (resolve) {
- return setTimeout(function () {
- return resolve(crypto$2.createHash('sha256').update(val).digest('hex'));
- }, 0);
- });
-};
-
-var head = function head(arr) {
- return arr[0];
-};
-
-function _toConsumableArray$6(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var hexToRGB = function hexToRGB(hex) {
- var alpha = false,
- h = hex.slice(hex.startsWith('#') ? 1 : 0);
- if (h.length === 3) h = [].concat(_toConsumableArray$6(h)).map(function (x) {
- return x + x;
- }).join('');else if (h.length === 8) alpha = true;
- h = parseInt(h, 16);
- return 'rgb' + (alpha ? 'a' : '') + '(' + (h >>> (alpha ? 24 : 16)) + ', ' + ((h & (alpha ? 0x00ff0000 : 0x00ff00)) >>> (alpha ? 16 : 8)) + ', ' + ((h & (alpha ? 0x0000ff00 : 0x0000ff)) >>> (alpha ? 8 : 0)) + (alpha ? ', ' + (h & 0x000000ff) : '') + ')';
-};
-
-var hide = function hide() {
- for (var _len = arguments.length, el = Array(_len), _key = 0; _key < _len; _key++) {
- el[_key] = arguments[_key];
- }
-
- return [].concat(el).forEach(function (e) {
- return e.style.display = 'none';
- });
-};
-
-var httpGet = function httpGet(url, callback) {
- var err = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : console.error;
-
- var request = new XMLHttpRequest();
- request.open('GET', url, true);
- request.onload = function () {
- return callback(request.responseText);
+ var everyNth = function everyNth(arr, nth) {
+ return arr.filter(function (e, i) {
+ return i % nth === nth - 1;
+ });
};
- request.onerror = function () {
- return err(request);
+
+ var extendHex = function extendHex(shortHex) {
+ return '#' + shortHex.slice(shortHex.startsWith('#') ? 1 : 0).split('').map(function (x) {
+ return x + x;
+ }).join('');
};
- request.send();
-};
-var httpPost = function httpPost(url, data, callback) {
- var err = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : console.error;
-
- var request = new XMLHttpRequest();
- request.open('POST', url, true);
- request.setRequestHeader('Content-type', 'application/json; charset=utf-8');
- request.onload = function () {
- return callback(request.responseText);
+ var factorial = function factorial(n) {
+ return n < 0 ? function () {
+ throw new TypeError('Negative numbers are not allowed!');
+ }() : n <= 1 ? 1 : n * factorial(n - 1);
};
- request.onerror = function () {
- return err(request);
+
+ var fibonacci = function fibonacci(n) {
+ return Array.from({
+ length: n
+ }).reduce(function (acc, val, i) {
+ return acc.concat(i > 1 ? acc[i - 1] + acc[i - 2] : i);
+ }, []);
};
- request.send(data);
-};
-var httpsRedirect = function httpsRedirect() {
- if (location.protocol !== 'https:') location.replace('https://' + location.href.split('//')[1]);
-};
-
-var inRange = function inRange(n, start) {
- var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-
- if (end && start > end) end = [start, start = end][0];
- return end == null ? n >= 0 && n < start : n >= start && n < end;
-};
-
-var indexOfAll = function indexOfAll(arr, val) {
- var indices = [];
- arr.forEach(function (el, i) {
- return el === val && indices.push(i);
- });
- return indices;
-};
-
-var initial = function initial(arr) {
- return arr.slice(0, -1);
-};
-
-var initialize2DArray = function initialize2DArray(w, h) {
- var val = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
- return Array.from({ length: h }).map(function () {
- return Array.from({ length: w }).fill(val);
- });
-};
-
-var initializeArrayWithRange = function initializeArrayWithRange(end) {
- var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
- var step = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- return Array.from({ length: Math.ceil((end + 1 - start) / step) }).map(function (v, i) {
- return i * step + start;
- });
-};
-
-var initializeArrayWithRangeRight = function initializeArrayWithRangeRight(end) {
- var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
- var step = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- return Array.from({ length: Math.ceil((end + 1 - start) / step) }).map(function (v, i, arr) {
- return (arr.length - i - 1) * step + start;
- });
-};
-
-var initializeArrayWithValues = function initializeArrayWithValues(n) {
- var val = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
- return Array(n).fill(val);
-};
-
-var intersection = function intersection(a, b) {
- var s = new Set(b);
- return a.filter(function (x) {
- return s.has(x);
- });
-};
-
-var intersectionBy = function intersectionBy(a, b, fn) {
- var s = new Set(b.map(function (x) {
- return fn(x);
- }));
- return a.filter(function (x) {
- return s.has(fn(x));
- });
-};
-
-var intersectionWith = function intersectionWith(a, b, comp) {
- return a.filter(function (x) {
- return b.findIndex(function (y) {
- return comp(x, y);
- }) !== -1;
- });
-};
-
-var invertKeyValues = function invertKeyValues(obj, fn) {
- return Object.keys(obj).reduce(function (acc, key) {
- var val = fn ? fn(obj[key]) : obj[key];
- acc[val] = acc[val] || [];
- acc[val].push(key);
- return acc;
- }, {});
-};
-
-var is = function is(type, val) {
- return val instanceof type;
-};
-
-var isAbsoluteURL = function isAbsoluteURL(str) {
- return (/^[a-z][a-z0-9+.-]*:/.test(str)
- );
-};
-
-var isAnagram = function isAnagram(str1, str2) {
- var normalize = function normalize(str) {
- return str.toLowerCase().replace(/[^a-z0-9]/gi, '').split('').sort().join('');
+ var filterNonUnique = function filterNonUnique(arr) {
+ return arr.filter(function (i) {
+ return arr.indexOf(i) === arr.lastIndexOf(i);
+ });
};
- return normalize(str1) === normalize(str2);
-};
-function _toConsumableArray$7(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var isArrayLike = function isArrayLike(val) {
- try {
- return [].concat(_toConsumableArray$7(val)), true;
- } catch (e) {
- return false;
- }
-};
-
-var isBoolean = function isBoolean(val) {
- return typeof val === 'boolean';
-};
-
-var isDivisible = function isDivisible(dividend, divisor) {
- return dividend % divisor === 0;
-};
-
-var isEmpty = function isEmpty(val) {
- return val == null || !(Object.keys(val) || val).length;
-};
-
-var isEven = function isEven(num) {
- return num % 2 === 0;
-};
-
-var isFunction = function isFunction(val) {
- return typeof val === 'function';
-};
-
-var isLowerCase = function isLowerCase(str) {
- return str === str.toLowerCase();
-};
-
-var isNil = function isNil(val) {
- return val === undefined || val === null;
-};
-
-var isNull = function isNull(val) {
- return val === null;
-};
-
-var isNumber = function isNumber(val) {
- return typeof val === 'number';
-};
-
-var isObject = function isObject(obj) {
- return obj === Object(obj);
-};
-
-var _typeof$3 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-var isObjectLike = function isObjectLike(val) {
- return val !== null && (typeof val === 'undefined' ? 'undefined' : _typeof$3(val)) === 'object';
-};
-
-var _typeof$4 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-var isPlainObject = function isPlainObject(val) {
- return !!val && (typeof val === 'undefined' ? 'undefined' : _typeof$4(val)) === 'object' && val.constructor === Object;
-};
-
-var isPrime = function isPrime(num) {
- var boundary = Math.floor(Math.sqrt(num));
- for (var i = 2; i <= boundary; i++) {
- if (num % i === 0) return false;
- }return num >= 2;
-};
-
-var _typeof$5 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-var isPrimitive = function isPrimitive(val) {
- return !['object', 'function'].includes(typeof val === 'undefined' ? 'undefined' : _typeof$5(val)) || val === null;
-};
-
-var _typeof$6 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-var isPromiseLike = function isPromiseLike(obj) {
- return obj !== null && ((typeof obj === 'undefined' ? 'undefined' : _typeof$6(obj)) === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
-};
-
-var _slicedToArray$1 = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
-
-var isSorted = function isSorted(arr) {
- var direction = arr[0] > arr[1] ? -1 : 1;
- var _iteratorNormalCompletion = true;
- var _didIteratorError = false;
- var _iteratorError = undefined;
-
- try {
- for (var _iterator = arr.entries()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
- var _ref = _step.value;
-
- var _ref2 = _slicedToArray$1(_ref, 2);
-
- var i = _ref2[0];
- var val = _ref2[1];
-
- if (i === arr.length - 1) return direction;else if ((val - arr[i + 1]) * direction > 0) return 0;
- }
- } catch (err) {
- _didIteratorError = true;
- _iteratorError = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion && _iterator.return) {
- _iterator.return();
- }
- } finally {
- if (_didIteratorError) {
- throw _iteratorError;
- }
- }
- }
-};
-
-var isString = function isString(val) {
- return typeof val === 'string';
-};
-
-var _typeof$7 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-var isSymbol = function isSymbol(val) {
- return (typeof val === 'undefined' ? 'undefined' : _typeof$7(val)) === 'symbol';
-};
-
-var isTravisCI = function isTravisCI() {
- return 'TRAVIS' in process.env && 'CI' in process.env;
-};
-
-var isUndefined = function isUndefined(val) {
- return val === undefined;
-};
-
-var isUpperCase = function isUpperCase(str) {
- return str === str.toUpperCase();
-};
-
-var isValidJSON = function isValidJSON(obj) {
- try {
- JSON.parse(obj);
- return true;
- } catch (e) {
- return false;
- }
-};
-
-var join = function join(arr) {
- var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';
- var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : separator;
- return arr.reduce(function (acc, val, i) {
- return i === arr.length - 2 ? acc + val + end : i === arr.length - 1 ? acc + val : acc + val + separator;
- }, '');
-};
-
-var last = function last(arr) {
- return arr[arr.length - 1];
-};
-
-var lcm = function lcm() {
- for (var _len = arguments.length, arr = Array(_len), _key = 0; _key < _len; _key++) {
- arr[_key] = arguments[_key];
- }
-
- var gcd = function gcd(x, y) {
- return !y ? x : gcd(y, x % y);
+ var filterNonUniqueBy = function filterNonUniqueBy(arr, fn) {
+ return arr.filter(function (v, i) {
+ return arr.every(function (x, j) {
+ return i === j === fn(v, x, i, j);
+ });
+ });
};
- var _lcm = function _lcm(x, y) {
- return x * y / gcd(x, y);
+
+ var findKey = function findKey(obj, fn) {
+ return Object.keys(obj).find(function (key) {
+ return fn(obj[key], key, obj);
+ });
};
- return [].concat(arr).reduce(function (a, b) {
- return _lcm(a, b);
- });
-};
-var longestItem = function longestItem() {
- for (var _len = arguments.length, vals = Array(_len), _key = 0; _key < _len; _key++) {
- vals[_key] = arguments[_key];
- }
-
- return [].concat(vals).sort(function (a, b) {
- return b.length - a.length;
- })[0];
-};
-
-var lowercaseKeys = function lowercaseKeys(obj) {
- return Object.keys(obj).reduce(function (acc, key) {
- acc[key.toLowerCase()] = obj[key];
- return acc;
- }, {});
-};
-
-var luhnCheck = function luhnCheck(num) {
- var arr = (num + '').split('').reverse().map(function (x) {
- return parseInt(x);
- });
- var lastDigit = arr.splice(0, 1)[0];
- var sum = arr.reduce(function (acc, val, i) {
- return i % 2 !== 0 ? acc + val : acc + val * 2 % 9 || 9;
- }, 0);
- sum += lastDigit;
- return sum % 10 === 0;
-};
-
-var mapKeys = function mapKeys(obj, fn) {
- return Object.keys(obj).reduce(function (acc, k) {
- acc[fn(obj[k], k, obj)] = obj[k];
- return acc;
- }, {});
-};
-
-var mapObject = function mapObject(arr, fn) {
- return function (a) {
- return a = [arr, arr.map(fn)], a[0].reduce(function (acc, val, ind) {
- return acc[val] = a[1][ind], acc;
- }, {});
- }();
-};
-
-var mapValues = function mapValues(obj, fn) {
- return Object.keys(obj).reduce(function (acc, k) {
- acc[k] = fn(obj[k], k, obj);
- return acc;
- }, {});
-};
-
-var mask = function mask(cc) {
- var num = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4;
- var mask = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '*';
- return ('' + cc).slice(0, -num).replace(/./g, mask) + ('' + cc).slice(-num);
-};
-
-var matches = function matches(obj, source) {
- return Object.keys(source).every(function (key) {
- return obj.hasOwnProperty(key) && obj[key] === source[key];
- });
-};
-
-var matchesWith = function matchesWith(obj, source, fn) {
- return Object.keys(source).every(function (key) {
- return obj.hasOwnProperty(key) && fn ? fn(obj[key], source[key], key, obj, source) : obj[key] == source[key];
- });
-};
-
-function _toConsumableArray$8(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var maxBy = function maxBy(arr, fn) {
- return Math.max.apply(Math, _toConsumableArray$8(arr.map(typeof fn === 'function' ? fn : function (val) {
- return val[fn];
- })));
-};
-
-function _toConsumableArray$9(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var maxN = function maxN(arr) {
- var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
- return [].concat(_toConsumableArray$9(arr)).sort(function (a, b) {
- return b - a;
- }).slice(0, n);
-};
-
-function _toConsumableArray$10(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var median = function median(arr) {
- var mid = Math.floor(arr.length / 2),
- nums = [].concat(_toConsumableArray$10(arr)).sort(function (a, b) {
- return a - b;
- });
- return arr.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;
-};
-
-var memoize = function memoize(fn) {
- var cache = new Map();
- var cached = function cached(val) {
- return cache.has(val) ? cache.get(val) : cache.set(val, fn.call(this, val)) && cache.get(val);
+ var findLast = function findLast(arr, fn) {
+ return arr.filter(fn).pop();
};
- cached.cache = cache;
- return cached;
-};
-var merge = function merge() {
- for (var _len = arguments.length, objs = Array(_len), _key = 0; _key < _len; _key++) {
- objs[_key] = arguments[_key];
- }
+ var findLastIndex = function findLastIndex(arr, fn) {
+ return arr.map(function (val, i) {
+ return [i, val];
+ }).filter(function (_ref) {
+ var _ref2 = _slicedToArray(_ref, 2),
+ i = _ref2[0],
+ val = _ref2[1];
- return [].concat(objs).reduce(function (acc, obj) {
- return Object.keys(obj).reduce(function (a, k) {
- acc[k] = acc.hasOwnProperty(k) ? [].concat(acc[k]).concat(obj[k]) : obj[k];
+ return fn(val, i, arr);
+ }).pop()[0];
+ };
+
+ var findLastKey = function findLastKey(obj, fn) {
+ return Object.keys(obj).reverse().find(function (key) {
+ return fn(obj[key], key, obj);
+ });
+ };
+
+ var flatten = function flatten(arr) {
+ var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
+ return arr.reduce(function (a, v) {
+ return a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v);
+ }, []);
+ };
+
+ var flattenObject = function flattenObject(obj) {
+ var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
+ return Object.keys(obj).reduce(function (acc, k) {
+ var pre = prefix.length ? prefix + '.' : '';
+ if (_typeof(obj[k]) === 'object') Object.assign(acc, flattenObject(obj[k], pre + k));else acc[pre + k] = obj[k];
return acc;
}, {});
- }, {});
-};
+ };
-function _toConsumableArray$11(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ var flip = function flip(fn) {
+ return function (first) {
+ for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ rest[_key - 1] = arguments[_key];
+ }
-var minBy = function minBy(arr, fn) {
- return Math.min.apply(Math, _toConsumableArray$11(arr.map(typeof fn === 'function' ? fn : function (val) {
- return val[fn];
- })));
-};
+ return fn.apply(void 0, rest.concat([first]));
+ };
+ };
-function _toConsumableArray$12(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ var forEachRight = function forEachRight(arr, callback) {
+ return arr.slice(0).reverse().forEach(callback);
+ };
-var minN = function minN(arr) {
- var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
- return [].concat(_toConsumableArray$12(arr)).sort(function (a, b) {
- return a - b;
- }).slice(0, n);
-};
+ var forOwn = function forOwn(obj, fn) {
+ return Object.keys(obj).forEach(function (key) {
+ return fn(obj[key], key, obj);
+ });
+ };
-function _toConsumableArray$13(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ var forOwnRight = function forOwnRight(obj, fn) {
+ return Object.keys(obj).reverse().forEach(function (key) {
+ return fn(obj[key], key, obj);
+ });
+ };
-var mostPerformant = function mostPerformant(fns) {
- var iterations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10000;
+ var formatDuration = function formatDuration(ms) {
+ if (ms < 0) ms = -ms;
+ var time = {
+ day: Math.floor(ms / 86400000),
+ hour: Math.floor(ms / 3600000) % 24,
+ minute: Math.floor(ms / 60000) % 60,
+ second: Math.floor(ms / 1000) % 60,
+ millisecond: Math.floor(ms) % 1000
+ };
+ return Object.entries(time).filter(function (val) {
+ return val[1] !== 0;
+ }).map(function (_ref) {
+ var _ref2 = _slicedToArray(_ref, 2),
+ key = _ref2[0],
+ val = _ref2[1];
- var times = fns.map(function (fn) {
+ return "".concat(val, " ").concat(key).concat(val !== 1 ? 's' : '');
+ }).join(', ');
+ };
+
+ var fromCamelCase = function fromCamelCase(str) {
+ var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '_';
+ return str.replace(/([a-z\d])([A-Z])/g, '$1' + separator + '$2').replace(/([A-Z]+)([A-Z][a-z\d]+)/g, '$1' + separator + '$2').toLowerCase();
+ };
+
+ var functionName = function functionName(fn) {
+ return console.debug(fn.name), fn;
+ };
+
+ var functions = function functions(obj) {
+ var inherited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+ return (inherited ? _toConsumableArray(Object.keys(obj)).concat(_toConsumableArray(Object.keys(Object.getPrototypeOf(obj)))) : Object.keys(obj)).filter(function (key) {
+ return typeof obj[key] === 'function';
+ });
+ };
+
+ var gcd = function gcd() {
+ var _gcd = function _gcd(x, y) {
+ return !y ? x : gcd(y, x % y);
+ };
+
+ for (var _len = arguments.length, arr = new Array(_len), _key = 0; _key < _len; _key++) {
+ arr[_key] = arguments[_key];
+ }
+
+ return arr.concat().reduce(function (a, b) {
+ return _gcd(a, b);
+ });
+ };
+
+ var geometricProgression = function geometricProgression(end) {
+ var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
+ var step = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;
+ return Array.from({
+ length: Math.floor(Math.log(end / start) / Math.log(step)) + 1
+ }).map(function (v, i) {
+ return start * Math.pow(step, i);
+ });
+ };
+
+ var get = function get(from) {
+ for (var _len = arguments.length, selectors = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ selectors[_key - 1] = arguments[_key];
+ }
+
+ return selectors.concat().map(function (s) {
+ return s.replace(/\[([^\[\]]*)\]/g, '.$1.').split('.').filter(function (t) {
+ return t !== '';
+ }).reduce(function (prev, cur) {
+ return prev && prev[cur];
+ }, from);
+ });
+ };
+
+ var getColonTimeFromDate = function getColonTimeFromDate(date) {
+ return date.toTimeString().slice(0, 8);
+ };
+
+ var getDaysDiffBetweenDates = function getDaysDiffBetweenDates(dateInitial, dateFinal) {
+ return (dateFinal - dateInitial) / (1000 * 3600 * 24);
+ };
+
+ var getMeridiemSuffixOfInteger = function getMeridiemSuffixOfInteger(num) {
+ return num === 0 || num === 24 ? 12 + 'am' : num === 12 ? 12 + 'pm' : num < 12 ? num % 12 + 'am' : num % 12 + 'pm';
+ };
+
+ var getScrollPosition = function getScrollPosition() {
+ var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
+ return {
+ x: el.pageXOffset !== undefined ? el.pageXOffset : el.scrollLeft,
+ y: el.pageYOffset !== undefined ? el.pageYOffset : el.scrollTop
+ };
+ };
+
+ var getStyle = function getStyle(el, ruleName) {
+ return getComputedStyle(el)[ruleName];
+ };
+
+ var getType = function getType(v) {
+ return v === undefined ? 'undefined' : v === null ? 'null' : v.constructor.name.toLowerCase();
+ };
+
+ var getURLParameters = function getURLParameters(url) {
+ return (url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(function (a, v) {
+ return a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1), a;
+ }, {});
+ };
+
+ var groupBy = function groupBy(arr, fn) {
+ return arr.map(typeof fn === 'function' ? fn : function (val) {
+ return val[fn];
+ }).reduce(function (acc, val, i) {
+ acc[val] = (acc[val] || []).concat(arr[i]);
+ return acc;
+ }, {});
+ };
+
+ var hammingDistance = function hammingDistance(num1, num2) {
+ return ((num1 ^ num2).toString(2).match(/1/g) || '').length;
+ };
+
+ var hasClass = function hasClass(el, className) {
+ return el.classList.contains(className);
+ };
+
+ var hasFlags = function hasFlags() {
+ for (var _len = arguments.length, flags = new Array(_len), _key = 0; _key < _len; _key++) {
+ flags[_key] = arguments[_key];
+ }
+
+ return flags.every(function (flag) {
+ return process.argv.includes(/^-{1,2}/.test(flag) ? flag : '--' + flag);
+ });
+ };
+
+ var hashBrowser = function hashBrowser(val) {
+ return crypto.subtle.digest('SHA-256', new TextEncoder('utf-8').encode(val)).then(function (h) {
+ var hexes = [],
+ view = new DataView(h);
+
+ for (var i = 0; i < view.byteLength; i += 4) {
+ hexes.push(('00000000' + view.getUint32(i).toString(16)).slice(-8));
+ }
+
+ return hexes.join('');
+ });
+ };
+
+ var crypto$2 = typeof require !== "undefined" && require('crypto');
+
+ var hashNode = function hashNode(val) {
+ return new Promise(function (resolve) {
+ return setTimeout(function () {
+ return resolve(crypto$2.createHash('sha256').update(val).digest('hex'));
+ }, 0);
+ });
+ };
+
+ var head = function head(arr) {
+ return arr[0];
+ };
+
+ var hexToRGB = function hexToRGB(hex) {
+ var alpha = false,
+ h = hex.slice(hex.startsWith('#') ? 1 : 0);
+ if (h.length === 3) h = _toConsumableArray(h).map(function (x) {
+ return x + x;
+ }).join('');else if (h.length === 8) alpha = true;
+ h = parseInt(h, 16);
+ return 'rgb' + (alpha ? 'a' : '') + '(' + (h >>> (alpha ? 24 : 16)) + ', ' + ((h & (alpha ? 0x00ff0000 : 0x00ff00)) >>> (alpha ? 16 : 8)) + ', ' + ((h & (alpha ? 0x0000ff00 : 0x0000ff)) >>> (alpha ? 8 : 0)) + (alpha ? ", ".concat(h & 0x000000ff) : '') + ')';
+ };
+
+ var hide = function hide(els) {
+ return els.forEach(function (e) {
+ return e.style.display = 'none';
+ });
+ };
+
+ var httpGet = function httpGet(url, callback) {
+ var err = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : console.error;
+ var request = new XMLHttpRequest();
+ request.open('GET', url, true);
+
+ request.onload = function () {
+ return callback(request.responseText);
+ };
+
+ request.onerror = function () {
+ return err(request);
+ };
+
+ request.send();
+ };
+
+ var httpPost = function httpPost(url, data, callback) {
+ var err = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : console.error;
+ var request = new XMLHttpRequest();
+ request.open('POST', url, true);
+ request.setRequestHeader('Content-type', 'application/json; charset=utf-8');
+
+ request.onload = function () {
+ return callback(request.responseText);
+ };
+
+ request.onerror = function () {
+ return err(request);
+ };
+
+ request.send(data);
+ };
+
+ var httpsRedirect = function httpsRedirect() {
+ if (location.protocol !== 'https:') location.replace('https://' + location.href.split('//')[1]);
+ };
+
+ var hz = function hz(fn) {
+ var iterations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
var before = performance.now();
+
for (var i = 0; i < iterations; i++) {
fn();
- }return performance.now() - before;
- });
- return times.indexOf(Math.min.apply(Math, _toConsumableArray$13(times)));
-};
-
-var negate = function negate(func) {
- return function () {
- return !func.apply(undefined, arguments);
- };
-};
-
-var none = function none(arr) {
- var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Boolean;
- return !arr.some(fn);
-};
-
-var nthArg = function nthArg(n) {
- return function () {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
}
- return args.slice(n)[0];
+ return 1000 * iterations / (performance.now() - before);
};
-};
-var nthElement = function nthElement(arr) {
- var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
- return (n > 0 ? arr.slice(n, n + 1) : arr.slice(n))[0];
-};
+ var inRange = function inRange(n, start) {
+ var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-var objectFromPairs = function objectFromPairs(arr) {
- return arr.reduce(function (a, v) {
- return a[v[0]] = v[1], a;
- }, {});
-};
-
-var objectToPairs = function objectToPairs(obj) {
- return Object.keys(obj).map(function (k) {
- return [k, obj[k]];
- });
-};
-
-var observeMutations = function observeMutations(element, callback, options) {
- var observer = new MutationObserver(function (mutations) {
- return mutations.forEach(function (m) {
- return callback(m);
- });
- });
- observer.observe(element, Object.assign({
- childList: true,
- attributes: true,
- attributeOldValue: true,
- characterData: true,
- characterDataOldValue: true,
- subtree: true
- }, options));
- return observer;
-};
-
-var off = function off(el, evt, fn) {
- var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
- return el.removeEventListener(evt, fn, opts);
-};
-
-var omit = function omit(obj, arr) {
- return Object.keys(obj).filter(function (k) {
- return !arr.includes(k);
- }).reduce(function (acc, key) {
- return acc[key] = obj[key], acc;
- }, {});
-};
-
-var omitBy = function omitBy(obj, fn) {
- return Object.keys(obj).filter(function (k) {
- return !fn(obj[k], k);
- }).reduce(function (acc, key) {
- return acc[key] = obj[key], acc;
- }, {});
-};
-
-var on = function on(el, evt, fn) {
- var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
-
- var delegatorFn = function delegatorFn(e) {
- return e.target.matches(opts.target) && fn.call(e.target, e);
- };
- el.addEventListener(evt, opts.target ? delegatorFn : fn, opts.options || false);
- if (opts.target) return delegatorFn;
-};
-
-var onUserInputChange = function onUserInputChange(callback) {
- var type = 'mouse',
- lastTime = 0;
- var mousemoveHandler = function mousemoveHandler() {
- var now = performance.now();
- if (now - lastTime < 20) type = 'mouse', callback(type), document.removeEventListener('mousemove', mousemoveHandler);
- lastTime = now;
- };
- document.addEventListener('touchstart', function () {
- if (type === 'touch') return;
- type = 'touch', callback(type), document.addEventListener('mousemove', mousemoveHandler);
- });
-};
-
-var once = function once(fn) {
- var called = false;
- return function () {
- if (called) return;
- called = true;
-
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
+ if (end && start > end) {
+ var _ref = [start, end];
+ end = _ref[0];
+ start = _ref[1];
}
- return fn.apply(this, args);
+ return end == null ? n >= 0 && n < start : n >= start && n < end;
};
-};
-var _slicedToArray$2 = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
+ var indentString = function indentString(str, count) {
+ var indent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ' ';
+ return str.replace(/^/gm, indent.repeat(count));
+ };
-function _toConsumableArray$14(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ var indexOfAll = function indexOfAll(arr, val) {
+ return arr.reduce(function (acc, el, i) {
+ return el === val ? _toConsumableArray(acc).concat([i]) : acc;
+ }, []);
+ };
-var orderBy = function orderBy(arr, props, orders) {
- return [].concat(_toConsumableArray$14(arr)).sort(function (a, b) {
- return props.reduce(function (acc, prop, i) {
- if (acc === 0) {
- var _ref = orders && orders[i] === 'desc' ? [b[prop], a[prop]] : [a[prop], b[prop]],
- _ref2 = _slicedToArray$2(_ref, 2),
- p1 = _ref2[0],
- p2 = _ref2[1];
+ var initial = function initial(arr) {
+ return arr.slice(0, -1);
+ };
- acc = p1 > p2 ? 1 : p1 < p2 ? -1 : 0;
- }
- return acc;
- }, 0);
- });
-};
-
-var over = function over() {
- for (var _len = arguments.length, fns = Array(_len), _key = 0; _key < _len; _key++) {
- fns[_key] = arguments[_key];
- }
-
- return function () {
- for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
- args[_key2] = arguments[_key2];
- }
-
- return fns.map(function (fn) {
- return fn.apply(null, args);
+ var initialize2DArray = function initialize2DArray(w, h) {
+ var val = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
+ return Array.from({
+ length: h
+ }).map(function () {
+ return Array.from({
+ length: w
+ }).fill(val);
});
};
-};
-function _toConsumableArray$15(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var overArgs = function overArgs(fn, transforms) {
- return function () {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- return fn.apply(undefined, _toConsumableArray$15(args.map(function (val, i) {
- return transforms[i](val);
- })));
- };
-};
-
-var palindrome = function palindrome(str) {
- var s = str.toLowerCase().replace(/[\W_]/g, '');
- return s === s.split('').reverse().join('');
-};
-
-var parseCookie = function parseCookie(str) {
- return str.split(';').map(function (v) {
- return v.split('=');
- }).reduce(function (acc, v) {
- acc[decodeURIComponent(v[0].trim())] = decodeURIComponent(v[1].trim());
- return acc;
- }, {});
-};
-
-var partial = function partial(fn) {
- for (var _len = arguments.length, partials = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- partials[_key - 1] = arguments[_key];
- }
-
- return function () {
- for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
- args[_key2] = arguments[_key2];
- }
-
- return fn.apply(undefined, partials.concat(args));
- };
-};
-
-var partialRight = function partialRight(fn) {
- for (var _len = arguments.length, partials = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- partials[_key - 1] = arguments[_key];
- }
-
- return function () {
- for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
- args[_key2] = arguments[_key2];
- }
-
- return fn.apply(undefined, args.concat(partials));
- };
-};
-
-var partition = function partition(arr, fn) {
- return arr.reduce(function (acc, val, i, arr) {
- acc[fn(val, i, arr) ? 0 : 1].push(val);
- return acc;
- }, [[], []]);
-};
-
-var percentile = function percentile(arr, val) {
- return 100 * arr.reduce(function (acc, v) {
- return acc + (v < val ? 1 : 0) + (v === val ? 0.5 : 0);
- }, 0) / arr.length;
-};
-
-function _toConsumableArray$16(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var permutations = function permutations(arr) {
- if (arr.length <= 2) return arr.length === 2 ? [arr, [arr[1], arr[0]]] : arr;
- return arr.reduce(function (acc, item, i) {
- return acc.concat(permutations([].concat(_toConsumableArray$16(arr.slice(0, i)), _toConsumableArray$16(arr.slice(i + 1)))).map(function (val) {
- return [item].concat(_toConsumableArray$16(val));
- }));
- }, []);
-};
-
-var pick = function pick(obj, arr) {
- return arr.reduce(function (acc, curr) {
- return curr in obj && (acc[curr] = obj[curr]), acc;
- }, {});
-};
-
-var pickBy = function pickBy(obj, fn) {
- return Object.keys(obj).filter(function (k) {
- return fn(obj[k], k);
- }).reduce(function (acc, key) {
- return acc[key] = obj[key], acc;
- }, {});
-};
-
-var pipeAsyncFunctions = function pipeAsyncFunctions() {
- for (var _len = arguments.length, fns = Array(_len), _key = 0; _key < _len; _key++) {
- fns[_key] = arguments[_key];
- }
-
- return function (arg) {
- return fns.reduce(function (p, f) {
- return p.then(f);
- }, Promise.resolve(arg));
- };
-};
-
-var pipeFunctions = function pipeFunctions() {
- for (var _len = arguments.length, fns = Array(_len), _key = 0; _key < _len; _key++) {
- fns[_key] = arguments[_key];
- }
-
- return fns.reduce(function (f, g) {
- return function () {
- return g(f.apply(undefined, arguments));
- };
- });
-};
-
-var _typeof$8 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-var pluralize = function pluralize(val, word) {
- var plural = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : word + 's';
-
- var _pluralize = function _pluralize(num, word) {
- var plural = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : word + 's';
- return [1, -1].includes(Number(num)) ? word : plural;
- };
- if ((typeof val === 'undefined' ? 'undefined' : _typeof$8(val)) === 'object') return function (num, word) {
- return _pluralize(num, word, val[word]);
- };
- return _pluralize(val, word, plural);
-};
-
-var powerset = function powerset(arr) {
- return arr.reduce(function (a, v) {
- return a.concat(a.map(function (r) {
- return [v].concat(r);
- }));
- }, [[]]);
-};
-
-var prettyBytes = function prettyBytes(num) {
- var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;
- var addSpace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
-
- var UNITS = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
- if (Math.abs(num) < 1) return num + (addSpace ? ' ' : '') + UNITS[0];
- var exponent = Math.min(Math.floor(Math.log10(num < 0 ? -num : num) / 3), UNITS.length - 1);
- var n = Number(((num < 0 ? -num : num) / Math.pow(1000, exponent)).toPrecision(precision));
- return (num < 0 ? '-' : '') + n + (addSpace ? ' ' : '') + UNITS[exponent];
-};
-
-var primes = function primes(num) {
- var arr = Array.from({ length: num - 1 }).map(function (x, i) {
- return i + 2;
- }),
- sqroot = Math.floor(Math.sqrt(num)),
- numsTillSqroot = Array.from({ length: sqroot - 1 }).map(function (x, i) {
- return i + 2;
- });
- numsTillSqroot.forEach(function (x) {
- return arr = arr.filter(function (y) {
- return y % x !== 0 || y === x;
- });
- });
- return arr;
-};
-
-var promisify = function promisify(func) {
- return function () {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- return new Promise(function (resolve, reject) {
- return func.apply(undefined, args.concat([function (err, result) {
- return err ? reject(err) : resolve(result);
- }]));
+ var initializeArrayWithRange = function initializeArrayWithRange(end) {
+ var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
+ var step = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
+ return Array.from({
+ length: Math.ceil((end - start + 1) / step)
+ }, function (v, i) {
+ return i * step + start;
});
};
-};
-var pull = function pull(arr) {
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- args[_key - 1] = arguments[_key];
- }
+ var initializeArrayWithRangeRight = function initializeArrayWithRangeRight(end) {
+ var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
+ var step = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
+ return Array.from({
+ length: Math.ceil((end + 1 - start) / step)
+ }).map(function (v, i, arr) {
+ return (arr.length - i - 1) * step + start;
+ });
+ };
- var argState = Array.isArray(args[0]) ? args[0] : args;
- var pulled = arr.filter(function (v, i) {
- return !argState.includes(v);
- });
- arr.length = 0;
- pulled.forEach(function (v) {
- return arr.push(v);
- });
-};
+ var initializeArrayWithValues = function initializeArrayWithValues(n) {
+ var val = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
+ return Array(n).fill(val);
+ };
-var pullAtIndex = function pullAtIndex(arr, pullArr) {
- var removed = [];
- var pulled = arr.map(function (v, i) {
- return pullArr.includes(i) ? removed.push(v) : v;
- }).filter(function (v, i) {
- return !pullArr.includes(i);
- });
- arr.length = 0;
- pulled.forEach(function (v) {
- return arr.push(v);
- });
- return removed;
-};
-
-var pullAtValue = function pullAtValue(arr, pullArr) {
- var removed = [],
- pushToRemove = arr.forEach(function (v, i) {
- return pullArr.includes(v) ? removed.push(v) : v;
- }),
- mutateTo = arr.filter(function (v, i) {
- return !pullArr.includes(v);
- });
- arr.length = 0;
- mutateTo.forEach(function (v) {
- return arr.push(v);
- });
- return removed;
-};
-
-var pullBy = function pullBy(arr) {
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- args[_key - 1] = arguments[_key];
- }
-
- var length = args.length;
- var fn = length > 1 ? args[length - 1] : undefined;
- fn = typeof fn == 'function' ? (args.pop(), fn) : undefined;
- var argState = (Array.isArray(args[0]) ? args[0] : args).map(function (val) {
- return fn(val);
- });
- var pulled = arr.filter(function (v, i) {
- return !argState.includes(fn(v));
- });
- arr.length = 0;
- pulled.forEach(function (v) {
- return arr.push(v);
- });
-};
-
-var radsToDegrees = function radsToDegrees(rad) {
- return rad * 180.0 / Math.PI;
-};
-
-var randomHexColorCode = function randomHexColorCode() {
- var n = (Math.random() * 0xfffff * 1000000).toString(16);
- return '#' + n.slice(0, 6);
-};
-
-var randomIntArrayInRange = function randomIntArrayInRange(min, max) {
- var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- return Array.from({ length: n }, function () {
- return Math.floor(Math.random() * (max - min + 1)) + min;
- });
-};
-
-var randomIntegerInRange = function randomIntegerInRange(min, max) {
- return Math.floor(Math.random() * (max - min + 1)) + min;
-};
-
-var randomNumberInRange = function randomNumberInRange(min, max) {
- return Math.random() * (max - min) + min;
-};
-
-var fs$1 = typeof require !== "undefined" && require('fs');
-var readFileLines = function readFileLines(filename) {
- return fs$1.readFileSync(filename).toString('UTF8').split('\n');
-};
-
-function _toConsumableArray$17(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var rearg = function rearg(fn, indexes) {
- return function () {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
+ var initializeNDArray = function initializeNDArray(val) {
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
}
- return fn.apply(undefined, _toConsumableArray$17(args.reduce(function (acc, val, i) {
- return acc[indexes.indexOf(i)] = val, acc;
- }, Array.from({ length: indexes.length }))));
+ return args.length === 0 ? val : Array.from({
+ length: args[0]
+ }).map(function () {
+ return initializeNDArray.apply(void 0, [val].concat(_toConsumableArray(args.slice(1))));
+ });
};
-};
-var redirect = function redirect(url) {
- var asLink = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
- return asLink ? window.location.href = url : window.location.replace(url);
-};
-
-var reduceSuccessive = function reduceSuccessive(arr, fn, acc) {
- return arr.reduce(function (res, val, i, arr) {
- return res.push(fn(res.slice(-1)[0], val, i, arr)), res;
- }, [acc]);
-};
-
-var reduceWhich = function reduceWhich(arr) {
- var comparator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (a, b) {
- return a - b;
+ var insertAfter = function insertAfter(el, htmlString) {
+ return el.insertAdjacentHTML('afterend', htmlString);
};
- return arr.reduce(function (a, b) {
- return comparator(a, b) >= 0 ? b : a;
- });
-};
-var reducedFilter = function reducedFilter(data, keys, fn) {
- return data.filter(fn).map(function (el) {
- return keys.reduce(function (acc, key) {
- acc[key] = el[key];
+ var insertBefore = function insertBefore(el, htmlString) {
+ return el.insertAdjacentHTML('beforebegin', htmlString);
+ };
+
+ var intersection = function intersection(a, b) {
+ var s = new Set(b);
+ return a.filter(function (x) {
+ return s.has(x);
+ });
+ };
+
+ var intersectionBy = function intersectionBy(a, b, fn) {
+ var s = new Set(b.map(fn));
+ return a.filter(function (x) {
+ return s.has(fn(x));
+ });
+ };
+
+ var intersectionWith = function intersectionWith(a, b, comp) {
+ return a.filter(function (x) {
+ return b.findIndex(function (y) {
+ return comp(x, y);
+ }) !== -1;
+ });
+ };
+
+ var invertKeyValues = function invertKeyValues(obj, fn) {
+ return Object.keys(obj).reduce(function (acc, key) {
+ var val = fn ? fn(obj[key]) : obj[key];
+ acc[val] = acc[val] || [];
+ acc[val].push(key);
return acc;
}, {});
- });
-};
-
-var remove = function remove(arr, func) {
- return Array.isArray(arr) ? arr.filter(func).reduce(function (acc, val) {
- arr.splice(arr.indexOf(val), 1);
- return acc.concat(val);
- }, []) : [];
-};
-
-var removeNonASCII = function removeNonASCII(str) {
- return str.replace(/[^\x20-\x7E]/g, '');
-};
-
-function _toConsumableArray$18(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var reverseString = function reverseString(str) {
- return [].concat(_toConsumableArray$18(str)).reverse().join('');
-};
-
-var round = function round(n) {
- var decimals = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
- return Number(Math.round(n + "e" + decimals) + "e-" + decimals);
-};
-
-var runAsync = function runAsync(fn) {
- var worker = new Worker(URL.createObjectURL(new Blob(['postMessage((' + fn + ')());']), {
- type: 'application/javascript; charset=utf-8'
- }));
- return new Promise(function (res, rej) {
- worker.onmessage = function (_ref) {
- var data = _ref.data;
-
- res(data), worker.terminate();
- };
- worker.onerror = function (err) {
- rej(err), worker.terminate();
- };
- });
-};
-
-var runPromisesInSeries = function runPromisesInSeries(ps) {
- return ps.reduce(function (p, next) {
- return p.then(next);
- }, Promise.resolve());
-};
-
-var sample = function sample(arr) {
- return arr[Math.floor(Math.random() * arr.length)];
-};
-
-function _toArray$3(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }
-
-var sampleSize = function sampleSize(_ref) {
- var _ref2 = _toArray$3(_ref),
- arr = _ref2.slice(0);
-
- var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
-
- var m = arr.length;
- while (m) {
- var i = Math.floor(Math.random() * m--);
- var _ref3 = [arr[i], arr[m]];
- arr[m] = _ref3[0];
- arr[i] = _ref3[1];
- }
- return arr.slice(0, n);
-};
-
-var scrollToTop = function scrollToTop() {
- var c = document.documentElement.scrollTop || document.body.scrollTop;
- if (c > 0) {
- window.requestAnimationFrame(scrollToTop);
- window.scrollTo(0, c - c / 8);
- }
-};
-
-var sdbm = function sdbm(str) {
- var arr = str.split('');
- return arr.reduce(function (hashCode, currentVal) {
- return hashCode = currentVal.charCodeAt(0) + (hashCode << 6) + (hashCode << 16) - hashCode;
- }, 0);
-};
-
-var serializeCookie = function serializeCookie(name, val) {
- return encodeURIComponent(name) + "=" + encodeURIComponent(val);
-};
-
-var setStyle = function setStyle(el, ruleName, val) {
- return el.style[ruleName] = val;
-};
-
-var shallowClone = function shallowClone(obj) {
- return Object.assign({}, obj);
-};
-
-var show = function show() {
- for (var _len = arguments.length, el = Array(_len), _key = 0; _key < _len; _key++) {
- el[_key] = arguments[_key];
- }
-
- return [].concat(el).forEach(function (e) {
- return e.style.display = '';
- });
-};
-
-function _toArray$4(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }
-
-var shuffle = function shuffle(_ref) {
- var _ref2 = _toArray$4(_ref),
- arr = _ref2.slice(0);
-
- var m = arr.length;
- while (m) {
- var i = Math.floor(Math.random() * m--);
- var _ref3 = [arr[i], arr[m]];
- arr[m] = _ref3[0];
- arr[i] = _ref3[1];
- }
- return arr;
-};
-
-var similarity = function similarity(arr, values) {
- return arr.filter(function (v) {
- return values.includes(v);
- });
-};
-
-var _typeof$9 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-var size = function size(val) {
- return Array.isArray(val) ? val.length : val && (typeof val === 'undefined' ? 'undefined' : _typeof$9(val)) === 'object' ? val.size || val.length || Object.keys(val).length : typeof val === 'string' ? new Blob([val]).size : 0;
-};
-
-var sleep = function sleep(ms) {
- return new Promise(function (resolve) {
- return setTimeout(resolve, ms);
- });
-};
-
-function _toConsumableArray$19(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var sortCharactersInString = function sortCharactersInString(str) {
- return [].concat(_toConsumableArray$19(str)).sort(function (a, b) {
- return a.localeCompare(b);
- }).join('');
-};
-
-var sortedIndex = function sortedIndex(arr, n) {
- var isDescending = arr[0] > arr[arr.length - 1];
- var index = arr.findIndex(function (el) {
- return isDescending ? n >= el : n <= el;
- });
- return index === -1 ? arr.length : index;
-};
-
-var sortedIndexBy = function sortedIndexBy(arr, n, fn) {
- var isDescending = fn(arr[0]) > fn(arr[arr.length - 1]);
- var val = fn(n);
- var index = arr.findIndex(function (el) {
- return isDescending ? val >= fn(el) : val <= fn(el);
- });
- return index === -1 ? arr.length : index;
-};
-
-var sortedLastIndex = function sortedLastIndex(arr, n) {
- var isDescending = arr[0] > arr[arr.length - 1];
- var index = arr.map(function (val, i) {
- return [i, val];
- }).reverse().findIndex(function (el) {
- return isDescending ? n <= el[1] : n >= el[1];
- });
- return index === -1 ? 0 : arr.length - index - 1;
-};
-
-var sortedLastIndexBy = function sortedLastIndexBy(arr, n, fn) {
- var isDescending = fn(arr[0]) > fn(arr[arr.length - 1]);
- var val = fn(n);
- var index = arr.map(function (val, i) {
- return [i, fn(val)];
- }).reverse().findIndex(function (el) {
- return isDescending ? val <= el[1] : val >= el[1];
- });
- return index === -1 ? 0 : arr.length - index;
-};
-
-var splitLines = function splitLines(str) {
- return str.split(/\r?\n/);
-};
-
-function _toConsumableArray$20(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var spreadOver = function spreadOver(fn) {
- return function (argsArr) {
- return fn.apply(undefined, _toConsumableArray$20(argsArr));
};
-};
-var stableSort = function stableSort(arr, compare) {
- return arr.map(function (item, index) {
- return { item: item, index: index };
- }).sort(function (a, b) {
- return compare(a.item, b.item) || a.index - b.index;
- }).map(function (_ref) {
- var item = _ref.item;
- return item;
- });
-};
+ var is = function is(type, val) {
+ return ![, null].includes(val) && val.constructor === type;
+ };
-var standardDeviation = function standardDeviation(arr) {
- var usePopulation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+ var isAbsoluteURL = function isAbsoluteURL(str) {
+ return /^[a-z][a-z0-9+.-]*:/.test(str);
+ };
- var mean = arr.reduce(function (acc, val) {
- return acc + val;
- }, 0) / arr.length;
- return Math.sqrt(arr.reduce(function (acc, val) {
- return acc.concat(Math.pow(val - mean, 2));
- }, []).reduce(function (acc, val) {
- return acc + val;
- }, 0) / (arr.length - (usePopulation ? 0 : 1)));
-};
+ var isAfterDate = function isAfterDate(dateA, dateB) {
+ return dateA > dateB;
+ };
-var stringPermutations = function stringPermutations(str) {
- if (str.length <= 2) return str.length === 2 ? [str, str[1] + str[0]] : [str];
- return str.split('').reduce(function (acc, letter, i) {
- return acc.concat(stringPermutations(str.slice(0, i) + str.slice(i + 1)).map(function (val) {
- return letter + val;
- }));
- }, []);
-};
+ var isAnagram = function isAnagram(str1, str2) {
+ var normalize = function normalize(str) {
+ return str.toLowerCase().replace(/[^a-z0-9]/gi, '').split('').sort().join('');
+ };
-var stripHTMLTags = function stripHTMLTags(str) {
- return str.replace(/<[^>]*>/g, '');
-};
+ return normalize(str1) === normalize(str2);
+ };
-var sum = function sum() {
- for (var _len = arguments.length, arr = Array(_len), _key = 0; _key < _len; _key++) {
- arr[_key] = arguments[_key];
- }
+ var isArrayLike = function isArrayLike(obj) {
+ return obj != null && typeof obj[Symbol.iterator] === 'function';
+ };
- return [].concat(arr).reduce(function (acc, val) {
- return acc + val;
- }, 0);
-};
+ var isBeforeDate = function isBeforeDate(dateA, dateB) {
+ return dateA < dateB;
+ };
-var sumBy = function sumBy(arr, fn) {
- return arr.map(typeof fn === 'function' ? fn : function (val) {
- return val[fn];
- }).reduce(function (acc, val) {
- return acc + val;
- }, 0);
-};
+ var isBoolean = function isBoolean(val) {
+ return typeof val === 'boolean';
+ };
-var sumPower = function sumPower(end) {
- var power = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
- var start = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- return Array(end + 1 - start).fill(0).map(function (x, i) {
- return Math.pow(i + start, power);
- }).reduce(function (a, b) {
- return a + b;
- }, 0);
-};
+ var isBrowser = function isBrowser() {
+ return ![typeof window === "undefined" ? "undefined" : _typeof(window), typeof document === "undefined" ? "undefined" : _typeof(document)].includes('undefined');
+ };
-function _toConsumableArray$21(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ var isBrowserTabFocused = function isBrowserTabFocused() {
+ return !document.hidden;
+ };
-var symmetricDifference = function symmetricDifference(a, b) {
- var sA = new Set(a),
- sB = new Set(b);
- return [].concat(_toConsumableArray$21(a.filter(function (x) {
- return !sB.has(x);
- })), _toConsumableArray$21(b.filter(function (x) {
- return !sA.has(x);
- })));
-};
+ var isDivisible = function isDivisible(dividend, divisor) {
+ return dividend % divisor === 0;
+ };
-function _toConsumableArray$22(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ var isEmpty = function isEmpty(val) {
+ return val == null || !(Object.keys(val) || val).length;
+ };
-var symmetricDifferenceBy = function symmetricDifferenceBy(a, b, fn) {
- var sA = new Set(a.map(function (v) {
- return fn(v);
- })),
- sB = new Set(b.map(function (v) {
- return fn(v);
- }));
- return [].concat(_toConsumableArray$22(a.filter(function (x) {
- return !sB.has(fn(x));
- })), _toConsumableArray$22(b.filter(function (x) {
- return !sA.has(fn(x));
- })));
-};
+ var isEven = function isEven(num) {
+ return num % 2 === 0;
+ };
-function _toConsumableArray$23(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ var isFunction = function isFunction(val) {
+ return typeof val === 'function';
+ };
-var symmetricDifferenceWith = function symmetricDifferenceWith(arr, val, comp) {
- return [].concat(_toConsumableArray$23(arr.filter(function (a) {
- return val.findIndex(function (b) {
- return comp(a, b);
- }) === -1;
- })), _toConsumableArray$23(val.filter(function (a) {
- return arr.findIndex(function (b) {
- return comp(a, b);
- }) === -1;
- })));
-};
+ var isLowerCase = function isLowerCase(str) {
+ return str === str.toLowerCase();
+ };
-var tail = function tail(arr) {
- return arr.length > 1 ? arr.slice(1) : arr;
-};
+ var isNil = function isNil(val) {
+ return val === undefined || val === null;
+ };
-var take = function take(arr) {
- var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
- return arr.slice(0, n);
-};
+ var isNull = function isNull(val) {
+ return val === null;
+ };
-var takeRight = function takeRight(arr) {
- var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
- return arr.slice(arr.length - n, arr.length);
-};
+ var isNumber = function isNumber(val) {
+ return typeof val === 'number';
+ };
-var takeRightWhile = function takeRightWhile(arr, func) {
- var _iteratorNormalCompletion = true;
- var _didIteratorError = false;
- var _iteratorError = undefined;
+ var isObject = function isObject(obj) {
+ return obj === Object(obj);
+ };
- try {
- for (var _iterator = arr.reverse().keys()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
- var i = _step.value;
+ var isObjectLike = function isObjectLike(val) {
+ return val !== null && _typeof(val) === 'object';
+ };
- if (func(arr[i])) return arr.reverse().slice(arr.length - i, arr.length);
+ var isPlainObject = function isPlainObject(val) {
+ return !!val && _typeof(val) === 'object' && val.constructor === Object;
+ };
+
+ var isPrime = function isPrime(num) {
+ var boundary = Math.floor(Math.sqrt(num));
+
+ for (var i = 2; i <= boundary; i++) {
+ if (num % i === 0) return false;
}
- } catch (err) {
- _didIteratorError = true;
- _iteratorError = err;
- } finally {
+
+ return num >= 2;
+ };
+
+ var isPrimitive = function isPrimitive(val) {
+ return !['object', 'function'].includes(_typeof(val)) || val === null;
+ };
+
+ var isPromiseLike = function isPromiseLike(obj) {
+ return obj !== null && (_typeof(obj) === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
+ };
+
+ var isSameDate = function isSameDate(dateA, dateB) {
+ return dateA.toISOString() === dateB.toISOString();
+ };
+
+ var isSorted = function isSorted(arr) {
+ var direction = -(arr[0] - arr[1]);
+ var _iteratorNormalCompletion = true;
+ var _didIteratorError = false;
+ var _iteratorError = undefined;
+
try {
- if (!_iteratorNormalCompletion && _iterator.return) {
- _iterator.return();
+ for (var _iterator = arr.entries()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
+ var _step$value = _slicedToArray(_step.value, 2),
+ i = _step$value[0],
+ val = _step$value[1];
+
+ direction = !direction ? -(arr[i - 1] - arr[i]) : direction;
+ if (i === arr.length - 1) return !direction ? 0 : direction;else if ((val - arr[i + 1]) * direction > 0) return 0;
}
+ } catch (err) {
+ _didIteratorError = true;
+ _iteratorError = err;
} finally {
- if (_didIteratorError) {
- throw _iteratorError;
- }
- }
- }
-
- return arr;
-};
-
-var takeWhile = function takeWhile(arr, func) {
- var _iteratorNormalCompletion = true;
- var _didIteratorError = false;
- var _iteratorError = undefined;
-
- try {
- for (var _iterator = arr.keys()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
- var i = _step.value;
- if (func(arr[i])) return arr.slice(0, i);
- }
- } catch (err) {
- _didIteratorError = true;
- _iteratorError = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion && _iterator.return) {
- _iterator.return();
- }
- } finally {
- if (_didIteratorError) {
- throw _iteratorError;
- }
- }
- }
-
- return arr;
-};
-
-var throttle = function throttle(fn, wait) {
- var inThrottle = void 0,
- lastFn = void 0,
- lastTime = void 0;
- return function () {
- var context = this,
- args = arguments;
- if (!inThrottle) {
- fn.apply(context, args);
- lastTime = Date.now();
- inThrottle = true;
- } else {
- clearTimeout(lastFn);
- lastFn = setTimeout(function () {
- if (Date.now() - lastTime >= wait) {
- fn.apply(context, args);
- lastTime = Date.now();
+ try {
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
+ _iterator.return();
}
- }, wait - (Date.now() - lastTime));
+ } finally {
+ if (_didIteratorError) {
+ throw _iteratorError;
+ }
+ }
}
};
-};
-var timeTaken = function timeTaken(callback) {
- console.time('timeTaken');
- var r = callback();
- console.timeEnd('timeTaken');
- return r;
-};
-
-var times = function times(n, fn) {
- var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
-
- var i = 0;
- while (fn.call(context, i) !== false && ++i < n) {}
-};
-
-var toCamelCase = function toCamelCase(str) {
- var s = str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g).map(function (x) {
- return x.slice(0, 1).toUpperCase() + x.slice(1).toLowerCase();
- }).join('');
- return s.slice(0, 1).toLowerCase() + s.slice(1);
-};
-
-var toCurrency = function toCurrency(n, curr) {
- var LanguageFormat = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
- return Intl.NumberFormat(LanguageFormat, { style: 'currency', currency: curr }).format(n);
-};
-
-var toDecimalMark = function toDecimalMark(num) {
- return num.toLocaleString('en-US');
-};
-
-var toKebabCase = function toKebabCase(str) {
- return str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g).map(function (x) {
- return x.toLowerCase();
- }).join('-');
-};
-
-var toOrdinalSuffix = function toOrdinalSuffix(num) {
- var int = parseInt(num),
- digits = [int % 10, int % 100],
- ordinals = ['st', 'nd', 'rd', 'th'],
- oPattern = [1, 2, 3, 4],
- tPattern = [11, 12, 13, 14, 15, 16, 17, 18, 19];
- return oPattern.includes(digits[0]) && !tPattern.includes(digits[1]) ? int + ordinals[digits[0] - 1] : int + ordinals[3];
-};
-
-var toSafeInteger = function toSafeInteger(num) {
- return Math.round(Math.max(Math.min(num, Number.MAX_SAFE_INTEGER), Number.MIN_SAFE_INTEGER));
-};
-
-var toSnakeCase = function toSnakeCase(str) {
- return str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g).map(function (x) {
- return x.toLowerCase();
- }).join('_');
-};
-
-var toggleClass = function toggleClass(el, className) {
- return el.classList.toggle(className);
-};
-
-var tomorrow = function tomorrow() {
- var t = new Date();
- t.setDate(t.getDate() + 1);
- return t.getFullYear() + '-' + String(t.getMonth() + 1).padStart(2, '0') + '-' + String(t.getDate()).padStart(2, '0');
-};
-
-var transform = function transform(obj, fn, acc) {
- return Object.keys(obj).reduce(function (a, k) {
- return fn(a, obj[k], k, obj);
- }, acc);
-};
-
-var truncateString = function truncateString(str, num) {
- return str.length > num ? str.slice(0, num > 3 ? num - 3 : num) + '...' : str;
-};
-
-var truthCheckCollection = function truthCheckCollection(collection, pre) {
- return collection.every(function (obj) {
- return obj[pre];
- });
-};
-
-var unary = function unary(fn) {
- return function (val) {
- return fn(val);
+ var isString = function isString(val) {
+ return typeof val === 'string';
};
-};
-var uncurry = function uncurry(fn) {
- var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
- return function () {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
+ var isSymbol = function isSymbol(val) {
+ return _typeof(val) === 'symbol';
+ };
+
+ var isTravisCI = function isTravisCI() {
+ return 'TRAVIS' in process.env && 'CI' in process.env;
+ };
+
+ var isUndefined = function isUndefined(val) {
+ return val === undefined;
+ };
+
+ var isUpperCase = function isUpperCase(str) {
+ return str === str.toUpperCase();
+ };
+
+ var isValidJSON = function isValidJSON(obj) {
+ try {
+ JSON.parse(obj);
+ return true;
+ } catch (e) {
+ return false;
}
+ };
- var next = function next(acc) {
- return function (args) {
- return args.reduce(function (x, y) {
- return x(y);
- }, acc);
- };
+ var join = function join(arr) {
+ var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';
+ var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : separator;
+ return arr.reduce(function (acc, val, i) {
+ return i === arr.length - 2 ? acc + val + end : i === arr.length - 1 ? acc + val : acc + val + separator;
+ }, '');
+ };
+
+ var last = function last(arr) {
+ return arr[arr.length - 1];
+ };
+
+ var lcm = function lcm() {
+ var gcd = function gcd(x, y) {
+ return !y ? x : gcd(y, x % y);
};
- if (n > args.length) throw new RangeError('Arguments too few!');
- return next(fn)(args.slice(0, n));
+
+ var _lcm = function _lcm(x, y) {
+ return x * y / gcd(x, y);
+ };
+
+ for (var _len = arguments.length, arr = new Array(_len), _key = 0; _key < _len; _key++) {
+ arr[_key] = arguments[_key];
+ }
+
+ return arr.concat().reduce(function (a, b) {
+ return _lcm(a, b);
+ });
};
-};
-var unescapeHTML = function unescapeHTML(str) {
- return str.replace(/&|<|>|'|"/g, function (tag) {
+ var longestItem = function longestItem(val) {
+ for (var _len = arguments.length, vals = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ vals[_key - 1] = arguments[_key];
+ }
+
+ return [val].concat(vals).reduce(function (a, x) {
+ return x.length > a.length ? x : a;
+ });
+ };
+
+ var lowercaseKeys = function lowercaseKeys(obj) {
+ return Object.keys(obj).reduce(function (acc, key) {
+ acc[key.toLowerCase()] = obj[key];
+ return acc;
+ }, {});
+ };
+
+ var luhnCheck = function luhnCheck(num) {
+ var arr = (num + '').split('').reverse().map(function (x) {
+ return parseInt(x);
+ });
+ var lastDigit = arr.splice(0, 1)[0];
+ var sum = arr.reduce(function (acc, val, i) {
+ return i % 2 !== 0 ? acc + val : acc + val * 2 % 9 || 9;
+ }, 0);
+ sum += lastDigit;
+ return sum % 10 === 0;
+ };
+
+ var mapKeys = function mapKeys(obj, fn) {
+ return Object.keys(obj).reduce(function (acc, k) {
+ acc[fn(obj[k], k, obj)] = obj[k];
+ return acc;
+ }, {});
+ };
+
+ var mapObject = function mapObject(arr, fn) {
+ return function (a) {
+ return a = [arr, arr.map(fn)], a[0].reduce(function (acc, val, ind) {
+ return acc[val] = a[1][ind], acc;
+ }, {});
+ }();
+ };
+
+ var mapString = function mapString(str, fn) {
+ return str.split('').map(function (c, i) {
+ return fn(c, i, str);
+ }).join('');
+ };
+
+ var mapValues = function mapValues(obj, fn) {
+ return Object.keys(obj).reduce(function (acc, k) {
+ acc[k] = fn(obj[k], k, obj);
+ return acc;
+ }, {});
+ };
+
+ var mask = function mask(cc) {
+ var num = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4;
+ var mask = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '*';
+ return "".concat(cc).slice(-num).padStart("".concat(cc).length, mask);
+ };
+
+ var matches = function matches(obj, source) {
+ return Object.keys(source).every(function (key) {
+ return obj.hasOwnProperty(key) && obj[key] === source[key];
+ });
+ };
+
+ var matchesWith = function matchesWith(obj, source, fn) {
+ return Object.keys(source).every(function (key) {
+ return obj.hasOwnProperty(key) && fn ? fn(obj[key], source[key], key, obj, source) : obj[key] == source[key];
+ });
+ };
+
+ var maxBy = function maxBy(arr, fn) {
+ return Math.max.apply(Math, _toConsumableArray(arr.map(typeof fn === 'function' ? fn : function (val) {
+ return val[fn];
+ })));
+ };
+
+ var maxDate = function maxDate() {
+ var _Math$max;
+
+ for (var _len = arguments.length, dates = new Array(_len), _key = 0; _key < _len; _key++) {
+ dates[_key] = arguments[_key];
+ }
+
+ return new Date((_Math$max = Math.max).apply.apply(_Math$max, [null].concat(dates)));
+ };
+
+ var maxN = function maxN(arr) {
+ var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
+ return _toConsumableArray(arr).sort(function (a, b) {
+ return b - a;
+ }).slice(0, n);
+ };
+
+ var median = function median(arr) {
+ var mid = Math.floor(arr.length / 2),
+ nums = _toConsumableArray(arr).sort(function (a, b) {
+ return a - b;
+ });
+
+ return arr.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;
+ };
+
+ var memoize = function memoize(fn) {
+ var cache = new Map();
+
+ var cached = function cached(val) {
+ return cache.has(val) ? cache.get(val) : cache.set(val, fn.call(this, val)) && cache.get(val);
+ };
+
+ cached.cache = cache;
+ return cached;
+ };
+
+ var merge = function merge() {
+ for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) {
+ objs[_key] = arguments[_key];
+ }
+
+ return objs.concat().reduce(function (acc, obj) {
+ return Object.keys(obj).reduce(function (a, k) {
+ acc[k] = acc.hasOwnProperty(k) ? [].concat(acc[k]).concat(obj[k]) : obj[k];
+ return acc;
+ }, {});
+ }, {});
+ };
+
+ var minBy = function minBy(arr, fn) {
+ return Math.min.apply(Math, _toConsumableArray(arr.map(typeof fn === 'function' ? fn : function (val) {
+ return val[fn];
+ })));
+ };
+
+ var minDate = function minDate() {
+ var _Math$min;
+
+ for (var _len = arguments.length, dates = new Array(_len), _key = 0; _key < _len; _key++) {
+ dates[_key] = arguments[_key];
+ }
+
+ return new Date((_Math$min = Math.min).apply.apply(_Math$min, [null].concat(dates)));
+ };
+
+ var minN = function minN(arr) {
+ var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
+ return _toConsumableArray(arr).sort(function (a, b) {
+ return a - b;
+ }).slice(0, n);
+ };
+
+ var mostPerformant = function mostPerformant(fns) {
+ var iterations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10000;
+ var times = fns.map(function (fn) {
+ var before = performance.now();
+
+ for (var i = 0; i < iterations; i++) {
+ fn();
+ }
+
+ return performance.now() - before;
+ });
+ return times.indexOf(Math.min.apply(Math, _toConsumableArray(times)));
+ };
+
+ var negate = function negate(func) {
+ return function () {
+ return !func.apply(void 0, arguments);
+ };
+ };
+
+ var nest = function nest(items) {
+ var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
+ var link = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'parent_id';
+ return items.filter(function (item) {
+ return item[link] === id;
+ }).map(function (item) {
+ return _objectSpread({}, item, {
+ children: nest(items, item.id)
+ });
+ });
+ };
+
+ var nodeListToArray = function nodeListToArray(nodeList) {
+ return _toConsumableArray(nodeList);
+ };
+
+ var none = function none(arr) {
+ var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Boolean;
+ return !arr.some(fn);
+ };
+
+ var nthArg = function nthArg(n) {
+ return function () {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ return args.slice(n)[0];
+ };
+ };
+
+ var nthElement = function nthElement(arr) {
+ var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
+ return (n === -1 ? arr.slice(n) : arr.slice(n, n + 1))[0];
+ };
+
+ var objectFromPairs = function objectFromPairs(arr) {
+ return arr.reduce(function (a, _ref) {
+ var _ref2 = _slicedToArray(_ref, 2),
+ key = _ref2[0],
+ val = _ref2[1];
+
+ return a[key] = val, a;
+ }, {});
+ };
+
+ var objectToPairs = function objectToPairs(obj) {
+ return Object.keys(obj).map(function (k) {
+ return [k, obj[k]];
+ });
+ };
+
+ var observeMutations = function observeMutations(element, callback, options) {
+ var observer = new MutationObserver(function (mutations) {
+ return mutations.forEach(function (m) {
+ return callback(m);
+ });
+ });
+ observer.observe(element, Object.assign({
+ childList: true,
+ attributes: true,
+ attributeOldValue: true,
+ characterData: true,
+ characterDataOldValue: true,
+ subtree: true
+ }, options));
+ return observer;
+ };
+
+ var off = function off(el, evt, fn) {
+ var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
+ return el.removeEventListener(evt, fn, opts);
+ };
+
+ var offset = function offset(arr, _offset) {
+ return _toConsumableArray(arr.slice(_offset)).concat(_toConsumableArray(arr.slice(0, _offset)));
+ };
+
+ var omit = function omit(obj, arr) {
+ return Object.keys(obj).filter(function (k) {
+ return !arr.includes(k);
+ }).reduce(function (acc, key) {
+ return acc[key] = obj[key], acc;
+ }, {});
+ };
+
+ var omitBy = function omitBy(obj, fn) {
+ return Object.keys(obj).filter(function (k) {
+ return !fn(obj[k], k);
+ }).reduce(function (acc, key) {
+ return acc[key] = obj[key], acc;
+ }, {});
+ };
+
+ var on = function on(el, evt, fn) {
+ var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
+
+ var delegatorFn = function delegatorFn(e) {
+ return e.target.matches(opts.target) && fn.call(e.target, e);
+ };
+
+ el.addEventListener(evt, opts.target ? delegatorFn : fn, opts.options || false);
+ if (opts.target) return delegatorFn;
+ };
+
+ var onUserInputChange = function onUserInputChange(callback) {
+ var type = 'mouse',
+ lastTime = 0;
+
+ var mousemoveHandler = function mousemoveHandler() {
+ var now = performance.now();
+ if (now - lastTime < 20) type = 'mouse', callback(type), document.removeEventListener('mousemove', mousemoveHandler);
+ lastTime = now;
+ };
+
+ document.addEventListener('touchstart', function () {
+ if (type === 'touch') return;
+ type = 'touch', callback(type), document.addEventListener('mousemove', mousemoveHandler);
+ });
+ };
+
+ var once = function once(fn) {
+ var called = false;
+ return function () {
+ if (called) return;
+ called = true;
+
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ return fn.apply(this, args);
+ };
+ };
+
+ var orderBy = function orderBy(arr, props, orders) {
+ return _toConsumableArray(arr).sort(function (a, b) {
+ return props.reduce(function (acc, prop, i) {
+ if (acc === 0) {
+ var _ref = orders && orders[i] === 'desc' ? [b[prop], a[prop]] : [a[prop], b[prop]],
+ _ref2 = _slicedToArray(_ref, 2),
+ p1 = _ref2[0],
+ p2 = _ref2[1];
+
+ acc = p1 > p2 ? 1 : p1 < p2 ? -1 : 0;
+ }
+
+ return acc;
+ }, 0);
+ });
+ };
+
+ var over = function over() {
+ for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {
+ fns[_key] = arguments[_key];
+ }
+
+ return function () {
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+ args[_key2] = arguments[_key2];
+ }
+
+ return fns.map(function (fn) {
+ return fn.apply(null, args);
+ });
+ };
+ };
+
+ var overArgs = function overArgs(fn, transforms) {
+ return function () {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ return fn.apply(void 0, _toConsumableArray(args.map(function (val, i) {
+ return transforms[i](val);
+ })));
+ };
+ };
+
+ var pad = function pad(str, length) {
+ var char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ' ';
+ return str.padStart((str.length + length) / 2, char).padEnd(length, char);
+ };
+
+ var palindrome = function palindrome(str) {
+ var s = str.toLowerCase().replace(/[\W_]/g, '');
+ return s === _toConsumableArray(s).reverse().join('');
+ };
+
+ var parseCookie = function parseCookie(str) {
+ return str.split(';').map(function (v) {
+ return v.split('=');
+ }).reduce(function (acc, v) {
+ acc[decodeURIComponent(v[0].trim())] = decodeURIComponent(v[1].trim());
+ return acc;
+ }, {});
+ };
+
+ var partial = function partial(fn) {
+ for (var _len = arguments.length, partials = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ partials[_key - 1] = arguments[_key];
+ }
+
+ return function () {
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+ args[_key2] = arguments[_key2];
+ }
+
+ return fn.apply(void 0, partials.concat(args));
+ };
+ };
+
+ var partialRight = function partialRight(fn) {
+ for (var _len = arguments.length, partials = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ partials[_key - 1] = arguments[_key];
+ }
+
+ return function () {
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+ args[_key2] = arguments[_key2];
+ }
+
+ return fn.apply(void 0, args.concat(partials));
+ };
+ };
+
+ var partition = function partition(arr, fn) {
+ return arr.reduce(function (acc, val, i, arr) {
+ acc[fn(val, i, arr) ? 0 : 1].push(val);
+ return acc;
+ }, [[], []]);
+ };
+
+ var percentile = function percentile(arr, val) {
+ return 100 * arr.reduce(function (acc, v) {
+ return acc + (v < val ? 1 : 0) + (v === val ? 0.5 : 0);
+ }, 0) / arr.length;
+ };
+
+ var permutations = function permutations(arr) {
+ if (arr.length <= 2) return arr.length === 2 ? [arr, [arr[1], arr[0]]] : arr;
+ return arr.reduce(function (acc, item, i) {
+ return acc.concat(permutations(_toConsumableArray(arr.slice(0, i)).concat(_toConsumableArray(arr.slice(i + 1)))).map(function (val) {
+ return [item].concat(_toConsumableArray(val));
+ }));
+ }, []);
+ };
+
+ var pick = function pick(obj, arr) {
+ return arr.reduce(function (acc, curr) {
+ return curr in obj && (acc[curr] = obj[curr]), acc;
+ }, {});
+ };
+
+ var pickBy = function pickBy(obj, fn) {
+ return Object.keys(obj).filter(function (k) {
+ return fn(obj[k], k);
+ }).reduce(function (acc, key) {
+ return acc[key] = obj[key], acc;
+ }, {});
+ };
+
+ var pipeAsyncFunctions = function pipeAsyncFunctions() {
+ for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {
+ fns[_key] = arguments[_key];
+ }
+
+ return function (arg) {
+ return fns.reduce(function (p, f) {
+ return p.then(f);
+ }, Promise.resolve(arg));
+ };
+ };
+
+ var pipeFunctions = function pipeFunctions() {
+ for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {
+ fns[_key] = arguments[_key];
+ }
+
+ return fns.reduce(function (f, g) {
+ return function () {
+ return g(f.apply(void 0, arguments));
+ };
+ });
+ };
+
+ var pluralize = function pluralize(val, word) {
+ var plural = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : word + 's';
+
+ var _pluralize = function _pluralize(num, word) {
+ var plural = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : word + 's';
+ return [1, -1].includes(Number(num)) ? word : plural;
+ };
+
+ if (_typeof(val) === 'object') return function (num, word) {
+ return _pluralize(num, word, val[word]);
+ };
+ return _pluralize(val, word, plural);
+ };
+
+ var powerset = function powerset(arr) {
+ return arr.reduce(function (a, v) {
+ return a.concat(a.map(function (r) {
+ return [v].concat(r);
+ }));
+ }, [[]]);
+ };
+
+ var prefix = function prefix(prop) {
+ var capitalizedProp = prop.charAt(0).toUpperCase() + prop.slice(1);
+ var prefixes = ['', 'webkit', 'moz', 'ms', 'o'];
+ var i = prefixes.findIndex(function (prefix) {
+ return typeof document.body.style[prefix ? prefix + capitalizedProp : prop] !== 'undefined';
+ });
+ return i !== -1 ? i === 0 ? prop : prefixes[i] + capitalizedProp : null;
+ };
+
+ var prettyBytes = function prettyBytes(num) {
+ var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;
+ var addSpace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
+ var UNITS = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
+ if (Math.abs(num) < 1) return num + (addSpace ? ' ' : '') + UNITS[0];
+ var exponent = Math.min(Math.floor(Math.log10(num < 0 ? -num : num) / 3), UNITS.length - 1);
+ var n = Number(((num < 0 ? -num : num) / Math.pow(1000, exponent)).toPrecision(precision));
+ return (num < 0 ? '-' : '') + n + (addSpace ? ' ' : '') + UNITS[exponent];
+ };
+
+ var primes = function primes(num) {
+ var arr = Array.from({
+ length: num - 1
+ }).map(function (x, i) {
+ return i + 2;
+ }),
+ sqroot = Math.floor(Math.sqrt(num)),
+ numsTillSqroot = Array.from({
+ length: sqroot - 1
+ }).map(function (x, i) {
+ return i + 2;
+ });
+ numsTillSqroot.forEach(function (x) {
+ return arr = arr.filter(function (y) {
+ return y % x !== 0 || y === x;
+ });
+ });
+ return arr;
+ };
+
+ var promisify = function promisify(func) {
+ return function () {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ return new Promise(function (resolve, reject) {
+ return func.apply(void 0, args.concat([function (err, result) {
+ return err ? reject(err) : resolve(result);
+ }]));
+ });
+ };
+ };
+
+ var pull = function pull(arr) {
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+
+ var argState = Array.isArray(args[0]) ? args[0] : args;
+ var pulled = arr.filter(function (v, i) {
+ return !argState.includes(v);
+ });
+ arr.length = 0;
+ pulled.forEach(function (v) {
+ return arr.push(v);
+ });
+ };
+
+ var pullAtIndex = function pullAtIndex(arr, pullArr) {
+ var removed = [];
+ var pulled = arr.map(function (v, i) {
+ return pullArr.includes(i) ? removed.push(v) : v;
+ }).filter(function (v, i) {
+ return !pullArr.includes(i);
+ });
+ arr.length = 0;
+ pulled.forEach(function (v) {
+ return arr.push(v);
+ });
+ return removed;
+ };
+
+ var pullAtValue = function pullAtValue(arr, pullArr) {
+ var removed = [],
+ pushToRemove = arr.forEach(function (v, i) {
+ return pullArr.includes(v) ? removed.push(v) : v;
+ }),
+ mutateTo = arr.filter(function (v, i) {
+ return !pullArr.includes(v);
+ });
+ arr.length = 0;
+ mutateTo.forEach(function (v) {
+ return arr.push(v);
+ });
+ return removed;
+ };
+
+ var pullBy = function pullBy(arr) {
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+
+ var length = args.length;
+ var fn = length > 1 ? args[length - 1] : undefined;
+ fn = typeof fn == 'function' ? (args.pop(), fn) : undefined;
+ var argState = (Array.isArray(args[0]) ? args[0] : args).map(function (val) {
+ return fn(val);
+ });
+ var pulled = arr.filter(function (v, i) {
+ return !argState.includes(fn(v));
+ });
+ arr.length = 0;
+ pulled.forEach(function (v) {
+ return arr.push(v);
+ });
+ };
+
+ var radsToDegrees = function radsToDegrees(rad) {
+ return rad * 180.0 / Math.PI;
+ };
+
+ var randomHexColorCode = function randomHexColorCode() {
+ var n = (Math.random() * 0xfffff * 1000000).toString(16);
+ return '#' + n.slice(0, 6);
+ };
+
+ var randomIntArrayInRange = function randomIntArrayInRange(min, max) {
+ var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
+ return Array.from({
+ length: n
+ }, function () {
+ return Math.floor(Math.random() * (max - min + 1)) + min;
+ });
+ };
+
+ var randomIntegerInRange = function randomIntegerInRange(min, max) {
+ return Math.floor(Math.random() * (max - min + 1)) + min;
+ };
+
+ var randomNumberInRange = function randomNumberInRange(min, max) {
+ return Math.random() * (max - min) + min;
+ };
+
+ var fs$1 = typeof require !== "undefined" && require('fs');
+
+ var readFileLines = function readFileLines(filename) {
+ return fs$1.readFileSync(filename).toString('UTF8').split('\n');
+ };
+
+ var rearg = function rearg(fn, indexes) {
+ return function () {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ return fn.apply(void 0, _toConsumableArray(indexes.map(function (i) {
+ return args[i];
+ })));
+ };
+ };
+
+ var recordAnimationFrames = function recordAnimationFrames(callback) {
+ var autoStart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
+ var running = true,
+ raf;
+
+ var stop = function stop() {
+ running = false;
+ cancelAnimationFrame(raf);
+ };
+
+ var start = function start() {
+ running = true;
+ run();
+ };
+
+ var run = function run() {
+ raf = requestAnimationFrame(function () {
+ callback();
+ if (running) run();
+ });
+ };
+
+ if (autoStart) start();
return {
- '&': '&',
- '<': '<',
- '>': '>',
- ''': "'",
- '"': '"'
- }[tag] || tag;
- });
-};
+ start: start,
+ stop: stop
+ };
+ };
-var unflattenObject = function unflattenObject(obj) {
- return Object.keys(obj).reduce(function (acc, k) {
- if (k.indexOf('.') !== -1) {
- var keys = k.split('.');
- Object.assign(acc, JSON.parse('{' + keys.map(function (v, i) {
- return i !== keys.length - 1 ? '"' + v + '":{' : '"' + v + '":';
- }).join('') + obj[k] + '}'.repeat(keys.length)));
- } else acc[k] = obj[k];
- return acc;
- }, {});
-};
+ var redirect = function redirect(url) {
+ var asLink = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
+ return asLink ? window.location.href = url : window.location.replace(url);
+ };
-var unfold = function unfold(fn, seed) {
- var result = [],
- val = [null, seed];
- while (val = fn(val[1])) {
- result.push(val[0]);
- }return result;
-};
+ var reduceSuccessive = function reduceSuccessive(arr, fn, acc) {
+ return arr.reduce(function (res, val, i, arr) {
+ return res.push(fn(res.slice(-1)[0], val, i, arr)), res;
+ }, [acc]);
+ };
-function _toConsumableArray$24(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ var reduceWhich = function reduceWhich(arr) {
+ var comparator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (a, b) {
+ return a - b;
+ };
+ return arr.reduce(function (a, b) {
+ return comparator(a, b) >= 0 ? b : a;
+ });
+ };
-var union = function union(a, b) {
- return Array.from(new Set([].concat(_toConsumableArray$24(a), _toConsumableArray$24(b))));
-};
+ var reducedFilter = function reducedFilter(data, keys, fn) {
+ return data.filter(fn).map(function (el) {
+ return keys.reduce(function (acc, key) {
+ acc[key] = el[key];
+ return acc;
+ }, {});
+ });
+ };
-function _toConsumableArray$25(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ var reject = function reject(pred, array) {
+ return array.filter(function () {
+ return !pred.apply(void 0, arguments);
+ });
+ };
-var unionBy = function unionBy(a, b, fn) {
- var s = new Set(a.map(function (v) {
- return fn(v);
- }));
- return Array.from(new Set([].concat(_toConsumableArray$25(a), _toConsumableArray$25(b.filter(function (x) {
- return !s.has(fn(x));
- })))));
-};
+ var remove = function remove(arr, func) {
+ return Array.isArray(arr) ? arr.filter(func).reduce(function (acc, val) {
+ arr.splice(arr.indexOf(val), 1);
+ return acc.concat(val);
+ }, []) : [];
+ };
-function _toConsumableArray$26(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ var removeNonASCII = function removeNonASCII(str) {
+ return str.replace(/[^\x20-\x7E]/g, '');
+ };
-var unionWith = function unionWith(a, b, comp) {
- return Array.from(new Set([].concat(_toConsumableArray$26(a), _toConsumableArray$26(b.filter(function (x) {
- return a.findIndex(function (y) {
- return comp(x, y);
- }) === -1;
- })))));
-};
+ var renameKeys = function renameKeys(keysMap, obj) {
+ return Object.keys(obj).reduce(function (acc, key) {
+ return _objectSpread({}, acc, _defineProperty({}, keysMap[key] || key, obj[key]));
+ }, {});
+ };
-function _toConsumableArray$27(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ var reverseString = function reverseString(str) {
+ return _toConsumableArray(str).reverse().join('');
+ };
-var uniqueElements = function uniqueElements(arr) {
- return [].concat(_toConsumableArray$27(new Set(arr)));
-};
+ var round = function round(n) {
+ var decimals = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
+ return Number("".concat(Math.round("".concat(n, "e").concat(decimals)), "e-").concat(decimals));
+ };
-var untildify = function untildify(str) {
- return str.replace(/^~($|\/|\\)/, (typeof require !== "undefined" && require('os').homedir()) + "$1");
-};
-
-function _toConsumableArray$28(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var unzip = function unzip(arr) {
- return arr.reduce(function (acc, val) {
- return val.forEach(function (v, i) {
- return acc[i].push(v);
- }), acc;
- }, Array.from({
- length: Math.max.apply(Math, _toConsumableArray$28(arr.map(function (x) {
- return x.length;
- })))
- }).map(function (x) {
- return [];
- }));
-};
-
-function _toConsumableArray$29(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var unzipWith = function unzipWith(arr, fn) {
- return arr.reduce(function (acc, val) {
- return val.forEach(function (v, i) {
- return acc[i].push(v);
- }), acc;
- }, Array.from({
- length: Math.max.apply(Math, _toConsumableArray$29(arr.map(function (x) {
- return x.length;
- })))
- }).map(function (x) {
- return [];
- })).map(function (val) {
- return fn.apply(undefined, _toConsumableArray$29(val));
- });
-};
-
-var validateNumber = function validateNumber(n) {
- return !isNaN(parseFloat(n)) && isFinite(n) && Number(n) == n;
-};
-
-var without = function without(arr) {
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- args[_key - 1] = arguments[_key];
- }
-
- return arr.filter(function (v) {
- return !args.includes(v);
- });
-};
-
-var words = function words(str) {
- var pattern = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : /[^a-zA-Z-]+/;
- return str.split(pattern).filter(Boolean);
-};
-
-var xProd = function xProd(a, b) {
- return a.reduce(function (acc, x) {
- return acc.concat(b.map(function (y) {
- return [x, y];
+ var runAsync = function runAsync(fn) {
+ var worker = new Worker(URL.createObjectURL(new Blob(["postMessage((".concat(fn, ")());")]), {
+ type: 'application/javascript; charset=utf-8'
}));
- }, []);
-};
+ return new Promise(function (res, rej) {
+ worker.onmessage = function (_ref) {
+ var data = _ref.data;
+ res(data), worker.terminate();
+ };
-var yesNo = function yesNo(val) {
- var def = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- return (/^(y|yes)$/i.test(val) ? true : /^(n|no)$/i.test(val) ? false : def
- );
-};
-
-function _toConsumableArray$30(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var zip = function zip() {
- for (var _len = arguments.length, arrays = Array(_len), _key = 0; _key < _len; _key++) {
- arrays[_key] = arguments[_key];
- }
-
- var maxLength = Math.max.apply(Math, _toConsumableArray$30(arrays.map(function (x) {
- return x.length;
- })));
- return Array.from({ length: maxLength }).map(function (_, i) {
- return Array.from({ length: arrays.length }, function (_, k) {
- return arrays[k][i];
+ worker.onerror = function (err) {
+ rej(err), worker.terminate();
+ };
});
- });
-};
+ };
-var zipObject = function zipObject(props, values) {
- return props.reduce(function (obj, prop, index) {
- return obj[prop] = values[index], obj;
- }, {});
-};
+ var runPromisesInSeries = function runPromisesInSeries(ps) {
+ return ps.reduce(function (p, next) {
+ return p.then(next);
+ }, Promise.resolve());
+ };
-function _toConsumableArray$31(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+ var sample = function sample(arr) {
+ return arr[Math.floor(Math.random() * arr.length)];
+ };
-var zipWith = function zipWith() {
- for (var _len = arguments.length, arrays = Array(_len), _key = 0; _key < _len; _key++) {
- arrays[_key] = arguments[_key];
- }
+ var sampleSize = function sampleSize(_ref) {
+ var _ref2 = _toArray(_ref),
+ arr = _ref2.slice(0);
- var length = arrays.length;
- var fn = length > 1 ? arrays[length - 1] : undefined;
- fn = typeof fn == 'function' ? (arrays.pop(), fn) : undefined;
- var maxLength = Math.max.apply(Math, _toConsumableArray$31(arrays.map(function (x) {
- return x.length;
- })));
- var result = Array.from({ length: maxLength }).map(function (_, i) {
- return Array.from({ length: arrays.length }, function (_, k) {
- return arrays[k][i];
+ var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
+ var m = arr.length;
+
+ while (m) {
+ var i = Math.floor(Math.random() * m--);
+ var _ref3 = [arr[i], arr[m]];
+ arr[m] = _ref3[0];
+ arr[i] = _ref3[1];
+ }
+
+ return arr.slice(0, n);
+ };
+
+ var scrollToTop = function scrollToTop() {
+ var c = document.documentElement.scrollTop || document.body.scrollTop;
+
+ if (c > 0) {
+ window.requestAnimationFrame(scrollToTop);
+ window.scrollTo(0, c - c / 8);
+ }
+ };
+
+ var sdbm = function sdbm(str) {
+ var arr = str.split('');
+ return arr.reduce(function (hashCode, currentVal) {
+ return hashCode = currentVal.charCodeAt(0) + (hashCode << 6) + (hashCode << 16) - hashCode;
+ }, 0);
+ };
+
+ var serializeCookie = function serializeCookie(name, val) {
+ return "".concat(encodeURIComponent(name), "=").concat(encodeURIComponent(val));
+ };
+
+ var setStyle = function setStyle(el, ruleName, val) {
+ return el.style[ruleName] = val;
+ };
+
+ var shallowClone = function shallowClone(obj) {
+ return Object.assign({}, obj);
+ };
+
+ var shank = function shank(arr) {
+ var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
+ var delCount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
+
+ for (var _len = arguments.length, elements = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
+ elements[_key - 3] = arguments[_key];
+ }
+
+ return arr.slice(0, index).concat(elements).concat(arr.slice(index + delCount));
+ };
+
+ var show = function show() {
+ for (var _len = arguments.length, el = new Array(_len), _key = 0; _key < _len; _key++) {
+ el[_key] = arguments[_key];
+ }
+
+ return el.concat().forEach(function (e) {
+ return e.style.display = '';
});
- });
- return fn ? result.map(function (arr) {
- return fn.apply(undefined, _toConsumableArray$31(arr));
- }) : result;
-};
+ };
-var imports = { JSONToFile: JSONToFile, RGBToHex: RGBToHex, URLJoin: URLJoin, UUIDGeneratorBrowser: UUIDGeneratorBrowser, UUIDGeneratorNode: UUIDGeneratorNode, all: all, any: any, approximatelyEqual: approximatelyEqual, arrayToHtmlList: arrayToHtmlList, ary: ary, atob: atob, attempt: attempt, average: average, averageBy: averageBy, bifurcate: bifurcate, bifurcateBy: bifurcateBy, bind: bind, bindAll: bindAll, bindKey: bindKey, binomialCoefficient: binomialCoefficient, bottomVisible: bottomVisible, btoa: btoa, byteSize: byteSize, call: call, capitalize: capitalize, capitalizeEveryWord: capitalizeEveryWord, castArray: castArray, chainAsync: chainAsync, chunk: chunk, clampNumber: clampNumber, cloneRegExp: cloneRegExp, coalesce: coalesce, coalesceFactory: coalesceFactory, collectInto: collectInto, colorize: colorize, compact: compact, compose: compose, composeRight: composeRight, converge: converge, copyToClipboard: copyToClipboard, countBy: countBy, countOccurrences: countOccurrences, createElement: createElement, createEventHub: createEventHub, currentURL: currentURL, curry: curry, debounce: debounce, decapitalize: decapitalize, deepClone: deepClone, deepFlatten: deepFlatten, defaults: defaults, defer: defer, degreesToRads: degreesToRads, delay: delay, detectDeviceType: detectDeviceType, difference: difference, differenceBy: differenceBy, differenceWith: differenceWith, digitize: digitize, distance: distance, drop: drop, dropRight: dropRight, dropRightWhile: dropRightWhile, dropWhile: dropWhile, elementIsVisibleInViewport: elementIsVisibleInViewport, elo: elo, equals: equals, escapeHTML: escapeHTML, escapeRegExp: escapeRegExp, everyNth: everyNth, extendHex: extendHex, factorial: factorial, fibonacci: fibonacci, filterNonUnique: filterNonUnique, findKey: findKey, findLast: findLast, findLastIndex: findLastIndex, findLastKey: findLastKey, flatten: flatten, flattenObject: flattenObject, flip: flip, forEachRight: forEachRight, forOwn: forOwn, forOwnRight: forOwnRight, formatDuration: formatDuration, fromCamelCase: fromCamelCase, functionName: functionName, functions: functions, gcd: gcd, geometricProgression: geometricProgression, get: get, getColonTimeFromDate: getColonTimeFromDate, getDaysDiffBetweenDates: getDaysDiffBetweenDates, getMeridiemSuffixOfInteger: getMeridiemSuffixOfInteger, getScrollPosition: getScrollPosition, getStyle: getStyle, getType: getType, getURLParameters: getURLParameters, groupBy: groupBy, hammingDistance: hammingDistance, hasClass: hasClass, hasFlags: hasFlags, hashBrowser: hashBrowser, hashNode: hashNode, head: head, hexToRGB: hexToRGB, hide: hide, httpGet: httpGet, httpPost: httpPost, httpsRedirect: httpsRedirect, inRange: inRange, indexOfAll: indexOfAll, initial: initial, initialize2DArray: initialize2DArray, initializeArrayWithRange: initializeArrayWithRange, initializeArrayWithRangeRight: initializeArrayWithRangeRight, initializeArrayWithValues: initializeArrayWithValues, intersection: intersection, intersectionBy: intersectionBy, intersectionWith: intersectionWith, invertKeyValues: invertKeyValues, is: is, isAbsoluteURL: isAbsoluteURL, isAnagram: isAnagram, isArrayLike: isArrayLike, isBoolean: isBoolean, isDivisible: isDivisible, isEmpty: isEmpty, isEven: isEven, isFunction: isFunction, isLowerCase: isLowerCase, isNil: isNil, isNull: isNull, isNumber: isNumber, isObject: isObject, isObjectLike: isObjectLike, isPlainObject: isPlainObject, isPrime: isPrime, isPrimitive: isPrimitive, isPromiseLike: isPromiseLike, isSorted: isSorted, isString: isString, isSymbol: isSymbol, isTravisCI: isTravisCI, isUndefined: isUndefined, isUpperCase: isUpperCase, isValidJSON: isValidJSON, join: join, last: last, lcm: lcm, longestItem: longestItem, lowercaseKeys: lowercaseKeys, luhnCheck: luhnCheck, mapKeys: mapKeys, mapObject: mapObject, mapValues: mapValues, mask: mask, matches: matches, matchesWith: matchesWith, maxBy: maxBy, maxN: maxN, median: median, memoize: memoize, merge: merge, minBy: minBy, minN: minN, mostPerformant: mostPerformant, negate: negate, none: none, nthArg: nthArg, nthElement: nthElement, objectFromPairs: objectFromPairs, objectToPairs: objectToPairs, observeMutations: observeMutations, off: off, omit: omit, omitBy: omitBy, on: on, onUserInputChange: onUserInputChange, once: once, orderBy: orderBy, over: over, overArgs: overArgs, palindrome: palindrome, parseCookie: parseCookie, partial: partial, partialRight: partialRight, partition: partition, percentile: percentile, permutations: permutations, pick: pick, pickBy: pickBy, pipeAsyncFunctions: pipeAsyncFunctions, pipeFunctions: pipeFunctions, pluralize: pluralize, powerset: powerset, prettyBytes: prettyBytes, primes: primes, promisify: promisify, pull: pull, pullAtIndex: pullAtIndex, pullAtValue: pullAtValue, pullBy: pullBy, radsToDegrees: radsToDegrees, randomHexColorCode: randomHexColorCode, randomIntArrayInRange: randomIntArrayInRange, randomIntegerInRange: randomIntegerInRange, randomNumberInRange: randomNumberInRange, readFileLines: readFileLines, rearg: rearg, redirect: redirect, reduceSuccessive: reduceSuccessive, reduceWhich: reduceWhich, reducedFilter: reducedFilter, remove: remove, removeNonASCII: removeNonASCII, reverseString: reverseString, round: round, runAsync: runAsync, runPromisesInSeries: runPromisesInSeries, sample: sample, sampleSize: sampleSize, scrollToTop: scrollToTop, sdbm: sdbm, serializeCookie: serializeCookie, setStyle: setStyle, shallowClone: shallowClone, show: show, shuffle: shuffle, similarity: similarity, size: size, sleep: sleep, sortCharactersInString: sortCharactersInString, sortedIndex: sortedIndex, sortedIndexBy: sortedIndexBy, sortedLastIndex: sortedLastIndex, sortedLastIndexBy: sortedLastIndexBy, splitLines: splitLines, spreadOver: spreadOver, stableSort: stableSort, standardDeviation: standardDeviation, stringPermutations: stringPermutations, stripHTMLTags: stripHTMLTags, sum: sum, sumBy: sumBy, sumPower: sumPower, symmetricDifference: symmetricDifference, symmetricDifferenceBy: symmetricDifferenceBy, symmetricDifferenceWith: symmetricDifferenceWith, tail: tail, take: take, takeRight: takeRight, takeRightWhile: takeRightWhile, takeWhile: takeWhile, throttle: throttle, timeTaken: timeTaken, times: times, toCamelCase: toCamelCase, toCurrency: toCurrency, toDecimalMark: toDecimalMark, toKebabCase: toKebabCase, toOrdinalSuffix: toOrdinalSuffix, toSafeInteger: toSafeInteger, toSnakeCase: toSnakeCase, toggleClass: toggleClass, tomorrow: tomorrow, transform: transform, truncateString: truncateString, truthCheckCollection: truthCheckCollection, unary: unary, uncurry: uncurry, unescapeHTML: unescapeHTML, unflattenObject: unflattenObject, unfold: unfold, union: union, unionBy: unionBy, unionWith: unionWith, uniqueElements: uniqueElements, untildify: untildify, unzip: unzip, unzipWith: unzipWith, validateNumber: validateNumber, without: without, words: words, xProd: xProd, yesNo: yesNo, zip: zip, zipObject: zipObject, zipWith: zipWith };
+ var shuffle = function shuffle(_ref) {
+ var _ref2 = _toArray(_ref),
+ arr = _ref2.slice(0);
-return imports;
+ var m = arr.length;
+
+ while (m) {
+ var i = Math.floor(Math.random() * m--);
+ var _ref3 = [arr[i], arr[m]];
+ arr[m] = _ref3[0];
+ arr[i] = _ref3[1];
+ }
+
+ return arr;
+ };
+
+ var similarity = function similarity(arr, values) {
+ return arr.filter(function (v) {
+ return values.includes(v);
+ });
+ };
+
+ var size = function size(val) {
+ return Array.isArray(val) ? val.length : val && _typeof(val) === 'object' ? val.size || val.length || Object.keys(val).length : typeof val === 'string' ? new Blob([val]).size : 0;
+ };
+
+ var sleep = function sleep(ms) {
+ return new Promise(function (resolve) {
+ return setTimeout(resolve, ms);
+ });
+ };
+
+ var smoothScroll = function smoothScroll(element) {
+ return document.querySelector(element).scrollIntoView({
+ behavior: 'smooth'
+ });
+ };
+
+ var sortCharactersInString = function sortCharactersInString(str) {
+ return _toConsumableArray(str).sort(function (a, b) {
+ return a.localeCompare(b);
+ }).join('');
+ };
+
+ var sortedIndex = function sortedIndex(arr, n) {
+ var isDescending = arr[0] > arr[arr.length - 1];
+ var index = arr.findIndex(function (el) {
+ return isDescending ? n >= el : n <= el;
+ });
+ return index === -1 ? arr.length : index;
+ };
+
+ var sortedIndexBy = function sortedIndexBy(arr, n, fn) {
+ var isDescending = fn(arr[0]) > fn(arr[arr.length - 1]);
+ var val = fn(n);
+ var index = arr.findIndex(function (el) {
+ return isDescending ? val >= fn(el) : val <= fn(el);
+ });
+ return index === -1 ? arr.length : index;
+ };
+
+ var sortedLastIndex = function sortedLastIndex(arr, n) {
+ var isDescending = arr[0] > arr[arr.length - 1];
+ var index = arr.reverse().findIndex(function (el) {
+ return isDescending ? n <= el : n >= el;
+ });
+ return index === -1 ? 0 : arr.length - index;
+ };
+
+ var sortedLastIndexBy = function sortedLastIndexBy(arr, n, fn) {
+ var isDescending = fn(arr[0]) > fn(arr[arr.length - 1]);
+ var val = fn(n);
+ var index = arr.map(fn).reverse().findIndex(function (el) {
+ return isDescending ? val <= el : val >= el;
+ });
+ return index === -1 ? 0 : arr.length - index;
+ };
+
+ var splitLines = function splitLines(str) {
+ return str.split(/\r?\n/);
+ };
+
+ var spreadOver = function spreadOver(fn) {
+ return function (argsArr) {
+ return fn.apply(void 0, _toConsumableArray(argsArr));
+ };
+ };
+
+ var stableSort = function stableSort(arr, compare) {
+ return arr.map(function (item, index) {
+ return {
+ item: item,
+ index: index
+ };
+ }).sort(function (a, b) {
+ return compare(a.item, b.item) || a.index - b.index;
+ }).map(function (_ref) {
+ var item = _ref.item;
+ return item;
+ });
+ };
+
+ var standardDeviation = function standardDeviation(arr) {
+ var usePopulation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+ var mean = arr.reduce(function (acc, val) {
+ return acc + val;
+ }, 0) / arr.length;
+ return Math.sqrt(arr.reduce(function (acc, val) {
+ return acc.concat(Math.pow(val - mean, 2));
+ }, []).reduce(function (acc, val) {
+ return acc + val;
+ }, 0) / (arr.length - (usePopulation ? 0 : 1)));
+ };
+
+ var stringPermutations = function stringPermutations(str) {
+ if (str.length <= 2) return str.length === 2 ? [str, str[1] + str[0]] : [str];
+ return str.split('').reduce(function (acc, letter, i) {
+ return acc.concat(stringPermutations(str.slice(0, i) + str.slice(i + 1)).map(function (val) {
+ return letter + val;
+ }));
+ }, []);
+ };
+
+ var stripHTMLTags = function stripHTMLTags(str) {
+ return str.replace(/<[^>]*>/g, '');
+ };
+
+ var sum = function sum() {
+ for (var _len = arguments.length, arr = new Array(_len), _key = 0; _key < _len; _key++) {
+ arr[_key] = arguments[_key];
+ }
+
+ return arr.concat().reduce(function (acc, val) {
+ return acc + val;
+ }, 0);
+ };
+
+ var sumBy = function sumBy(arr, fn) {
+ return arr.map(typeof fn === 'function' ? fn : function (val) {
+ return val[fn];
+ }).reduce(function (acc, val) {
+ return acc + val;
+ }, 0);
+ };
+
+ var sumPower = function sumPower(end) {
+ var power = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
+ var start = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
+ return Array(end + 1 - start).fill(0).map(function (x, i) {
+ return Math.pow(i + start, power);
+ }).reduce(function (a, b) {
+ return a + b;
+ }, 0);
+ };
+
+ var symmetricDifference = function symmetricDifference(a, b) {
+ var sA = new Set(a),
+ sB = new Set(b);
+ return _toConsumableArray(a.filter(function (x) {
+ return !sB.has(x);
+ })).concat(_toConsumableArray(b.filter(function (x) {
+ return !sA.has(x);
+ })));
+ };
+
+ var symmetricDifferenceBy = function symmetricDifferenceBy(a, b, fn) {
+ var sA = new Set(a.map(function (v) {
+ return fn(v);
+ })),
+ sB = new Set(b.map(function (v) {
+ return fn(v);
+ }));
+ return _toConsumableArray(a.filter(function (x) {
+ return !sB.has(fn(x));
+ })).concat(_toConsumableArray(b.filter(function (x) {
+ return !sA.has(fn(x));
+ })));
+ };
+
+ var symmetricDifferenceWith = function symmetricDifferenceWith(arr, val, comp) {
+ return _toConsumableArray(arr.filter(function (a) {
+ return val.findIndex(function (b) {
+ return comp(a, b);
+ }) === -1;
+ })).concat(_toConsumableArray(val.filter(function (a) {
+ return arr.findIndex(function (b) {
+ return comp(a, b);
+ }) === -1;
+ })));
+ };
+
+ var tail = function tail(arr) {
+ return arr.length > 1 ? arr.slice(1) : arr;
+ };
+
+ var take = function take(arr) {
+ var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
+ return arr.slice(0, n);
+ };
+
+ var takeRight = function takeRight(arr) {
+ var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
+ return arr.slice(arr.length - n, arr.length);
+ };
+
+ var takeRightWhile = function takeRightWhile(arr, func) {
+ var _iteratorNormalCompletion = true;
+ var _didIteratorError = false;
+ var _iteratorError = undefined;
+
+ try {
+ for (var _iterator = arr.reverse().keys()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
+ var i = _step.value;
+ if (func(arr[i])) return arr.reverse().slice(arr.length - i, arr.length);
+ }
+ } catch (err) {
+ _didIteratorError = true;
+ _iteratorError = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
+ _iterator.return();
+ }
+ } finally {
+ if (_didIteratorError) {
+ throw _iteratorError;
+ }
+ }
+ }
+
+ return arr;
+ };
+
+ var takeWhile = function takeWhile(arr, func) {
+ var _iteratorNormalCompletion = true;
+ var _didIteratorError = false;
+ var _iteratorError = undefined;
+
+ try {
+ for (var _iterator = arr.entries()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
+ var _step$value = _slicedToArray(_step.value, 2),
+ i = _step$value[0],
+ val = _step$value[1];
+
+ if (func(val)) return arr.slice(0, i);
+ }
+ } catch (err) {
+ _didIteratorError = true;
+ _iteratorError = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
+ _iterator.return();
+ }
+ } finally {
+ if (_didIteratorError) {
+ throw _iteratorError;
+ }
+ }
+ }
+
+ return arr;
+ };
+
+ var throttle = function throttle(fn, wait) {
+ var inThrottle, lastFn, lastTime;
+ return function () {
+ var context = this,
+ args = arguments;
+
+ if (!inThrottle) {
+ fn.apply(context, args);
+ lastTime = Date.now();
+ inThrottle = true;
+ } else {
+ clearTimeout(lastFn);
+ lastFn = setTimeout(function () {
+ if (Date.now() - lastTime >= wait) {
+ fn.apply(context, args);
+ lastTime = Date.now();
+ }
+ }, wait - (Date.now() - lastTime));
+ }
+ };
+ };
+
+ var timeTaken = function timeTaken(callback) {
+ console.time('timeTaken');
+ var r = callback();
+ console.timeEnd('timeTaken');
+ return r;
+ };
+
+ var times = function times(n, fn) {
+ var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
+ var i = 0;
+
+ while (fn.call(context, i) !== false && ++i < n) {}
+ };
+
+ var toCamelCase = function toCamelCase(str) {
+ var s = str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g).map(function (x) {
+ return x.slice(0, 1).toUpperCase() + x.slice(1).toLowerCase();
+ }).join('');
+ return s.slice(0, 1).toLowerCase() + s.slice(1);
+ };
+
+ var toCurrency = function toCurrency(n, curr) {
+ var LanguageFormat = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
+ return Intl.NumberFormat(LanguageFormat, {
+ style: 'currency',
+ currency: curr
+ }).format(n);
+ };
+
+ var toDecimalMark = function toDecimalMark(num) {
+ return num.toLocaleString('en-US');
+ };
+
+ var toHash = function toHash(object, key) {
+ return Array.prototype.reduce.call(object, function (acc, data, index) {
+ return acc[!key ? index : data[key]] = data, acc;
+ }, {});
+ };
+
+ var toKebabCase = function toKebabCase(str) {
+ return str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g).map(function (x) {
+ return x.toLowerCase();
+ }).join('-');
+ };
+
+ var toOrdinalSuffix = function toOrdinalSuffix(num) {
+ var int = parseInt(num),
+ digits = [int % 10, int % 100],
+ ordinals = ['st', 'nd', 'rd', 'th'],
+ oPattern = [1, 2, 3, 4],
+ tPattern = [11, 12, 13, 14, 15, 16, 17, 18, 19];
+ return oPattern.includes(digits[0]) && !tPattern.includes(digits[1]) ? int + ordinals[digits[0] - 1] : int + ordinals[3];
+ };
+
+ var toSafeInteger = function toSafeInteger(num) {
+ return Math.round(Math.max(Math.min(num, Number.MAX_SAFE_INTEGER), Number.MIN_SAFE_INTEGER));
+ };
+
+ var toSnakeCase = function toSnakeCase(str) {
+ return str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g).map(function (x) {
+ return x.toLowerCase();
+ }).join('_');
+ };
+
+ var toggleClass = function toggleClass(el, className) {
+ return el.classList.toggle(className);
+ };
+
+ var tomorrow = function tomorrow() {
+ var long = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+ var t = new Date();
+ t.setDate(t.getDate() + 1);
+ var ret = "".concat(t.getFullYear(), "-").concat(String(t.getMonth() + 1).padStart(2, '0'), "-").concat(String(t.getDate()).padStart(2, '0'));
+ return !long ? ret : "".concat(ret, "T00:00:00");
+ };
+
+ var transform = function transform(obj, fn, acc) {
+ return Object.keys(obj).reduce(function (a, k) {
+ return fn(a, obj[k], k, obj);
+ }, acc);
+ };
+
+ var triggerEvent = function triggerEvent(el, eventType) {
+ var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
+ return el.dispatchEvent(new CustomEvent(eventType, {
+ detail: detail
+ }));
+ };
+
+ var truncateString = function truncateString(str, num) {
+ return str.length > num ? str.slice(0, num > 3 ? num - 3 : num) + '...' : str;
+ };
+
+ var truthCheckCollection = function truthCheckCollection(collection, pre) {
+ return collection.every(function (obj) {
+ return obj[pre];
+ });
+ };
+
+ var unary = function unary(fn) {
+ return function (val) {
+ return fn(val);
+ };
+ };
+
+ var uncurry = function uncurry(fn) {
+ var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
+ return function () {
+ var next = function next(acc) {
+ return function (args) {
+ return args.reduce(function (x, y) {
+ return x(y);
+ }, acc);
+ };
+ };
+
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ if (n > args.length) throw new RangeError('Arguments too few!');
+ return next(fn)(args.slice(0, n));
+ };
+ };
+
+ var unescapeHTML = function unescapeHTML(str) {
+ return str.replace(/&|<|>|'|"/g, function (tag) {
+ return {
+ '&': '&',
+ '<': '<',
+ '>': '>',
+ ''': "'",
+ '"': '"'
+ }[tag] || tag;
+ });
+ };
+
+ var unflattenObject = function unflattenObject(obj) {
+ return Object.keys(obj).reduce(function (acc, k) {
+ if (k.indexOf('.') !== -1) {
+ var keys = k.split('.');
+ Object.assign(acc, JSON.parse('{' + keys.map(function (v, i) {
+ return i !== keys.length - 1 ? "\"".concat(v, "\":{") : "\"".concat(v, "\":");
+ }).join('') + obj[k] + '}'.repeat(keys.length)));
+ } else acc[k] = obj[k];
+
+ return acc;
+ }, {});
+ };
+
+ var unfold = function unfold(fn, seed) {
+ var result = [],
+ val = [null, seed];
+
+ while (val = fn(val[1])) {
+ result.push(val[0]);
+ }
+
+ return result;
+ };
+
+ var union = function union(a, b) {
+ return Array.from(new Set(_toConsumableArray(a).concat(_toConsumableArray(b))));
+ };
+
+ var unionBy = function unionBy(a, b, fn) {
+ var s = new Set(a.map(function (v) {
+ return fn(v);
+ }));
+ return Array.from(new Set(_toConsumableArray(a).concat(_toConsumableArray(b.filter(function (x) {
+ return !s.has(fn(x));
+ })))));
+ };
+
+ var unionWith = function unionWith(a, b, comp) {
+ return Array.from(new Set(_toConsumableArray(a).concat(_toConsumableArray(b.filter(function (x) {
+ return a.findIndex(function (y) {
+ return comp(x, y);
+ }) === -1;
+ })))));
+ };
+
+ var uniqueElements = function uniqueElements(arr) {
+ return _toConsumableArray(new Set(arr));
+ };
+
+ var uniqueElementsBy = function uniqueElementsBy(arr, fn) {
+ return arr.reduce(function (acc, v) {
+ if (!acc.some(function (x) {
+ return fn(v, x);
+ })) acc.push(v);
+ return acc;
+ }, []);
+ };
+
+ var uniqueElementsByRight = function uniqueElementsByRight(arr, fn) {
+ return arr.reduceRight(function (acc, v) {
+ if (!acc.some(function (x) {
+ return fn(v, x);
+ })) acc.push(v);
+ return acc;
+ }, []);
+ };
+
+ var uniqueSymmetricDifference = function uniqueSymmetricDifference(a, b) {
+ return _toConsumableArray(new Set(_toConsumableArray(a.filter(function (v) {
+ return !b.includes(v);
+ })).concat(_toConsumableArray(b.filter(function (v) {
+ return !a.includes(v);
+ })))));
+ };
+
+ var untildify = function untildify(str) {
+ return str.replace(/^~($|\/|\\)/, "".concat(typeof require !== "undefined" && require('os').homedir(), "$1"));
+ };
+
+ var unzip = function unzip(arr) {
+ return arr.reduce(function (acc, val) {
+ return val.forEach(function (v, i) {
+ return acc[i].push(v);
+ }), acc;
+ }, Array.from({
+ length: Math.max.apply(Math, _toConsumableArray(arr.map(function (x) {
+ return x.length;
+ })))
+ }).map(function (x) {
+ return [];
+ }));
+ };
+
+ var unzipWith = function unzipWith(arr, fn) {
+ return arr.reduce(function (acc, val) {
+ return val.forEach(function (v, i) {
+ return acc[i].push(v);
+ }), acc;
+ }, Array.from({
+ length: Math.max.apply(Math, _toConsumableArray(arr.map(function (x) {
+ return x.length;
+ })))
+ }).map(function (x) {
+ return [];
+ })).map(function (val) {
+ return fn.apply(void 0, _toConsumableArray(val));
+ });
+ };
+
+ var validateNumber = function validateNumber(n) {
+ return !isNaN(parseFloat(n)) && isFinite(n) && Number(n) == n;
+ };
+
+ var when = function when(pred, whenTrue) {
+ return function (x) {
+ return pred(x) ? whenTrue(x) : x;
+ };
+ };
+
+ var without = function without(arr) {
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+
+ return arr.filter(function (v) {
+ return !args.includes(v);
+ });
+ };
+
+ var words = function words(str) {
+ var pattern = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : /[^a-zA-Z-]+/;
+ return str.split(pattern).filter(Boolean);
+ };
+
+ var xProd = function xProd(a, b) {
+ return a.reduce(function (acc, x) {
+ return acc.concat(b.map(function (y) {
+ return [x, y];
+ }));
+ }, []);
+ };
+
+ var yesNo = function yesNo(val) {
+ var def = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+ return /^(y|yes)$/i.test(val) ? true : /^(n|no)$/i.test(val) ? false : def;
+ };
+
+ var zip = function zip() {
+ for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {
+ arrays[_key] = arguments[_key];
+ }
+
+ var maxLength = Math.max.apply(Math, _toConsumableArray(arrays.map(function (x) {
+ return x.length;
+ })));
+ return Array.from({
+ length: maxLength
+ }).map(function (_, i) {
+ return Array.from({
+ length: arrays.length
+ }, function (_, k) {
+ return arrays[k][i];
+ });
+ });
+ };
+
+ var zipObject = function zipObject(props, values) {
+ return props.reduce(function (obj, prop, index) {
+ return obj[prop] = values[index], obj;
+ }, {});
+ };
+
+ var zipWith = function zipWith() {
+ for (var _len = arguments.length, array = new Array(_len), _key = 0; _key < _len; _key++) {
+ array[_key] = arguments[_key];
+ }
+
+ var fn = typeof array[array.length - 1] === 'function' ? array.pop() : undefined;
+ return Array.from({
+ length: Math.max.apply(Math, _toConsumableArray(array.map(function (a) {
+ return a.length;
+ })))
+ }, function (_, i) {
+ return fn ? fn.apply(void 0, _toConsumableArray(array.map(function (a) {
+ return a[i];
+ }))) : array.map(function (a) {
+ return a[i];
+ });
+ });
+ };
+
+ exports.CSVToArray = CSVToArray;
+ exports.CSVToJSON = CSVToJSON;
+ exports.JSONToFile = JSONToFile;
+ exports.JSONtoCSV = JSONtoCSV;
+ exports.RGBToHex = RGBToHex;
+ exports.URLJoin = URLJoin;
+ exports.UUIDGeneratorBrowser = UUIDGeneratorBrowser;
+ exports.UUIDGeneratorNode = UUIDGeneratorNode;
+ exports.all = all;
+ exports.allEqual = allEqual;
+ exports.any = any;
+ exports.approximatelyEqual = approximatelyEqual;
+ exports.arrayToCSV = arrayToCSV;
+ exports.arrayToHtmlList = arrayToHtmlList;
+ exports.ary = ary;
+ exports.atob = atob;
+ exports.attempt = attempt;
+ exports.average = average;
+ exports.averageBy = averageBy;
+ exports.bifurcate = bifurcate;
+ exports.bifurcateBy = bifurcateBy;
+ exports.bind = bind;
+ exports.bindAll = bindAll;
+ exports.bindKey = bindKey;
+ exports.binomialCoefficient = binomialCoefficient;
+ exports.bottomVisible = bottomVisible;
+ exports.btoa = btoa;
+ exports.byteSize = byteSize;
+ exports.call = call;
+ exports.capitalize = capitalize;
+ exports.capitalizeEveryWord = capitalizeEveryWord;
+ exports.castArray = castArray;
+ exports.chainAsync = chainAsync;
+ exports.chunk = chunk;
+ exports.clampNumber = clampNumber;
+ exports.cloneRegExp = cloneRegExp;
+ exports.coalesce = coalesce;
+ exports.coalesceFactory = coalesceFactory;
+ exports.collectInto = collectInto;
+ exports.colorize = colorize;
+ exports.compact = compact;
+ exports.compose = compose;
+ exports.composeRight = composeRight;
+ exports.converge = converge;
+ exports.copyToClipboard = copyToClipboard;
+ exports.countBy = countBy;
+ exports.countOccurrences = countOccurrences;
+ exports.counter = counter;
+ exports.createElement = createElement;
+ exports.createEventHub = createEventHub;
+ exports.currentURL = currentURL;
+ exports.curry = curry;
+ exports.dayOfYear = dayOfYear;
+ exports.debounce = debounce;
+ exports.decapitalize = decapitalize;
+ exports.deepClone = deepClone;
+ exports.deepFlatten = deepFlatten;
+ exports.deepFreeze = deepFreeze;
+ exports.defaults = defaults;
+ exports.defer = defer;
+ exports.degreesToRads = degreesToRads;
+ exports.delay = delay;
+ exports.detectDeviceType = detectDeviceType;
+ exports.difference = difference;
+ exports.differenceBy = differenceBy;
+ exports.differenceWith = differenceWith;
+ exports.dig = dig;
+ exports.digitize = digitize;
+ exports.distance = distance;
+ exports.drop = drop;
+ exports.dropRight = dropRight;
+ exports.dropRightWhile = dropRightWhile;
+ exports.dropWhile = dropWhile;
+ exports.elementContains = elementContains;
+ exports.elementIsVisibleInViewport = elementIsVisibleInViewport;
+ exports.elo = elo;
+ exports.equals = equals;
+ exports.escapeHTML = escapeHTML;
+ exports.escapeRegExp = escapeRegExp;
+ exports.everyNth = everyNth;
+ exports.extendHex = extendHex;
+ exports.factorial = factorial;
+ exports.fibonacci = fibonacci;
+ exports.filterNonUnique = filterNonUnique;
+ exports.filterNonUniqueBy = filterNonUniqueBy;
+ exports.findKey = findKey;
+ exports.findLast = findLast;
+ exports.findLastIndex = findLastIndex;
+ exports.findLastKey = findLastKey;
+ exports.flatten = flatten;
+ exports.flattenObject = flattenObject;
+ exports.flip = flip;
+ exports.forEachRight = forEachRight;
+ exports.forOwn = forOwn;
+ exports.forOwnRight = forOwnRight;
+ exports.formatDuration = formatDuration;
+ exports.fromCamelCase = fromCamelCase;
+ exports.functionName = functionName;
+ exports.functions = functions;
+ exports.gcd = gcd;
+ exports.geometricProgression = geometricProgression;
+ exports.get = get;
+ exports.getColonTimeFromDate = getColonTimeFromDate;
+ exports.getDaysDiffBetweenDates = getDaysDiffBetweenDates;
+ exports.getMeridiemSuffixOfInteger = getMeridiemSuffixOfInteger;
+ exports.getScrollPosition = getScrollPosition;
+ exports.getStyle = getStyle;
+ exports.getType = getType;
+ exports.getURLParameters = getURLParameters;
+ exports.groupBy = groupBy;
+ exports.hammingDistance = hammingDistance;
+ exports.hasClass = hasClass;
+ exports.hasFlags = hasFlags;
+ exports.hashBrowser = hashBrowser;
+ exports.hashNode = hashNode;
+ exports.head = head;
+ exports.hexToRGB = hexToRGB;
+ exports.hide = hide;
+ exports.httpGet = httpGet;
+ exports.httpPost = httpPost;
+ exports.httpsRedirect = httpsRedirect;
+ exports.hz = hz;
+ exports.inRange = inRange;
+ exports.indentString = indentString;
+ exports.indexOfAll = indexOfAll;
+ exports.initial = initial;
+ exports.initialize2DArray = initialize2DArray;
+ exports.initializeArrayWithRange = initializeArrayWithRange;
+ exports.initializeArrayWithRangeRight = initializeArrayWithRangeRight;
+ exports.initializeArrayWithValues = initializeArrayWithValues;
+ exports.initializeNDArray = initializeNDArray;
+ exports.insertAfter = insertAfter;
+ exports.insertBefore = insertBefore;
+ exports.intersection = intersection;
+ exports.intersectionBy = intersectionBy;
+ exports.intersectionWith = intersectionWith;
+ exports.invertKeyValues = invertKeyValues;
+ exports.is = is;
+ exports.isAbsoluteURL = isAbsoluteURL;
+ exports.isAfterDate = isAfterDate;
+ exports.isAnagram = isAnagram;
+ exports.isArrayLike = isArrayLike;
+ exports.isBeforeDate = isBeforeDate;
+ exports.isBoolean = isBoolean;
+ exports.isBrowser = isBrowser;
+ exports.isBrowserTabFocused = isBrowserTabFocused;
+ exports.isDivisible = isDivisible;
+ exports.isEmpty = isEmpty;
+ exports.isEven = isEven;
+ exports.isFunction = isFunction;
+ exports.isLowerCase = isLowerCase;
+ exports.isNil = isNil;
+ exports.isNull = isNull;
+ exports.isNumber = isNumber;
+ exports.isObject = isObject;
+ exports.isObjectLike = isObjectLike;
+ exports.isPlainObject = isPlainObject;
+ exports.isPrime = isPrime;
+ exports.isPrimitive = isPrimitive;
+ exports.isPromiseLike = isPromiseLike;
+ exports.isSameDate = isSameDate;
+ exports.isSorted = isSorted;
+ exports.isString = isString;
+ exports.isSymbol = isSymbol;
+ exports.isTravisCI = isTravisCI;
+ exports.isUndefined = isUndefined;
+ exports.isUpperCase = isUpperCase;
+ exports.isValidJSON = isValidJSON;
+ exports.join = join;
+ exports.last = last;
+ exports.lcm = lcm;
+ exports.longestItem = longestItem;
+ exports.lowercaseKeys = lowercaseKeys;
+ exports.luhnCheck = luhnCheck;
+ exports.mapKeys = mapKeys;
+ exports.mapObject = mapObject;
+ exports.mapString = mapString;
+ exports.mapValues = mapValues;
+ exports.mask = mask;
+ exports.matches = matches;
+ exports.matchesWith = matchesWith;
+ exports.maxBy = maxBy;
+ exports.maxDate = maxDate;
+ exports.maxN = maxN;
+ exports.median = median;
+ exports.memoize = memoize;
+ exports.merge = merge;
+ exports.minBy = minBy;
+ exports.minDate = minDate;
+ exports.minN = minN;
+ exports.mostPerformant = mostPerformant;
+ exports.negate = negate;
+ exports.nest = nest;
+ exports.nodeListToArray = nodeListToArray;
+ exports.none = none;
+ exports.nthArg = nthArg;
+ exports.nthElement = nthElement;
+ exports.objectFromPairs = objectFromPairs;
+ exports.objectToPairs = objectToPairs;
+ exports.observeMutations = observeMutations;
+ exports.off = off;
+ exports.offset = offset;
+ exports.omit = omit;
+ exports.omitBy = omitBy;
+ exports.on = on;
+ exports.onUserInputChange = onUserInputChange;
+ exports.once = once;
+ exports.orderBy = orderBy;
+ exports.over = over;
+ exports.overArgs = overArgs;
+ exports.pad = pad;
+ exports.palindrome = palindrome;
+ exports.parseCookie = parseCookie;
+ exports.partial = partial;
+ exports.partialRight = partialRight;
+ exports.partition = partition;
+ exports.percentile = percentile;
+ exports.permutations = permutations;
+ exports.pick = pick;
+ exports.pickBy = pickBy;
+ exports.pipeAsyncFunctions = pipeAsyncFunctions;
+ exports.pipeFunctions = pipeFunctions;
+ exports.pluralize = pluralize;
+ exports.powerset = powerset;
+ exports.prefix = prefix;
+ exports.prettyBytes = prettyBytes;
+ exports.primes = primes;
+ exports.promisify = promisify;
+ exports.pull = pull;
+ exports.pullAtIndex = pullAtIndex;
+ exports.pullAtValue = pullAtValue;
+ exports.pullBy = pullBy;
+ exports.radsToDegrees = radsToDegrees;
+ exports.randomHexColorCode = randomHexColorCode;
+ exports.randomIntArrayInRange = randomIntArrayInRange;
+ exports.randomIntegerInRange = randomIntegerInRange;
+ exports.randomNumberInRange = randomNumberInRange;
+ exports.readFileLines = readFileLines;
+ exports.rearg = rearg;
+ exports.recordAnimationFrames = recordAnimationFrames;
+ exports.redirect = redirect;
+ exports.reduceSuccessive = reduceSuccessive;
+ exports.reduceWhich = reduceWhich;
+ exports.reducedFilter = reducedFilter;
+ exports.reject = reject;
+ exports.remove = remove;
+ exports.removeNonASCII = removeNonASCII;
+ exports.renameKeys = renameKeys;
+ exports.reverseString = reverseString;
+ exports.round = round;
+ exports.runAsync = runAsync;
+ exports.runPromisesInSeries = runPromisesInSeries;
+ exports.sample = sample;
+ exports.sampleSize = sampleSize;
+ exports.scrollToTop = scrollToTop;
+ exports.sdbm = sdbm;
+ exports.serializeCookie = serializeCookie;
+ exports.setStyle = setStyle;
+ exports.shallowClone = shallowClone;
+ exports.shank = shank;
+ exports.show = show;
+ exports.shuffle = shuffle;
+ exports.similarity = similarity;
+ exports.size = size;
+ exports.sleep = sleep;
+ exports.smoothScroll = smoothScroll;
+ exports.sortCharactersInString = sortCharactersInString;
+ exports.sortedIndex = sortedIndex;
+ exports.sortedIndexBy = sortedIndexBy;
+ exports.sortedLastIndex = sortedLastIndex;
+ exports.sortedLastIndexBy = sortedLastIndexBy;
+ exports.splitLines = splitLines;
+ exports.spreadOver = spreadOver;
+ exports.stableSort = stableSort;
+ exports.standardDeviation = standardDeviation;
+ exports.stringPermutations = stringPermutations;
+ exports.stripHTMLTags = stripHTMLTags;
+ exports.sum = sum;
+ exports.sumBy = sumBy;
+ exports.sumPower = sumPower;
+ exports.symmetricDifference = symmetricDifference;
+ exports.symmetricDifferenceBy = symmetricDifferenceBy;
+ exports.symmetricDifferenceWith = symmetricDifferenceWith;
+ exports.tail = tail;
+ exports.take = take;
+ exports.takeRight = takeRight;
+ exports.takeRightWhile = takeRightWhile;
+ exports.takeWhile = takeWhile;
+ exports.throttle = throttle;
+ exports.timeTaken = timeTaken;
+ exports.times = times;
+ exports.toCamelCase = toCamelCase;
+ exports.toCurrency = toCurrency;
+ exports.toDecimalMark = toDecimalMark;
+ exports.toHash = toHash;
+ exports.toKebabCase = toKebabCase;
+ exports.toOrdinalSuffix = toOrdinalSuffix;
+ exports.toSafeInteger = toSafeInteger;
+ exports.toSnakeCase = toSnakeCase;
+ exports.toggleClass = toggleClass;
+ exports.tomorrow = tomorrow;
+ exports.transform = transform;
+ exports.triggerEvent = triggerEvent;
+ exports.truncateString = truncateString;
+ exports.truthCheckCollection = truthCheckCollection;
+ exports.unary = unary;
+ exports.uncurry = uncurry;
+ exports.unescapeHTML = unescapeHTML;
+ exports.unflattenObject = unflattenObject;
+ exports.unfold = unfold;
+ exports.union = union;
+ exports.unionBy = unionBy;
+ exports.unionWith = unionWith;
+ exports.uniqueElements = uniqueElements;
+ exports.uniqueElementsBy = uniqueElementsBy;
+ exports.uniqueElementsByRight = uniqueElementsByRight;
+ exports.uniqueSymmetricDifference = uniqueSymmetricDifference;
+ exports.untildify = untildify;
+ exports.unzip = unzip;
+ exports.unzipWith = unzipWith;
+ exports.validateNumber = validateNumber;
+ exports.when = when;
+ exports.without = without;
+ exports.words = words;
+ exports.xProd = xProd;
+ exports.yesNo = yesNo;
+ exports.zip = zip;
+ exports.zipObject = zipObject;
+ exports.zipWith = zipWith;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
})));
diff --git a/dist/_30s.es5.min.js b/dist/_30s.es5.min.js
index 1e206da34..481c9c7d7 100644
--- a/dist/_30s.es5.min.js
+++ b/dist/_30s.es5.min.js
@@ -1 +1 @@
-(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e._30s=t()})(this,function(){'use strict';function e(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t>e/4).toString(16)})},UUIDGeneratorNode:function(){return'10000000-1000-4000-8000-100000000000'.replace(/[018]/g,function(e){return(e^K.randomBytes(1)[0]&15>>e/4).toString(16)})},all:function(e){var t=1'+e+''})},ary:function(t,r){return function(){for(var n=arguments.length,i=Array(n),l=0;lt||t>e)return 0;if(0===t||t===e)return 1;if(1===t||t===e-1)return e;e-t=(document.documentElement.scrollHeight||document.documentElement.clientHeight)},btoa:function(e){return new Buffer(e,'binary').toString('base64')},byteSize:function(e){return new Blob([e]).size},call:function(e){for(var t=arguments.length,n=Array(1'"]/g,function(e){return{"&":'&',"<":'<',">":'>',"'":''','"':'"'}[e]||e})},escapeRegExp:function(e){return e.replace(/[.*+?^${}()|[\]\\]/g,'\\$&')},everyNth:function(e,t){return e.filter(function(n,e){return e%t==t-1})},extendHex:function(e){return'#'+e.slice(e.startsWith('#')?1:0).split('').map(function(e){return e+e}).join('')},factorial:function e(t){return 0>t?function(){throw new TypeError('Negative numbers are not allowed!')}():1>=t?1:t*e(t-1)},fibonacci:function(e){return Array.from({length:e}).reduce(function(e,t,n){return e.concat(1e&&(e=-e);var t={day:U(e/8.64e7),hour:U(e/3.6e6)%24,minute:U(e/6e4)%60,second:U(e/1e3)%60,millisecond:U(e)%1e3};return Object.entries(t).filter(function(e){return 0!==e[1]}).map(function(e){return e[1]+' '+(1===e[1]?e[0]:e[0]+'s')}).join(', ')},fromCamelCase:function(e){var t=1e?e%12+'am':e%12+'pm'},getScrollPosition:function(){var e=0>>(t?24:16))+', '+((n&(t?16711680:65280))>>>(t?16:8))+', '+((n&(t?65280:255))>>>(t?8:0))+(t?', '+(255&n):'')+')'},hide:function(){for(var e=arguments.length,t=Array(e),n=0;nn&&(n=t),null==n?0<=e&&e=t&&ee[1]?-1:1,r=!0,l=!1;try{for(var o,a=e.entries()[Symbol.iterator]();!(r=(o=a.next()).done);r=!0){var s=o.value,c=ie(s,2),d=c[0],i=c[1];if(d===e.length-1)return n;if(0<(i-e[d+1])*n)return 0}}catch(e){l=!0,t=e}finally{try{!r&&a.return&&a.return()}finally{if(l)throw t}}},isString:function(e){return'string'==typeof e},isSymbol:function(e){return'symbol'===('undefined'==typeof e?'undefined':le(e))},isTravisCI:function(){return'TRAVIS'in process.env&&'CI'in process.env},isUndefined:function(e){return e===void 0},isUpperCase:function(e){return e===e.toUpperCase()},isValidJSON:function(e){try{return JSON.parse(e),!0}catch(t){return!1}},join:function(e){var t=1i-n&&(t='mouse',e(t),document.removeEventListener('mousemove',r)),n=i};document.addEventListener('touchstart',function(){'touch'==t||(t='touch',e(t),document.addEventListener('mousemove',r))})},once:function(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=Array(n),i=0;ic?1:s=t.length?2===t.length?[t,[t[1],t[0]]]:t:t.reduce(function(n,r,l){return n.concat(e([].concat(_(t.slice(0,l)),_(t.slice(l+1)))).map(function(e){return[r].concat(_(e))}))},[])},pick:function(e,t){return t.reduce(function(t,n){return n in e&&(t[n]=e[n]),t},{})},pickBy:function(e,t){return Object.keys(e).filter(function(n){return t(e[n],n)}).reduce(function(t,n){return t[n]=e[n],t},{})},pipeAsyncFunctions:function(){for(var e=arguments.length,t=Array(e),n=0;nq(e))return e+(r?' ':'')+i[0];var l=H(U(Math.log10(0>e?-e:e)/3),i.length-1),o=+((0>e?-e:e)/W(1e3,l)).toPrecision(t);return(0>e?'-':'')+o+(r?' ':'')+i[l]},primes:function(e){var t=Array.from({length:e-1}).map(function(e,t){return t+2}),n=U(P(e)),r=Array.from({length:n-1}).map(function(e,t){return t+2});return r.forEach(function(e){return t=t.filter(function(t){return 0!=t%e||t===e})}),t},promisify:function(e){return function(){for(var t=arguments.length,n=Array(t),r=0;re[e.length-1],r=e.findIndex(function(e){return n?t>=e:t<=e});return-1===r?e.length:r},sortedIndexBy:function(e,t,n){var r=n(e[0])>n(e[e.length-1]),i=n(t),l=e.findIndex(function(e){return r?i>=n(e):i<=n(e)});return-1===l?e.length:l},sortedLastIndex:function(e,t){var n=e[0]>e[e.length-1],r=e.map(function(e,t){return[t,e]}).reverse().findIndex(function(e){return n?t<=e[1]:t>=e[1]});return-1===r?0:e.length-r-1},sortedLastIndexBy:function(e,t,n){var r=n(e[0])>n(e[e.length-1]),i=n(t),l=e.map(function(e,t){return[t,n(e)]}).reverse().findIndex(function(e){return r?i<=e[1]:i>=e[1]});return-1===l?0:e.length-l},splitLines:function(e){return e.split(/\r?\n/)},spreadOver:function(e){return function(t){return e.apply(void 0,E(t))}},stableSort:function(e,t){return e.map(function(e,t){return{item:e,index:t}}).sort(function(e,n){return t(e.item,n.item)||e.index-n.index}).map(function(e){var t=e.item;return t})},standardDeviation:function(e){var t=1=t.length?2===t.length?[t,t[1]+t[0]]:[t]:t.split('').reduce(function(n,r,l){return n.concat(e(t.slice(0,l)+t.slice(l+1)).map(function(e){return r+e}))},[])},stripHTMLTags:function(e){return e.replace(/<[^>]*>/g,'')},sum:function(){for(var e=arguments.length,t=Array(e),n=0;n=t&&(e.apply(l,o),i=Date.now())},t-(Date.now()-i))):(e.apply(l,o),i=Date.now(),n=!0)}},timeTaken:function(e){console.time('timeTaken');var t=e();return console.timeEnd('timeTaken'),t},times:function(e,t){for(var n=2t?e.slice(0,3r.length)throw new RangeError('Arguments too few!');return function(e){return function(t){return t.reduce(function(e,t){return e(t)},e)}}(e)(r.slice(0,t))}},unescapeHTML:function(e){return e.replace(/&|<|>|'|"/g,function(e){return{"&":'&',"<":'<',">":'>',"'":'\'',""":'"'}[e]||e})},unflattenObject:function(e){return Object.keys(e).reduce(function(t,n){if(-1!==n.indexOf('.')){var r=n.split('.');Object.assign(t,JSON.parse('{'+r.map(function(e,t){return t===r.length-1?'"'+e+'":':'"'+e+'":{'}).join('')+e[n]+'}'.repeat(r.length)))}else t[n]=e[n];return t},{})},unfold:function(e,t){for(var n=[],r=[null,t];r=e(r[1]);)n.push(r[0]);return n},union:function(e,t){return Array.from(new Set([].concat(w(e),w(t))))},unionBy:function(e,t,n){var r=new Set(e.map(function(e){return n(e)}));return Array.from(new Set([].concat(T(e),T(t.filter(function(e){return!r.has(n(e))})))))},unionWith:function(e,t,n){return Array.from(new Set([].concat(B(e),B(t.filter(function(t){return-1===e.findIndex(function(e){return n(t,e)})})))))},uniqueElements:function(e){return[].concat(R(new Set(e)))},untildify:function(e){return e.replace(/^~($|\/|\\)/,('undefined'!=typeof require&&require('os').homedir())+'$1')},unzip:function(e){return e.reduce(function(e,t){return t.forEach(function(t,n){return e[n].push(t)}),e},Array.from({length:M.apply(Math,O(e.map(function(e){return e.length})))}).map(function(){return[]}))},unzipWith:function(e,t){return e.reduce(function(e,t){return t.forEach(function(t,n){return e[n].push(t)}),e},Array.from({length:M.apply(Math,N(e.map(function(e){return e.length})))}).map(function(){return[]})).map(function(e){return t.apply(void 0,N(e))})},validateNumber:function(e){return!isNaN(parseFloat(e))&&isFinite(e)&&+e==e},without:function(e){for(var t=arguments.length,n=Array(1>e/4).toString(16)})},e.UUIDGeneratorNode=function(){return'10000000-1000-4000-8000-100000000000'.replace(/[018]/g,function(e){return(e^x.randomBytes(1)[0]&15>>e/4).toString(16)})},e.all=function(e){var t=1'.concat(e,'')}).join('')}()},e.ary=function(e,t){return function(){for(var n=arguments.length,i=Array(n),r=0;rt||t>e)return 0;if(0===t||t===e)return 1;if(1===t||t===e-1)return e;e-t=(document.documentElement.scrollHeight||document.documentElement.clientHeight)},e.btoa=function(e){return new Buffer(e,'binary').toString('base64')},e.byteSize=function(e){return new Blob([e]).size},e.call=function(e){for(var t=arguments.length,n=Array(1(n-t)*i?-i:i,o=setInterval(function(){l+=a,document.querySelector(e).innerHTML=l,l>=n&&(document.querySelector(e).innerHTML=n),l>=n&&clearInterval(o)},j(k(r/(n-t))));return o},e.createElement=function(e){var t=document.createElement('div');return t.innerHTML=e,t.firstElementChild},e.createEventHub=function(){return{hub:Object.create(null),emit:function(e,t){(this.hub[e]||[]).forEach(function(e){return e(t)})},on:function(e,t){this.hub[e]||(this.hub[e]=[]),this.hub[e].push(t)},off:function(e,t){var n=(this.hub[e]||[]).findIndex(function(e){return e===t});-1'"]/g,function(e){return{"&":'&',"<":'<',">":'>',"'":''','"':'"'}[e]||e})},e.escapeRegExp=function(e){return e.replace(/[.*+?^${}()|[\]\\]/g,'\\$&')},e.everyNth=function(e,t){return e.filter(function(n,e){return e%t==t-1})},e.extendHex=function(e){return'#'+e.slice(e.startsWith('#')?1:0).split('').map(function(e){return e+e}).join('')},e.factorial=function e(t){return 0>t?function(){throw new TypeError('Negative numbers are not allowed!')}():1>=t?1:t*e(t-1)},e.fibonacci=function(e){return Array.from({length:e}).reduce(function(e,t,n){return e.concat(1e&&(e=-e);var t={day:k(e/864e5),hour:k(e/36e5)%24,minute:k(e/6e4)%60,second:k(e/1e3)%60,millisecond:k(e)%1e3};return Object.entries(t).filter(function(e){return 0!==e[1]}).map(function(e){var t=r(e,2),n=t[0],i=t[1];return''.concat(i,' ').concat(n).concat(1===i?'':'s')}).join(', ')},e.fromCamelCase=function(e){var t=1e?e%12+'am':e%12+'pm'},e.getScrollPosition=function(){var e=0>>(t?24:16))+', '+((n&(t?16711680:65280))>>>(t?16:8))+', '+((n&(t?65280:255))>>>(t?8:0))+(t?', '.concat(255&n):'')+')'},e.hide=function(e){return e.forEach(function(t){return t.style.display='none'})},e.httpGet=function(e,t){var n=2n){var i=[t,n];n=i[0],t=i[1]}return null==n?0<=e&&e=t&&et},e.isAnagram=function(e,t){var n=function(e){return e.toLowerCase().replace(/[^a-z0-9]/gi,'').split('').sort().join('')};return n(e)===n(t)},e.isArrayLike=function(e){return null!=e&&'function'==typeof e[Symbol.iterator]},e.isBeforeDate=function(e,t){return ee.length?t:e})},e.lowercaseKeys=function(e){return Object.keys(e).reduce(function(t,n){return t[n.toLowerCase()]=e[n],t},{})},e.luhnCheck=function(e){var t=(e+'').split('').reverse().map(function(e){return parseInt(e)}),n=t.splice(0,1)[0],i=t.reduce(function(e,t,n){return 0==n%2?e+2*t%9||9:e+t},0);return i+=n,0==i%10},e.mapKeys=function(e,t){return Object.keys(e).reduce(function(n,i){return n[t(e[i],i,e)]=e[i],n},{})},e.mapObject=function(e,t){return function(n){return n=[e,e.map(t)],n[0].reduce(function(e,t,i){return e[t]=n[1][i],e},{})}()},e.mapString=function(e,t){return e.split('').map(function(n,r){return t(n,r,e)}).join('')},e.mapValues=function(e,t){return Object.keys(e).reduce(function(n,i){return n[i]=t(e[i],i,e),n},{})},e.mask=function(e){var t=1r-n&&(t='mouse',e(t),document.removeEventListener('mousemove',i)),n=r};document.addEventListener('touchstart',function(){'touch'==t||(t='touch',e(t),document.addEventListener('mousemove',i))})},e.once=function(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,i=Array(n),r=0;rd?1:s=t.length?2===t.length?[t,[t[1],t[0]]]:t:t.reduce(function(n,r,l){return n.concat(e(o(t.slice(0,l)).concat(o(t.slice(l+1)))).map(function(e){return[r].concat(o(e))}))},[])},e.pick=function(e,t){return t.reduce(function(t,n){return n in e&&(t[n]=e[n]),t},{})},e.pickBy=function(e,t){return Object.keys(e).filter(function(n){return t(e[n],n)}).reduce(function(t,n){return t[n]=e[n],t},{})},e.pipeAsyncFunctions=function(){for(var e=arguments.length,t=Array(e),n=0;nj(e))return e+(i?' ':'')+r[0];var l=m(k(Math.log10(0>e?-e:e)/3),r.length-1),a=+((0>e?-e:e)/u(1e3,l)).toPrecision(t);return(0>e?'-':'')+a+(i?' ':'')+r[l]},e.primes=function(e){var t=Array.from({length:e-1}).map(function(e,t){return t+2}),n=k(g(e)),i=Array.from({length:n-1}).map(function(e,t){return t+2});return i.forEach(function(e){return t=t.filter(function(t){return 0!=t%e||t===e})}),t},e.promisify=function(e){return function(){for(var t=arguments.length,n=Array(t),i=0;ie[e.length-1],i=e.findIndex(function(e){return n?t>=e:t<=e});return-1===i?e.length:i},e.sortedIndexBy=function(e,t,n){var i=n(e[0])>n(e[e.length-1]),r=n(t),l=e.findIndex(function(e){return i?r>=n(e):r<=n(e)});return-1===l?e.length:l},e.sortedLastIndex=function(e,t){var n=e[0]>e[e.length-1],i=e.reverse().findIndex(function(e){return n?t<=e:t>=e});return-1===i?0:e.length-i},e.sortedLastIndexBy=function(e,t,n){var i=n(e[0])>n(e[e.length-1]),r=n(t),l=e.map(n).reverse().findIndex(function(e){return i?r<=e:r>=e});return-1===l?0:e.length-l},e.splitLines=function(e){return e.split(/\r?\n/)},e.spreadOver=function(e){return function(t){return e.apply(void 0,o(t))}},e.stableSort=function(e,t){return e.map(function(e,t){return{item:e,index:t}}).sort(function(e,n){return t(e.item,n.item)||e.index-n.index}).map(function(e){var t=e.item;return t})},e.standardDeviation=function(e){var t=!!(1=t.length?2===t.length?[t,t[1]+t[0]]:[t]:t.split('').reduce(function(n,r,l){return n.concat(e(t.slice(0,l)+t.slice(l+1)).map(function(e){return r+e}))},[])},e.stripHTMLTags=function(e){return e.replace(/<[^>]*>/g,'')},e.sum=function(){for(var e=arguments.length,t=Array(e),n=0;n=t&&(e.apply(l,a),r=Date.now())},t-(Date.now()-r))):(e.apply(l,a),r=Date.now(),n=!0)}},e.timeTaken=function(e){console.time('timeTaken');var t=e();return console.timeEnd('timeTaken'),t},e.times=function(e,t){for(var n=2t?e.slice(0,3r.length)throw new RangeError('Arguments too few!');return n(e)(r.slice(0,t))}},e.unescapeHTML=function(e){return e.replace(/&|<|>|'|"/g,function(e){return{"&":'&',"<":'<',">":'>',"'":'\'',""":'"'}[e]||e})},e.unflattenObject=function(e){return Object.keys(e).reduce(function(t,n){if(-1!==n.indexOf('.')){var r=n.split('.');Object.assign(t,JSON.parse('{'+r.map(function(e,t){return t===r.length-1?'"'.concat(e,'":'):'"'.concat(e,'":{')}).join('')+e[n]+'}'.repeat(r.length)))}else t[n]=e[n];return t},{})},e.unfold=function(e,t){for(var n=[],i=[null,t];i=e(i[1]);)n.push(i[0]);return n},e.union=function(e,t){return Array.from(new Set(o(e).concat(o(t))))},e.unionBy=function(e,t,n){var i=new Set(e.map(function(e){return n(e)}));return Array.from(new Set(o(e).concat(o(t.filter(function(e){return!i.has(n(e))})))))},e.unionWith=function(e,t,n){return Array.from(new Set(o(e).concat(o(t.filter(function(t){return-1===e.findIndex(function(e){return n(t,e)})})))))},e.uniqueElements=function(e){return o(new Set(e))},e.uniqueElementsBy=function(e,t){return e.reduce(function(e,n){return e.some(function(e){return t(n,e)})||e.push(n),e},[])},e.uniqueElementsByRight=function(e,t){return e.reduceRight(function(e,n){return e.some(function(e){return t(n,e)})||e.push(n),e},[])},e.uniqueSymmetricDifference=function(e,t){return o(new Set(o(e.filter(function(e){return!t.includes(e)})).concat(o(t.filter(function(t){return!e.includes(t)})))))},e.untildify=function(e){return e.replace(/^~($|\/|\\)/,''.concat('undefined'!=typeof require&&require('os').homedir(),'$1'))},e.unzip=function(e){return e.reduce(function(e,t){return t.forEach(function(t,n){return e[n].push(t)}),e},Array.from({length:_.apply(Math,o(e.map(function(e){return e.length})))}).map(function(){return[]}))},e.unzipWith=function(e,t){return e.reduce(function(e,t){return t.forEach(function(t,n){return e[n].push(t)}),e},Array.from({length:_.apply(Math,o(e.map(function(e){return e.length})))}).map(function(){return[]})).map(function(e){return t.apply(void 0,o(e))})},e.validateNumber=function(e){return!isNaN(parseFloat(e))&&isFinite(e)&&+e==e},e.when=function(e,t){return function(n){return e(n)?t(n):n}},e.without=function(e){for(var t=arguments.length,n=Array(1
+ data
+ .slice(omitFirstRow ? data.indexOf('\n') + 1 : 0)
+ .split('\n')
+ .map(v => v.split(delimiter));
+
+const CSVToJSON = (data, delimiter = ',') => {
+ const titles = data.slice(0, data.indexOf('\n')).split(delimiter);
+ return data
+ .slice(data.indexOf('\n') + 1)
+ .split('\n')
+ .map(v => {
+ const values = v.split(delimiter);
+ return titles.reduce((obj, title, index) => ((obj[title] = values[index]), obj), {});
+ });
+};
+
const fs = typeof require !== "undefined" && require('fs');
const JSONToFile = (obj, filename) =>
fs.writeFile(`${filename}.json`, JSON.stringify(obj, null, 2));
+const JSONtoCSV = (arr, columns, delimiter = ',') =>
+ [
+ columns.join(delimiter),
+ ...arr.map(obj =>
+ columns.reduce(
+ (acc, key) => `${acc}${!acc.length ? '' : delimiter}"${!obj[key] ? '' : obj[key]}"`,
+ ''
+ )
+ )
+ ].join('\n');
+
const RGBToHex = (r, g, b) => ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0');
const URLJoin = (...args) =>
@@ -27,12 +55,20 @@ const UUIDGeneratorNode = () =>
const all = (arr, fn = Boolean) => arr.every(fn);
+const allEqual = arr => arr.every(val => val === arr[0]);
+
const any = (arr, fn = Boolean) => arr.some(fn);
const approximatelyEqual = (v1, v2, epsilon = 0.001) => Math.abs(v1 - v2) < epsilon;
+const arrayToCSV = (arr, delimiter = ',') =>
+ arr.map(v => v.map(x => `"${x}"`).join(delimiter)).join('\n');
+
const arrayToHtmlList = (arr, listID) =>
- arr.map(item => (document.querySelector('#' + listID).innerHTML += `${item}`));
+ (el => (
+ (el = document.querySelector('#' + listID)),
+ (el.innerHTML += arr.map(item => `${item}`).join(''))
+ ))();
const ary = (fn, n) => (...args) => fn(...args.slice(0, n));
@@ -40,13 +76,13 @@ const atob = str => new Buffer(str, 'base64').toString('binary');
const attempt = (fn, ...args) => {
try {
- return fn(args);
+ return fn(...args);
} catch (e) {
return e instanceof Error ? e : new Error(e);
}
};
-const average = (...nums) => [...nums].reduce((acc, val) => acc + val, 0) / nums.length;
+const average = (...nums) => nums.reduce((acc, val) => acc + val, 0) / nums.length;
const averageBy = (arr, fn) =>
arr.map(typeof fn === 'function' ? fn : val => val[fn]).reduce((acc, val) => acc + val, 0) /
@@ -58,23 +94,20 @@ const bifurcate = (arr, filter) =>
const bifurcateBy = (arr, fn) =>
arr.reduce((acc, val, i) => (acc[fn(val, i) ? 0 : 1].push(val), acc), [[], []]);
-const bind = (fn, context, ...args) =>
- function() {
- return fn.apply(context, args.concat(...arguments));
- };
+const bind = (fn, context, ...boundArgs) => (...args) => fn.apply(context, [...boundArgs, ...args]);
const bindAll = (obj, ...fns) =>
fns.forEach(
fn => (
- f = obj[fn], obj[fn] = function() {
+ (f = obj[fn]),
+ (obj[fn] = function() {
return f.apply(obj);
})
+ )
);
-const bindKey = (context, fn, ...args) =>
- function() {
- return context[fn].apply(context, args.concat(...arguments));
- };
+const bindKey = (context, fn, ...boundArgs) => (...args) =>
+ context[fn].apply(context, [...boundArgs, ...args]);
const binomialCoefficient = (n, k) => {
if (Number.isNaN(n) || Number.isNaN(k)) return NaN;
@@ -176,7 +209,19 @@ const countBy = (arr, fn) =>
return acc;
}, {});
-const countOccurrences = (arr, val) => arr.reduce((a, v) => (v === val ? a + 1 : a + 0), 0);
+const countOccurrences = (arr, val) => arr.reduce((a, v) => (v === val ? a + 1 : a), 0);
+
+const counter = (selector, start, end, step = 1, duration = 2000) => {
+ let current = start,
+ _step = (end - start) * step < 0 ? -step : step,
+ timer = setInterval(() => {
+ current += _step;
+ document.querySelector(selector).innerHTML = current;
+ if (current >= end) document.querySelector(selector).innerHTML = end;
+ if (current >= end) clearInterval(timer);
+ }, Math.abs(Math.floor(duration / (end - start))));
+ return timer;
+};
const createElement = str => {
const el = document.createElement('div');
@@ -204,6 +249,9 @@ const currentURL = () => window.location.href;
const curry = (fn, arity = fn.length, ...args) =>
arity <= args.length ? fn(...args) : curry.bind(null, fn, arity, ...args);
+const dayOfYear = date =>
+ Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24);
+
const debounce = (fn, ms = 0) => {
let timeoutId;
return function(...args) {
@@ -220,16 +268,22 @@ const deepClone = obj => {
Object.keys(clone).forEach(
key => (clone[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key])
);
- return clone;
+ return Array.isArray(obj) ? (clone.length = obj.length) && Array.from(clone) : clone;
};
const deepFlatten = arr => [].concat(...arr.map(v => (Array.isArray(v) ? deepFlatten(v) : v)));
+const deepFreeze = obj =>
+ Object.keys(obj).forEach(
+ prop =>
+ !obj[prop] instanceof Object || Object.isFrozen(obj[prop]) ? null : deepFreeze(obj[prop])
+ ) || Object.freeze(obj);
+
const defaults = (obj, ...defs) => Object.assign({}, obj, ...defs.reverse(), obj);
const defer = (fn, ...args) => setTimeout(fn, 1, ...args);
-const degreesToRads = deg => deg * Math.PI / 180.0;
+const degreesToRads = deg => (deg * Math.PI) / 180.0;
const delay = (fn, wait, ...args) => setTimeout(fn, wait, ...args);
@@ -250,6 +304,14 @@ const differenceBy = (a, b, fn) => {
const differenceWith = (arr, val, comp) => arr.filter(a => val.findIndex(b => comp(a, b)) === -1);
+const dig = (obj, target) =>
+ target in obj
+ ? obj[target]
+ : Object.values(obj).reduce((acc, val) => {
+ if (acc !== undefined) return acc;
+ if (typeof val === 'object') return dig(val, target);
+ }, undefined);
+
const digitize = n => [...`${n}`].map(i => parseInt(i));
const distance = (x0, y0, x1, y1) => Math.hypot(x1 - x0, y1 - y0);
@@ -268,6 +330,8 @@ const dropWhile = (arr, func) => {
return arr;
};
+const elementContains = (parent, child) => parent !== child && parent.contains(child);
+
const elementIsVisibleInViewport = (el, partiallyVisible = false) => {
const { top, left, bottom, right } = el.getBoundingClientRect();
const { innerHeight, innerWidth } = window;
@@ -284,13 +348,12 @@ const elo = ([...ratings], kFactor = 32, selfRating) => {
(selfRating || rating) + kFactor * (i - expectedScore(i ? a : b, i ? b : a));
if (ratings.length === 2) {
return [newRating(a, 1), newRating(b, 0)];
- } else {
- for (let i = 0; i < ratings.length; i++) {
- let j = i;
- while (j < ratings.length - 1) {
- [ratings[i], ratings[j + 1]] = elo([ratings[i], ratings[j + 1]], kFactor);
- j++;
- }
+ }
+ for (let i = 0, len = ratings.length; i < len; i++) {
+ let j = i;
+ while (j < len - 1) {
+ j++;
+ [ratings[i], ratings[j]] = elo([ratings[i], ratings[j]], kFactor);
}
}
return ratings;
@@ -299,7 +362,7 @@ const elo = ([...ratings], kFactor = 32, selfRating) => {
const equals = (a, b) => {
if (a === b) return true;
if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime();
- if (!a || !b || (typeof a != 'object' && typeof b !== 'object')) return a === b;
+ if (!a || !b || (typeof a !== 'object' && typeof b !== 'object')) return a === b;
if (a === null || a === undefined || b === null || b === undefined) return false;
if (a.prototype !== b.prototype) return false;
let keys = Object.keys(a);
@@ -337,7 +400,9 @@ const factorial = n =>
? (() => {
throw new TypeError('Negative numbers are not allowed!');
})()
- : n <= 1 ? 1 : n * factorial(n - 1);
+ : n <= 1
+ ? 1
+ : n * factorial(n - 1);
const fibonacci = n =>
Array.from({ length: n }).reduce(
@@ -347,15 +412,18 @@ const fibonacci = n =>
const filterNonUnique = arr => arr.filter(i => arr.indexOf(i) === arr.lastIndexOf(i));
+const filterNonUniqueBy = (arr, fn) =>
+ arr.filter((v, i) => arr.every((x, j) => (i === j) === fn(v, x, i, j)));
+
const findKey = (obj, fn) => Object.keys(obj).find(key => fn(obj[key], key, obj));
-const findLast = (arr, fn) => arr.filter(fn).slice(-1)[0];
+const findLast = (arr, fn) => arr.filter(fn).pop();
const findLastIndex = (arr, fn) =>
arr
.map((val, i) => [i, val])
- .filter(val => fn(val[1], val[0], arr))
- .slice(-1)[0][0];
+ .filter(([i, val]) => fn(val, i, arr))
+ .pop()[0];
const findLastKey = (obj, fn) =>
Object.keys(obj)
@@ -363,9 +431,7 @@ const findLastKey = (obj, fn) =>
.find(key => fn(obj[key], key, obj));
const flatten = (arr, depth = 1) =>
- depth !== 1
- ? arr.reduce((a, v) => a.concat(Array.isArray(v) ? flatten(v, depth - 1) : v), [])
- : arr.reduce((a, v) => a.concat(v), []);
+ arr.reduce((a, v) => a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v), []);
const flattenObject = (obj, prefix = '') =>
Object.keys(obj).reduce((acc, k) => {
@@ -401,7 +467,7 @@ const formatDuration = ms => {
};
return Object.entries(time)
.filter(val => val[1] !== 0)
- .map(val => val[1] + ' ' + (val[1] !== 1 ? val[0] + 's' : val[0]))
+ .map(([key, val]) => `${val} ${key}${val !== 1 ? 's' : ''}`)
.join(', ');
};
@@ -446,7 +512,11 @@ const getDaysDiffBetweenDates = (dateInitial, dateFinal) =>
const getMeridiemSuffixOfInteger = num =>
num === 0 || num === 24
? 12 + 'am'
- : num === 12 ? 12 + 'pm' : num < 12 ? num % 12 + 'am' : num % 12 + 'pm';
+ : num === 12
+ ? 12 + 'pm'
+ : num < 12
+ ? (num % 12) + 'am'
+ : (num % 12) + 'pm';
const getScrollPosition = (el = window) => ({
x: el.pageXOffset !== undefined ? el.pageXOffset : el.scrollLeft,
@@ -460,7 +530,7 @@ const getType = v =>
const getURLParameters = url =>
(url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(
- (a, v) => (a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1), a),
+ (a, v) => ((a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1)), a),
{}
);
@@ -523,7 +593,7 @@ const hexToRGB = hex => {
);
};
-const hide = (...el) => [...el].forEach(e => (e.style.display = 'none'));
+const hide = els => els.forEach(e => (e.style.display = 'none'));
const httpGet = (url, callback, err = console.error) => {
const request = new XMLHttpRequest();
@@ -546,16 +616,20 @@ const httpsRedirect = () => {
if (location.protocol !== 'https:') location.replace('https://' + location.href.split('//')[1]);
};
+const hz = (fn, iterations = 100) => {
+ const before = performance.now();
+ for (let i = 0; i < iterations; i++) fn();
+ return (1000 * iterations) / (performance.now() - before);
+};
+
const inRange = (n, start, end = null) => {
- if (end && start > end) end = [start, (start = end)][0];
+ if (end && start > end) [end, start] = [start, end];
return end == null ? n >= 0 && n < start : n >= start && n < end;
};
-const indexOfAll = (arr, val) => {
- const indices = [];
- arr.forEach((el, i) => el === val && indices.push(i));
- return indices;
-};
+const indentString = (str, count, indent = ' ') => str.replace(/^/gm, indent.repeat(count));
+
+const indexOfAll = (arr, val) => arr.reduce((acc, el, i) => (el === val ? [...acc, i] : acc), []);
const initial = arr => arr.slice(0, -1);
@@ -563,7 +637,7 @@ const initialize2DArray = (w, h, val = null) =>
Array.from({ length: h }).map(() => Array.from({ length: w }).fill(val));
const initializeArrayWithRange = (end, start = 0, step = 1) =>
- Array.from({ length: Math.ceil((end + 1 - start) / step) }).map((v, i) => i * step + start);
+ Array.from({ length: Math.ceil((end - start + 1) / step) }, (v, i) => i * step + start);
const initializeArrayWithRangeRight = (end, start = 0, step = 1) =>
Array.from({ length: Math.ceil((end + 1 - start) / step) }).map(
@@ -572,13 +646,22 @@ const initializeArrayWithRangeRight = (end, start = 0, step = 1) =>
const initializeArrayWithValues = (n, val = 0) => Array(n).fill(val);
+const initializeNDArray = (val, ...args) =>
+ args.length === 0
+ ? val
+ : Array.from({ length: args[0] }).map(() => initializeNDArray(val, ...args.slice(1)));
+
+const insertAfter = (el, htmlString) => el.insertAdjacentHTML('afterend', htmlString);
+
+const insertBefore = (el, htmlString) => el.insertAdjacentHTML('beforebegin', htmlString);
+
const intersection = (a, b) => {
const s = new Set(b);
return a.filter(x => s.has(x));
};
const intersectionBy = (a, b, fn) => {
- const s = new Set(b.map(x => fn(x)));
+ const s = new Set(b.map(fn));
return a.filter(x => s.has(fn(x)));
};
@@ -592,10 +675,12 @@ const invertKeyValues = (obj, fn) =>
return acc;
}, {});
-const is = (type, val) => val instanceof type;
+const is = (type, val) => ![, null].includes(val) && val.constructor === type;
const isAbsoluteURL = str => /^[a-z][a-z0-9+.-]*:/.test(str);
+const isAfterDate = (dateA, dateB) => dateA > dateB;
+
const isAnagram = (str1, str2) => {
const normalize = str =>
str
@@ -607,16 +692,16 @@ const isAnagram = (str1, str2) => {
return normalize(str1) === normalize(str2);
};
-const isArrayLike = val => {
- try {
- return [...val], true;
- } catch (e) {
- return false;
- }
-};
+const isArrayLike = obj => obj != null && typeof obj[Symbol.iterator] === 'function';
+
+const isBeforeDate = (dateA, dateB) => dateA < dateB;
const isBoolean = val => typeof val === 'boolean';
+const isBrowser = () => ![typeof window, typeof document].includes('undefined');
+
+const isBrowserTabFocused = () => !document.hidden;
+
const isDivisible = (dividend, divisor) => dividend % divisor === 0;
const isEmpty = val => val == null || !(Object.keys(val) || val).length;
@@ -652,11 +737,15 @@ const isPromiseLike = obj =>
(typeof obj === 'object' || typeof obj === 'function') &&
typeof obj.then === 'function';
+const isSameDate = (dateA, dateB) => dateA.toISOString() === dateB.toISOString();
+
const isSorted = arr => {
- const direction = arr[0] > arr[1] ? -1 : 1;
- for (let [i, val] of arr.entries())
- if (i === arr.length - 1) return direction;
+ let direction = -(arr[0] - arr[1]);
+ for (let [i, val] of arr.entries()) {
+ direction = !direction ? -(arr[i - 1] - arr[i]) : direction;
+ if (i === arr.length - 1) return !direction ? 0 : direction;
else if ((val - arr[i + 1]) * direction > 0) return 0;
+ }
};
const isString = val => typeof val === 'string';
@@ -683,7 +772,9 @@ const join = (arr, separator = ',', end = separator) =>
(acc, val, i) =>
i === arr.length - 2
? acc + val + end
- : i === arr.length - 1 ? acc + val : acc + val + separator,
+ : i === arr.length - 1
+ ? acc + val
+ : acc + val + separator,
''
);
@@ -691,11 +782,12 @@ const last = arr => arr[arr.length - 1];
const lcm = (...arr) => {
const gcd = (x, y) => (!y ? x : gcd(y, x % y));
- const _lcm = (x, y) => x * y / gcd(x, y);
+ const _lcm = (x, y) => (x * y) / gcd(x, y);
return [...arr].reduce((a, b) => _lcm(a, b));
};
-const longestItem = (...vals) => [...vals].sort((a, b) => b.length - a.length)[0];
+const longestItem = (val, ...vals) =>
+ [val, ...vals].reduce((a, x) => (x.length > a.length ? x : a));
const lowercaseKeys = obj =>
Object.keys(obj).reduce((acc, key) => {
@@ -709,7 +801,7 @@ const luhnCheck = num => {
.reverse()
.map(x => parseInt(x));
let lastDigit = arr.splice(0, 1)[0];
- let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + (val * 2) % 9 || 9), 0);
+ let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + ((val * 2) % 9) || 9), 0);
sum += lastDigit;
return sum % 10 === 0;
};
@@ -722,7 +814,14 @@ const mapKeys = (obj, fn) =>
const mapObject = (arr, fn) =>
(a => (
- a = [arr, arr.map(fn)], a[0].reduce((acc, val, ind) => (acc[val] = a[1][ind], acc), {})))();
+ (a = [arr, arr.map(fn)]), a[0].reduce((acc, val, ind) => ((acc[val] = a[1][ind]), acc), {})
+ ))();
+
+const mapString = (str, fn) =>
+ str
+ .split('')
+ .map((c, i) => fn(c, i, str))
+ .join('');
const mapValues = (obj, fn) =>
Object.keys(obj).reduce((acc, k) => {
@@ -730,8 +829,7 @@ const mapValues = (obj, fn) =>
return acc;
}, {});
-const mask = (cc, num = 4, mask = '*') =>
- ('' + cc).slice(0, -num).replace(/./g, mask) + ('' + cc).slice(-num);
+const mask = (cc, num = 4, mask = '*') => `${cc}`.slice(-num).padStart(`${cc}`.length, mask);
const matches = (obj, source) =>
Object.keys(source).every(key => obj.hasOwnProperty(key) && obj[key] === source[key]);
@@ -746,6 +844,8 @@ const matchesWith = (obj, source, fn) =>
const maxBy = (arr, fn) => Math.max(...arr.map(typeof fn === 'function' ? fn : val => val[fn]));
+const maxDate = (...dates) => new Date(Math.max.apply(null, ...dates));
+
const maxN = (arr, n = 1) => [...arr].sort((a, b) => b - a).slice(0, n);
const median = arr => {
@@ -775,6 +875,8 @@ const merge = (...objs) =>
const minBy = (arr, fn) => Math.min(...arr.map(typeof fn === 'function' ? fn : val => val[fn]));
+const minDate = (...dates) => new Date(Math.min.apply(null, ...dates));
+
const minN = (arr, n = 1) => [...arr].sort((a, b) => a - b).slice(0, n);
const mostPerformant = (fns, iterations = 10000) => {
@@ -788,13 +890,20 @@ const mostPerformant = (fns, iterations = 10000) => {
const negate = func => (...args) => !func(...args);
+const nest = (items, id = null, link = 'parent_id') =>
+ items
+ .filter(item => item[link] === id)
+ .map(item => ({ ...item, children: nest(items, item.id) }));
+
+const nodeListToArray = nodeList => [...nodeList];
+
const none = (arr, fn = Boolean) => !arr.some(fn);
const nthArg = n => (...args) => args.slice(n)[0];
-const nthElement = (arr, n = 0) => (n > 0 ? arr.slice(n, n + 1) : arr.slice(n))[0];
+const nthElement = (arr, n = 0) => (n === -1 ? arr.slice(n) : arr.slice(n, n + 1))[0];
-const objectFromPairs = arr => arr.reduce((a, v) => (a[v[0]] = v[1], a), {});
+const objectFromPairs = arr => arr.reduce((a, [key, val]) => ((a[key] = val), a), {});
const objectToPairs = obj => Object.keys(obj).map(k => [k, obj[k]]);
@@ -819,15 +928,17 @@ const observeMutations = (element, callback, options) => {
const off = (el, evt, fn, opts = false) => el.removeEventListener(evt, fn, opts);
+const offset = (arr, offset) => [...arr.slice(offset), ...arr.slice(0, offset)];
+
const omit = (obj, arr) =>
Object.keys(obj)
.filter(k => !arr.includes(k))
- .reduce((acc, key) => (acc[key] = obj[key], acc), {});
+ .reduce((acc, key) => ((acc[key] = obj[key]), acc), {});
const omitBy = (obj, fn) =>
Object.keys(obj)
.filter(k => !fn(obj[k], k))
- .reduce((acc, key) => (acc[key] = obj[key], acc), {});
+ .reduce((acc, key) => ((acc[key] = obj[key]), acc), {});
const on = (el, evt, fn, opts = {}) => {
const delegatorFn = e => e.target.matches(opts.target) && fn.call(e.target, e);
@@ -841,12 +952,12 @@ const onUserInputChange = callback => {
const mousemoveHandler = () => {
const now = performance.now();
if (now - lastTime < 20)
- type = 'mouse', callback(type), document.removeEventListener('mousemove', mousemoveHandler);
+ (type = 'mouse'), callback(type), document.removeEventListener('mousemove', mousemoveHandler);
lastTime = now;
};
document.addEventListener('touchstart', () => {
if (type === 'touch') return;
- type = 'touch', callback(type), document.addEventListener('mousemove', mousemoveHandler);
+ (type = 'touch'), callback(type), document.addEventListener('mousemove', mousemoveHandler);
});
};
@@ -874,15 +985,12 @@ const over = (...fns) => (...args) => fns.map(fn => fn.apply(null, args));
const overArgs = (fn, transforms) => (...args) => fn(...args.map((val, i) => transforms[i](val)));
+const pad = (str, length, char = ' ') =>
+ str.padStart((str.length + length) / 2, char).padEnd(length, char);
+
const palindrome = str => {
const s = str.toLowerCase().replace(/[\W_]/g, '');
- return (
- s ===
- s
- .split('')
- .reverse()
- .join('')
- );
+ return s === [...s].reverse().join('');
};
const parseCookie = str =>
@@ -908,7 +1016,7 @@ const partition = (arr, fn) =>
);
const percentile = (arr, val) =>
- 100 * arr.reduce((acc, v) => acc + (v < val ? 1 : 0) + (v === val ? 0.5 : 0), 0) / arr.length;
+ (100 * arr.reduce((acc, v) => acc + (v < val ? 1 : 0) + (v === val ? 0.5 : 0), 0)) / arr.length;
const permutations = arr => {
if (arr.length <= 2) return arr.length === 2 ? [arr, [arr[1], arr[0]]] : arr;
@@ -927,7 +1035,7 @@ const pick = (obj, arr) =>
const pickBy = (obj, fn) =>
Object.keys(obj)
.filter(k => fn(obj[k], k))
- .reduce((acc, key) => (acc[key] = obj[key], acc), {});
+ .reduce((acc, key) => ((acc[key] = obj[key]), acc), {});
const pipeAsyncFunctions = (...fns) => arg => fns.reduce((p, f) => p.then(f), Promise.resolve(arg));
@@ -942,6 +1050,15 @@ const pluralize = (val, word, plural = word + 's') => {
const powerset = arr => arr.reduce((a, v) => a.concat(a.map(r => [v].concat(r))), [[]]);
+const prefix = prop => {
+ const capitalizedProp = prop.charAt(0).toUpperCase() + prop.slice(1);
+ const prefixes = ['', 'webkit', 'moz', 'ms', 'o'];
+ const i = prefixes.findIndex(
+ prefix => typeof document.body.style[prefix ? prefix + capitalizedProp : prop] !== 'undefined'
+ );
+ return i !== -1 ? (i === 0 ? prop : prefixes[i] + capitalizedProp) : null;
+};
+
const prettyBytes = (num, precision = 3, addSpace = true) => {
const UNITS = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
if (Math.abs(num) < 1) return num + (addSpace ? ' ' : '') + UNITS[0];
@@ -999,7 +1116,7 @@ const pullBy = (arr, ...args) => {
pulled.forEach(v => arr.push(v));
};
-const radsToDegrees = rad => rad * 180.0 / Math.PI;
+const radsToDegrees = rad => (rad * 180.0) / Math.PI;
const randomHexColorCode = () => {
let n = (Math.random() * 0xfffff * 1000000).toString(16);
@@ -1020,13 +1137,28 @@ const readFileLines = filename =>
.toString('UTF8')
.split('\n');
-const rearg = (fn, indexes) => (...args) =>
- fn(
- ...args.reduce(
- (acc, val, i) => (acc[indexes.indexOf(i)] = val, acc),
- Array.from({ length: indexes.length })
- )
- );
+const rearg = (fn, indexes) => (...args) => fn(...indexes.map(i => args[i]));
+
+const recordAnimationFrames = (callback, autoStart = true) => {
+ let running = true,
+ raf;
+ const stop = () => {
+ running = false;
+ cancelAnimationFrame(raf);
+ };
+ const start = () => {
+ running = true;
+ run();
+ };
+ const run = () => {
+ raf = requestAnimationFrame(() => {
+ callback();
+ if (running) run();
+ });
+ };
+ if (autoStart) start();
+ return { start, stop };
+};
const redirect = (url, asLink = true) =>
asLink ? (window.location.href = url) : window.location.replace(url);
@@ -1045,6 +1177,8 @@ const reducedFilter = (data, keys, fn) =>
}, {})
);
+const reject = (pred, array) => array.filter((...args) => !pred(...args));
+
const remove = (arr, func) =>
Array.isArray(arr)
? arr.filter(func).reduce((acc, val) => {
@@ -1055,6 +1189,15 @@ const remove = (arr, func) =>
const removeNonASCII = str => str.replace(/[^\x20-\x7E]/g, '');
+const renameKeys = (keysMap, obj) =>
+ Object.keys(obj).reduce(
+ (acc, key) => ({
+ ...acc,
+ ...{ [keysMap[key] || key]: obj[key] }
+ }),
+ {}
+ );
+
const reverseString = str => [...str].reverse().join('');
const round = (n, decimals = 0) => Number(`${Math.round(`${n}e${decimals}`)}e-${decimals}`);
@@ -1111,6 +1254,12 @@ const setStyle = (el, ruleName, val) => (el.style[ruleName] = val);
const shallowClone = obj => Object.assign({}, obj);
+const shank = (arr, index = 0, delCount = 0, ...elements) =>
+ arr
+ .slice(0, index)
+ .concat(elements)
+ .concat(arr.slice(index + delCount));
+
const show = (...el) => [...el].forEach(e => (e.style.display = ''));
const shuffle = ([...arr]) => {
@@ -1129,10 +1278,17 @@ const size = val =>
? val.length
: val && typeof val === 'object'
? val.size || val.length || Object.keys(val).length
- : typeof val === 'string' ? new Blob([val]).size : 0;
+ : typeof val === 'string'
+ ? new Blob([val]).size
+ : 0;
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
+const smoothScroll = element =>
+ document.querySelector(element).scrollIntoView({
+ behavior: 'smooth'
+ });
+
const sortCharactersInString = str => [...str].sort((a, b) => a.localeCompare(b)).join('');
const sortedIndex = (arr, n) => {
@@ -1150,20 +1306,17 @@ const sortedIndexBy = (arr, n, fn) => {
const sortedLastIndex = (arr, n) => {
const isDescending = arr[0] > arr[arr.length - 1];
- const index = arr
- .map((val, i) => [i, val])
- .reverse()
- .findIndex(el => (isDescending ? n <= el[1] : n >= el[1]));
- return index === -1 ? 0 : arr.length - index - 1;
+ const index = arr.reverse().findIndex(el => (isDescending ? n <= el : n >= el));
+ return index === -1 ? 0 : arr.length - index;
};
const sortedLastIndexBy = (arr, n, fn) => {
const isDescending = fn(arr[0]) > fn(arr[arr.length - 1]);
const val = fn(n);
const index = arr
- .map((val, i) => [i, fn(val)])
+ .map(fn)
.reverse()
- .findIndex(el => (isDescending ? val <= el[1] : val >= el[1]));
+ .findIndex(el => (isDescending ? val <= el : val >= el));
return index === -1 ? 0 : arr.length - index;
};
@@ -1239,7 +1392,7 @@ const takeRightWhile = (arr, func) => {
};
const takeWhile = (arr, func) => {
- for (let i of arr.keys()) if (func(arr[i])) return arr.slice(0, i);
+ for (const [i, val] of arr.entries()) if (func(val)) return arr.slice(0, i);
return arr;
};
@@ -1291,6 +1444,13 @@ const toCurrency = (n, curr, LanguageFormat = undefined) =>
const toDecimalMark = num => num.toLocaleString('en-US');
+const toHash = (object, key) =>
+ Array.prototype.reduce.call(
+ object,
+ (acc, data, index) => ((acc[!key ? index : data[key]] = data), acc),
+ {}
+ );
+
const toKebabCase = str =>
str &&
str
@@ -1321,16 +1481,20 @@ const toSnakeCase = str =>
const toggleClass = (el, className) => el.classList.toggle(className);
-const tomorrow = () => {
+const tomorrow = (long = false) => {
let t = new Date();
t.setDate(t.getDate() + 1);
- return `${t.getFullYear()}-${String(t.getMonth() + 1).padStart(2, '0')}-${String(
+ const ret = `${t.getFullYear()}-${String(t.getMonth() + 1).padStart(2, '0')}-${String(
t.getDate()
).padStart(2, '0')}`;
+ return !long ? ret : `${ret}T00:00:00`;
};
const transform = (obj, fn, acc) => Object.keys(obj).reduce((a, k) => fn(a, obj[k], k, obj), acc);
+const triggerEvent = (el, eventType, detail = undefined) =>
+ el.dispatchEvent(new CustomEvent(eventType, { detail: detail }));
+
const truncateString = (str, num) =>
str.length > num ? str.slice(0, num > 3 ? num - 3 : num) + '...' : str;
@@ -1393,6 +1557,22 @@ const unionWith = (a, b, comp) =>
const uniqueElements = arr => [...new Set(arr)];
+const uniqueElementsBy = (arr, fn) =>
+ arr.reduce((acc, v) => {
+ if (!acc.some(x => fn(v, x))) acc.push(v);
+ return acc;
+ }, []);
+
+const uniqueElementsByRight = (arr, fn) =>
+ arr.reduceRight((acc, v) => {
+ if (!acc.some(x => fn(v, x))) acc.push(v);
+ return acc;
+ }, []);
+
+const uniqueSymmetricDifference = (a, b) => [
+ ...new Set([...a.filter(v => !b.includes(v)), ...b.filter(v => !a.includes(v))])
+];
+
const untildify = str => str.replace(/^~($|\/|\\)/, `${typeof require !== "undefined" && require('os').homedir()}$1`);
const unzip = arr =>
@@ -1415,6 +1595,8 @@ const unzipWith = (arr, fn) =>
const validateNumber = n => !isNaN(parseFloat(n)) && isFinite(n) && Number(n) == n;
+const when = (pred, whenTrue) => x => (pred(x) ? whenTrue(x) : x);
+
const without = (arr, ...args) => arr.filter(v => !args.includes(v));
const words = (str, pattern = /[^a-zA-Z-]+/) => str.split(pattern).filter(Boolean);
@@ -1432,19 +1614,14 @@ const zip = (...arrays) => {
};
const zipObject = (props, values) =>
- props.reduce((obj, prop, index) => (obj[prop] = values[index], obj), {});
+ props.reduce((obj, prop, index) => ((obj[prop] = values[index]), obj), {});
-const zipWith = (...arrays) => {
- const length = arrays.length;
- let fn = length > 1 ? arrays[length - 1] : undefined;
- fn = typeof fn == 'function' ? (arrays.pop(), fn) : undefined;
- const maxLength = Math.max(...arrays.map(x => x.length));
- const result = Array.from({ length: maxLength }).map((_, i) => {
- return Array.from({ length: arrays.length }, (_, k) => arrays[k][i]);
- });
- return fn ? result.map(arr => fn(...arr)) : result;
+const zipWith = (...array) => {
+ const fn = typeof array[array.length - 1] === 'function' ? array.pop() : undefined;
+ return Array.from(
+ { length: Math.max(...array.map(a => a.length)) },
+ (_, i) => (fn ? fn(...array.map(a => a[i])) : array.map(a => a[i]))
+ );
};
-var imports = {JSONToFile,RGBToHex,URLJoin,UUIDGeneratorBrowser,UUIDGeneratorNode,all,any,approximatelyEqual,arrayToHtmlList,ary,atob,attempt,average,averageBy,bifurcate,bifurcateBy,bind,bindAll,bindKey,binomialCoefficient,bottomVisible,btoa,byteSize,call,capitalize,capitalizeEveryWord,castArray,chainAsync,chunk,clampNumber,cloneRegExp,coalesce,coalesceFactory,collectInto,colorize,compact,compose,composeRight,converge,copyToClipboard,countBy,countOccurrences,createElement,createEventHub,currentURL,curry,debounce,decapitalize,deepClone,deepFlatten,defaults,defer,degreesToRads,delay,detectDeviceType,difference,differenceBy,differenceWith,digitize,distance,drop,dropRight,dropRightWhile,dropWhile,elementIsVisibleInViewport,elo,equals,escapeHTML,escapeRegExp,everyNth,extendHex,factorial,fibonacci,filterNonUnique,findKey,findLast,findLastIndex,findLastKey,flatten,flattenObject,flip,forEachRight,forOwn,forOwnRight,formatDuration,fromCamelCase,functionName,functions,gcd,geometricProgression,get,getColonTimeFromDate,getDaysDiffBetweenDates,getMeridiemSuffixOfInteger,getScrollPosition,getStyle,getType,getURLParameters,groupBy,hammingDistance,hasClass,hasFlags,hashBrowser,hashNode,head,hexToRGB,hide,httpGet,httpPost,httpsRedirect,inRange,indexOfAll,initial,initialize2DArray,initializeArrayWithRange,initializeArrayWithRangeRight,initializeArrayWithValues,intersection,intersectionBy,intersectionWith,invertKeyValues,is,isAbsoluteURL,isAnagram,isArrayLike,isBoolean,isDivisible,isEmpty,isEven,isFunction,isLowerCase,isNil,isNull,isNumber,isObject,isObjectLike,isPlainObject,isPrime,isPrimitive,isPromiseLike,isSorted,isString,isSymbol,isTravisCI,isUndefined,isUpperCase,isValidJSON,join,last,lcm,longestItem,lowercaseKeys,luhnCheck,mapKeys,mapObject,mapValues,mask,matches,matchesWith,maxBy,maxN,median,memoize,merge,minBy,minN,mostPerformant,negate,none,nthArg,nthElement,objectFromPairs,objectToPairs,observeMutations,off,omit,omitBy,on,onUserInputChange,once,orderBy,over,overArgs,palindrome,parseCookie,partial,partialRight,partition,percentile,permutations,pick,pickBy,pipeAsyncFunctions,pipeFunctions,pluralize,powerset,prettyBytes,primes,promisify,pull,pullAtIndex,pullAtValue,pullBy,radsToDegrees,randomHexColorCode,randomIntArrayInRange,randomIntegerInRange,randomNumberInRange,readFileLines,rearg,redirect,reduceSuccessive,reduceWhich,reducedFilter,remove,removeNonASCII,reverseString,round,runAsync,runPromisesInSeries,sample,sampleSize,scrollToTop,sdbm,serializeCookie,setStyle,shallowClone,show,shuffle,similarity,size,sleep,sortCharactersInString,sortedIndex,sortedIndexBy,sortedLastIndex,sortedLastIndexBy,splitLines,spreadOver,stableSort,standardDeviation,stringPermutations,stripHTMLTags,sum,sumBy,sumPower,symmetricDifference,symmetricDifferenceBy,symmetricDifferenceWith,tail,take,takeRight,takeRightWhile,takeWhile,throttle,timeTaken,times,toCamelCase,toCurrency,toDecimalMark,toKebabCase,toOrdinalSuffix,toSafeInteger,toSnakeCase,toggleClass,tomorrow,transform,truncateString,truthCheckCollection,unary,uncurry,unescapeHTML,unflattenObject,unfold,union,unionBy,unionWith,uniqueElements,untildify,unzip,unzipWith,validateNumber,without,words,xProd,yesNo,zip,zipObject,zipWith,}
-
-export default imports;
+export { CSVToArray, CSVToJSON, JSONToFile, JSONtoCSV, RGBToHex, URLJoin, UUIDGeneratorBrowser, UUIDGeneratorNode, all, allEqual, any, approximatelyEqual, arrayToCSV, arrayToHtmlList, ary, atob, attempt, average, averageBy, bifurcate, bifurcateBy, bind, bindAll, bindKey, binomialCoefficient, bottomVisible, btoa, byteSize, call, capitalize, capitalizeEveryWord, castArray, chainAsync, chunk, clampNumber, cloneRegExp, coalesce, coalesceFactory, collectInto, colorize, compact, compose, composeRight, converge, copyToClipboard, countBy, countOccurrences, counter, createElement, createEventHub, currentURL, curry, dayOfYear, debounce, decapitalize, deepClone, deepFlatten, deepFreeze, defaults, defer, degreesToRads, delay, detectDeviceType, difference, differenceBy, differenceWith, dig, digitize, distance, drop, dropRight, dropRightWhile, dropWhile, elementContains, elementIsVisibleInViewport, elo, equals, escapeHTML, escapeRegExp, everyNth, extendHex, factorial, fibonacci, filterNonUnique, filterNonUniqueBy, findKey, findLast, findLastIndex, findLastKey, flatten, flattenObject, flip, forEachRight, forOwn, forOwnRight, formatDuration, fromCamelCase, functionName, functions, gcd, geometricProgression, get, getColonTimeFromDate, getDaysDiffBetweenDates, getMeridiemSuffixOfInteger, getScrollPosition, getStyle, getType, getURLParameters, groupBy, hammingDistance, hasClass, hasFlags, hashBrowser, hashNode, head, hexToRGB, hide, httpGet, httpPost, httpsRedirect, hz, inRange, indentString, indexOfAll, initial, initialize2DArray, initializeArrayWithRange, initializeArrayWithRangeRight, initializeArrayWithValues, initializeNDArray, insertAfter, insertBefore, intersection, intersectionBy, intersectionWith, invertKeyValues, is, isAbsoluteURL, isAfterDate, isAnagram, isArrayLike, isBeforeDate, isBoolean, isBrowser, isBrowserTabFocused, isDivisible, isEmpty, isEven, isFunction, isLowerCase, isNil, isNull, isNumber, isObject, isObjectLike, isPlainObject, isPrime, isPrimitive, isPromiseLike, isSameDate, isSorted, isString, isSymbol, isTravisCI, isUndefined, isUpperCase, isValidJSON, join, last, lcm, longestItem, lowercaseKeys, luhnCheck, mapKeys, mapObject, mapString, mapValues, mask, matches, matchesWith, maxBy, maxDate, maxN, median, memoize, merge, minBy, minDate, minN, mostPerformant, negate, nest, nodeListToArray, none, nthArg, nthElement, objectFromPairs, objectToPairs, observeMutations, off, offset, omit, omitBy, on, onUserInputChange, once, orderBy, over, overArgs, pad, palindrome, parseCookie, partial, partialRight, partition, percentile, permutations, pick, pickBy, pipeAsyncFunctions, pipeFunctions, pluralize, powerset, prefix, prettyBytes, primes, promisify, pull, pullAtIndex, pullAtValue, pullBy, radsToDegrees, randomHexColorCode, randomIntArrayInRange, randomIntegerInRange, randomNumberInRange, readFileLines, rearg, recordAnimationFrames, redirect, reduceSuccessive, reduceWhich, reducedFilter, reject, remove, removeNonASCII, renameKeys, reverseString, round, runAsync, runPromisesInSeries, sample, sampleSize, scrollToTop, sdbm, serializeCookie, setStyle, shallowClone, shank, show, shuffle, similarity, size, sleep, smoothScroll, sortCharactersInString, sortedIndex, sortedIndexBy, sortedLastIndex, sortedLastIndexBy, splitLines, spreadOver, stableSort, standardDeviation, stringPermutations, stripHTMLTags, sum, sumBy, sumPower, symmetricDifference, symmetricDifferenceBy, symmetricDifferenceWith, tail, take, takeRight, takeRightWhile, takeWhile, throttle, timeTaken, times, toCamelCase, toCurrency, toDecimalMark, toHash, toKebabCase, toOrdinalSuffix, toSafeInteger, toSnakeCase, toggleClass, tomorrow, transform, triggerEvent, truncateString, truthCheckCollection, unary, uncurry, unescapeHTML, unflattenObject, unfold, union, unionBy, unionWith, uniqueElements, uniqueElementsBy, uniqueElementsByRight, uniqueSymmetricDifference, untildify, unzip, unzipWith, validateNumber, when, without, words, xProd, yesNo, zip, zipObject, zipWith };
diff --git a/dist/_30s.js b/dist/_30s.js
index 5631a8425..b93ea6662 100644
--- a/dist/_30s.js
+++ b/dist/_30s.js
@@ -1,1458 +1,1965 @@
(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global._30s = factory());
-}(this, (function () { 'use strict';
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
+ (factory((global._30s = {})));
+}(this, (function (exports) { 'use strict';
-const fs = typeof require !== "undefined" && require('fs');
-const JSONToFile = (obj, filename) =>
- fs.writeFile(`${filename}.json`, JSON.stringify(obj, null, 2));
+ const CSVToArray = (data, delimiter = ',', omitFirstRow = false) =>
+ data
+ .slice(omitFirstRow ? data.indexOf('\n') + 1 : 0)
+ .split('\n')
+ .map(v => v.split(delimiter));
-const RGBToHex = (r, g, b) => ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0');
-
-const URLJoin = (...args) =>
- args
- .join('/')
- .replace(/[\/]+/g, '/')
- .replace(/^(.+):\//, '$1://')
- .replace(/^file:/, 'file:/')
- .replace(/\/(\?|&|#[^!])/g, '$1')
- .replace(/\?/g, '&')
- .replace('&', '?');
-
-const UUIDGeneratorBrowser = () =>
- ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
- (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16)
- );
-
-const crypto$1 = typeof require !== "undefined" && require('crypto');
-const UUIDGeneratorNode = () =>
- ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
- (c ^ (crypto$1.randomBytes(1)[0] & (15 >> (c / 4)))).toString(16)
- );
-
-const all = (arr, fn = Boolean) => arr.every(fn);
-
-const any = (arr, fn = Boolean) => arr.some(fn);
-
-const approximatelyEqual = (v1, v2, epsilon = 0.001) => Math.abs(v1 - v2) < epsilon;
-
-const arrayToHtmlList = (arr, listID) =>
- arr.map(item => (document.querySelector('#' + listID).innerHTML += `${item}`));
-
-const ary = (fn, n) => (...args) => fn(...args.slice(0, n));
-
-const atob = str => new Buffer(str, 'base64').toString('binary');
-
-const attempt = (fn, ...args) => {
- try {
- return fn(args);
- } catch (e) {
- return e instanceof Error ? e : new Error(e);
- }
-};
-
-const average = (...nums) => [...nums].reduce((acc, val) => acc + val, 0) / nums.length;
-
-const averageBy = (arr, fn) =>
- arr.map(typeof fn === 'function' ? fn : val => val[fn]).reduce((acc, val) => acc + val, 0) /
- arr.length;
-
-const bifurcate = (arr, filter) =>
- arr.reduce((acc, val, i) => (acc[filter[i] ? 0 : 1].push(val), acc), [[], []]);
-
-const bifurcateBy = (arr, fn) =>
- arr.reduce((acc, val, i) => (acc[fn(val, i) ? 0 : 1].push(val), acc), [[], []]);
-
-const bind = (fn, context, ...args) =>
- function() {
- return fn.apply(context, args.concat(...arguments));
+ const CSVToJSON = (data, delimiter = ',') => {
+ const titles = data.slice(0, data.indexOf('\n')).split(delimiter);
+ return data
+ .slice(data.indexOf('\n') + 1)
+ .split('\n')
+ .map(v => {
+ const values = v.split(delimiter);
+ return titles.reduce((obj, title, index) => ((obj[title] = values[index]), obj), {});
+ });
};
-const bindAll = (obj, ...fns) =>
- fns.forEach(
- fn => (
- f = obj[fn], obj[fn] = function() {
- return f.apply(obj);
- })
- );
+ const fs = typeof require !== "undefined" && require('fs');
+ const JSONToFile = (obj, filename) =>
+ fs.writeFile(`${filename}.json`, JSON.stringify(obj, null, 2));
-const bindKey = (context, fn, ...args) =>
- function() {
- return context[fn].apply(context, args.concat(...arguments));
- };
+ const JSONtoCSV = (arr, columns, delimiter = ',') =>
+ [
+ columns.join(delimiter),
+ ...arr.map(obj =>
+ columns.reduce(
+ (acc, key) => `${acc}${!acc.length ? '' : delimiter}"${!obj[key] ? '' : obj[key]}"`,
+ ''
+ )
+ )
+ ].join('\n');
-const binomialCoefficient = (n, k) => {
- if (Number.isNaN(n) || Number.isNaN(k)) return NaN;
- if (k < 0 || k > n) return 0;
- if (k === 0 || k === n) return 1;
- if (k === 1 || k === n - 1) return n;
- if (n - k < k) k = n - k;
- let res = n;
- for (let j = 2; j <= k; j++) res *= (n - j + 1) / j;
- return Math.round(res);
-};
+ const RGBToHex = (r, g, b) => ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0');
-const bottomVisible = () =>
- document.documentElement.clientHeight + window.scrollY >=
- (document.documentElement.scrollHeight || document.documentElement.clientHeight);
+ const URLJoin = (...args) =>
+ args
+ .join('/')
+ .replace(/[\/]+/g, '/')
+ .replace(/^(.+):\//, '$1://')
+ .replace(/^file:/, 'file:/')
+ .replace(/\/(\?|&|#[^!])/g, '$1')
+ .replace(/\?/g, '&')
+ .replace('&', '?');
-const btoa = str => new Buffer(str, 'binary').toString('base64');
+ const UUIDGeneratorBrowser = () =>
+ ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
+ (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16)
+ );
-const byteSize = str => new Blob([str]).size;
+ const crypto$1 = typeof require !== "undefined" && require('crypto');
+ const UUIDGeneratorNode = () =>
+ ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
+ (c ^ (crypto$1.randomBytes(1)[0] & (15 >> (c / 4)))).toString(16)
+ );
-const call = (key, ...args) => context => context[key](...args);
+ const all = (arr, fn = Boolean) => arr.every(fn);
-const capitalize = ([first, ...rest], lowerRest = false) =>
- first.toUpperCase() + (lowerRest ? rest.join('').toLowerCase() : rest.join(''));
+ const allEqual = arr => arr.every(val => val === arr[0]);
-const capitalizeEveryWord = str => str.replace(/\b[a-z]/g, char => char.toUpperCase());
+ const any = (arr, fn = Boolean) => arr.some(fn);
-const castArray = val => (Array.isArray(val) ? val : [val]);
+ const approximatelyEqual = (v1, v2, epsilon = 0.001) => Math.abs(v1 - v2) < epsilon;
-const chainAsync = fns => {
- let curr = 0;
- const next = () => fns[curr++](next);
- next();
-};
+ const arrayToCSV = (arr, delimiter = ',') =>
+ arr.map(v => v.map(x => `"${x}"`).join(delimiter)).join('\n');
-const chunk = (arr, size) =>
- Array.from({ length: Math.ceil(arr.length / size) }, (v, i) =>
- arr.slice(i * size, i * size + size)
- );
+ const arrayToHtmlList = (arr, listID) =>
+ (el => (
+ (el = document.querySelector('#' + listID)),
+ (el.innerHTML += arr.map(item => `${item}`).join(''))
+ ))();
-const clampNumber = (num, a, b) => Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));
+ const ary = (fn, n) => (...args) => fn(...args.slice(0, n));
-const cloneRegExp = regExp => new RegExp(regExp.source, regExp.flags);
+ const atob = str => new Buffer(str, 'base64').toString('binary');
-const coalesce = (...args) => args.find(_ => ![undefined, null].includes(_));
-
-const coalesceFactory = valid => (...args) => args.find(valid);
-
-const collectInto = fn => (...args) => fn(args);
-
-const colorize = (...args) => ({
- black: `\x1b[30m${args.join(' ')}`,
- red: `\x1b[31m${args.join(' ')}`,
- green: `\x1b[32m${args.join(' ')}`,
- yellow: `\x1b[33m${args.join(' ')}`,
- blue: `\x1b[34m${args.join(' ')}`,
- magenta: `\x1b[35m${args.join(' ')}`,
- cyan: `\x1b[36m${args.join(' ')}`,
- white: `\x1b[37m${args.join(' ')}`,
- bgBlack: `\x1b[40m${args.join(' ')}\x1b[0m`,
- bgRed: `\x1b[41m${args.join(' ')}\x1b[0m`,
- bgGreen: `\x1b[42m${args.join(' ')}\x1b[0m`,
- bgYellow: `\x1b[43m${args.join(' ')}\x1b[0m`,
- bgBlue: `\x1b[44m${args.join(' ')}\x1b[0m`,
- bgMagenta: `\x1b[45m${args.join(' ')}\x1b[0m`,
- bgCyan: `\x1b[46m${args.join(' ')}\x1b[0m`,
- bgWhite: `\x1b[47m${args.join(' ')}\x1b[0m`
-});
-
-const compact = arr => arr.filter(Boolean);
-
-const compose = (...fns) => fns.reduce((f, g) => (...args) => f(g(...args)));
-
-const composeRight = (...fns) => fns.reduce((f, g) => (...args) => g(f(...args)));
-
-const converge = (converger, fns) => (...args) => converger(...fns.map(fn => fn.apply(null, args)));
-
-const copyToClipboard = str => {
- const el = document.createElement('textarea');
- el.value = str;
- el.setAttribute('readonly', '');
- el.style.position = 'absolute';
- el.style.left = '-9999px';
- document.body.appendChild(el);
- const selected =
- document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false;
- el.select();
- document.execCommand('copy');
- document.body.removeChild(el);
- if (selected) {
- document.getSelection().removeAllRanges();
- document.getSelection().addRange(selected);
- }
-};
-
-const countBy = (arr, fn) =>
- arr.map(typeof fn === 'function' ? fn : val => val[fn]).reduce((acc, val, i) => {
- acc[val] = (acc[val] || 0) + 1;
- return acc;
- }, {});
-
-const countOccurrences = (arr, val) => arr.reduce((a, v) => (v === val ? a + 1 : a + 0), 0);
-
-const createElement = str => {
- const el = document.createElement('div');
- el.innerHTML = str;
- return el.firstElementChild;
-};
-
-const createEventHub = () => ({
- hub: Object.create(null),
- emit(event, data) {
- (this.hub[event] || []).forEach(handler => handler(data));
- },
- on(event, handler) {
- if (!this.hub[event]) this.hub[event] = [];
- this.hub[event].push(handler);
- },
- off(event, handler) {
- const i = (this.hub[event] || []).findIndex(h => h === handler);
- if (i > -1) this.hub[event].splice(i, 1);
- }
-});
-
-const currentURL = () => window.location.href;
-
-const curry = (fn, arity = fn.length, ...args) =>
- arity <= args.length ? fn(...args) : curry.bind(null, fn, arity, ...args);
-
-const debounce = (fn, ms = 0) => {
- let timeoutId;
- return function(...args) {
- clearTimeout(timeoutId);
- timeoutId = setTimeout(() => fn.apply(this, args), ms);
- };
-};
-
-const decapitalize = ([first, ...rest], upperRest = false) =>
- first.toLowerCase() + (upperRest ? rest.join('').toUpperCase() : rest.join(''));
-
-const deepClone = obj => {
- let clone = Object.assign({}, obj);
- Object.keys(clone).forEach(
- key => (clone[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key])
- );
- return clone;
-};
-
-const deepFlatten = arr => [].concat(...arr.map(v => (Array.isArray(v) ? deepFlatten(v) : v)));
-
-const defaults = (obj, ...defs) => Object.assign({}, obj, ...defs.reverse(), obj);
-
-const defer = (fn, ...args) => setTimeout(fn, 1, ...args);
-
-const degreesToRads = deg => deg * Math.PI / 180.0;
-
-const delay = (fn, wait, ...args) => setTimeout(fn, wait, ...args);
-
-const detectDeviceType = () =>
- /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)
- ? 'Mobile'
- : 'Desktop';
-
-const difference = (a, b) => {
- const s = new Set(b);
- return a.filter(x => !s.has(x));
-};
-
-const differenceBy = (a, b, fn) => {
- const s = new Set(b.map(v => fn(v)));
- return a.filter(x => !s.has(fn(x)));
-};
-
-const differenceWith = (arr, val, comp) => arr.filter(a => val.findIndex(b => comp(a, b)) === -1);
-
-const digitize = n => [...`${n}`].map(i => parseInt(i));
-
-const distance = (x0, y0, x1, y1) => Math.hypot(x1 - x0, y1 - y0);
-
-const drop = (arr, n = 1) => arr.slice(n);
-
-const dropRight = (arr, n = 1) => arr.slice(0, -n);
-
-const dropRightWhile = (arr, func) => {
- while (arr.length > 0 && !func(arr[arr.length - 1])) arr = arr.slice(0, -1);
- return arr;
-};
-
-const dropWhile = (arr, func) => {
- while (arr.length > 0 && !func(arr[0])) arr = arr.slice(1);
- return arr;
-};
-
-const elementIsVisibleInViewport = (el, partiallyVisible = false) => {
- const { top, left, bottom, right } = el.getBoundingClientRect();
- const { innerHeight, innerWidth } = window;
- return partiallyVisible
- ? ((top > 0 && top < innerHeight) || (bottom > 0 && bottom < innerHeight)) &&
- ((left > 0 && left < innerWidth) || (right > 0 && right < innerWidth))
- : top >= 0 && left >= 0 && bottom <= innerHeight && right <= innerWidth;
-};
-
-const elo = ([...ratings], kFactor = 32, selfRating) => {
- const [a, b] = ratings;
- const expectedScore = (self, opponent) => 1 / (1 + 10 ** ((opponent - self) / 400));
- const newRating = (rating, i) =>
- (selfRating || rating) + kFactor * (i - expectedScore(i ? a : b, i ? b : a));
- if (ratings.length === 2) {
- return [newRating(a, 1), newRating(b, 0)];
- } else {
- for (let i = 0; i < ratings.length; i++) {
- let j = i;
- while (j < ratings.length - 1) {
- [ratings[i], ratings[j + 1]] = elo([ratings[i], ratings[j + 1]], kFactor);
- j++;
- }
+ const attempt = (fn, ...args) => {
+ try {
+ return fn(...args);
+ } catch (e) {
+ return e instanceof Error ? e : new Error(e);
}
- }
- return ratings;
-};
-
-const equals = (a, b) => {
- if (a === b) return true;
- if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime();
- if (!a || !b || (typeof a != 'object' && typeof b !== 'object')) return a === b;
- if (a === null || a === undefined || b === null || b === undefined) return false;
- if (a.prototype !== b.prototype) return false;
- let keys = Object.keys(a);
- if (keys.length !== Object.keys(b).length) return false;
- return keys.every(k => equals(a[k], b[k]));
-};
-
-const escapeHTML = str =>
- str.replace(
- /[&<>'"]/g,
- tag =>
- ({
- '&': '&',
- '<': '<',
- '>': '>',
- "'": ''',
- '"': '"'
- }[tag] || tag)
- );
-
-const escapeRegExp = str => str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
-
-const everyNth = (arr, nth) => arr.filter((e, i) => i % nth === nth - 1);
-
-const extendHex = shortHex =>
- '#' +
- shortHex
- .slice(shortHex.startsWith('#') ? 1 : 0)
- .split('')
- .map(x => x + x)
- .join('');
-
-const factorial = n =>
- n < 0
- ? (() => {
- throw new TypeError('Negative numbers are not allowed!');
- })()
- : n <= 1 ? 1 : n * factorial(n - 1);
-
-const fibonacci = n =>
- Array.from({ length: n }).reduce(
- (acc, val, i) => acc.concat(i > 1 ? acc[i - 1] + acc[i - 2] : i),
- []
- );
-
-const filterNonUnique = arr => arr.filter(i => arr.indexOf(i) === arr.lastIndexOf(i));
-
-const findKey = (obj, fn) => Object.keys(obj).find(key => fn(obj[key], key, obj));
-
-const findLast = (arr, fn) => arr.filter(fn).slice(-1)[0];
-
-const findLastIndex = (arr, fn) =>
- arr
- .map((val, i) => [i, val])
- .filter(val => fn(val[1], val[0], arr))
- .slice(-1)[0][0];
-
-const findLastKey = (obj, fn) =>
- Object.keys(obj)
- .reverse()
- .find(key => fn(obj[key], key, obj));
-
-const flatten = (arr, depth = 1) =>
- depth !== 1
- ? arr.reduce((a, v) => a.concat(Array.isArray(v) ? flatten(v, depth - 1) : v), [])
- : arr.reduce((a, v) => a.concat(v), []);
-
-const flattenObject = (obj, prefix = '') =>
- Object.keys(obj).reduce((acc, k) => {
- const pre = prefix.length ? prefix + '.' : '';
- if (typeof obj[k] === 'object') Object.assign(acc, flattenObject(obj[k], pre + k));
- else acc[pre + k] = obj[k];
- return acc;
- }, {});
-
-const flip = fn => (first, ...rest) => fn(...rest, first);
-
-const forEachRight = (arr, callback) =>
- arr
- .slice(0)
- .reverse()
- .forEach(callback);
-
-const forOwn = (obj, fn) => Object.keys(obj).forEach(key => fn(obj[key], key, obj));
-
-const forOwnRight = (obj, fn) =>
- Object.keys(obj)
- .reverse()
- .forEach(key => fn(obj[key], key, obj));
-
-const formatDuration = ms => {
- if (ms < 0) ms = -ms;
- const time = {
- day: Math.floor(ms / 86400000),
- hour: Math.floor(ms / 3600000) % 24,
- minute: Math.floor(ms / 60000) % 60,
- second: Math.floor(ms / 1000) % 60,
- millisecond: Math.floor(ms) % 1000
};
- return Object.entries(time)
- .filter(val => val[1] !== 0)
- .map(val => val[1] + ' ' + (val[1] !== 1 ? val[0] + 's' : val[0]))
- .join(', ');
-};
-const fromCamelCase = (str, separator = '_') =>
- str
- .replace(/([a-z\d])([A-Z])/g, '$1' + separator + '$2')
- .replace(/([A-Z]+)([A-Z][a-z\d]+)/g, '$1' + separator + '$2')
- .toLowerCase();
+ const average = (...nums) => nums.reduce((acc, val) => acc + val, 0) / nums.length;
-const functionName = fn => (console.debug(fn.name), fn);
+ const averageBy = (arr, fn) =>
+ arr.map(typeof fn === 'function' ? fn : val => val[fn]).reduce((acc, val) => acc + val, 0) /
+ arr.length;
-const functions = (obj, inherited = false) =>
- (inherited
- ? [...Object.keys(obj), ...Object.keys(Object.getPrototypeOf(obj))]
- : Object.keys(obj)
- ).filter(key => typeof obj[key] === 'function');
+ const bifurcate = (arr, filter) =>
+ arr.reduce((acc, val, i) => (acc[filter[i] ? 0 : 1].push(val), acc), [[], []]);
-const gcd = (...arr) => {
- const _gcd = (x, y) => (!y ? x : gcd(y, x % y));
- return [...arr].reduce((a, b) => _gcd(a, b));
-};
+ const bifurcateBy = (arr, fn) =>
+ arr.reduce((acc, val, i) => (acc[fn(val, i) ? 0 : 1].push(val), acc), [[], []]);
-const geometricProgression = (end, start = 1, step = 2) =>
- Array.from({ length: Math.floor(Math.log(end / start) / Math.log(step)) + 1 }).map(
- (v, i) => start * step ** i
- );
+ const bind = (fn, context, ...boundArgs) => (...args) => fn.apply(context, [...boundArgs, ...args]);
-const get = (from, ...selectors) =>
- [...selectors].map(s =>
- s
- .replace(/\[([^\[\]]*)\]/g, '.$1.')
- .split('.')
- .filter(t => t !== '')
- .reduce((prev, cur) => prev && prev[cur], from)
- );
+ const bindAll = (obj, ...fns) =>
+ fns.forEach(
+ fn => (
+ (f = obj[fn]),
+ (obj[fn] = function() {
+ return f.apply(obj);
+ })
+ )
+ );
-const getColonTimeFromDate = date => date.toTimeString().slice(0, 8);
+ const bindKey = (context, fn, ...boundArgs) => (...args) =>
+ context[fn].apply(context, [...boundArgs, ...args]);
-const getDaysDiffBetweenDates = (dateInitial, dateFinal) =>
- (dateFinal - dateInitial) / (1000 * 3600 * 24);
+ const binomialCoefficient = (n, k) => {
+ if (Number.isNaN(n) || Number.isNaN(k)) return NaN;
+ if (k < 0 || k > n) return 0;
+ if (k === 0 || k === n) return 1;
+ if (k === 1 || k === n - 1) return n;
+ if (n - k < k) k = n - k;
+ let res = n;
+ for (let j = 2; j <= k; j++) res *= (n - j + 1) / j;
+ return Math.round(res);
+ };
-const getMeridiemSuffixOfInteger = num =>
- num === 0 || num === 24
- ? 12 + 'am'
- : num === 12 ? 12 + 'pm' : num < 12 ? num % 12 + 'am' : num % 12 + 'pm';
+ const bottomVisible = () =>
+ document.documentElement.clientHeight + window.scrollY >=
+ (document.documentElement.scrollHeight || document.documentElement.clientHeight);
-const getScrollPosition = (el = window) => ({
- x: el.pageXOffset !== undefined ? el.pageXOffset : el.scrollLeft,
- y: el.pageYOffset !== undefined ? el.pageYOffset : el.scrollTop
-});
+ const btoa = str => new Buffer(str, 'binary').toString('base64');
-const getStyle = (el, ruleName) => getComputedStyle(el)[ruleName];
+ const byteSize = str => new Blob([str]).size;
-const getType = v =>
- v === undefined ? 'undefined' : v === null ? 'null' : v.constructor.name.toLowerCase();
+ const call = (key, ...args) => context => context[key](...args);
-const getURLParameters = url =>
- (url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(
- (a, v) => (a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1), a),
- {}
- );
+ const capitalize = ([first, ...rest], lowerRest = false) =>
+ first.toUpperCase() + (lowerRest ? rest.join('').toLowerCase() : rest.join(''));
-const groupBy = (arr, fn) =>
- arr.map(typeof fn === 'function' ? fn : val => val[fn]).reduce((acc, val, i) => {
- acc[val] = (acc[val] || []).concat(arr[i]);
- return acc;
- }, {});
+ const capitalizeEveryWord = str => str.replace(/\b[a-z]/g, char => char.toUpperCase());
-const hammingDistance = (num1, num2) => ((num1 ^ num2).toString(2).match(/1/g) || '').length;
+ const castArray = val => (Array.isArray(val) ? val : [val]);
-const hasClass = (el, className) => el.classList.contains(className);
+ const chainAsync = fns => {
+ let curr = 0;
+ const next = () => fns[curr++](next);
+ next();
+ };
-const hasFlags = (...flags) =>
- flags.every(flag => process.argv.includes(/^-{1,2}/.test(flag) ? flag : '--' + flag));
+ const chunk = (arr, size) =>
+ Array.from({ length: Math.ceil(arr.length / size) }, (v, i) =>
+ arr.slice(i * size, i * size + size)
+ );
-const hashBrowser = val =>
- crypto.subtle.digest('SHA-256', new TextEncoder('utf-8').encode(val)).then(h => {
- let hexes = [],
- view = new DataView(h);
- for (let i = 0; i < view.byteLength; i += 4)
- hexes.push(('00000000' + view.getUint32(i).toString(16)).slice(-8));
- return hexes.join('');
+ const clampNumber = (num, a, b) => Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));
+
+ const cloneRegExp = regExp => new RegExp(regExp.source, regExp.flags);
+
+ const coalesce = (...args) => args.find(_ => ![undefined, null].includes(_));
+
+ const coalesceFactory = valid => (...args) => args.find(valid);
+
+ const collectInto = fn => (...args) => fn(args);
+
+ const colorize = (...args) => ({
+ black: `\x1b[30m${args.join(' ')}`,
+ red: `\x1b[31m${args.join(' ')}`,
+ green: `\x1b[32m${args.join(' ')}`,
+ yellow: `\x1b[33m${args.join(' ')}`,
+ blue: `\x1b[34m${args.join(' ')}`,
+ magenta: `\x1b[35m${args.join(' ')}`,
+ cyan: `\x1b[36m${args.join(' ')}`,
+ white: `\x1b[37m${args.join(' ')}`,
+ bgBlack: `\x1b[40m${args.join(' ')}\x1b[0m`,
+ bgRed: `\x1b[41m${args.join(' ')}\x1b[0m`,
+ bgGreen: `\x1b[42m${args.join(' ')}\x1b[0m`,
+ bgYellow: `\x1b[43m${args.join(' ')}\x1b[0m`,
+ bgBlue: `\x1b[44m${args.join(' ')}\x1b[0m`,
+ bgMagenta: `\x1b[45m${args.join(' ')}\x1b[0m`,
+ bgCyan: `\x1b[46m${args.join(' ')}\x1b[0m`,
+ bgWhite: `\x1b[47m${args.join(' ')}\x1b[0m`
});
-const crypto$2 = typeof require !== "undefined" && require('crypto');
-const hashNode = val =>
- new Promise(resolve =>
- setTimeout(
- () =>
- resolve(
- crypto$2
- .createHash('sha256')
- .update(val)
- .digest('hex')
- ),
- 0
- )
- );
+ const compact = arr => arr.filter(Boolean);
-const head = arr => arr[0];
+ const compose = (...fns) => fns.reduce((f, g) => (...args) => f(g(...args)));
-const hexToRGB = hex => {
- let alpha = false,
- h = hex.slice(hex.startsWith('#') ? 1 : 0);
- if (h.length === 3) h = [...h].map(x => x + x).join('');
- else if (h.length === 8) alpha = true;
- h = parseInt(h, 16);
- return (
- 'rgb' +
- (alpha ? 'a' : '') +
- '(' +
- (h >>> (alpha ? 24 : 16)) +
- ', ' +
- ((h & (alpha ? 0x00ff0000 : 0x00ff00)) >>> (alpha ? 16 : 8)) +
- ', ' +
- ((h & (alpha ? 0x0000ff00 : 0x0000ff)) >>> (alpha ? 8 : 0)) +
- (alpha ? `, ${h & 0x000000ff}` : '') +
- ')'
- );
-};
+ const composeRight = (...fns) => fns.reduce((f, g) => (...args) => g(f(...args)));
-const hide = (...el) => [...el].forEach(e => (e.style.display = 'none'));
+ const converge = (converger, fns) => (...args) => converger(...fns.map(fn => fn.apply(null, args)));
-const httpGet = (url, callback, err = console.error) => {
- const request = new XMLHttpRequest();
- request.open('GET', url, true);
- request.onload = () => callback(request.responseText);
- request.onerror = () => err(request);
- request.send();
-};
-
-const httpPost = (url, data, callback, err = console.error) => {
- const request = new XMLHttpRequest();
- request.open('POST', url, true);
- request.setRequestHeader('Content-type', 'application/json; charset=utf-8');
- request.onload = () => callback(request.responseText);
- request.onerror = () => err(request);
- request.send(data);
-};
-
-const httpsRedirect = () => {
- if (location.protocol !== 'https:') location.replace('https://' + location.href.split('//')[1]);
-};
-
-const inRange = (n, start, end = null) => {
- if (end && start > end) end = [start, (start = end)][0];
- return end == null ? n >= 0 && n < start : n >= start && n < end;
-};
-
-const indexOfAll = (arr, val) => {
- const indices = [];
- arr.forEach((el, i) => el === val && indices.push(i));
- return indices;
-};
-
-const initial = arr => arr.slice(0, -1);
-
-const initialize2DArray = (w, h, val = null) =>
- Array.from({ length: h }).map(() => Array.from({ length: w }).fill(val));
-
-const initializeArrayWithRange = (end, start = 0, step = 1) =>
- Array.from({ length: Math.ceil((end + 1 - start) / step) }).map((v, i) => i * step + start);
-
-const initializeArrayWithRangeRight = (end, start = 0, step = 1) =>
- Array.from({ length: Math.ceil((end + 1 - start) / step) }).map(
- (v, i, arr) => (arr.length - i - 1) * step + start
- );
-
-const initializeArrayWithValues = (n, val = 0) => Array(n).fill(val);
-
-const intersection = (a, b) => {
- const s = new Set(b);
- return a.filter(x => s.has(x));
-};
-
-const intersectionBy = (a, b, fn) => {
- const s = new Set(b.map(x => fn(x)));
- return a.filter(x => s.has(fn(x)));
-};
-
-const intersectionWith = (a, b, comp) => a.filter(x => b.findIndex(y => comp(x, y)) !== -1);
-
-const invertKeyValues = (obj, fn) =>
- Object.keys(obj).reduce((acc, key) => {
- const val = fn ? fn(obj[key]) : obj[key];
- acc[val] = acc[val] || [];
- acc[val].push(key);
- return acc;
- }, {});
-
-const is = (type, val) => val instanceof type;
-
-const isAbsoluteURL = str => /^[a-z][a-z0-9+.-]*:/.test(str);
-
-const isAnagram = (str1, str2) => {
- const normalize = str =>
- str
- .toLowerCase()
- .replace(/[^a-z0-9]/gi, '')
- .split('')
- .sort()
- .join('');
- return normalize(str1) === normalize(str2);
-};
-
-const isArrayLike = val => {
- try {
- return [...val], true;
- } catch (e) {
- return false;
- }
-};
-
-const isBoolean = val => typeof val === 'boolean';
-
-const isDivisible = (dividend, divisor) => dividend % divisor === 0;
-
-const isEmpty = val => val == null || !(Object.keys(val) || val).length;
-
-const isEven = num => num % 2 === 0;
-
-const isFunction = val => typeof val === 'function';
-
-const isLowerCase = str => str === str.toLowerCase();
-
-const isNil = val => val === undefined || val === null;
-
-const isNull = val => val === null;
-
-const isNumber = val => typeof val === 'number';
-
-const isObject = obj => obj === Object(obj);
-
-const isObjectLike = val => val !== null && typeof val === 'object';
-
-const isPlainObject = val => !!val && typeof val === 'object' && val.constructor === Object;
-
-const isPrime = num => {
- const boundary = Math.floor(Math.sqrt(num));
- for (var i = 2; i <= boundary; i++) if (num % i === 0) return false;
- return num >= 2;
-};
-
-const isPrimitive = val => !['object', 'function'].includes(typeof val) || val === null;
-
-const isPromiseLike = obj =>
- obj !== null &&
- (typeof obj === 'object' || typeof obj === 'function') &&
- typeof obj.then === 'function';
-
-const isSorted = arr => {
- const direction = arr[0] > arr[1] ? -1 : 1;
- for (let [i, val] of arr.entries())
- if (i === arr.length - 1) return direction;
- else if ((val - arr[i + 1]) * direction > 0) return 0;
-};
-
-const isString = val => typeof val === 'string';
-
-const isSymbol = val => typeof val === 'symbol';
-
-const isTravisCI = () => 'TRAVIS' in process.env && 'CI' in process.env;
-
-const isUndefined = val => val === undefined;
-
-const isUpperCase = str => str === str.toUpperCase();
-
-const isValidJSON = obj => {
- try {
- JSON.parse(obj);
- return true;
- } catch (e) {
- return false;
- }
-};
-
-const join = (arr, separator = ',', end = separator) =>
- arr.reduce(
- (acc, val, i) =>
- i === arr.length - 2
- ? acc + val + end
- : i === arr.length - 1 ? acc + val : acc + val + separator,
- ''
- );
-
-const last = arr => arr[arr.length - 1];
-
-const lcm = (...arr) => {
- const gcd = (x, y) => (!y ? x : gcd(y, x % y));
- const _lcm = (x, y) => x * y / gcd(x, y);
- return [...arr].reduce((a, b) => _lcm(a, b));
-};
-
-const longestItem = (...vals) => [...vals].sort((a, b) => b.length - a.length)[0];
-
-const lowercaseKeys = obj =>
- Object.keys(obj).reduce((acc, key) => {
- acc[key.toLowerCase()] = obj[key];
- return acc;
- }, {});
-
-const luhnCheck = num => {
- let arr = (num + '')
- .split('')
- .reverse()
- .map(x => parseInt(x));
- let lastDigit = arr.splice(0, 1)[0];
- let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + (val * 2) % 9 || 9), 0);
- sum += lastDigit;
- return sum % 10 === 0;
-};
-
-const mapKeys = (obj, fn) =>
- Object.keys(obj).reduce((acc, k) => {
- acc[fn(obj[k], k, obj)] = obj[k];
- return acc;
- }, {});
-
-const mapObject = (arr, fn) =>
- (a => (
- a = [arr, arr.map(fn)], a[0].reduce((acc, val, ind) => (acc[val] = a[1][ind], acc), {})))();
-
-const mapValues = (obj, fn) =>
- Object.keys(obj).reduce((acc, k) => {
- acc[k] = fn(obj[k], k, obj);
- return acc;
- }, {});
-
-const mask = (cc, num = 4, mask = '*') =>
- ('' + cc).slice(0, -num).replace(/./g, mask) + ('' + cc).slice(-num);
-
-const matches = (obj, source) =>
- Object.keys(source).every(key => obj.hasOwnProperty(key) && obj[key] === source[key]);
-
-const matchesWith = (obj, source, fn) =>
- Object.keys(source).every(
- key =>
- obj.hasOwnProperty(key) && fn
- ? fn(obj[key], source[key], key, obj, source)
- : obj[key] == source[key]
- );
-
-const maxBy = (arr, fn) => Math.max(...arr.map(typeof fn === 'function' ? fn : val => val[fn]));
-
-const maxN = (arr, n = 1) => [...arr].sort((a, b) => b - a).slice(0, n);
-
-const median = arr => {
- const mid = Math.floor(arr.length / 2),
- nums = [...arr].sort((a, b) => a - b);
- return arr.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;
-};
-
-const memoize = fn => {
- const cache = new Map();
- const cached = function(val) {
- return cache.has(val) ? cache.get(val) : cache.set(val, fn.call(this, val)) && cache.get(val);
+ const copyToClipboard = str => {
+ const el = document.createElement('textarea');
+ el.value = str;
+ el.setAttribute('readonly', '');
+ el.style.position = 'absolute';
+ el.style.left = '-9999px';
+ document.body.appendChild(el);
+ const selected =
+ document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false;
+ el.select();
+ document.execCommand('copy');
+ document.body.removeChild(el);
+ if (selected) {
+ document.getSelection().removeAllRanges();
+ document.getSelection().addRange(selected);
+ }
};
- cached.cache = cache;
- return cached;
-};
-const merge = (...objs) =>
- [...objs].reduce(
- (acc, obj) =>
- Object.keys(obj).reduce((a, k) => {
- acc[k] = acc.hasOwnProperty(k) ? [].concat(acc[k]).concat(obj[k]) : obj[k];
- return acc;
- }, {}),
- {}
- );
-
-const minBy = (arr, fn) => Math.min(...arr.map(typeof fn === 'function' ? fn : val => val[fn]));
-
-const minN = (arr, n = 1) => [...arr].sort((a, b) => a - b).slice(0, n);
-
-const mostPerformant = (fns, iterations = 10000) => {
- const times = fns.map(fn => {
- const before = performance.now();
- for (let i = 0; i < iterations; i++) fn();
- return performance.now() - before;
- });
- return times.indexOf(Math.min(...times));
-};
-
-const negate = func => (...args) => !func(...args);
-
-const none = (arr, fn = Boolean) => !arr.some(fn);
-
-const nthArg = n => (...args) => args.slice(n)[0];
-
-const nthElement = (arr, n = 0) => (n > 0 ? arr.slice(n, n + 1) : arr.slice(n))[0];
-
-const objectFromPairs = arr => arr.reduce((a, v) => (a[v[0]] = v[1], a), {});
-
-const objectToPairs = obj => Object.keys(obj).map(k => [k, obj[k]]);
-
-const observeMutations = (element, callback, options) => {
- const observer = new MutationObserver(mutations => mutations.forEach(m => callback(m)));
- observer.observe(
- element,
- Object.assign(
- {
- childList: true,
- attributes: true,
- attributeOldValue: true,
- characterData: true,
- characterDataOldValue: true,
- subtree: true
- },
- options
- )
- );
- return observer;
-};
-
-const off = (el, evt, fn, opts = false) => el.removeEventListener(evt, fn, opts);
-
-const omit = (obj, arr) =>
- Object.keys(obj)
- .filter(k => !arr.includes(k))
- .reduce((acc, key) => (acc[key] = obj[key], acc), {});
-
-const omitBy = (obj, fn) =>
- Object.keys(obj)
- .filter(k => !fn(obj[k], k))
- .reduce((acc, key) => (acc[key] = obj[key], acc), {});
-
-const on = (el, evt, fn, opts = {}) => {
- const delegatorFn = e => e.target.matches(opts.target) && fn.call(e.target, e);
- el.addEventListener(evt, opts.target ? delegatorFn : fn, opts.options || false);
- if (opts.target) return delegatorFn;
-};
-
-const onUserInputChange = callback => {
- let type = 'mouse',
- lastTime = 0;
- const mousemoveHandler = () => {
- const now = performance.now();
- if (now - lastTime < 20)
- type = 'mouse', callback(type), document.removeEventListener('mousemove', mousemoveHandler);
- lastTime = now;
- };
- document.addEventListener('touchstart', () => {
- if (type === 'touch') return;
- type = 'touch', callback(type), document.addEventListener('mousemove', mousemoveHandler);
- });
-};
-
-const once = fn => {
- let called = false;
- return function(...args) {
- if (called) return;
- called = true;
- return fn.apply(this, args);
- };
-};
-
-const orderBy = (arr, props, orders) =>
- [...arr].sort((a, b) =>
- props.reduce((acc, prop, i) => {
- if (acc === 0) {
- const [p1, p2] = orders && orders[i] === 'desc' ? [b[prop], a[prop]] : [a[prop], b[prop]];
- acc = p1 > p2 ? 1 : p1 < p2 ? -1 : 0;
- }
- return acc;
- }, 0)
- );
-
-const over = (...fns) => (...args) => fns.map(fn => fn.apply(null, args));
-
-const overArgs = (fn, transforms) => (...args) => fn(...args.map((val, i) => transforms[i](val)));
-
-const palindrome = str => {
- const s = str.toLowerCase().replace(/[\W_]/g, '');
- return (
- s ===
- s
- .split('')
- .reverse()
- .join('')
- );
-};
-
-const parseCookie = str =>
- str
- .split(';')
- .map(v => v.split('='))
- .reduce((acc, v) => {
- acc[decodeURIComponent(v[0].trim())] = decodeURIComponent(v[1].trim());
+ const countBy = (arr, fn) =>
+ arr.map(typeof fn === 'function' ? fn : val => val[fn]).reduce((acc, val, i) => {
+ acc[val] = (acc[val] || 0) + 1;
return acc;
}, {});
-const partial = (fn, ...partials) => (...args) => fn(...partials, ...args);
+ const countOccurrences = (arr, val) => arr.reduce((a, v) => (v === val ? a + 1 : a), 0);
-const partialRight = (fn, ...partials) => (...args) => fn(...args, ...partials);
+ const counter = (selector, start, end, step = 1, duration = 2000) => {
+ let current = start,
+ _step = (end - start) * step < 0 ? -step : step,
+ timer = setInterval(() => {
+ current += _step;
+ document.querySelector(selector).innerHTML = current;
+ if (current >= end) document.querySelector(selector).innerHTML = end;
+ if (current >= end) clearInterval(timer);
+ }, Math.abs(Math.floor(duration / (end - start))));
+ return timer;
+ };
-const partition = (arr, fn) =>
- arr.reduce(
- (acc, val, i, arr) => {
- acc[fn(val, i, arr) ? 0 : 1].push(val);
- return acc;
+ const createElement = str => {
+ const el = document.createElement('div');
+ el.innerHTML = str;
+ return el.firstElementChild;
+ };
+
+ const createEventHub = () => ({
+ hub: Object.create(null),
+ emit(event, data) {
+ (this.hub[event] || []).forEach(handler => handler(data));
},
- [[], []]
- );
-
-const percentile = (arr, val) =>
- 100 * arr.reduce((acc, v) => acc + (v < val ? 1 : 0) + (v === val ? 0.5 : 0), 0) / arr.length;
-
-const permutations = arr => {
- if (arr.length <= 2) return arr.length === 2 ? [arr, [arr[1], arr[0]]] : arr;
- return arr.reduce(
- (acc, item, i) =>
- acc.concat(
- permutations([...arr.slice(0, i), ...arr.slice(i + 1)]).map(val => [item, ...val])
- ),
- []
- );
-};
-
-const pick = (obj, arr) =>
- arr.reduce((acc, curr) => (curr in obj && (acc[curr] = obj[curr]), acc), {});
-
-const pickBy = (obj, fn) =>
- Object.keys(obj)
- .filter(k => fn(obj[k], k))
- .reduce((acc, key) => (acc[key] = obj[key], acc), {});
-
-const pipeAsyncFunctions = (...fns) => arg => fns.reduce((p, f) => p.then(f), Promise.resolve(arg));
-
-const pipeFunctions = (...fns) => fns.reduce((f, g) => (...args) => g(f(...args)));
-
-const pluralize = (val, word, plural = word + 's') => {
- const _pluralize = (num, word, plural = word + 's') =>
- [1, -1].includes(Number(num)) ? word : plural;
- if (typeof val === 'object') return (num, word) => _pluralize(num, word, val[word]);
- return _pluralize(val, word, plural);
-};
-
-const powerset = arr => arr.reduce((a, v) => a.concat(a.map(r => [v].concat(r))), [[]]);
-
-const prettyBytes = (num, precision = 3, addSpace = true) => {
- const UNITS = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
- if (Math.abs(num) < 1) return num + (addSpace ? ' ' : '') + UNITS[0];
- const exponent = Math.min(Math.floor(Math.log10(num < 0 ? -num : num) / 3), UNITS.length - 1);
- const n = Number(((num < 0 ? -num : num) / 1000 ** exponent).toPrecision(precision));
- return (num < 0 ? '-' : '') + n + (addSpace ? ' ' : '') + UNITS[exponent];
-};
-
-const primes = num => {
- let arr = Array.from({ length: num - 1 }).map((x, i) => i + 2),
- sqroot = Math.floor(Math.sqrt(num)),
- numsTillSqroot = Array.from({ length: sqroot - 1 }).map((x, i) => i + 2);
- numsTillSqroot.forEach(x => (arr = arr.filter(y => y % x !== 0 || y === x)));
- return arr;
-};
-
-const promisify = func => (...args) =>
- new Promise((resolve, reject) =>
- func(...args, (err, result) => (err ? reject(err) : resolve(result)))
- );
-
-const pull = (arr, ...args) => {
- let argState = Array.isArray(args[0]) ? args[0] : args;
- let pulled = arr.filter((v, i) => !argState.includes(v));
- arr.length = 0;
- pulled.forEach(v => arr.push(v));
-};
-
-const pullAtIndex = (arr, pullArr) => {
- let removed = [];
- let pulled = arr
- .map((v, i) => (pullArr.includes(i) ? removed.push(v) : v))
- .filter((v, i) => !pullArr.includes(i));
- arr.length = 0;
- pulled.forEach(v => arr.push(v));
- return removed;
-};
-
-const pullAtValue = (arr, pullArr) => {
- let removed = [],
- pushToRemove = arr.forEach((v, i) => (pullArr.includes(v) ? removed.push(v) : v)),
- mutateTo = arr.filter((v, i) => !pullArr.includes(v));
- arr.length = 0;
- mutateTo.forEach(v => arr.push(v));
- return removed;
-};
-
-const pullBy = (arr, ...args) => {
- const length = args.length;
- let fn = length > 1 ? args[length - 1] : undefined;
- fn = typeof fn == 'function' ? (args.pop(), fn) : undefined;
- let argState = (Array.isArray(args[0]) ? args[0] : args).map(val => fn(val));
- let pulled = arr.filter((v, i) => !argState.includes(fn(v)));
- arr.length = 0;
- pulled.forEach(v => arr.push(v));
-};
-
-const radsToDegrees = rad => rad * 180.0 / Math.PI;
-
-const randomHexColorCode = () => {
- let n = (Math.random() * 0xfffff * 1000000).toString(16);
- return '#' + n.slice(0, 6);
-};
-
-const randomIntArrayInRange = (min, max, n = 1) =>
- Array.from({ length: n }, () => Math.floor(Math.random() * (max - min + 1)) + min);
-
-const randomIntegerInRange = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;
-
-const randomNumberInRange = (min, max) => Math.random() * (max - min) + min;
-
-const fs$1 = typeof require !== "undefined" && require('fs');
-const readFileLines = filename =>
- fs$1
- .readFileSync(filename)
- .toString('UTF8')
- .split('\n');
-
-const rearg = (fn, indexes) => (...args) =>
- fn(
- ...args.reduce(
- (acc, val, i) => (acc[indexes.indexOf(i)] = val, acc),
- Array.from({ length: indexes.length })
- )
- );
-
-const redirect = (url, asLink = true) =>
- asLink ? (window.location.href = url) : window.location.replace(url);
-
-const reduceSuccessive = (arr, fn, acc) =>
- arr.reduce((res, val, i, arr) => (res.push(fn(res.slice(-1)[0], val, i, arr)), res), [acc]);
-
-const reduceWhich = (arr, comparator = (a, b) => a - b) =>
- arr.reduce((a, b) => (comparator(a, b) >= 0 ? b : a));
-
-const reducedFilter = (data, keys, fn) =>
- data.filter(fn).map(el =>
- keys.reduce((acc, key) => {
- acc[key] = el[key];
- return acc;
- }, {})
- );
-
-const remove = (arr, func) =>
- Array.isArray(arr)
- ? arr.filter(func).reduce((acc, val) => {
- arr.splice(arr.indexOf(val), 1);
- return acc.concat(val);
- }, [])
- : [];
-
-const removeNonASCII = str => str.replace(/[^\x20-\x7E]/g, '');
-
-const reverseString = str => [...str].reverse().join('');
-
-const round = (n, decimals = 0) => Number(`${Math.round(`${n}e${decimals}`)}e-${decimals}`);
-
-const runAsync = fn => {
- const worker = new Worker(
- URL.createObjectURL(new Blob([`postMessage((${fn})());`]), {
- type: 'application/javascript; charset=utf-8'
- })
- );
- return new Promise((res, rej) => {
- worker.onmessage = ({ data }) => {
- res(data), worker.terminate();
- };
- worker.onerror = err => {
- rej(err), worker.terminate();
- };
+ on(event, handler) {
+ if (!this.hub[event]) this.hub[event] = [];
+ this.hub[event].push(handler);
+ },
+ off(event, handler) {
+ const i = (this.hub[event] || []).findIndex(h => h === handler);
+ if (i > -1) this.hub[event].splice(i, 1);
+ }
});
-};
-const runPromisesInSeries = ps => ps.reduce((p, next) => p.then(next), Promise.resolve());
+ const currentURL = () => window.location.href;
-const sample = arr => arr[Math.floor(Math.random() * arr.length)];
+ const curry = (fn, arity = fn.length, ...args) =>
+ arity <= args.length ? fn(...args) : curry.bind(null, fn, arity, ...args);
-const sampleSize = ([...arr], n = 1) => {
- let m = arr.length;
- while (m) {
- const i = Math.floor(Math.random() * m--);
- [arr[m], arr[i]] = [arr[i], arr[m]];
- }
- return arr.slice(0, n);
-};
+ const dayOfYear = date =>
+ Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24);
-const scrollToTop = () => {
- const c = document.documentElement.scrollTop || document.body.scrollTop;
- if (c > 0) {
- window.requestAnimationFrame(scrollToTop);
- window.scrollTo(0, c - c / 8);
- }
-};
+ const debounce = (fn, ms = 0) => {
+ let timeoutId;
+ return function(...args) {
+ clearTimeout(timeoutId);
+ timeoutId = setTimeout(() => fn.apply(this, args), ms);
+ };
+ };
-const sdbm = str => {
- let arr = str.split('');
- return arr.reduce(
- (hashCode, currentVal) =>
- (hashCode = currentVal.charCodeAt(0) + (hashCode << 6) + (hashCode << 16) - hashCode),
- 0
- );
-};
+ const decapitalize = ([first, ...rest], upperRest = false) =>
+ first.toLowerCase() + (upperRest ? rest.join('').toUpperCase() : rest.join(''));
-const serializeCookie = (name, val) => `${encodeURIComponent(name)}=${encodeURIComponent(val)}`;
+ const deepClone = obj => {
+ let clone = Object.assign({}, obj);
+ Object.keys(clone).forEach(
+ key => (clone[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key])
+ );
+ return Array.isArray(obj) ? (clone.length = obj.length) && Array.from(clone) : clone;
+ };
-const setStyle = (el, ruleName, val) => (el.style[ruleName] = val);
+ const deepFlatten = arr => [].concat(...arr.map(v => (Array.isArray(v) ? deepFlatten(v) : v)));
-const shallowClone = obj => Object.assign({}, obj);
+ const deepFreeze = obj =>
+ Object.keys(obj).forEach(
+ prop =>
+ !obj[prop] instanceof Object || Object.isFrozen(obj[prop]) ? null : deepFreeze(obj[prop])
+ ) || Object.freeze(obj);
-const show = (...el) => [...el].forEach(e => (e.style.display = ''));
+ const defaults = (obj, ...defs) => Object.assign({}, obj, ...defs.reverse(), obj);
-const shuffle = ([...arr]) => {
- let m = arr.length;
- while (m) {
- const i = Math.floor(Math.random() * m--);
- [arr[m], arr[i]] = [arr[i], arr[m]];
- }
- return arr;
-};
+ const defer = (fn, ...args) => setTimeout(fn, 1, ...args);
-const similarity = (arr, values) => arr.filter(v => values.includes(v));
+ const degreesToRads = deg => (deg * Math.PI) / 180.0;
-const size = val =>
- Array.isArray(val)
- ? val.length
- : val && typeof val === 'object'
- ? val.size || val.length || Object.keys(val).length
- : typeof val === 'string' ? new Blob([val]).size : 0;
+ const delay = (fn, wait, ...args) => setTimeout(fn, wait, ...args);
-const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
+ const detectDeviceType = () =>
+ /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)
+ ? 'Mobile'
+ : 'Desktop';
-const sortCharactersInString = str => [...str].sort((a, b) => a.localeCompare(b)).join('');
+ const difference = (a, b) => {
+ const s = new Set(b);
+ return a.filter(x => !s.has(x));
+ };
-const sortedIndex = (arr, n) => {
- const isDescending = arr[0] > arr[arr.length - 1];
- const index = arr.findIndex(el => (isDescending ? n >= el : n <= el));
- return index === -1 ? arr.length : index;
-};
+ const differenceBy = (a, b, fn) => {
+ const s = new Set(b.map(v => fn(v)));
+ return a.filter(x => !s.has(fn(x)));
+ };
-const sortedIndexBy = (arr, n, fn) => {
- const isDescending = fn(arr[0]) > fn(arr[arr.length - 1]);
- const val = fn(n);
- const index = arr.findIndex(el => (isDescending ? val >= fn(el) : val <= fn(el)));
- return index === -1 ? arr.length : index;
-};
+ const differenceWith = (arr, val, comp) => arr.filter(a => val.findIndex(b => comp(a, b)) === -1);
-const sortedLastIndex = (arr, n) => {
- const isDescending = arr[0] > arr[arr.length - 1];
- const index = arr
- .map((val, i) => [i, val])
- .reverse()
- .findIndex(el => (isDescending ? n <= el[1] : n >= el[1]));
- return index === -1 ? 0 : arr.length - index - 1;
-};
+ const dig = (obj, target) =>
+ target in obj
+ ? obj[target]
+ : Object.values(obj).reduce((acc, val) => {
+ if (acc !== undefined) return acc;
+ if (typeof val === 'object') return dig(val, target);
+ }, undefined);
-const sortedLastIndexBy = (arr, n, fn) => {
- const isDescending = fn(arr[0]) > fn(arr[arr.length - 1]);
- const val = fn(n);
- const index = arr
- .map((val, i) => [i, fn(val)])
- .reverse()
- .findIndex(el => (isDescending ? val <= el[1] : val >= el[1]));
- return index === -1 ? 0 : arr.length - index;
-};
+ const digitize = n => [...`${n}`].map(i => parseInt(i));
-const splitLines = str => str.split(/\r?\n/);
+ const distance = (x0, y0, x1, y1) => Math.hypot(x1 - x0, y1 - y0);
-const spreadOver = fn => argsArr => fn(...argsArr);
+ const drop = (arr, n = 1) => arr.slice(n);
-const stableSort = (arr, compare) =>
- arr
- .map((item, index) => ({ item, index }))
- .sort((a, b) => compare(a.item, b.item) || a.index - b.index)
- .map(({ item }) => item);
+ const dropRight = (arr, n = 1) => arr.slice(0, -n);
-const standardDeviation = (arr, usePopulation = false) => {
- const mean = arr.reduce((acc, val) => acc + val, 0) / arr.length;
- return Math.sqrt(
- arr.reduce((acc, val) => acc.concat((val - mean) ** 2), []).reduce((acc, val) => acc + val, 0) /
- (arr.length - (usePopulation ? 0 : 1))
- );
-};
+ const dropRightWhile = (arr, func) => {
+ while (arr.length > 0 && !func(arr[arr.length - 1])) arr = arr.slice(0, -1);
+ return arr;
+ };
-const stringPermutations = str => {
- if (str.length <= 2) return str.length === 2 ? [str, str[1] + str[0]] : [str];
- return str
- .split('')
- .reduce(
- (acc, letter, i) =>
- acc.concat(stringPermutations(str.slice(0, i) + str.slice(i + 1)).map(val => letter + val)),
+ const dropWhile = (arr, func) => {
+ while (arr.length > 0 && !func(arr[0])) arr = arr.slice(1);
+ return arr;
+ };
+
+ const elementContains = (parent, child) => parent !== child && parent.contains(child);
+
+ const elementIsVisibleInViewport = (el, partiallyVisible = false) => {
+ const { top, left, bottom, right } = el.getBoundingClientRect();
+ const { innerHeight, innerWidth } = window;
+ return partiallyVisible
+ ? ((top > 0 && top < innerHeight) || (bottom > 0 && bottom < innerHeight)) &&
+ ((left > 0 && left < innerWidth) || (right > 0 && right < innerWidth))
+ : top >= 0 && left >= 0 && bottom <= innerHeight && right <= innerWidth;
+ };
+
+ const elo = ([...ratings], kFactor = 32, selfRating) => {
+ const [a, b] = ratings;
+ const expectedScore = (self, opponent) => 1 / (1 + 10 ** ((opponent - self) / 400));
+ const newRating = (rating, i) =>
+ (selfRating || rating) + kFactor * (i - expectedScore(i ? a : b, i ? b : a));
+ if (ratings.length === 2) {
+ return [newRating(a, 1), newRating(b, 0)];
+ }
+ for (let i = 0, len = ratings.length; i < len; i++) {
+ let j = i;
+ while (j < len - 1) {
+ j++;
+ [ratings[i], ratings[j]] = elo([ratings[i], ratings[j]], kFactor);
+ }
+ }
+ return ratings;
+ };
+
+ const equals = (a, b) => {
+ if (a === b) return true;
+ if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime();
+ if (!a || !b || (typeof a !== 'object' && typeof b !== 'object')) return a === b;
+ if (a === null || a === undefined || b === null || b === undefined) return false;
+ if (a.prototype !== b.prototype) return false;
+ let keys = Object.keys(a);
+ if (keys.length !== Object.keys(b).length) return false;
+ return keys.every(k => equals(a[k], b[k]));
+ };
+
+ const escapeHTML = str =>
+ str.replace(
+ /[&<>'"]/g,
+ tag =>
+ ({
+ '&': '&',
+ '<': '<',
+ '>': '>',
+ "'": ''',
+ '"': '"'
+ }[tag] || tag)
+ );
+
+ const escapeRegExp = str => str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
+
+ const everyNth = (arr, nth) => arr.filter((e, i) => i % nth === nth - 1);
+
+ const extendHex = shortHex =>
+ '#' +
+ shortHex
+ .slice(shortHex.startsWith('#') ? 1 : 0)
+ .split('')
+ .map(x => x + x)
+ .join('');
+
+ const factorial = n =>
+ n < 0
+ ? (() => {
+ throw new TypeError('Negative numbers are not allowed!');
+ })()
+ : n <= 1
+ ? 1
+ : n * factorial(n - 1);
+
+ const fibonacci = n =>
+ Array.from({ length: n }).reduce(
+ (acc, val, i) => acc.concat(i > 1 ? acc[i - 1] + acc[i - 2] : i),
[]
);
-};
-const stripHTMLTags = str => str.replace(/<[^>]*>/g, '');
+ const filterNonUnique = arr => arr.filter(i => arr.indexOf(i) === arr.lastIndexOf(i));
-const sum = (...arr) => [...arr].reduce((acc, val) => acc + val, 0);
+ const filterNonUniqueBy = (arr, fn) =>
+ arr.filter((v, i) => arr.every((x, j) => (i === j) === fn(v, x, i, j)));
-const sumBy = (arr, fn) =>
- arr.map(typeof fn === 'function' ? fn : val => val[fn]).reduce((acc, val) => acc + val, 0);
+ const findKey = (obj, fn) => Object.keys(obj).find(key => fn(obj[key], key, obj));
-const sumPower = (end, power = 2, start = 1) =>
- Array(end + 1 - start)
- .fill(0)
- .map((x, i) => (i + start) ** power)
- .reduce((a, b) => a + b, 0);
+ const findLast = (arr, fn) => arr.filter(fn).pop();
-const symmetricDifference = (a, b) => {
- const sA = new Set(a),
- sB = new Set(b);
- return [...a.filter(x => !sB.has(x)), ...b.filter(x => !sA.has(x))];
-};
+ const findLastIndex = (arr, fn) =>
+ arr
+ .map((val, i) => [i, val])
+ .filter(([i, val]) => fn(val, i, arr))
+ .pop()[0];
-const symmetricDifferenceBy = (a, b, fn) => {
- const sA = new Set(a.map(v => fn(v))),
- sB = new Set(b.map(v => fn(v)));
- return [...a.filter(x => !sB.has(fn(x))), ...b.filter(x => !sA.has(fn(x)))];
-};
+ const findLastKey = (obj, fn) =>
+ Object.keys(obj)
+ .reverse()
+ .find(key => fn(obj[key], key, obj));
-const symmetricDifferenceWith = (arr, val, comp) => [
- ...arr.filter(a => val.findIndex(b => comp(a, b)) === -1),
- ...val.filter(a => arr.findIndex(b => comp(a, b)) === -1)
-];
+ const flatten = (arr, depth = 1) =>
+ arr.reduce((a, v) => a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v), []);
-const tail = arr => (arr.length > 1 ? arr.slice(1) : arr);
+ const flattenObject = (obj, prefix = '') =>
+ Object.keys(obj).reduce((acc, k) => {
+ const pre = prefix.length ? prefix + '.' : '';
+ if (typeof obj[k] === 'object') Object.assign(acc, flattenObject(obj[k], pre + k));
+ else acc[pre + k] = obj[k];
+ return acc;
+ }, {});
-const take = (arr, n = 1) => arr.slice(0, n);
+ const flip = fn => (first, ...rest) => fn(...rest, first);
-const takeRight = (arr, n = 1) => arr.slice(arr.length - n, arr.length);
+ const forEachRight = (arr, callback) =>
+ arr
+ .slice(0)
+ .reverse()
+ .forEach(callback);
-const takeRightWhile = (arr, func) => {
- for (let i of arr.reverse().keys())
- if (func(arr[i])) return arr.reverse().slice(arr.length - i, arr.length);
- return arr;
-};
+ const forOwn = (obj, fn) => Object.keys(obj).forEach(key => fn(obj[key], key, obj));
-const takeWhile = (arr, func) => {
- for (let i of arr.keys()) if (func(arr[i])) return arr.slice(0, i);
- return arr;
-};
+ const forOwnRight = (obj, fn) =>
+ Object.keys(obj)
+ .reverse()
+ .forEach(key => fn(obj[key], key, obj));
-const throttle = (fn, wait) => {
- let inThrottle, lastFn, lastTime;
- return function() {
- const context = this,
- args = arguments;
- if (!inThrottle) {
- fn.apply(context, args);
- lastTime = Date.now();
- inThrottle = true;
- } else {
- clearTimeout(lastFn);
- lastFn = setTimeout(function() {
- if (Date.now() - lastTime >= wait) {
- fn.apply(context, args);
- lastTime = Date.now();
- }
- }, wait - (Date.now() - lastTime));
+ const formatDuration = ms => {
+ if (ms < 0) ms = -ms;
+ const time = {
+ day: Math.floor(ms / 86400000),
+ hour: Math.floor(ms / 3600000) % 24,
+ minute: Math.floor(ms / 60000) % 60,
+ second: Math.floor(ms / 1000) % 60,
+ millisecond: Math.floor(ms) % 1000
+ };
+ return Object.entries(time)
+ .filter(val => val[1] !== 0)
+ .map(([key, val]) => `${val} ${key}${val !== 1 ? 's' : ''}`)
+ .join(', ');
+ };
+
+ const fromCamelCase = (str, separator = '_') =>
+ str
+ .replace(/([a-z\d])([A-Z])/g, '$1' + separator + '$2')
+ .replace(/([A-Z]+)([A-Z][a-z\d]+)/g, '$1' + separator + '$2')
+ .toLowerCase();
+
+ const functionName = fn => (console.debug(fn.name), fn);
+
+ const functions = (obj, inherited = false) =>
+ (inherited
+ ? [...Object.keys(obj), ...Object.keys(Object.getPrototypeOf(obj))]
+ : Object.keys(obj)
+ ).filter(key => typeof obj[key] === 'function');
+
+ const gcd = (...arr) => {
+ const _gcd = (x, y) => (!y ? x : gcd(y, x % y));
+ return [...arr].reduce((a, b) => _gcd(a, b));
+ };
+
+ const geometricProgression = (end, start = 1, step = 2) =>
+ Array.from({ length: Math.floor(Math.log(end / start) / Math.log(step)) + 1 }).map(
+ (v, i) => start * step ** i
+ );
+
+ const get = (from, ...selectors) =>
+ [...selectors].map(s =>
+ s
+ .replace(/\[([^\[\]]*)\]/g, '.$1.')
+ .split('.')
+ .filter(t => t !== '')
+ .reduce((prev, cur) => prev && prev[cur], from)
+ );
+
+ const getColonTimeFromDate = date => date.toTimeString().slice(0, 8);
+
+ const getDaysDiffBetweenDates = (dateInitial, dateFinal) =>
+ (dateFinal - dateInitial) / (1000 * 3600 * 24);
+
+ const getMeridiemSuffixOfInteger = num =>
+ num === 0 || num === 24
+ ? 12 + 'am'
+ : num === 12
+ ? 12 + 'pm'
+ : num < 12
+ ? (num % 12) + 'am'
+ : (num % 12) + 'pm';
+
+ const getScrollPosition = (el = window) => ({
+ x: el.pageXOffset !== undefined ? el.pageXOffset : el.scrollLeft,
+ y: el.pageYOffset !== undefined ? el.pageYOffset : el.scrollTop
+ });
+
+ const getStyle = (el, ruleName) => getComputedStyle(el)[ruleName];
+
+ const getType = v =>
+ v === undefined ? 'undefined' : v === null ? 'null' : v.constructor.name.toLowerCase();
+
+ const getURLParameters = url =>
+ (url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(
+ (a, v) => ((a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1)), a),
+ {}
+ );
+
+ const groupBy = (arr, fn) =>
+ arr.map(typeof fn === 'function' ? fn : val => val[fn]).reduce((acc, val, i) => {
+ acc[val] = (acc[val] || []).concat(arr[i]);
+ return acc;
+ }, {});
+
+ const hammingDistance = (num1, num2) => ((num1 ^ num2).toString(2).match(/1/g) || '').length;
+
+ const hasClass = (el, className) => el.classList.contains(className);
+
+ const hasFlags = (...flags) =>
+ flags.every(flag => process.argv.includes(/^-{1,2}/.test(flag) ? flag : '--' + flag));
+
+ const hashBrowser = val =>
+ crypto.subtle.digest('SHA-256', new TextEncoder('utf-8').encode(val)).then(h => {
+ let hexes = [],
+ view = new DataView(h);
+ for (let i = 0; i < view.byteLength; i += 4)
+ hexes.push(('00000000' + view.getUint32(i).toString(16)).slice(-8));
+ return hexes.join('');
+ });
+
+ const crypto$2 = typeof require !== "undefined" && require('crypto');
+ const hashNode = val =>
+ new Promise(resolve =>
+ setTimeout(
+ () =>
+ resolve(
+ crypto$2
+ .createHash('sha256')
+ .update(val)
+ .digest('hex')
+ ),
+ 0
+ )
+ );
+
+ const head = arr => arr[0];
+
+ const hexToRGB = hex => {
+ let alpha = false,
+ h = hex.slice(hex.startsWith('#') ? 1 : 0);
+ if (h.length === 3) h = [...h].map(x => x + x).join('');
+ else if (h.length === 8) alpha = true;
+ h = parseInt(h, 16);
+ return (
+ 'rgb' +
+ (alpha ? 'a' : '') +
+ '(' +
+ (h >>> (alpha ? 24 : 16)) +
+ ', ' +
+ ((h & (alpha ? 0x00ff0000 : 0x00ff00)) >>> (alpha ? 16 : 8)) +
+ ', ' +
+ ((h & (alpha ? 0x0000ff00 : 0x0000ff)) >>> (alpha ? 8 : 0)) +
+ (alpha ? `, ${h & 0x000000ff}` : '') +
+ ')'
+ );
+ };
+
+ const hide = els => els.forEach(e => (e.style.display = 'none'));
+
+ const httpGet = (url, callback, err = console.error) => {
+ const request = new XMLHttpRequest();
+ request.open('GET', url, true);
+ request.onload = () => callback(request.responseText);
+ request.onerror = () => err(request);
+ request.send();
+ };
+
+ const httpPost = (url, data, callback, err = console.error) => {
+ const request = new XMLHttpRequest();
+ request.open('POST', url, true);
+ request.setRequestHeader('Content-type', 'application/json; charset=utf-8');
+ request.onload = () => callback(request.responseText);
+ request.onerror = () => err(request);
+ request.send(data);
+ };
+
+ const httpsRedirect = () => {
+ if (location.protocol !== 'https:') location.replace('https://' + location.href.split('//')[1]);
+ };
+
+ const hz = (fn, iterations = 100) => {
+ const before = performance.now();
+ for (let i = 0; i < iterations; i++) fn();
+ return (1000 * iterations) / (performance.now() - before);
+ };
+
+ const inRange = (n, start, end = null) => {
+ if (end && start > end) [end, start] = [start, end];
+ return end == null ? n >= 0 && n < start : n >= start && n < end;
+ };
+
+ const indentString = (str, count, indent = ' ') => str.replace(/^/gm, indent.repeat(count));
+
+ const indexOfAll = (arr, val) => arr.reduce((acc, el, i) => (el === val ? [...acc, i] : acc), []);
+
+ const initial = arr => arr.slice(0, -1);
+
+ const initialize2DArray = (w, h, val = null) =>
+ Array.from({ length: h }).map(() => Array.from({ length: w }).fill(val));
+
+ const initializeArrayWithRange = (end, start = 0, step = 1) =>
+ Array.from({ length: Math.ceil((end - start + 1) / step) }, (v, i) => i * step + start);
+
+ const initializeArrayWithRangeRight = (end, start = 0, step = 1) =>
+ Array.from({ length: Math.ceil((end + 1 - start) / step) }).map(
+ (v, i, arr) => (arr.length - i - 1) * step + start
+ );
+
+ const initializeArrayWithValues = (n, val = 0) => Array(n).fill(val);
+
+ const initializeNDArray = (val, ...args) =>
+ args.length === 0
+ ? val
+ : Array.from({ length: args[0] }).map(() => initializeNDArray(val, ...args.slice(1)));
+
+ const insertAfter = (el, htmlString) => el.insertAdjacentHTML('afterend', htmlString);
+
+ const insertBefore = (el, htmlString) => el.insertAdjacentHTML('beforebegin', htmlString);
+
+ const intersection = (a, b) => {
+ const s = new Set(b);
+ return a.filter(x => s.has(x));
+ };
+
+ const intersectionBy = (a, b, fn) => {
+ const s = new Set(b.map(fn));
+ return a.filter(x => s.has(fn(x)));
+ };
+
+ const intersectionWith = (a, b, comp) => a.filter(x => b.findIndex(y => comp(x, y)) !== -1);
+
+ const invertKeyValues = (obj, fn) =>
+ Object.keys(obj).reduce((acc, key) => {
+ const val = fn ? fn(obj[key]) : obj[key];
+ acc[val] = acc[val] || [];
+ acc[val].push(key);
+ return acc;
+ }, {});
+
+ const is = (type, val) => ![, null].includes(val) && val.constructor === type;
+
+ const isAbsoluteURL = str => /^[a-z][a-z0-9+.-]*:/.test(str);
+
+ const isAfterDate = (dateA, dateB) => dateA > dateB;
+
+ const isAnagram = (str1, str2) => {
+ const normalize = str =>
+ str
+ .toLowerCase()
+ .replace(/[^a-z0-9]/gi, '')
+ .split('')
+ .sort()
+ .join('');
+ return normalize(str1) === normalize(str2);
+ };
+
+ const isArrayLike = obj => obj != null && typeof obj[Symbol.iterator] === 'function';
+
+ const isBeforeDate = (dateA, dateB) => dateA < dateB;
+
+ const isBoolean = val => typeof val === 'boolean';
+
+ const isBrowser = () => ![typeof window, typeof document].includes('undefined');
+
+ const isBrowserTabFocused = () => !document.hidden;
+
+ const isDivisible = (dividend, divisor) => dividend % divisor === 0;
+
+ const isEmpty = val => val == null || !(Object.keys(val) || val).length;
+
+ const isEven = num => num % 2 === 0;
+
+ const isFunction = val => typeof val === 'function';
+
+ const isLowerCase = str => str === str.toLowerCase();
+
+ const isNil = val => val === undefined || val === null;
+
+ const isNull = val => val === null;
+
+ const isNumber = val => typeof val === 'number';
+
+ const isObject = obj => obj === Object(obj);
+
+ const isObjectLike = val => val !== null && typeof val === 'object';
+
+ const isPlainObject = val => !!val && typeof val === 'object' && val.constructor === Object;
+
+ const isPrime = num => {
+ const boundary = Math.floor(Math.sqrt(num));
+ for (var i = 2; i <= boundary; i++) if (num % i === 0) return false;
+ return num >= 2;
+ };
+
+ const isPrimitive = val => !['object', 'function'].includes(typeof val) || val === null;
+
+ const isPromiseLike = obj =>
+ obj !== null &&
+ (typeof obj === 'object' || typeof obj === 'function') &&
+ typeof obj.then === 'function';
+
+ const isSameDate = (dateA, dateB) => dateA.toISOString() === dateB.toISOString();
+
+ const isSorted = arr => {
+ let direction = -(arr[0] - arr[1]);
+ for (let [i, val] of arr.entries()) {
+ direction = !direction ? -(arr[i - 1] - arr[i]) : direction;
+ if (i === arr.length - 1) return !direction ? 0 : direction;
+ else if ((val - arr[i + 1]) * direction > 0) return 0;
}
};
-};
-const timeTaken = callback => {
- console.time('timeTaken');
- const r = callback();
- console.timeEnd('timeTaken');
- return r;
-};
+ const isString = val => typeof val === 'string';
-const times = (n, fn, context = undefined) => {
- let i = 0;
- while (fn.call(context, i) !== false && ++i < n) {}
-};
+ const isSymbol = val => typeof val === 'symbol';
-const toCamelCase = str => {
- let s =
+ const isTravisCI = () => 'TRAVIS' in process.env && 'CI' in process.env;
+
+ const isUndefined = val => val === undefined;
+
+ const isUpperCase = str => str === str.toUpperCase();
+
+ const isValidJSON = obj => {
+ try {
+ JSON.parse(obj);
+ return true;
+ } catch (e) {
+ return false;
+ }
+ };
+
+ const join = (arr, separator = ',', end = separator) =>
+ arr.reduce(
+ (acc, val, i) =>
+ i === arr.length - 2
+ ? acc + val + end
+ : i === arr.length - 1
+ ? acc + val
+ : acc + val + separator,
+ ''
+ );
+
+ const last = arr => arr[arr.length - 1];
+
+ const lcm = (...arr) => {
+ const gcd = (x, y) => (!y ? x : gcd(y, x % y));
+ const _lcm = (x, y) => (x * y) / gcd(x, y);
+ return [...arr].reduce((a, b) => _lcm(a, b));
+ };
+
+ const longestItem = (val, ...vals) =>
+ [val, ...vals].reduce((a, x) => (x.length > a.length ? x : a));
+
+ const lowercaseKeys = obj =>
+ Object.keys(obj).reduce((acc, key) => {
+ acc[key.toLowerCase()] = obj[key];
+ return acc;
+ }, {});
+
+ const luhnCheck = num => {
+ let arr = (num + '')
+ .split('')
+ .reverse()
+ .map(x => parseInt(x));
+ let lastDigit = arr.splice(0, 1)[0];
+ let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + ((val * 2) % 9) || 9), 0);
+ sum += lastDigit;
+ return sum % 10 === 0;
+ };
+
+ const mapKeys = (obj, fn) =>
+ Object.keys(obj).reduce((acc, k) => {
+ acc[fn(obj[k], k, obj)] = obj[k];
+ return acc;
+ }, {});
+
+ const mapObject = (arr, fn) =>
+ (a => (
+ (a = [arr, arr.map(fn)]), a[0].reduce((acc, val, ind) => ((acc[val] = a[1][ind]), acc), {})
+ ))();
+
+ const mapString = (str, fn) =>
+ str
+ .split('')
+ .map((c, i) => fn(c, i, str))
+ .join('');
+
+ const mapValues = (obj, fn) =>
+ Object.keys(obj).reduce((acc, k) => {
+ acc[k] = fn(obj[k], k, obj);
+ return acc;
+ }, {});
+
+ const mask = (cc, num = 4, mask = '*') => `${cc}`.slice(-num).padStart(`${cc}`.length, mask);
+
+ const matches = (obj, source) =>
+ Object.keys(source).every(key => obj.hasOwnProperty(key) && obj[key] === source[key]);
+
+ const matchesWith = (obj, source, fn) =>
+ Object.keys(source).every(
+ key =>
+ obj.hasOwnProperty(key) && fn
+ ? fn(obj[key], source[key], key, obj, source)
+ : obj[key] == source[key]
+ );
+
+ const maxBy = (arr, fn) => Math.max(...arr.map(typeof fn === 'function' ? fn : val => val[fn]));
+
+ const maxDate = (...dates) => new Date(Math.max.apply(null, ...dates));
+
+ const maxN = (arr, n = 1) => [...arr].sort((a, b) => b - a).slice(0, n);
+
+ const median = arr => {
+ const mid = Math.floor(arr.length / 2),
+ nums = [...arr].sort((a, b) => a - b);
+ return arr.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;
+ };
+
+ const memoize = fn => {
+ const cache = new Map();
+ const cached = function(val) {
+ return cache.has(val) ? cache.get(val) : cache.set(val, fn.call(this, val)) && cache.get(val);
+ };
+ cached.cache = cache;
+ return cached;
+ };
+
+ const merge = (...objs) =>
+ [...objs].reduce(
+ (acc, obj) =>
+ Object.keys(obj).reduce((a, k) => {
+ acc[k] = acc.hasOwnProperty(k) ? [].concat(acc[k]).concat(obj[k]) : obj[k];
+ return acc;
+ }, {}),
+ {}
+ );
+
+ const minBy = (arr, fn) => Math.min(...arr.map(typeof fn === 'function' ? fn : val => val[fn]));
+
+ const minDate = (...dates) => new Date(Math.min.apply(null, ...dates));
+
+ const minN = (arr, n = 1) => [...arr].sort((a, b) => a - b).slice(0, n);
+
+ const mostPerformant = (fns, iterations = 10000) => {
+ const times = fns.map(fn => {
+ const before = performance.now();
+ for (let i = 0; i < iterations; i++) fn();
+ return performance.now() - before;
+ });
+ return times.indexOf(Math.min(...times));
+ };
+
+ const negate = func => (...args) => !func(...args);
+
+ const nest = (items, id = null, link = 'parent_id') =>
+ items
+ .filter(item => item[link] === id)
+ .map(item => ({ ...item, children: nest(items, item.id) }));
+
+ const nodeListToArray = nodeList => [...nodeList];
+
+ const none = (arr, fn = Boolean) => !arr.some(fn);
+
+ const nthArg = n => (...args) => args.slice(n)[0];
+
+ const nthElement = (arr, n = 0) => (n === -1 ? arr.slice(n) : arr.slice(n, n + 1))[0];
+
+ const objectFromPairs = arr => arr.reduce((a, [key, val]) => ((a[key] = val), a), {});
+
+ const objectToPairs = obj => Object.keys(obj).map(k => [k, obj[k]]);
+
+ const observeMutations = (element, callback, options) => {
+ const observer = new MutationObserver(mutations => mutations.forEach(m => callback(m)));
+ observer.observe(
+ element,
+ Object.assign(
+ {
+ childList: true,
+ attributes: true,
+ attributeOldValue: true,
+ characterData: true,
+ characterDataOldValue: true,
+ subtree: true
+ },
+ options
+ )
+ );
+ return observer;
+ };
+
+ const off = (el, evt, fn, opts = false) => el.removeEventListener(evt, fn, opts);
+
+ const offset = (arr, offset) => [...arr.slice(offset), ...arr.slice(0, offset)];
+
+ const omit = (obj, arr) =>
+ Object.keys(obj)
+ .filter(k => !arr.includes(k))
+ .reduce((acc, key) => ((acc[key] = obj[key]), acc), {});
+
+ const omitBy = (obj, fn) =>
+ Object.keys(obj)
+ .filter(k => !fn(obj[k], k))
+ .reduce((acc, key) => ((acc[key] = obj[key]), acc), {});
+
+ const on = (el, evt, fn, opts = {}) => {
+ const delegatorFn = e => e.target.matches(opts.target) && fn.call(e.target, e);
+ el.addEventListener(evt, opts.target ? delegatorFn : fn, opts.options || false);
+ if (opts.target) return delegatorFn;
+ };
+
+ const onUserInputChange = callback => {
+ let type = 'mouse',
+ lastTime = 0;
+ const mousemoveHandler = () => {
+ const now = performance.now();
+ if (now - lastTime < 20)
+ (type = 'mouse'), callback(type), document.removeEventListener('mousemove', mousemoveHandler);
+ lastTime = now;
+ };
+ document.addEventListener('touchstart', () => {
+ if (type === 'touch') return;
+ (type = 'touch'), callback(type), document.addEventListener('mousemove', mousemoveHandler);
+ });
+ };
+
+ const once = fn => {
+ let called = false;
+ return function(...args) {
+ if (called) return;
+ called = true;
+ return fn.apply(this, args);
+ };
+ };
+
+ const orderBy = (arr, props, orders) =>
+ [...arr].sort((a, b) =>
+ props.reduce((acc, prop, i) => {
+ if (acc === 0) {
+ const [p1, p2] = orders && orders[i] === 'desc' ? [b[prop], a[prop]] : [a[prop], b[prop]];
+ acc = p1 > p2 ? 1 : p1 < p2 ? -1 : 0;
+ }
+ return acc;
+ }, 0)
+ );
+
+ const over = (...fns) => (...args) => fns.map(fn => fn.apply(null, args));
+
+ const overArgs = (fn, transforms) => (...args) => fn(...args.map((val, i) => transforms[i](val)));
+
+ const pad = (str, length, char = ' ') =>
+ str.padStart((str.length + length) / 2, char).padEnd(length, char);
+
+ const palindrome = str => {
+ const s = str.toLowerCase().replace(/[\W_]/g, '');
+ return s === [...s].reverse().join('');
+ };
+
+ const parseCookie = str =>
+ str
+ .split(';')
+ .map(v => v.split('='))
+ .reduce((acc, v) => {
+ acc[decodeURIComponent(v[0].trim())] = decodeURIComponent(v[1].trim());
+ return acc;
+ }, {});
+
+ const partial = (fn, ...partials) => (...args) => fn(...partials, ...args);
+
+ const partialRight = (fn, ...partials) => (...args) => fn(...args, ...partials);
+
+ const partition = (arr, fn) =>
+ arr.reduce(
+ (acc, val, i, arr) => {
+ acc[fn(val, i, arr) ? 0 : 1].push(val);
+ return acc;
+ },
+ [[], []]
+ );
+
+ const percentile = (arr, val) =>
+ (100 * arr.reduce((acc, v) => acc + (v < val ? 1 : 0) + (v === val ? 0.5 : 0), 0)) / arr.length;
+
+ const permutations = arr => {
+ if (arr.length <= 2) return arr.length === 2 ? [arr, [arr[1], arr[0]]] : arr;
+ return arr.reduce(
+ (acc, item, i) =>
+ acc.concat(
+ permutations([...arr.slice(0, i), ...arr.slice(i + 1)]).map(val => [item, ...val])
+ ),
+ []
+ );
+ };
+
+ const pick = (obj, arr) =>
+ arr.reduce((acc, curr) => (curr in obj && (acc[curr] = obj[curr]), acc), {});
+
+ const pickBy = (obj, fn) =>
+ Object.keys(obj)
+ .filter(k => fn(obj[k], k))
+ .reduce((acc, key) => ((acc[key] = obj[key]), acc), {});
+
+ const pipeAsyncFunctions = (...fns) => arg => fns.reduce((p, f) => p.then(f), Promise.resolve(arg));
+
+ const pipeFunctions = (...fns) => fns.reduce((f, g) => (...args) => g(f(...args)));
+
+ const pluralize = (val, word, plural = word + 's') => {
+ const _pluralize = (num, word, plural = word + 's') =>
+ [1, -1].includes(Number(num)) ? word : plural;
+ if (typeof val === 'object') return (num, word) => _pluralize(num, word, val[word]);
+ return _pluralize(val, word, plural);
+ };
+
+ const powerset = arr => arr.reduce((a, v) => a.concat(a.map(r => [v].concat(r))), [[]]);
+
+ const prefix = prop => {
+ const capitalizedProp = prop.charAt(0).toUpperCase() + prop.slice(1);
+ const prefixes = ['', 'webkit', 'moz', 'ms', 'o'];
+ const i = prefixes.findIndex(
+ prefix => typeof document.body.style[prefix ? prefix + capitalizedProp : prop] !== 'undefined'
+ );
+ return i !== -1 ? (i === 0 ? prop : prefixes[i] + capitalizedProp) : null;
+ };
+
+ const prettyBytes = (num, precision = 3, addSpace = true) => {
+ const UNITS = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
+ if (Math.abs(num) < 1) return num + (addSpace ? ' ' : '') + UNITS[0];
+ const exponent = Math.min(Math.floor(Math.log10(num < 0 ? -num : num) / 3), UNITS.length - 1);
+ const n = Number(((num < 0 ? -num : num) / 1000 ** exponent).toPrecision(precision));
+ return (num < 0 ? '-' : '') + n + (addSpace ? ' ' : '') + UNITS[exponent];
+ };
+
+ const primes = num => {
+ let arr = Array.from({ length: num - 1 }).map((x, i) => i + 2),
+ sqroot = Math.floor(Math.sqrt(num)),
+ numsTillSqroot = Array.from({ length: sqroot - 1 }).map((x, i) => i + 2);
+ numsTillSqroot.forEach(x => (arr = arr.filter(y => y % x !== 0 || y === x)));
+ return arr;
+ };
+
+ const promisify = func => (...args) =>
+ new Promise((resolve, reject) =>
+ func(...args, (err, result) => (err ? reject(err) : resolve(result)))
+ );
+
+ const pull = (arr, ...args) => {
+ let argState = Array.isArray(args[0]) ? args[0] : args;
+ let pulled = arr.filter((v, i) => !argState.includes(v));
+ arr.length = 0;
+ pulled.forEach(v => arr.push(v));
+ };
+
+ const pullAtIndex = (arr, pullArr) => {
+ let removed = [];
+ let pulled = arr
+ .map((v, i) => (pullArr.includes(i) ? removed.push(v) : v))
+ .filter((v, i) => !pullArr.includes(i));
+ arr.length = 0;
+ pulled.forEach(v => arr.push(v));
+ return removed;
+ };
+
+ const pullAtValue = (arr, pullArr) => {
+ let removed = [],
+ pushToRemove = arr.forEach((v, i) => (pullArr.includes(v) ? removed.push(v) : v)),
+ mutateTo = arr.filter((v, i) => !pullArr.includes(v));
+ arr.length = 0;
+ mutateTo.forEach(v => arr.push(v));
+ return removed;
+ };
+
+ const pullBy = (arr, ...args) => {
+ const length = args.length;
+ let fn = length > 1 ? args[length - 1] : undefined;
+ fn = typeof fn == 'function' ? (args.pop(), fn) : undefined;
+ let argState = (Array.isArray(args[0]) ? args[0] : args).map(val => fn(val));
+ let pulled = arr.filter((v, i) => !argState.includes(fn(v)));
+ arr.length = 0;
+ pulled.forEach(v => arr.push(v));
+ };
+
+ const radsToDegrees = rad => (rad * 180.0) / Math.PI;
+
+ const randomHexColorCode = () => {
+ let n = (Math.random() * 0xfffff * 1000000).toString(16);
+ return '#' + n.slice(0, 6);
+ };
+
+ const randomIntArrayInRange = (min, max, n = 1) =>
+ Array.from({ length: n }, () => Math.floor(Math.random() * (max - min + 1)) + min);
+
+ const randomIntegerInRange = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;
+
+ const randomNumberInRange = (min, max) => Math.random() * (max - min) + min;
+
+ const fs$1 = typeof require !== "undefined" && require('fs');
+ const readFileLines = filename =>
+ fs$1
+ .readFileSync(filename)
+ .toString('UTF8')
+ .split('\n');
+
+ const rearg = (fn, indexes) => (...args) => fn(...indexes.map(i => args[i]));
+
+ const recordAnimationFrames = (callback, autoStart = true) => {
+ let running = true,
+ raf;
+ const stop = () => {
+ running = false;
+ cancelAnimationFrame(raf);
+ };
+ const start = () => {
+ running = true;
+ run();
+ };
+ const run = () => {
+ raf = requestAnimationFrame(() => {
+ callback();
+ if (running) run();
+ });
+ };
+ if (autoStart) start();
+ return { start, stop };
+ };
+
+ const redirect = (url, asLink = true) =>
+ asLink ? (window.location.href = url) : window.location.replace(url);
+
+ const reduceSuccessive = (arr, fn, acc) =>
+ arr.reduce((res, val, i, arr) => (res.push(fn(res.slice(-1)[0], val, i, arr)), res), [acc]);
+
+ const reduceWhich = (arr, comparator = (a, b) => a - b) =>
+ arr.reduce((a, b) => (comparator(a, b) >= 0 ? b : a));
+
+ const reducedFilter = (data, keys, fn) =>
+ data.filter(fn).map(el =>
+ keys.reduce((acc, key) => {
+ acc[key] = el[key];
+ return acc;
+ }, {})
+ );
+
+ const reject = (pred, array) => array.filter((...args) => !pred(...args));
+
+ const remove = (arr, func) =>
+ Array.isArray(arr)
+ ? arr.filter(func).reduce((acc, val) => {
+ arr.splice(arr.indexOf(val), 1);
+ return acc.concat(val);
+ }, [])
+ : [];
+
+ const removeNonASCII = str => str.replace(/[^\x20-\x7E]/g, '');
+
+ const renameKeys = (keysMap, obj) =>
+ Object.keys(obj).reduce(
+ (acc, key) => ({
+ ...acc,
+ ...{ [keysMap[key] || key]: obj[key] }
+ }),
+ {}
+ );
+
+ const reverseString = str => [...str].reverse().join('');
+
+ const round = (n, decimals = 0) => Number(`${Math.round(`${n}e${decimals}`)}e-${decimals}`);
+
+ const runAsync = fn => {
+ const worker = new Worker(
+ URL.createObjectURL(new Blob([`postMessage((${fn})());`]), {
+ type: 'application/javascript; charset=utf-8'
+ })
+ );
+ return new Promise((res, rej) => {
+ worker.onmessage = ({ data }) => {
+ res(data), worker.terminate();
+ };
+ worker.onerror = err => {
+ rej(err), worker.terminate();
+ };
+ });
+ };
+
+ const runPromisesInSeries = ps => ps.reduce((p, next) => p.then(next), Promise.resolve());
+
+ const sample = arr => arr[Math.floor(Math.random() * arr.length)];
+
+ const sampleSize = ([...arr], n = 1) => {
+ let m = arr.length;
+ while (m) {
+ const i = Math.floor(Math.random() * m--);
+ [arr[m], arr[i]] = [arr[i], arr[m]];
+ }
+ return arr.slice(0, n);
+ };
+
+ const scrollToTop = () => {
+ const c = document.documentElement.scrollTop || document.body.scrollTop;
+ if (c > 0) {
+ window.requestAnimationFrame(scrollToTop);
+ window.scrollTo(0, c - c / 8);
+ }
+ };
+
+ const sdbm = str => {
+ let arr = str.split('');
+ return arr.reduce(
+ (hashCode, currentVal) =>
+ (hashCode = currentVal.charCodeAt(0) + (hashCode << 6) + (hashCode << 16) - hashCode),
+ 0
+ );
+ };
+
+ const serializeCookie = (name, val) => `${encodeURIComponent(name)}=${encodeURIComponent(val)}`;
+
+ const setStyle = (el, ruleName, val) => (el.style[ruleName] = val);
+
+ const shallowClone = obj => Object.assign({}, obj);
+
+ const shank = (arr, index = 0, delCount = 0, ...elements) =>
+ arr
+ .slice(0, index)
+ .concat(elements)
+ .concat(arr.slice(index + delCount));
+
+ const show = (...el) => [...el].forEach(e => (e.style.display = ''));
+
+ const shuffle = ([...arr]) => {
+ let m = arr.length;
+ while (m) {
+ const i = Math.floor(Math.random() * m--);
+ [arr[m], arr[i]] = [arr[i], arr[m]];
+ }
+ return arr;
+ };
+
+ const similarity = (arr, values) => arr.filter(v => values.includes(v));
+
+ const size = val =>
+ Array.isArray(val)
+ ? val.length
+ : val && typeof val === 'object'
+ ? val.size || val.length || Object.keys(val).length
+ : typeof val === 'string'
+ ? new Blob([val]).size
+ : 0;
+
+ const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
+
+ const smoothScroll = element =>
+ document.querySelector(element).scrollIntoView({
+ behavior: 'smooth'
+ });
+
+ const sortCharactersInString = str => [...str].sort((a, b) => a.localeCompare(b)).join('');
+
+ const sortedIndex = (arr, n) => {
+ const isDescending = arr[0] > arr[arr.length - 1];
+ const index = arr.findIndex(el => (isDescending ? n >= el : n <= el));
+ return index === -1 ? arr.length : index;
+ };
+
+ const sortedIndexBy = (arr, n, fn) => {
+ const isDescending = fn(arr[0]) > fn(arr[arr.length - 1]);
+ const val = fn(n);
+ const index = arr.findIndex(el => (isDescending ? val >= fn(el) : val <= fn(el)));
+ return index === -1 ? arr.length : index;
+ };
+
+ const sortedLastIndex = (arr, n) => {
+ const isDescending = arr[0] > arr[arr.length - 1];
+ const index = arr.reverse().findIndex(el => (isDescending ? n <= el : n >= el));
+ return index === -1 ? 0 : arr.length - index;
+ };
+
+ const sortedLastIndexBy = (arr, n, fn) => {
+ const isDescending = fn(arr[0]) > fn(arr[arr.length - 1]);
+ const val = fn(n);
+ const index = arr
+ .map(fn)
+ .reverse()
+ .findIndex(el => (isDescending ? val <= el : val >= el));
+ return index === -1 ? 0 : arr.length - index;
+ };
+
+ const splitLines = str => str.split(/\r?\n/);
+
+ const spreadOver = fn => argsArr => fn(...argsArr);
+
+ const stableSort = (arr, compare) =>
+ arr
+ .map((item, index) => ({ item, index }))
+ .sort((a, b) => compare(a.item, b.item) || a.index - b.index)
+ .map(({ item }) => item);
+
+ const standardDeviation = (arr, usePopulation = false) => {
+ const mean = arr.reduce((acc, val) => acc + val, 0) / arr.length;
+ return Math.sqrt(
+ arr.reduce((acc, val) => acc.concat((val - mean) ** 2), []).reduce((acc, val) => acc + val, 0) /
+ (arr.length - (usePopulation ? 0 : 1))
+ );
+ };
+
+ const stringPermutations = str => {
+ if (str.length <= 2) return str.length === 2 ? [str, str[1] + str[0]] : [str];
+ return str
+ .split('')
+ .reduce(
+ (acc, letter, i) =>
+ acc.concat(stringPermutations(str.slice(0, i) + str.slice(i + 1)).map(val => letter + val)),
+ []
+ );
+ };
+
+ const stripHTMLTags = str => str.replace(/<[^>]*>/g, '');
+
+ const sum = (...arr) => [...arr].reduce((acc, val) => acc + val, 0);
+
+ const sumBy = (arr, fn) =>
+ arr.map(typeof fn === 'function' ? fn : val => val[fn]).reduce((acc, val) => acc + val, 0);
+
+ const sumPower = (end, power = 2, start = 1) =>
+ Array(end + 1 - start)
+ .fill(0)
+ .map((x, i) => (i + start) ** power)
+ .reduce((a, b) => a + b, 0);
+
+ const symmetricDifference = (a, b) => {
+ const sA = new Set(a),
+ sB = new Set(b);
+ return [...a.filter(x => !sB.has(x)), ...b.filter(x => !sA.has(x))];
+ };
+
+ const symmetricDifferenceBy = (a, b, fn) => {
+ const sA = new Set(a.map(v => fn(v))),
+ sB = new Set(b.map(v => fn(v)));
+ return [...a.filter(x => !sB.has(fn(x))), ...b.filter(x => !sA.has(fn(x)))];
+ };
+
+ const symmetricDifferenceWith = (arr, val, comp) => [
+ ...arr.filter(a => val.findIndex(b => comp(a, b)) === -1),
+ ...val.filter(a => arr.findIndex(b => comp(a, b)) === -1)
+ ];
+
+ const tail = arr => (arr.length > 1 ? arr.slice(1) : arr);
+
+ const take = (arr, n = 1) => arr.slice(0, n);
+
+ const takeRight = (arr, n = 1) => arr.slice(arr.length - n, arr.length);
+
+ const takeRightWhile = (arr, func) => {
+ for (let i of arr.reverse().keys())
+ if (func(arr[i])) return arr.reverse().slice(arr.length - i, arr.length);
+ return arr;
+ };
+
+ const takeWhile = (arr, func) => {
+ for (const [i, val] of arr.entries()) if (func(val)) return arr.slice(0, i);
+ return arr;
+ };
+
+ const throttle = (fn, wait) => {
+ let inThrottle, lastFn, lastTime;
+ return function() {
+ const context = this,
+ args = arguments;
+ if (!inThrottle) {
+ fn.apply(context, args);
+ lastTime = Date.now();
+ inThrottle = true;
+ } else {
+ clearTimeout(lastFn);
+ lastFn = setTimeout(function() {
+ if (Date.now() - lastTime >= wait) {
+ fn.apply(context, args);
+ lastTime = Date.now();
+ }
+ }, wait - (Date.now() - lastTime));
+ }
+ };
+ };
+
+ const timeTaken = callback => {
+ console.time('timeTaken');
+ const r = callback();
+ console.timeEnd('timeTaken');
+ return r;
+ };
+
+ const times = (n, fn, context = undefined) => {
+ let i = 0;
+ while (fn.call(context, i) !== false && ++i < n) {}
+ };
+
+ const toCamelCase = str => {
+ let s =
+ str &&
+ str
+ .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
+ .map(x => x.slice(0, 1).toUpperCase() + x.slice(1).toLowerCase())
+ .join('');
+ return s.slice(0, 1).toLowerCase() + s.slice(1);
+ };
+
+ const toCurrency = (n, curr, LanguageFormat = undefined) =>
+ Intl.NumberFormat(LanguageFormat, { style: 'currency', currency: curr }).format(n);
+
+ const toDecimalMark = num => num.toLocaleString('en-US');
+
+ const toHash = (object, key) =>
+ Array.prototype.reduce.call(
+ object,
+ (acc, data, index) => ((acc[!key ? index : data[key]] = data), acc),
+ {}
+ );
+
+ const toKebabCase = str =>
str &&
str
.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
- .map(x => x.slice(0, 1).toUpperCase() + x.slice(1).toLowerCase())
- .join('');
- return s.slice(0, 1).toLowerCase() + s.slice(1);
-};
+ .map(x => x.toLowerCase())
+ .join('-');
-const toCurrency = (n, curr, LanguageFormat = undefined) =>
- Intl.NumberFormat(LanguageFormat, { style: 'currency', currency: curr }).format(n);
+ const toOrdinalSuffix = num => {
+ const int = parseInt(num),
+ digits = [int % 10, int % 100],
+ ordinals = ['st', 'nd', 'rd', 'th'],
+ oPattern = [1, 2, 3, 4],
+ tPattern = [11, 12, 13, 14, 15, 16, 17, 18, 19];
+ return oPattern.includes(digits[0]) && !tPattern.includes(digits[1])
+ ? int + ordinals[digits[0] - 1]
+ : int + ordinals[3];
+ };
-const toDecimalMark = num => num.toLocaleString('en-US');
+ const toSafeInteger = num =>
+ Math.round(Math.max(Math.min(num, Number.MAX_SAFE_INTEGER), Number.MIN_SAFE_INTEGER));
-const toKebabCase = str =>
- str &&
- str
- .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
- .map(x => x.toLowerCase())
- .join('-');
+ const toSnakeCase = str =>
+ str &&
+ str
+ .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
+ .map(x => x.toLowerCase())
+ .join('_');
-const toOrdinalSuffix = num => {
- const int = parseInt(num),
- digits = [int % 10, int % 100],
- ordinals = ['st', 'nd', 'rd', 'th'],
- oPattern = [1, 2, 3, 4],
- tPattern = [11, 12, 13, 14, 15, 16, 17, 18, 19];
- return oPattern.includes(digits[0]) && !tPattern.includes(digits[1])
- ? int + ordinals[digits[0] - 1]
- : int + ordinals[3];
-};
+ const toggleClass = (el, className) => el.classList.toggle(className);
-const toSafeInteger = num =>
- Math.round(Math.max(Math.min(num, Number.MAX_SAFE_INTEGER), Number.MIN_SAFE_INTEGER));
-
-const toSnakeCase = str =>
- str &&
- str
- .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
- .map(x => x.toLowerCase())
- .join('_');
-
-const toggleClass = (el, className) => el.classList.toggle(className);
-
-const tomorrow = () => {
- let t = new Date();
- t.setDate(t.getDate() + 1);
- return `${t.getFullYear()}-${String(t.getMonth() + 1).padStart(2, '0')}-${String(
+ const tomorrow = (long = false) => {
+ let t = new Date();
+ t.setDate(t.getDate() + 1);
+ const ret = `${t.getFullYear()}-${String(t.getMonth() + 1).padStart(2, '0')}-${String(
t.getDate()
).padStart(2, '0')}`;
-};
+ return !long ? ret : `${ret}T00:00:00`;
+ };
-const transform = (obj, fn, acc) => Object.keys(obj).reduce((a, k) => fn(a, obj[k], k, obj), acc);
+ const transform = (obj, fn, acc) => Object.keys(obj).reduce((a, k) => fn(a, obj[k], k, obj), acc);
-const truncateString = (str, num) =>
- str.length > num ? str.slice(0, num > 3 ? num - 3 : num) + '...' : str;
+ const triggerEvent = (el, eventType, detail = undefined) =>
+ el.dispatchEvent(new CustomEvent(eventType, { detail: detail }));
-const truthCheckCollection = (collection, pre) => collection.every(obj => obj[pre]);
+ const truncateString = (str, num) =>
+ str.length > num ? str.slice(0, num > 3 ? num - 3 : num) + '...' : str;
-const unary = fn => val => fn(val);
+ const truthCheckCollection = (collection, pre) => collection.every(obj => obj[pre]);
-const uncurry = (fn, n = 1) => (...args) => {
- const next = acc => args => args.reduce((x, y) => x(y), acc);
- if (n > args.length) throw new RangeError('Arguments too few!');
- return next(fn)(args.slice(0, n));
-};
+ const unary = fn => val => fn(val);
-const unescapeHTML = str =>
- str.replace(
- /&|<|>|'|"/g,
- tag =>
- ({
- '&': '&',
- '<': '<',
- '>': '>',
- ''': "'",
- '"': '"'
- }[tag] || tag)
- );
+ const uncurry = (fn, n = 1) => (...args) => {
+ const next = acc => args => args.reduce((x, y) => x(y), acc);
+ if (n > args.length) throw new RangeError('Arguments too few!');
+ return next(fn)(args.slice(0, n));
+ };
-const unflattenObject = obj =>
- Object.keys(obj).reduce((acc, k) => {
- if (k.indexOf('.') !== -1) {
- const keys = k.split('.');
- Object.assign(
- acc,
- JSON.parse(
- '{' +
- keys.map((v, i) => (i !== keys.length - 1 ? `"${v}":{` : `"${v}":`)).join('') +
- obj[k] +
- '}'.repeat(keys.length)
- )
- );
- } else acc[k] = obj[k];
- return acc;
- }, {});
+ const unescapeHTML = str =>
+ str.replace(
+ /&|<|>|'|"/g,
+ tag =>
+ ({
+ '&': '&',
+ '<': '<',
+ '>': '>',
+ ''': "'",
+ '"': '"'
+ }[tag] || tag)
+ );
-const unfold = (fn, seed) => {
- let result = [],
- val = [null, seed];
- while ((val = fn(val[1]))) result.push(val[0]);
- return result;
-};
+ const unflattenObject = obj =>
+ Object.keys(obj).reduce((acc, k) => {
+ if (k.indexOf('.') !== -1) {
+ const keys = k.split('.');
+ Object.assign(
+ acc,
+ JSON.parse(
+ '{' +
+ keys.map((v, i) => (i !== keys.length - 1 ? `"${v}":{` : `"${v}":`)).join('') +
+ obj[k] +
+ '}'.repeat(keys.length)
+ )
+ );
+ } else acc[k] = obj[k];
+ return acc;
+ }, {});
-const union = (a, b) => Array.from(new Set([...a, ...b]));
+ const unfold = (fn, seed) => {
+ let result = [],
+ val = [null, seed];
+ while ((val = fn(val[1]))) result.push(val[0]);
+ return result;
+ };
-const unionBy = (a, b, fn) => {
- const s = new Set(a.map(v => fn(v)));
- return Array.from(new Set([...a, ...b.filter(x => !s.has(fn(x)))]));
-};
+ const union = (a, b) => Array.from(new Set([...a, ...b]));
-const unionWith = (a, b, comp) =>
- Array.from(new Set([...a, ...b.filter(x => a.findIndex(y => comp(x, y)) === -1)]));
+ const unionBy = (a, b, fn) => {
+ const s = new Set(a.map(v => fn(v)));
+ return Array.from(new Set([...a, ...b.filter(x => !s.has(fn(x)))]));
+ };
-const uniqueElements = arr => [...new Set(arr)];
+ const unionWith = (a, b, comp) =>
+ Array.from(new Set([...a, ...b.filter(x => a.findIndex(y => comp(x, y)) === -1)]));
-const untildify = str => str.replace(/^~($|\/|\\)/, `${typeof require !== "undefined" && require('os').homedir()}$1`);
+ const uniqueElements = arr => [...new Set(arr)];
-const unzip = arr =>
- arr.reduce(
- (acc, val) => (val.forEach((v, i) => acc[i].push(v)), acc),
- Array.from({
- length: Math.max(...arr.map(x => x.length))
- }).map(x => [])
- );
+ const uniqueElementsBy = (arr, fn) =>
+ arr.reduce((acc, v) => {
+ if (!acc.some(x => fn(v, x))) acc.push(v);
+ return acc;
+ }, []);
-const unzipWith = (arr, fn) =>
- arr
- .reduce(
+ const uniqueElementsByRight = (arr, fn) =>
+ arr.reduceRight((acc, v) => {
+ if (!acc.some(x => fn(v, x))) acc.push(v);
+ return acc;
+ }, []);
+
+ const uniqueSymmetricDifference = (a, b) => [
+ ...new Set([...a.filter(v => !b.includes(v)), ...b.filter(v => !a.includes(v))])
+ ];
+
+ const untildify = str => str.replace(/^~($|\/|\\)/, `${typeof require !== "undefined" && require('os').homedir()}$1`);
+
+ const unzip = arr =>
+ arr.reduce(
(acc, val) => (val.forEach((v, i) => acc[i].push(v)), acc),
Array.from({
length: Math.max(...arr.map(x => x.length))
}).map(x => [])
- )
- .map(val => fn(...val));
+ );
-const validateNumber = n => !isNaN(parseFloat(n)) && isFinite(n) && Number(n) == n;
+ const unzipWith = (arr, fn) =>
+ arr
+ .reduce(
+ (acc, val) => (val.forEach((v, i) => acc[i].push(v)), acc),
+ Array.from({
+ length: Math.max(...arr.map(x => x.length))
+ }).map(x => [])
+ )
+ .map(val => fn(...val));
-const without = (arr, ...args) => arr.filter(v => !args.includes(v));
+ const validateNumber = n => !isNaN(parseFloat(n)) && isFinite(n) && Number(n) == n;
-const words = (str, pattern = /[^a-zA-Z-]+/) => str.split(pattern).filter(Boolean);
+ const when = (pred, whenTrue) => x => (pred(x) ? whenTrue(x) : x);
-const xProd = (a, b) => a.reduce((acc, x) => acc.concat(b.map(y => [x, y])), []);
+ const without = (arr, ...args) => arr.filter(v => !args.includes(v));
-const yesNo = (val, def = false) =>
- /^(y|yes)$/i.test(val) ? true : /^(n|no)$/i.test(val) ? false : def;
+ const words = (str, pattern = /[^a-zA-Z-]+/) => str.split(pattern).filter(Boolean);
-const zip = (...arrays) => {
- const maxLength = Math.max(...arrays.map(x => x.length));
- return Array.from({ length: maxLength }).map((_, i) => {
- return Array.from({ length: arrays.length }, (_, k) => arrays[k][i]);
- });
-};
+ const xProd = (a, b) => a.reduce((acc, x) => acc.concat(b.map(y => [x, y])), []);
-const zipObject = (props, values) =>
- props.reduce((obj, prop, index) => (obj[prop] = values[index], obj), {});
+ const yesNo = (val, def = false) =>
+ /^(y|yes)$/i.test(val) ? true : /^(n|no)$/i.test(val) ? false : def;
-const zipWith = (...arrays) => {
- const length = arrays.length;
- let fn = length > 1 ? arrays[length - 1] : undefined;
- fn = typeof fn == 'function' ? (arrays.pop(), fn) : undefined;
- const maxLength = Math.max(...arrays.map(x => x.length));
- const result = Array.from({ length: maxLength }).map((_, i) => {
- return Array.from({ length: arrays.length }, (_, k) => arrays[k][i]);
- });
- return fn ? result.map(arr => fn(...arr)) : result;
-};
+ const zip = (...arrays) => {
+ const maxLength = Math.max(...arrays.map(x => x.length));
+ return Array.from({ length: maxLength }).map((_, i) => {
+ return Array.from({ length: arrays.length }, (_, k) => arrays[k][i]);
+ });
+ };
-var imports = {JSONToFile,RGBToHex,URLJoin,UUIDGeneratorBrowser,UUIDGeneratorNode,all,any,approximatelyEqual,arrayToHtmlList,ary,atob,attempt,average,averageBy,bifurcate,bifurcateBy,bind,bindAll,bindKey,binomialCoefficient,bottomVisible,btoa,byteSize,call,capitalize,capitalizeEveryWord,castArray,chainAsync,chunk,clampNumber,cloneRegExp,coalesce,coalesceFactory,collectInto,colorize,compact,compose,composeRight,converge,copyToClipboard,countBy,countOccurrences,createElement,createEventHub,currentURL,curry,debounce,decapitalize,deepClone,deepFlatten,defaults,defer,degreesToRads,delay,detectDeviceType,difference,differenceBy,differenceWith,digitize,distance,drop,dropRight,dropRightWhile,dropWhile,elementIsVisibleInViewport,elo,equals,escapeHTML,escapeRegExp,everyNth,extendHex,factorial,fibonacci,filterNonUnique,findKey,findLast,findLastIndex,findLastKey,flatten,flattenObject,flip,forEachRight,forOwn,forOwnRight,formatDuration,fromCamelCase,functionName,functions,gcd,geometricProgression,get,getColonTimeFromDate,getDaysDiffBetweenDates,getMeridiemSuffixOfInteger,getScrollPosition,getStyle,getType,getURLParameters,groupBy,hammingDistance,hasClass,hasFlags,hashBrowser,hashNode,head,hexToRGB,hide,httpGet,httpPost,httpsRedirect,inRange,indexOfAll,initial,initialize2DArray,initializeArrayWithRange,initializeArrayWithRangeRight,initializeArrayWithValues,intersection,intersectionBy,intersectionWith,invertKeyValues,is,isAbsoluteURL,isAnagram,isArrayLike,isBoolean,isDivisible,isEmpty,isEven,isFunction,isLowerCase,isNil,isNull,isNumber,isObject,isObjectLike,isPlainObject,isPrime,isPrimitive,isPromiseLike,isSorted,isString,isSymbol,isTravisCI,isUndefined,isUpperCase,isValidJSON,join,last,lcm,longestItem,lowercaseKeys,luhnCheck,mapKeys,mapObject,mapValues,mask,matches,matchesWith,maxBy,maxN,median,memoize,merge,minBy,minN,mostPerformant,negate,none,nthArg,nthElement,objectFromPairs,objectToPairs,observeMutations,off,omit,omitBy,on,onUserInputChange,once,orderBy,over,overArgs,palindrome,parseCookie,partial,partialRight,partition,percentile,permutations,pick,pickBy,pipeAsyncFunctions,pipeFunctions,pluralize,powerset,prettyBytes,primes,promisify,pull,pullAtIndex,pullAtValue,pullBy,radsToDegrees,randomHexColorCode,randomIntArrayInRange,randomIntegerInRange,randomNumberInRange,readFileLines,rearg,redirect,reduceSuccessive,reduceWhich,reducedFilter,remove,removeNonASCII,reverseString,round,runAsync,runPromisesInSeries,sample,sampleSize,scrollToTop,sdbm,serializeCookie,setStyle,shallowClone,show,shuffle,similarity,size,sleep,sortCharactersInString,sortedIndex,sortedIndexBy,sortedLastIndex,sortedLastIndexBy,splitLines,spreadOver,stableSort,standardDeviation,stringPermutations,stripHTMLTags,sum,sumBy,sumPower,symmetricDifference,symmetricDifferenceBy,symmetricDifferenceWith,tail,take,takeRight,takeRightWhile,takeWhile,throttle,timeTaken,times,toCamelCase,toCurrency,toDecimalMark,toKebabCase,toOrdinalSuffix,toSafeInteger,toSnakeCase,toggleClass,tomorrow,transform,truncateString,truthCheckCollection,unary,uncurry,unescapeHTML,unflattenObject,unfold,union,unionBy,unionWith,uniqueElements,untildify,unzip,unzipWith,validateNumber,without,words,xProd,yesNo,zip,zipObject,zipWith,}
+ const zipObject = (props, values) =>
+ props.reduce((obj, prop, index) => ((obj[prop] = values[index]), obj), {});
-return imports;
+ const zipWith = (...array) => {
+ const fn = typeof array[array.length - 1] === 'function' ? array.pop() : undefined;
+ return Array.from(
+ { length: Math.max(...array.map(a => a.length)) },
+ (_, i) => (fn ? fn(...array.map(a => a[i])) : array.map(a => a[i]))
+ );
+ };
+
+ exports.CSVToArray = CSVToArray;
+ exports.CSVToJSON = CSVToJSON;
+ exports.JSONToFile = JSONToFile;
+ exports.JSONtoCSV = JSONtoCSV;
+ exports.RGBToHex = RGBToHex;
+ exports.URLJoin = URLJoin;
+ exports.UUIDGeneratorBrowser = UUIDGeneratorBrowser;
+ exports.UUIDGeneratorNode = UUIDGeneratorNode;
+ exports.all = all;
+ exports.allEqual = allEqual;
+ exports.any = any;
+ exports.approximatelyEqual = approximatelyEqual;
+ exports.arrayToCSV = arrayToCSV;
+ exports.arrayToHtmlList = arrayToHtmlList;
+ exports.ary = ary;
+ exports.atob = atob;
+ exports.attempt = attempt;
+ exports.average = average;
+ exports.averageBy = averageBy;
+ exports.bifurcate = bifurcate;
+ exports.bifurcateBy = bifurcateBy;
+ exports.bind = bind;
+ exports.bindAll = bindAll;
+ exports.bindKey = bindKey;
+ exports.binomialCoefficient = binomialCoefficient;
+ exports.bottomVisible = bottomVisible;
+ exports.btoa = btoa;
+ exports.byteSize = byteSize;
+ exports.call = call;
+ exports.capitalize = capitalize;
+ exports.capitalizeEveryWord = capitalizeEveryWord;
+ exports.castArray = castArray;
+ exports.chainAsync = chainAsync;
+ exports.chunk = chunk;
+ exports.clampNumber = clampNumber;
+ exports.cloneRegExp = cloneRegExp;
+ exports.coalesce = coalesce;
+ exports.coalesceFactory = coalesceFactory;
+ exports.collectInto = collectInto;
+ exports.colorize = colorize;
+ exports.compact = compact;
+ exports.compose = compose;
+ exports.composeRight = composeRight;
+ exports.converge = converge;
+ exports.copyToClipboard = copyToClipboard;
+ exports.countBy = countBy;
+ exports.countOccurrences = countOccurrences;
+ exports.counter = counter;
+ exports.createElement = createElement;
+ exports.createEventHub = createEventHub;
+ exports.currentURL = currentURL;
+ exports.curry = curry;
+ exports.dayOfYear = dayOfYear;
+ exports.debounce = debounce;
+ exports.decapitalize = decapitalize;
+ exports.deepClone = deepClone;
+ exports.deepFlatten = deepFlatten;
+ exports.deepFreeze = deepFreeze;
+ exports.defaults = defaults;
+ exports.defer = defer;
+ exports.degreesToRads = degreesToRads;
+ exports.delay = delay;
+ exports.detectDeviceType = detectDeviceType;
+ exports.difference = difference;
+ exports.differenceBy = differenceBy;
+ exports.differenceWith = differenceWith;
+ exports.dig = dig;
+ exports.digitize = digitize;
+ exports.distance = distance;
+ exports.drop = drop;
+ exports.dropRight = dropRight;
+ exports.dropRightWhile = dropRightWhile;
+ exports.dropWhile = dropWhile;
+ exports.elementContains = elementContains;
+ exports.elementIsVisibleInViewport = elementIsVisibleInViewport;
+ exports.elo = elo;
+ exports.equals = equals;
+ exports.escapeHTML = escapeHTML;
+ exports.escapeRegExp = escapeRegExp;
+ exports.everyNth = everyNth;
+ exports.extendHex = extendHex;
+ exports.factorial = factorial;
+ exports.fibonacci = fibonacci;
+ exports.filterNonUnique = filterNonUnique;
+ exports.filterNonUniqueBy = filterNonUniqueBy;
+ exports.findKey = findKey;
+ exports.findLast = findLast;
+ exports.findLastIndex = findLastIndex;
+ exports.findLastKey = findLastKey;
+ exports.flatten = flatten;
+ exports.flattenObject = flattenObject;
+ exports.flip = flip;
+ exports.forEachRight = forEachRight;
+ exports.forOwn = forOwn;
+ exports.forOwnRight = forOwnRight;
+ exports.formatDuration = formatDuration;
+ exports.fromCamelCase = fromCamelCase;
+ exports.functionName = functionName;
+ exports.functions = functions;
+ exports.gcd = gcd;
+ exports.geometricProgression = geometricProgression;
+ exports.get = get;
+ exports.getColonTimeFromDate = getColonTimeFromDate;
+ exports.getDaysDiffBetweenDates = getDaysDiffBetweenDates;
+ exports.getMeridiemSuffixOfInteger = getMeridiemSuffixOfInteger;
+ exports.getScrollPosition = getScrollPosition;
+ exports.getStyle = getStyle;
+ exports.getType = getType;
+ exports.getURLParameters = getURLParameters;
+ exports.groupBy = groupBy;
+ exports.hammingDistance = hammingDistance;
+ exports.hasClass = hasClass;
+ exports.hasFlags = hasFlags;
+ exports.hashBrowser = hashBrowser;
+ exports.hashNode = hashNode;
+ exports.head = head;
+ exports.hexToRGB = hexToRGB;
+ exports.hide = hide;
+ exports.httpGet = httpGet;
+ exports.httpPost = httpPost;
+ exports.httpsRedirect = httpsRedirect;
+ exports.hz = hz;
+ exports.inRange = inRange;
+ exports.indentString = indentString;
+ exports.indexOfAll = indexOfAll;
+ exports.initial = initial;
+ exports.initialize2DArray = initialize2DArray;
+ exports.initializeArrayWithRange = initializeArrayWithRange;
+ exports.initializeArrayWithRangeRight = initializeArrayWithRangeRight;
+ exports.initializeArrayWithValues = initializeArrayWithValues;
+ exports.initializeNDArray = initializeNDArray;
+ exports.insertAfter = insertAfter;
+ exports.insertBefore = insertBefore;
+ exports.intersection = intersection;
+ exports.intersectionBy = intersectionBy;
+ exports.intersectionWith = intersectionWith;
+ exports.invertKeyValues = invertKeyValues;
+ exports.is = is;
+ exports.isAbsoluteURL = isAbsoluteURL;
+ exports.isAfterDate = isAfterDate;
+ exports.isAnagram = isAnagram;
+ exports.isArrayLike = isArrayLike;
+ exports.isBeforeDate = isBeforeDate;
+ exports.isBoolean = isBoolean;
+ exports.isBrowser = isBrowser;
+ exports.isBrowserTabFocused = isBrowserTabFocused;
+ exports.isDivisible = isDivisible;
+ exports.isEmpty = isEmpty;
+ exports.isEven = isEven;
+ exports.isFunction = isFunction;
+ exports.isLowerCase = isLowerCase;
+ exports.isNil = isNil;
+ exports.isNull = isNull;
+ exports.isNumber = isNumber;
+ exports.isObject = isObject;
+ exports.isObjectLike = isObjectLike;
+ exports.isPlainObject = isPlainObject;
+ exports.isPrime = isPrime;
+ exports.isPrimitive = isPrimitive;
+ exports.isPromiseLike = isPromiseLike;
+ exports.isSameDate = isSameDate;
+ exports.isSorted = isSorted;
+ exports.isString = isString;
+ exports.isSymbol = isSymbol;
+ exports.isTravisCI = isTravisCI;
+ exports.isUndefined = isUndefined;
+ exports.isUpperCase = isUpperCase;
+ exports.isValidJSON = isValidJSON;
+ exports.join = join;
+ exports.last = last;
+ exports.lcm = lcm;
+ exports.longestItem = longestItem;
+ exports.lowercaseKeys = lowercaseKeys;
+ exports.luhnCheck = luhnCheck;
+ exports.mapKeys = mapKeys;
+ exports.mapObject = mapObject;
+ exports.mapString = mapString;
+ exports.mapValues = mapValues;
+ exports.mask = mask;
+ exports.matches = matches;
+ exports.matchesWith = matchesWith;
+ exports.maxBy = maxBy;
+ exports.maxDate = maxDate;
+ exports.maxN = maxN;
+ exports.median = median;
+ exports.memoize = memoize;
+ exports.merge = merge;
+ exports.minBy = minBy;
+ exports.minDate = minDate;
+ exports.minN = minN;
+ exports.mostPerformant = mostPerformant;
+ exports.negate = negate;
+ exports.nest = nest;
+ exports.nodeListToArray = nodeListToArray;
+ exports.none = none;
+ exports.nthArg = nthArg;
+ exports.nthElement = nthElement;
+ exports.objectFromPairs = objectFromPairs;
+ exports.objectToPairs = objectToPairs;
+ exports.observeMutations = observeMutations;
+ exports.off = off;
+ exports.offset = offset;
+ exports.omit = omit;
+ exports.omitBy = omitBy;
+ exports.on = on;
+ exports.onUserInputChange = onUserInputChange;
+ exports.once = once;
+ exports.orderBy = orderBy;
+ exports.over = over;
+ exports.overArgs = overArgs;
+ exports.pad = pad;
+ exports.palindrome = palindrome;
+ exports.parseCookie = parseCookie;
+ exports.partial = partial;
+ exports.partialRight = partialRight;
+ exports.partition = partition;
+ exports.percentile = percentile;
+ exports.permutations = permutations;
+ exports.pick = pick;
+ exports.pickBy = pickBy;
+ exports.pipeAsyncFunctions = pipeAsyncFunctions;
+ exports.pipeFunctions = pipeFunctions;
+ exports.pluralize = pluralize;
+ exports.powerset = powerset;
+ exports.prefix = prefix;
+ exports.prettyBytes = prettyBytes;
+ exports.primes = primes;
+ exports.promisify = promisify;
+ exports.pull = pull;
+ exports.pullAtIndex = pullAtIndex;
+ exports.pullAtValue = pullAtValue;
+ exports.pullBy = pullBy;
+ exports.radsToDegrees = radsToDegrees;
+ exports.randomHexColorCode = randomHexColorCode;
+ exports.randomIntArrayInRange = randomIntArrayInRange;
+ exports.randomIntegerInRange = randomIntegerInRange;
+ exports.randomNumberInRange = randomNumberInRange;
+ exports.readFileLines = readFileLines;
+ exports.rearg = rearg;
+ exports.recordAnimationFrames = recordAnimationFrames;
+ exports.redirect = redirect;
+ exports.reduceSuccessive = reduceSuccessive;
+ exports.reduceWhich = reduceWhich;
+ exports.reducedFilter = reducedFilter;
+ exports.reject = reject;
+ exports.remove = remove;
+ exports.removeNonASCII = removeNonASCII;
+ exports.renameKeys = renameKeys;
+ exports.reverseString = reverseString;
+ exports.round = round;
+ exports.runAsync = runAsync;
+ exports.runPromisesInSeries = runPromisesInSeries;
+ exports.sample = sample;
+ exports.sampleSize = sampleSize;
+ exports.scrollToTop = scrollToTop;
+ exports.sdbm = sdbm;
+ exports.serializeCookie = serializeCookie;
+ exports.setStyle = setStyle;
+ exports.shallowClone = shallowClone;
+ exports.shank = shank;
+ exports.show = show;
+ exports.shuffle = shuffle;
+ exports.similarity = similarity;
+ exports.size = size;
+ exports.sleep = sleep;
+ exports.smoothScroll = smoothScroll;
+ exports.sortCharactersInString = sortCharactersInString;
+ exports.sortedIndex = sortedIndex;
+ exports.sortedIndexBy = sortedIndexBy;
+ exports.sortedLastIndex = sortedLastIndex;
+ exports.sortedLastIndexBy = sortedLastIndexBy;
+ exports.splitLines = splitLines;
+ exports.spreadOver = spreadOver;
+ exports.stableSort = stableSort;
+ exports.standardDeviation = standardDeviation;
+ exports.stringPermutations = stringPermutations;
+ exports.stripHTMLTags = stripHTMLTags;
+ exports.sum = sum;
+ exports.sumBy = sumBy;
+ exports.sumPower = sumPower;
+ exports.symmetricDifference = symmetricDifference;
+ exports.symmetricDifferenceBy = symmetricDifferenceBy;
+ exports.symmetricDifferenceWith = symmetricDifferenceWith;
+ exports.tail = tail;
+ exports.take = take;
+ exports.takeRight = takeRight;
+ exports.takeRightWhile = takeRightWhile;
+ exports.takeWhile = takeWhile;
+ exports.throttle = throttle;
+ exports.timeTaken = timeTaken;
+ exports.times = times;
+ exports.toCamelCase = toCamelCase;
+ exports.toCurrency = toCurrency;
+ exports.toDecimalMark = toDecimalMark;
+ exports.toHash = toHash;
+ exports.toKebabCase = toKebabCase;
+ exports.toOrdinalSuffix = toOrdinalSuffix;
+ exports.toSafeInteger = toSafeInteger;
+ exports.toSnakeCase = toSnakeCase;
+ exports.toggleClass = toggleClass;
+ exports.tomorrow = tomorrow;
+ exports.transform = transform;
+ exports.triggerEvent = triggerEvent;
+ exports.truncateString = truncateString;
+ exports.truthCheckCollection = truthCheckCollection;
+ exports.unary = unary;
+ exports.uncurry = uncurry;
+ exports.unescapeHTML = unescapeHTML;
+ exports.unflattenObject = unflattenObject;
+ exports.unfold = unfold;
+ exports.union = union;
+ exports.unionBy = unionBy;
+ exports.unionWith = unionWith;
+ exports.uniqueElements = uniqueElements;
+ exports.uniqueElementsBy = uniqueElementsBy;
+ exports.uniqueElementsByRight = uniqueElementsByRight;
+ exports.uniqueSymmetricDifference = uniqueSymmetricDifference;
+ exports.untildify = untildify;
+ exports.unzip = unzip;
+ exports.unzipWith = unzipWith;
+ exports.validateNumber = validateNumber;
+ exports.when = when;
+ exports.without = without;
+ exports.words = words;
+ exports.xProd = xProd;
+ exports.yesNo = yesNo;
+ exports.zip = zip;
+ exports.zipObject = zipObject;
+ exports.zipWith = zipWith;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
})));
diff --git a/dist/_30s.min.js b/dist/_30s.min.js
deleted file mode 100644
index 958823a81..000000000
--- a/dist/_30s.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(a,b){'object'==typeof exports&&'undefined'!=typeof module?module.exports=b():'function'==typeof define&&define.amd?define(b):a._30s=b()})(this,function(){'use strict';var a=Math.sqrt,b=Math.log,c=Math.floor,d=Math.PI,e=Math.min,g=Math.max,h=Math.ceil,i=Math.round,j=Math.abs;const k='undefined'!=typeof require&&require('fs'),l='undefined'!=typeof require&&require('crypto'),m=(a,b=a.length,...c)=>b<=c.length?a(...c):m.bind(null,a,b,...c),n=(a)=>{let b=Object.assign({},a);return Object.keys(b).forEach((c)=>b[c]='object'==typeof a[c]?n(a[c]):a[c]),b},o=(a)=>[].concat(...a.map((a)=>Array.isArray(a)?o(a):a)),p=([...c],d=32,e)=>{const[g,a]=c,b=(a,b)=>1/(1+10**((b-a)/400)),h=(c,h)=>(e||c)+d*(h-b(h?g:a,h?a:g));if(2===c.length)return[h(g,1),h(a,0)];for(let a,b=0;b{if(c===d)return!0;if(c instanceof Date&&d instanceof Date)return c.getTime()===d.getTime();if(!c||!d||'object'!=typeof c&&'object'!=typeof d)return c===d;if(null===c||void 0===c||null===d||void 0===d)return!1;if(c.prototype!==d.prototype)return!1;let e=Object.keys(c);return!(e.length!==Object.keys(d).length)&&e.every((a)=>q(c[a],d[a]))},r=(a)=>0>a?(()=>{throw new TypeError('Negative numbers are not allowed!')})():1>=a?1:a*r(a-1),s=(a,b=1)=>1===b?a.reduce((b,a)=>b.concat(a),[]):a.reduce((c,a)=>c.concat(Array.isArray(a)?s(a,b-1):a),[]),t=(a,b='')=>Object.keys(a).reduce((c,d)=>{const e=b.length?b+'.':'';return'object'==typeof a[d]?Object.assign(c,t(a[d],e+d)):c[e+d]=a[d],c},{}),u=(...a)=>{const c=(a,b)=>b?u(b,a%b):a;return[...a].reduce((d,a)=>c(d,a))},v='undefined'!=typeof require&&require('crypto'),w=(a)=>2>=a.length?2===a.length?[a,[a[1],a[0]]]:a:a.reduce((b,c,d)=>b.concat(w([...a.slice(0,d),...a.slice(d+1)]).map((a)=>[c,...a])),[]),x='undefined'!=typeof require&&require('fs'),y=()=>{const a=document.documentElement.scrollTop||document.body.scrollTop;02>=a.length?2===a.length?[a,a[1]+a[0]]:[a]:a.split('').reduce((b,c,d)=>b.concat(z(a.slice(0,d)+a.slice(d+1)).map((a)=>c+a)),[]);return{JSONToFile:(a,b)=>k.writeFile(`${b}.json`,JSON.stringify(a,null,2)),RGBToHex:(a,c,d)=>((a<<16)+(c<<8)+d).toString(16).padStart(6,'0'),URLJoin:(...a)=>a.join('/').replace(/[\/]+/g,'/').replace(/^(.+):\//,'$1://').replace(/^file:/,'file:/').replace(/\/(\?|&|#[^!])/g,'$1').replace(/\?/g,'&').replace('&','?'),UUIDGeneratorBrowser:()=>'10000000-1000-4000-8000-100000000000'.replace(/[018]/g,(a)=>(a^crypto.getRandomValues(new Uint8Array(1))[0]&15>>a/4).toString(16)),UUIDGeneratorNode:()=>'10000000-1000-4000-8000-100000000000'.replace(/[018]/g,(a)=>(a^l.randomBytes(1)[0]&15>>a/4).toString(16)),all:(a,b=Boolean)=>a.every(b),any:(a,b=Boolean)=>a.some(b),approximatelyEqual:(a,b,c=1e-3)=>j(a-b)a.map((a)=>document.querySelector('#'+b).innerHTML+=`${a}`),ary:(a,b)=>(...c)=>a(...c.slice(0,b)),atob:(a)=>new Buffer(a,'base64').toString('binary'),attempt:(a,...b)=>{try{return a(b)}catch(a){return a instanceof Error?a:new Error(a)}},average:(...a)=>[...a].reduce((a,b)=>a+b,0)/a.length,averageBy:(a,b)=>a.map('function'==typeof b?b:(a)=>a[b]).reduce((a,b)=>a+b,0)/a.length,bifurcate:(a,b)=>a.reduce((a,c,d)=>(a[b[d]?0:1].push(c),a),[[],[]]),bifurcateBy:(a,b)=>a.reduce((a,c,d)=>(a[b(c,d)?0:1].push(c),a),[[],[]]),bind:(a,b,...c)=>function(){return a.apply(b,c.concat(...arguments))},bindAll:(a,...b)=>b.forEach((b)=>(f=a[b],a[b]=function(){return f.apply(a)})),bindKey:(a,b,...c)=>function(){return a[b].apply(a,c.concat(...arguments))},binomialCoefficient:(a,b)=>{var c=Number.isNaN;if(c(a)||c(b))return NaN;if(0>b||b>a)return 0;if(0===b||b===a)return 1;if(1===b||b===a-1)return a;a-bdocument.documentElement.clientHeight+window.scrollY>=(document.documentElement.scrollHeight||document.documentElement.clientHeight),btoa:(a)=>new Buffer(a,'binary').toString('base64'),byteSize:(a)=>new Blob([a]).size,call:(a,...b)=>(c)=>c[a](...b),capitalize:([a,...b],c=!1)=>a.toUpperCase()+(c?b.join('').toLowerCase():b.join('')),capitalizeEveryWord:(a)=>a.replace(/\b[a-z]/g,(a)=>a.toUpperCase()),castArray:(a)=>Array.isArray(a)?a:[a],chainAsync:(a)=>{let b=0;const c=()=>a[b++](c);c()},chunk:(a,b)=>Array.from({length:h(a.length/b)},(c,d)=>a.slice(d*b,d*b+b)),clampNumber:(c,d,a)=>g(e(c,g(d,a)),e(d,a)),cloneRegExp:(a)=>new RegExp(a.source,a.flags),coalesce:(...a)=>a.find((a)=>![void 0,null].includes(a)),coalesceFactory:(a)=>(...b)=>b.find(a),collectInto:(a)=>(...b)=>a(b),colorize:(...a)=>({black:`\x1b[30m${a.join(' ')}`,red:`\x1b[31m${a.join(' ')}`,green:`\x1b[32m${a.join(' ')}`,yellow:`\x1b[33m${a.join(' ')}`,blue:`\x1b[34m${a.join(' ')}`,magenta:`\x1b[35m${a.join(' ')}`,cyan:`\x1b[36m${a.join(' ')}`,white:`\x1b[37m${a.join(' ')}`,bgBlack:`\x1b[40m${a.join(' ')}\x1b[0m`,bgRed:`\x1b[41m${a.join(' ')}\x1b[0m`,bgGreen:`\x1b[42m${a.join(' ')}\x1b[0m`,bgYellow:`\x1b[43m${a.join(' ')}\x1b[0m`,bgBlue:`\x1b[44m${a.join(' ')}\x1b[0m`,bgMagenta:`\x1b[45m${a.join(' ')}\x1b[0m`,bgCyan:`\x1b[46m${a.join(' ')}\x1b[0m`,bgWhite:`\x1b[47m${a.join(' ')}\x1b[0m`}),compact:(a)=>a.filter(Boolean),compose:(...a)=>a.reduce((a,b)=>(...c)=>a(b(...c))),composeRight:(...a)=>a.reduce((a,b)=>(...c)=>b(a(...c))),converge:(a,b)=>(...c)=>a(...b.map((a)=>a.apply(null,c))),copyToClipboard:(a)=>{const b=document.createElement('textarea');b.value=a,b.setAttribute('readonly',''),b.style.position='absolute',b.style.left='-9999px',document.body.appendChild(b);const c=!!(0a.map('function'==typeof b?b:(a)=>a[b]).reduce((a,b)=>(a[b]=(a[b]||0)+1,a),{}),countOccurrences:(a,b)=>a.reduce((c,a)=>a===b?c+1:c+0,0),createElement:(a)=>{const b=document.createElement('div');return b.innerHTML=a,b.firstElementChild},createEventHub:()=>({hub:Object.create(null),emit(a,b){(this.hub[a]||[]).forEach((a)=>a(b))},on(a,b){this.hub[a]||(this.hub[a]=[]),this.hub[a].push(b)},off(a,b){const c=(this.hub[a]||[]).findIndex((a)=>a===b);-1window.location.href,curry:m,debounce:(a,b=0)=>{let c;return function(...d){clearTimeout(c),c=setTimeout(()=>a.apply(this,d),b)}},decapitalize:([a,...b],c=!1)=>a.toLowerCase()+(c?b.join('').toUpperCase():b.join('')),deepClone:n,deepFlatten:o,defaults:(a,...b)=>Object.assign({},a,...b.reverse(),a),defer:(a,...b)=>setTimeout(a,1,...b),degreesToRads:(a)=>a*d/180,delay:(a,b,...c)=>setTimeout(a,b,...c),detectDeviceType:()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)?'Mobile':'Desktop',difference:(c,a)=>{const b=new Set(a);return c.filter((a)=>!b.has(a))},differenceBy:(c,a,b)=>{const d=new Set(a.map((a)=>b(a)));return c.filter((a)=>!d.has(b(a)))},differenceWith:(a,b,c)=>a.filter((d)=>-1===b.findIndex((a)=>c(d,a))),digitize:(a)=>[...`${a}`].map((a)=>parseInt(a)),distance:(a,b,c,d)=>Math.hypot(c-a,d-b),drop:(a,b=1)=>a.slice(b),dropRight:(a,b=1)=>a.slice(0,-b),dropRightWhile:(a,b)=>{for(;0{for(;0{const{top:c,left:d,bottom:e,right:g}=a.getBoundingClientRect(),{innerHeight:h,innerWidth:i}=window;return b?(0a.replace(/[&<>'"]/g,(a)=>({"&":'&',"<":'<',">":'>',"'":''','"':'"'})[a]||a),escapeRegExp:(a)=>a.replace(/[.*+?^${}()|[\]\\]/g,'\\$&'),everyNth:(a,b)=>a.filter((a,c)=>c%b==b-1),extendHex:(a)=>'#'+a.slice(a.startsWith('#')?1:0).split('').map((a)=>a+a).join(''),factorial:r,fibonacci:(a)=>Array.from({length:a}).reduce((a,b,c)=>a.concat(1a.filter((b)=>a.indexOf(b)===a.lastIndexOf(b)),findKey:(a,b)=>Object.keys(a).find((c)=>b(a[c],c,a)),findLast:(a,b)=>a.filter(b).slice(-1)[0],findLastIndex:(a,b)=>a.map((a,b)=>[b,a]).filter((c)=>b(c[1],c[0],a)).slice(-1)[0][0],findLastKey:(a,b)=>Object.keys(a).reverse().find((c)=>b(a[c],c,a)),flatten:s,flattenObject:t,flip:(a)=>(b,...c)=>a(...c,b),forEachRight:(a,b)=>a.slice(0).reverse().forEach(b),forOwn:(a,b)=>Object.keys(a).forEach((c)=>b(a[c],c,a)),forOwnRight:(a,b)=>Object.keys(a).reverse().forEach((c)=>b(a[c],c,a)),formatDuration:(a)=>{0>a&&(a=-a);const b={day:c(a/8.64e7),hour:c(a/3.6e6)%24,minute:c(a/6e4)%60,second:c(a/1e3)%60,millisecond:c(a)%1e3};return Object.entries(b).filter((a)=>0!==a[1]).map((a)=>a[1]+' '+(1===a[1]?a[0]:a[0]+'s')).join(', ')},fromCamelCase:(a,b='_')=>a.replace(/([a-z\d])([A-Z])/g,'$1'+b+'$2').replace(/([A-Z]+)([A-Z][a-z\d]+)/g,'$1'+b+'$2').toLowerCase(),functionName:(a)=>(console.debug(a.name),a),functions:(a,b=!1)=>(b?[...Object.keys(a),...Object.keys(Object.getPrototypeOf(a))]:Object.keys(a)).filter((b)=>'function'==typeof a[b]),gcd:u,geometricProgression:(a,d=1,e=2)=>Array.from({length:c(b(a/d)/b(e))+1}).map((a,b)=>d*e**b),get:(a,...b)=>[...b].map((b)=>b.replace(/\[([^\[\]]*)\]/g,'.$1.').split('.').filter((a)=>''!==a).reduce((a,b)=>a&&a[b],a)),getColonTimeFromDate:(a)=>a.toTimeString().slice(0,8),getDaysDiffBetweenDates:(a,b)=>(b-a)/86400000,getMeridiemSuffixOfInteger:(a)=>0===a||24===a?'12am':12===a?'12pm':12>a?a%12+'am':a%12+'pm',getScrollPosition:(a=window)=>({x:a.pageXOffset===void 0?a.scrollLeft:a.pageXOffset,y:a.pageYOffset===void 0?a.scrollTop:a.pageYOffset}),getStyle:(a,b)=>getComputedStyle(a)[b],getType:(a)=>a===void 0?'undefined':null===a?'null':a.constructor.name.toLowerCase(),getURLParameters:(a)=>(a.match(/([^?=&]+)(=([^&]*))/g)||[]).reduce((b,a)=>(b[a.slice(0,a.indexOf('='))]=a.slice(a.indexOf('=')+1),b),{}),groupBy:(a,b)=>a.map('function'==typeof b?b:(a)=>a[b]).reduce((b,c,d)=>(b[c]=(b[c]||[]).concat(a[d]),b),{}),hammingDistance:(a,b)=>((a^b).toString(2).match(/1/g)||'').length,hasClass:(a,b)=>a.classList.contains(b),hasFlags:(...a)=>a.every((a)=>process.argv.includes(/^-{1,2}/.test(a)?a:'--'+a)),hashBrowser:(a)=>crypto.subtle.digest('SHA-256',new TextEncoder('utf-8').encode(a)).then((a)=>{let b=[],c=new DataView(a);for(let d=0;dnew Promise((b)=>setTimeout(()=>b(v.createHash('sha256').update(a).digest('hex')),0)),head:(a)=>a[0],hexToRGB:(a)=>{let b=!1,c=a.slice(a.startsWith('#')?1:0);return 3===c.length?c=[...c].map((a)=>a+a).join(''):8===c.length&&(b=!0),c=parseInt(c,16),'rgb'+(b?'a':'')+'('+(c>>>(b?24:16))+', '+((c&(b?16711680:65280))>>>(b?16:8))+', '+((c&(b?65280:255))>>>(b?8:0))+(b?`, ${255&c}`:'')+')'},hide:(...a)=>[...a].forEach((a)=>a.style.display='none'),httpGet:(a,b,c=console.error)=>{const d=new XMLHttpRequest;d.open('GET',a,!0),d.onload=()=>b(d.responseText),d.onerror=()=>c(d),d.send()},httpPost:(a,b,c,d=console.error)=>{const e=new XMLHttpRequest;e.open('POST',a,!0),e.setRequestHeader('Content-type','application/json; charset=utf-8'),e.onload=()=>c(e.responseText),e.onerror=()=>d(e),e.send(b)},httpsRedirect:()=>{'https:'!==location.protocol&&location.replace('https://'+location.href.split('//')[1])},inRange:(a,b,c=null)=>(c&&b>c&&(c=b),null==c?0<=a&&a=b&&a{const c=[];return a.forEach((a,d)=>a===b&&c.push(d)),c},initial:(a)=>a.slice(0,-1),initialize2DArray:(a,b,c=null)=>Array.from({length:b}).map(()=>Array.from({length:a}).fill(c)),initializeArrayWithRange:(a,b=0,c=1)=>Array.from({length:h((a+1-b)/c)}).map((a,d)=>d*c+b),initializeArrayWithRangeRight:(a,b=0,c=1)=>Array.from({length:h((a+1-b)/c)}).map((a,d,e)=>(e.length-d-1)*c+b),initializeArrayWithValues:(a,b=0)=>Array(a).fill(b),intersection:(c,a)=>{const b=new Set(a);return c.filter((a)=>b.has(a))},intersectionBy:(c,a,b)=>{const d=new Set(a.map((a)=>b(a)));return c.filter((a)=>d.has(b(a)))},intersectionWith:(c,a,b)=>c.filter((c)=>-1!==a.findIndex((a)=>b(c,a))),invertKeyValues:(a,b)=>Object.keys(a).reduce((c,d)=>{const e=b?b(a[d]):a[d];return c[e]=c[e]||[],c[e].push(d),c},{}),is:(a,b)=>b instanceof a,isAbsoluteURL:(a)=>/^[a-z][a-z0-9+.-]*:/.test(a),isAnagram:(a,b)=>{const c=(a)=>a.toLowerCase().replace(/[^a-z0-9]/gi,'').split('').sort().join('');return c(a)===c(b)},isArrayLike:(a)=>{try{return[...a],!0}catch(a){return!1}},isBoolean:(a)=>'boolean'==typeof a,isDivisible:(a,b)=>0==a%b,isEmpty:(a)=>null==a||!(Object.keys(a)||a).length,isEven:(a)=>0==a%2,isFunction:(a)=>'function'==typeof a,isLowerCase:(a)=>a===a.toLowerCase(),isNil:(a)=>a===void 0||null===a,isNull:(a)=>null===a,isNumber:(a)=>'number'==typeof a,isObject:(a)=>a===Object(a),isObjectLike:(a)=>null!==a&&'object'==typeof a,isPlainObject:(a)=>!!a&&'object'==typeof a&&a.constructor===Object,isPrime:(b)=>{const d=c(a(b));for(var e=2;e<=d;e++)if(0==b%e)return!1;return 2<=b},isPrimitive:(a)=>!['object','function'].includes(typeof a)||null===a,isPromiseLike:(a)=>null!==a&&('object'==typeof a||'function'==typeof a)&&'function'==typeof a.then,isSorted:(a)=>{const b=a[0]>a[1]?-1:1;for(let[c,d]of a.entries()){if(c===a.length-1)return b;if(0<(d-a[c+1])*b)return 0}},isString:(a)=>'string'==typeof a,isSymbol:(a)=>'symbol'==typeof a,isTravisCI:()=>'TRAVIS'in process.env&&'CI'in process.env,isUndefined:(a)=>a===void 0,isUpperCase:(a)=>a===a.toUpperCase(),isValidJSON:(a)=>{try{return JSON.parse(a),!0}catch(a){return!1}},join:(a,b=',',c=b)=>a.reduce((d,e,g)=>g===a.length-2?d+e+c:g===a.length-1?d+e:d+e+b,''),last:(a)=>a[a.length-1],lcm:(...a)=>{const b=(a,c)=>c?b(c,a%c):a,c=(a,c)=>a*c/b(a,c);return[...a].reduce((d,a)=>c(d,a))},longestItem:(...a)=>[...a].sort((c,a)=>a.length-c.length)[0],lowercaseKeys:(a)=>Object.keys(a).reduce((b,c)=>(b[c.toLowerCase()]=a[c],b),{}),luhnCheck:(a)=>{let b=(a+'').split('').reverse().map((a)=>parseInt(a)),c=b.splice(0,1)[0],d=b.reduce((a,b,c)=>0==c%2?a+2*b%9||9:a+b,0);return d+=c,0==d%10},mapKeys:(a,b)=>Object.keys(a).reduce((c,d)=>(c[b(a[d],d,a)]=a[d],c),{}),mapObject:(b,c)=>((d)=>(d=[b,b.map(c)],d[0].reduce((a,b,c)=>(a[b]=d[1][c],a),{})))(),mapValues:(a,b)=>Object.keys(a).reduce((c,d)=>(c[d]=b(a[d],d,a),c),{}),mask:(a,b=4,c='*')=>(''+a).slice(0,-b).replace(/./g,c)+(''+a).slice(-b),matches:(a,b)=>Object.keys(b).every((c)=>a.hasOwnProperty(c)&&a[c]===b[c]),matchesWith:(a,b,c)=>Object.keys(b).every((d)=>a.hasOwnProperty(d)&&c?c(a[d],b[d],d,a,b):a[d]==b[d]),maxBy:(a,b)=>g(...a.map('function'==typeof b?b:(a)=>a[b])),maxN:(a,b=1)=>[...a].sort((c,a)=>a-c).slice(0,b),median:(a)=>{const b=c(a.length/2),d=[...a].sort((c,a)=>c-a);return 0==a.length%2?(d[b-1]+d[b])/2:d[b]},memoize:(a)=>{const b=new Map,c=function(c){return b.has(c)?b.get(c):b.set(c,a.call(this,c))&&b.get(c)};return c.cache=b,c},merge:(...a)=>[...a].reduce((b,c)=>Object.keys(c).reduce((d,a)=>(b[a]=b.hasOwnProperty(a)?[].concat(b[a]).concat(c[a]):c[a],b),{}),{}),minBy:(a,b)=>e(...a.map('function'==typeof b?b:(a)=>a[b])),minN:(a,b=1)=>[...a].sort((c,a)=>c-a).slice(0,b),mostPerformant:(a,b=1e4)=>{const c=a.map((a)=>{const c=performance.now();for(let c=0;c(...b)=>!a(...b),none:(a,b=Boolean)=>!a.some(b),nthArg:(a)=>(...b)=>b.slice(a)[0],nthElement:(a,b=0)=>(0a.reduce((b,a)=>(b[a[0]]=a[1],b),{}),objectToPairs:(a)=>Object.keys(a).map((b)=>[b,a[b]]),observeMutations:(a,b,c)=>{const d=new MutationObserver((a)=>a.forEach((a)=>b(a)));return d.observe(a,Object.assign({childList:!0,attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,subtree:!0},c)),d},off:(a,b,c,d=!1)=>a.removeEventListener(b,c,d),omit:(a,b)=>Object.keys(a).filter((a)=>!b.includes(a)).reduce((b,c)=>(b[c]=a[c],b),{}),omitBy:(a,b)=>Object.keys(a).filter((c)=>!b(a[c],c)).reduce((b,c)=>(b[c]=a[c],b),{}),on:(a,b,c,d={})=>{const e=(a)=>a.target.matches(d.target)&&c.call(a.target,a);if(a.addEventListener(b,d.target?e:c,d.options||!1),d.target)return e},onUserInputChange:(a)=>{let b='mouse',c=0;const d=()=>{const e=performance.now();20>e-c&&(b='mouse',a(b),document.removeEventListener('mousemove',d)),c=e};document.addEventListener('touchstart',()=>{'touch'==b||(b='touch',a(b),document.addEventListener('mousemove',d))})},once:(a)=>{let b=!1;return function(...c){if(!b)return b=!0,a.apply(this,c)}},orderBy:(a,c,d)=>[...a].sort((e,a)=>c.reduce((b,c,g)=>{if(0===b){const[h,i]=d&&'desc'===d[g]?[a[c],e[c]]:[e[c],a[c]];b=h>i?1:h(...b)=>a.map((a)=>a.apply(null,b)),overArgs:(a,b)=>(...c)=>a(...c.map((a,c)=>b[c](a))),palindrome:(a)=>{const b=a.toLowerCase().replace(/[\W_]/g,'');return b===b.split('').reverse().join('')},parseCookie:(a)=>a.split(';').map((a)=>a.split('=')).reduce((a,b)=>(a[decodeURIComponent(b[0].trim())]=decodeURIComponent(b[1].trim()),a),{}),partial:(a,...b)=>(...c)=>a(...b,...c),partialRight:(a,...b)=>(...c)=>a(...c,...b),partition:(a,b)=>a.reduce((a,c,d,e)=>(a[b(c,d,e)?0:1].push(c),a),[[],[]]),percentile:(a,b)=>100*a.reduce((a,c)=>a+(cb.reduce((b,c)=>(c in a&&(b[c]=a[c]),b),{}),pickBy:(a,b)=>Object.keys(a).filter((c)=>b(a[c],c)).reduce((b,c)=>(b[c]=a[c],b),{}),pipeAsyncFunctions:(...a)=>(b)=>a.reduce((a,b)=>a.then(b),Promise.resolve(b)),pipeFunctions:(...a)=>a.reduce((a,b)=>(...c)=>b(a(...c))),pluralize:(a,b,c=b+'s')=>{const d=(a,b,c=b+'s')=>[1,-1].includes(+a)?b:c;return'object'==typeof a?(b,c)=>d(b,c,a[c]):d(a,b,c)},powerset:(a)=>a.reduce((b,a)=>b.concat(b.map((b)=>[a].concat(b))),[[]]),prettyBytes:(a,b=3,d=!0)=>{const g=['B','KB','MB','GB','TB','PB','EB','ZB','YB'];if(1>j(a))return a+(d?' ':'')+g[0];const h=e(c(Math.log10(0>a?-a:a)/3),g.length-1),i=+((0>a?-a:a)/1e3**h).toPrecision(b);return(0>a?'-':'')+i+(d?' ':'')+g[h]},primes:(b)=>{let d=Array.from({length:b-1}).map((a,b)=>b+2),e=c(a(b)),g=Array.from({length:e-1}).map((a,b)=>b+2);return g.forEach((a)=>d=d.filter((b)=>0!=b%a||b===a)),d},promisify:(a)=>(...b)=>new Promise((c,d)=>a(...b,(a,b)=>a?d(a):c(b))),pull:(a,...b)=>{let c=Array.isArray(b[0])?b[0]:b,d=a.filter((a)=>!c.includes(a));a.length=0,d.forEach((b)=>a.push(b))},pullAtIndex:(a,b)=>{let c=[],d=a.map((a,d)=>b.includes(d)?c.push(a):a).filter((a,c)=>!b.includes(c));return a.length=0,d.forEach((b)=>a.push(b)),c},pullAtValue:(a,b)=>{let c=[],d=a.forEach((a)=>b.includes(a)?c.push(a):a),e=a.filter((a)=>!b.includes(a));return a.length=0,e.forEach((b)=>a.push(b)),c},pullBy:(a,...b)=>{const c=b.length;let d=1d(a)),g=a.filter((a)=>!e.includes(d(a)));a.length=0,g.forEach((b)=>a.push(b))},radsToDegrees:(a)=>180*a/d,randomHexColorCode:()=>{let a=(1e6*(1048575*Math.random())).toString(16);return'#'+a.slice(0,6)},randomIntArrayInRange:(a,b,d=1)=>Array.from({length:d},()=>c(Math.random()*(b-a+1))+a),randomIntegerInRange:(a,b)=>c(Math.random()*(b-a+1))+a,randomNumberInRange:(a,b)=>Math.random()*(b-a)+a,readFileLines:(a)=>x.readFileSync(a).toString('UTF8').split('\n'),rearg:(a,b)=>(...c)=>a(...c.reduce((a,c,d)=>(a[b.indexOf(d)]=c,a),Array.from({length:b.length}))),redirect:(a,b=!0)=>b?window.location.href=a:window.location.replace(a),reduceSuccessive:(a,b,c)=>a.reduce((a,c,d,e)=>(a.push(b(a.slice(-1)[0],c,d,e)),a),[c]),reduceWhich:(a,c=(c,a)=>c-a)=>a.reduce((d,a)=>0<=c(d,a)?a:d),reducedFilter:(a,b,c)=>a.filter(c).map((a)=>b.reduce((b,c)=>(b[c]=a[c],b),{})),remove:(a,b)=>Array.isArray(a)?a.filter(b).reduce((b,c)=>(a.splice(a.indexOf(c),1),b.concat(c)),[]):[],removeNonASCII:(a)=>a.replace(/[^\x20-\x7E]/g,''),reverseString:(a)=>[...a].join(''),round:(a,b=0)=>+`${i(`${a}e${b}`)}e-${b}`,runAsync:(a)=>{const b=new Worker(URL.createObjectURL(new Blob([`postMessage((${a})());`]),{type:'application/javascript; charset=utf-8'}));return new Promise((a,c)=>{b.onmessage=({data:c})=>{a(c),b.terminate()},b.onerror=(a)=>{c(a),b.terminate()}})},runPromisesInSeries:(a)=>a.reduce((a,b)=>a.then(b),Promise.resolve()),sample:(a)=>a[c(Math.random()*a.length)],sampleSize:([...a],b=1)=>{for(let d=a.length;d;){const b=c(Math.random()*d--);[a[d],a[b]]=[a[b],a[d]]}return a.slice(0,b)},scrollToTop:y,sdbm:(a)=>{let b=a.split('');return b.reduce((a,b)=>a=b.charCodeAt(0)+(a<<6)+(a<<16)-a,0)},serializeCookie:(a,b)=>`${encodeURIComponent(a)}=${encodeURIComponent(b)}`,setStyle:(a,b,c)=>a.style[b]=c,shallowClone:(a)=>Object.assign({},a),show:(...a)=>[...a].forEach((a)=>a.style.display=''),shuffle:([...a])=>{for(let b=a.length;b;){const d=c(Math.random()*b--);[a[b],a[d]]=[a[d],a[b]]}return a},similarity:(a,b)=>a.filter((a)=>b.includes(a)),size:(a)=>Array.isArray(a)?a.length:a&&'object'==typeof a?a.size||a.length||Object.keys(a).length:'string'==typeof a?new Blob([a]).size:0,sleep:(a)=>new Promise((b)=>setTimeout(b,a)),sortCharactersInString:(a)=>[...a].sort((c,a)=>c.localeCompare(a)).join(''),sortedIndex:(a,b)=>{const c=a[0]>a[a.length-1],d=a.findIndex((a)=>c?b>=a:b<=a);return-1===d?a.length:d},sortedIndexBy:(a,b,c)=>{const d=c(a[0])>c(a[a.length-1]),e=c(b),g=a.findIndex((a)=>d?e>=c(a):e<=c(a));return-1===g?a.length:g},sortedLastIndex:(a,b)=>{const c=a[0]>a[a.length-1],d=a.map((a,b)=>[b,a]).reverse().findIndex((a)=>c?b<=a[1]:b>=a[1]);return-1===d?0:a.length-d-1},sortedLastIndexBy:(a,b,c)=>{const d=c(a[0])>c(a[a.length-1]),e=c(b),g=a.map((a,b)=>[b,c(a)]).reverse().findIndex((a)=>d?e<=a[1]:e>=a[1]);return-1===g?0:a.length-g},splitLines:(a)=>a.split(/\r?\n/),spreadOver:(a)=>(b)=>a(...b),stableSort:(a,c)=>a.map((a,b)=>({item:a,index:b})).sort((d,a)=>c(d.item,a.item)||d.index-a.index).map(({item:a})=>a),standardDeviation:(b,c=!1)=>{const d=b.reduce((a,b)=>a+b,0)/b.length;return a(b.reduce((a,b)=>a.concat((b-d)**2),[]).reduce((a,b)=>a+b,0)/(b.length-(c?0:1)))},stringPermutations:z,stripHTMLTags:(a)=>a.replace(/<[^>]*>/g,''),sum:(...a)=>[...a].reduce((a,b)=>a+b,0),sumBy:(a,b)=>a.map('function'==typeof b?b:(a)=>a[b]).reduce((a,b)=>a+b,0),sumPower:(a,b=2,c=1)=>Array(a+1-c).fill(0).map((a,d)=>(d+c)**b).reduce((c,a)=>c+a,0),symmetricDifference:(c,a)=>{const b=new Set(c),d=new Set(a);return[...c.filter((a)=>!d.has(a)),...a.filter((a)=>!b.has(a))]},symmetricDifferenceBy:(c,a,b)=>{const d=new Set(c.map((a)=>b(a))),e=new Set(a.map((a)=>b(a)));return[...c.filter((a)=>!e.has(b(a))),...a.filter((a)=>!d.has(b(a)))]},symmetricDifferenceWith:(b,c,d)=>[...b.filter((e)=>-1===c.findIndex((a)=>d(e,a))),...c.filter((c)=>-1===b.findIndex((a)=>d(c,a)))],tail:(a)=>1a.slice(0,b),takeRight:(a,b=1)=>a.slice(a.length-b,a.length),takeRightWhile:(a,b)=>{for(let c of a.reverse().keys())if(b(a[c]))return a.reverse().slice(a.length-c,a.length);return a},takeWhile:(a,b)=>{for(let c of a.keys())if(b(a[c]))return a.slice(0,c);return a},throttle:(a,b)=>{let c,d,e;return function(){const g=this,h=arguments;c?(clearTimeout(d),d=setTimeout(function(){Date.now()-e>=b&&(a.apply(g,h),e=Date.now())},b-(Date.now()-e))):(a.apply(g,h),e=Date.now(),c=!0)}},timeTaken:(a)=>{console.time('timeTaken');const b=a();return console.timeEnd('timeTaken'),b},times:(a,b,c=void 0)=>{for(let d=0;!1!==b.call(c,d)&&++d{let b=a&&a.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g).map((a)=>a.slice(0,1).toUpperCase()+a.slice(1).toLowerCase()).join('');return b.slice(0,1).toLowerCase()+b.slice(1)},toCurrency:(a,b,c=void 0)=>Intl.NumberFormat(c,{style:'currency',currency:b}).format(a),toDecimalMark:(a)=>a.toLocaleString('en-US'),toKebabCase:(a)=>a&&a.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g).map((a)=>a.toLowerCase()).join('-'),toOrdinalSuffix:(a)=>{const b=parseInt(a),c=[b%10,b%100],d=['st','nd','rd','th'];return[1,2,3,4].includes(c[0])&&![11,12,13,14,15,16,17,18,19].includes(c[1])?b+d[c[0]-1]:b+d[3]},toSafeInteger:(a)=>i(g(e(a,Number.MAX_SAFE_INTEGER),Number.MIN_SAFE_INTEGER)),toSnakeCase:(a)=>a&&a.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g).map((a)=>a.toLowerCase()).join('_'),toggleClass:(a,b)=>a.classList.toggle(b),tomorrow:()=>{let a=new Date;return a.setDate(a.getDate()+1),`${a.getFullYear()}-${(a.getMonth()+1+'').padStart(2,'0')}-${(a.getDate()+'').padStart(2,'0')}`},transform:(b,c,a)=>Object.keys(b).reduce((d,a)=>c(d,b[a],a,b),a),truncateString:(a,b)=>a.length>b?a.slice(0,3a.every((a)=>a[b]),unary:(a)=>(b)=>a(b),uncurry:(a,b=1)=>(...c)=>{if(b>c.length)throw new RangeError('Arguments too few!');return((a)=>(b)=>b.reduce((a,b)=>a(b),a))(a)(c.slice(0,b))},unescapeHTML:(a)=>a.replace(/&|<|>|'|"/g,(a)=>({"&":'&',"<":'<',">":'>',"'":'\'',""":'"'})[a]||a),unflattenObject:(a)=>Object.keys(a).reduce((b,c)=>{if(-1!==c.indexOf('.')){const d=c.split('.');Object.assign(b,JSON.parse('{'+d.map((a,b)=>b===d.length-1?`"${a}":`:`"${a}":{`).join('')+a[c]+'}'.repeat(d.length)))}else b[c]=a[c];return b},{}),unfold:(a,b)=>{let c=[],d=[null,b];for(;d=a(d[1]);)c.push(d[0]);return c},union:(c,a)=>Array.from(new Set([...c,...a])),unionBy:(c,a,b)=>{const d=new Set(c.map((a)=>b(a)));return Array.from(new Set([...c,...a.filter((a)=>!d.has(b(a)))]))},unionWith:(c,a,b)=>Array.from(new Set([...c,...a.filter((a)=>-1===c.findIndex((c)=>b(a,c)))])),uniqueElements:(a)=>[...new Set(a)],untildify:(a)=>a.replace(/^~($|\/|\\)/,`${'undefined'!=typeof require&&require('os').homedir()}$1`),unzip:(a)=>a.reduce((a,b)=>(b.forEach((b,c)=>a[c].push(b)),a),Array.from({length:g(...a.map((a)=>a.length))}).map(()=>[])),unzipWith:(a,b)=>a.reduce((a,b)=>(b.forEach((b,c)=>a[c].push(b)),a),Array.from({length:g(...a.map((a)=>a.length))}).map(()=>[])).map((a)=>b(...a)),validateNumber:(a)=>!isNaN(parseFloat(a))&&isFinite(a)&&+a==a,without:(a,...b)=>a.filter((a)=>!b.includes(a)),words:(a,b=/[^a-zA-Z-]+/)=>a.split(b).filter(Boolean),xProd:(c,a)=>c.reduce((b,c)=>b.concat(a.map((a)=>[c,a])),[]),yesNo:(a,b=!1)=>!!/^(y|yes)$/i.test(a)||!/^(n|no)$/i.test(a)&&b,zip:(...a)=>{const b=g(...a.map((a)=>a.length));return Array.from({length:b}).map((b,c)=>Array.from({length:a.length},(b,d)=>a[d][c]))},zipObject:(a,b)=>a.reduce((a,c,d)=>(a[c]=b[d],a),{}),zipWith:(...a)=>{const b=a.length;let c=1a.length)),e=Array.from({length:d}).map((b,c)=>Array.from({length:a.length},(b,d)=>a[d][c]));return c?e.map((a)=>c(...a)):e}}});
diff --git a/package-lock.json b/package-lock.json
index 82e187d23..11095a611 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,7 +10,253 @@
"integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
"dev": true,
"requires": {
- "@babel/highlight": "7.0.0"
+ "@babel/highlight": "^7.0.0"
+ }
+ },
+ "@babel/core": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.2.tgz",
+ "integrity": "sha512-IFeSSnjXdhDaoysIlev//UzHZbdEmm7D0EIH2qtse9xK7mXEZQpYjs2P00XlP1qYsYvid79p+Zgg6tz1mp6iVw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/generator": "^7.1.2",
+ "@babel/helpers": "^7.1.2",
+ "@babel/parser": "^7.1.2",
+ "@babel/template": "^7.1.2",
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.1.2",
+ "convert-source-map": "^1.1.0",
+ "debug": "^3.1.0",
+ "json5": "^0.5.0",
+ "lodash": "^4.17.10",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.2.tgz",
+ "integrity": "sha512-70A9HWLS/1RHk3Ck8tNHKxOoKQuSKocYgwDN85Pyl/RBduss6AKxUR7RIZ/lzduQMSYfWEM4DDBu6A+XGbkFig==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.1.2",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.17.10",
+ "source-map": "^0.5.0",
+ "trim-right": "^1.0.1"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz",
+ "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz",
+ "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz",
+ "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-explode-assignable-expression": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-call-delegate": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz",
+ "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.0.0",
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-define-map": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz",
+ "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/types": "^7.0.0",
+ "lodash": "^4.17.10"
+ }
+ },
+ "@babel/helper-explode-assignable-expression": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz",
+ "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==",
+ "dev": true,
+ "requires": {
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
+ "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "^7.0.0",
+ "@babel/template": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
+ "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz",
+ "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz",
+ "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz",
+ "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz",
+ "integrity": "sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/helper-simple-access": "^7.1.0",
+ "@babel/helper-split-export-declaration": "^7.0.0",
+ "@babel/template": "^7.1.0",
+ "@babel/types": "^7.0.0",
+ "lodash": "^4.17.10"
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz",
+ "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz",
+ "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==",
+ "dev": true
+ },
+ "@babel/helper-regex": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz",
+ "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.10"
+ }
+ },
+ "@babel/helper-remap-async-to-generator": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz",
+ "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.0.0",
+ "@babel/helper-wrap-function": "^7.1.0",
+ "@babel/template": "^7.1.0",
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz",
+ "integrity": "sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "^7.0.0",
+ "@babel/helper-optimise-call-expression": "^7.0.0",
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz",
+ "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
+ "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-wrap-function": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz",
+ "integrity": "sha512-R6HU3dete+rwsdAfrOzTlE9Mcpk4RjU3aX3gi9grtmugQY0u79X7eogUvfXA5sI81Mfq1cn6AgxihfN33STjJA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/template": "^7.1.0",
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helpers": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.1.2.tgz",
+ "integrity": "sha512-Myc3pUE8eswD73aWcartxB16K6CGmHDv9KxOmD2CeOs/FaEAQodr3VYGmlvOmog60vNQ2w8QbatuahepZwrHiA==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.1.2",
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.1.2"
}
},
"@babel/highlight": {
@@ -19,9 +265,9 @@
"integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
"dev": true,
"requires": {
- "chalk": "2.4.1",
- "esutils": "2.0.2",
- "js-tokens": "4.0.0"
+ "chalk": "^2.0.0",
+ "esutils": "^2.0.2",
+ "js-tokens": "^4.0.0"
},
"dependencies": {
"js-tokens": {
@@ -32,6 +278,616 @@
}
}
},
+ "@babel/parser": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.2.tgz",
+ "integrity": "sha512-x5HFsW+E/nQalGMw7hu+fvPqnBeBaIr0lWJ2SG0PPL2j+Pm9lYvCrsZJGIgauPIENx0v10INIyFjmSNUD/gSqQ==",
+ "dev": true
+ },
+ "@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz",
+ "integrity": "sha512-Fq803F3Jcxo20MXUSDdmZZXrPe6BWyGcWBPPNB/M7WaUYESKDeKMOGIxEzQOjGSmW/NWb6UaPZrtTB2ekhB/ew==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-remap-async-to-generator": "^7.1.0",
+ "@babel/plugin-syntax-async-generators": "^7.0.0"
+ }
+ },
+ "@babel/plugin-proposal-json-strings": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz",
+ "integrity": "sha512-kfVdUkIAGJIVmHmtS/40i/fg/AGnw/rsZBCaapY5yjeO5RA9m165Xbw9KMOu2nqXP5dTFjEjHdfNdoVcHv133Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-json-strings": "^7.0.0"
+ }
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz",
+ "integrity": "sha512-14fhfoPcNu7itSen7Py1iGN0gEm87hX/B+8nZPqkdmANyyYWYMY2pjA3r8WXbWVKMzfnSNS0xY8GVS0IjXi/iw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.0.0"
+ }
+ },
+ "@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz",
+ "integrity": "sha512-JPqAvLG1s13B/AuoBjdBYvn38RqW6n1TzrQO839/sIpqLpbnXKacsAgpZHzLD83Sm8SDXMkkrAvEnJ25+0yIpw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.0.0"
+ }
+ },
+ "@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz",
+ "integrity": "sha512-tM3icA6GhC3ch2SkmSxv7J/hCWKISzwycub6eGsDrFDgukD4dZ/I+x81XgW0YslS6mzNuQ1Cbzh5osjIMgepPQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.0.0",
+ "regexpu-core": "^4.2.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz",
+ "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.0",
+ "regenerate-unicode-properties": "^7.0.0",
+ "regjsgen": "^0.4.0",
+ "regjsparser": "^0.3.0",
+ "unicode-match-property-ecmascript": "^1.0.4",
+ "unicode-match-property-value-ecmascript": "^1.0.2"
+ }
+ },
+ "regjsgen": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz",
+ "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz",
+ "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ }
+ }
+ }
+ },
+ "@babel/plugin-syntax-async-generators": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz",
+ "integrity": "sha512-im7ged00ddGKAjcZgewXmp1vxSZQQywuQXe2B1A7kajjZmDeY/ekMPmWr9zJgveSaQH0k7BcGrojQhcK06l0zA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-json-strings": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz",
+ "integrity": "sha512-UlSfNydC+XLj4bw7ijpldc1uZ/HB84vw+U6BTuqMdIEmz/LDe63w/GHtpQMdXWdqQZFeAI9PjnHe/vDhwirhKA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz",
+ "integrity": "sha512-5A0n4p6bIiVe5OvQPxBnesezsgFJdHhSs3uFSvaPdMqtsovajLZ+G2vZyvNe10EzJBWWo3AcHGKhAFUxqwp2dw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz",
+ "integrity": "sha512-Wc+HVvwjcq5qBg1w5RG9o9RVzmCaAg/Vp0erHCKpAYV8La6I94o4GQAmFYNmkzoMO6gzoOSulpKeSSz6mPEoZw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz",
+ "integrity": "sha512-2EZDBl1WIO/q4DIkIp4s86sdp4ZifL51MoIviLY/gG/mLSuOIEg7J8o6mhbxOTvUJkaN50n+8u41FVsr5KLy/w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-async-to-generator": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz",
+ "integrity": "sha512-rNmcmoQ78IrvNCIt/R9U+cixUHeYAzgusTFgIAv+wQb9HJU4szhpDD6e5GCACmj/JP5KxuCwM96bX3L9v4ZN/g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-remap-async-to-generator": "^7.1.0"
+ }
+ },
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz",
+ "integrity": "sha512-AOBiyUp7vYTqz2Jibe1UaAWL0Hl9JUXEgjFvvvcSc9MVDItv46ViXFw2F7SVt1B5k+KWjl44eeXOAk3UDEaJjQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz",
+ "integrity": "sha512-GWEMCrmHQcYWISilUrk9GDqH4enf3UmhOEbNbNrlNAX1ssH3MsS1xLOS6rdjRVPgA7XXVPn87tRkdTEoA/dxEg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "lodash": "^4.17.10"
+ }
+ },
+ "@babel/plugin-transform-classes": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.1.0.tgz",
+ "integrity": "sha512-rNaqoD+4OCBZjM7VaskladgqnZ1LO6o2UxuWSDzljzW21pN1KXkB7BstAVweZdxQkHAujps5QMNOTWesBciKFg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.0.0",
+ "@babel/helper-define-map": "^7.1.0",
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-optimise-call-expression": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-replace-supers": "^7.1.0",
+ "@babel/helper-split-export-declaration": "^7.0.0",
+ "globals": "^11.1.0"
+ },
+ "dependencies": {
+ "globals": {
+ "version": "11.7.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz",
+ "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz",
+ "integrity": "sha512-ubouZdChNAv4AAWAgU7QKbB93NU5sHwInEWfp+/OzJKA02E6Woh9RVoX4sZrbRwtybky/d7baTUqwFx+HgbvMA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.2.tgz",
+ "integrity": "sha512-cvToXvp/OsYxtEn57XJu9BvsGSEYjAh9UeUuXpoi7x6QHB7YdWyQ4lRU/q0Fu1IJNT0o0u4FQ1DMQBzJ8/8vZg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-dotall-regex": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz",
+ "integrity": "sha512-00THs8eJxOJUFVx1w8i1MBF4XH4PsAjKjQ1eqN/uCH3YKwP21GCKfrn6YZFZswbOk9+0cw1zGQPHVc1KBlSxig==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.0.0",
+ "regexpu-core": "^4.1.3"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz",
+ "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.0",
+ "regenerate-unicode-properties": "^7.0.0",
+ "regjsgen": "^0.4.0",
+ "regjsparser": "^0.3.0",
+ "unicode-match-property-ecmascript": "^1.0.4",
+ "unicode-match-property-value-ecmascript": "^1.0.2"
+ }
+ },
+ "regjsgen": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz",
+ "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz",
+ "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ }
+ }
+ }
+ },
+ "@babel/plugin-transform-duplicate-keys": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz",
+ "integrity": "sha512-w2vfPkMqRkdxx+C71ATLJG30PpwtTpW7DDdLqYt2acXU7YjztzeWW2Jk1T6hKqCLYCcEA5UQM/+xTAm+QCSnuQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz",
+ "integrity": "sha512-uZt9kD1Pp/JubkukOGQml9tqAeI8NkE98oZnHZ2qHRElmeKCodbTZgOEUtujSCSLhHSBWbzNiFSDIMC4/RBTLQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-for-of": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz",
+ "integrity": "sha512-TlxKecN20X2tt2UEr2LNE6aqA0oPeMT1Y3cgz8k4Dn1j5ObT8M3nl9aA37LLklx0PBZKETC9ZAf9n/6SujTuXA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-function-name": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.1.0.tgz",
+ "integrity": "sha512-VxOa1TMlFMtqPW2IDYZQaHsFrq/dDoIjgN098NowhexhZcz3UGlvPgZXuE1jEvNygyWyxRacqDpCZt+par1FNg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-literals": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz",
+ "integrity": "sha512-1NTDBWkeNXgpUcyoVFxbr9hS57EpZYXpje92zv0SUzjdu3enaRwF/l3cmyRnXLtIdyJASyiS6PtybK+CgKf7jA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-modules-amd": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.1.0.tgz",
+ "integrity": "sha512-wt8P+xQ85rrnGNr2x1iV3DW32W8zrB6ctuBkYBbf5/ZzJY99Ob4MFgsZDFgczNU76iy9PWsy4EuxOliDjdKw6A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz",
+ "integrity": "sha512-wtNwtMjn1XGwM0AXPspQgvmE6msSJP15CX2RVfpTSTNPLhKhaOjaIfBaVfj4iUZ/VrFSodcFedwtPg/NxwQlPA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-simple-access": "^7.1.0"
+ }
+ },
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0.tgz",
+ "integrity": "sha512-8EDKMAsitLkiF/D4Zhe9CHEE2XLh4bfLbb9/Zf3FgXYQOZyZYyg7EAel/aT2A7bHv62jwHf09q2KU/oEexr83g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-modules-umd": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.1.0.tgz",
+ "integrity": "sha512-enrRtn5TfRhMmbRwm7F8qOj0qEYByqUvTttPEGimcBH4CJHphjyK1Vg7sdU7JjeEmgSpM890IT/efS2nMHwYig==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-new-target": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz",
+ "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-object-super": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.1.0.tgz",
+ "integrity": "sha512-/O02Je1CRTSk2SSJaq0xjwQ8hG4zhZGNjE8psTsSNPXyLRCODv7/PBozqT5AmQMzp7MI3ndvMhGdqp9c96tTEw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-replace-supers": "^7.1.0"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.1.0.tgz",
+ "integrity": "sha512-vHV7oxkEJ8IHxTfRr3hNGzV446GAb+0hgbA7o/0Jd76s+YzccdWuTU296FOCOl/xweU4t/Ya4g41yWz80RFCRw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-call-delegate": "^7.1.0",
+ "@babel/helper-get-function-arity": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz",
+ "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "^0.13.3"
+ },
+ "dependencies": {
+ "regenerator-transform": {
+ "version": "0.13.3",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz",
+ "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==",
+ "dev": true,
+ "requires": {
+ "private": "^0.1.6"
+ }
+ }
+ }
+ },
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz",
+ "integrity": "sha512-g/99LI4vm5iOf5r1Gdxq5Xmu91zvjhEG5+yZDJW268AZELAu4J1EiFLnkSG3yuUsZyOipVOVUKoGPYwfsTymhw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-spread": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz",
+ "integrity": "sha512-L702YFy2EvirrR4shTj0g2xQp7aNwZoWNCkNu2mcoU0uyzMl0XRwDSwzB/xp6DSUFiBmEXuyAyEN16LsgVqGGQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-sticky-regex": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz",
+ "integrity": "sha512-LFUToxiyS/WD+XEWpkx/XJBrUXKewSZpzX68s+yEOtIbdnsRjpryDw9U06gYc6klYEij/+KQVRnD3nz3AoKmjw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz",
+ "integrity": "sha512-vA6rkTCabRZu7Nbl9DfLZE1imj4tzdWcg5vtdQGvj+OH9itNNB6hxuRMHuIY8SGnEt1T9g5foqs9LnrHzsqEFg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-typeof-symbol": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz",
+ "integrity": "sha512-1r1X5DO78WnaAIvs5uC48t41LLckxsYklJrZjNKcevyz83sF2l4RHbw29qrCPr/6ksFsdfRpT/ZgxNWHXRnffg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-unicode-regex": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz",
+ "integrity": "sha512-uJBrJhBOEa3D033P95nPHu3nbFwFE9ZgXsfEitzoIXIwqAZWk7uXcg06yFKXz9FSxBH5ucgU/cYdX0IV8ldHKw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.0.0",
+ "regexpu-core": "^4.1.3"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz",
+ "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.0",
+ "regenerate-unicode-properties": "^7.0.0",
+ "regjsgen": "^0.4.0",
+ "regjsparser": "^0.3.0",
+ "unicode-match-property-ecmascript": "^1.0.4",
+ "unicode-match-property-value-ecmascript": "^1.0.2"
+ }
+ },
+ "regjsgen": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz",
+ "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz",
+ "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ }
+ }
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.1.0.tgz",
+ "integrity": "sha512-ZLVSynfAoDHB/34A17/JCZbyrzbQj59QC1Anyueb4Bwjh373nVPq5/HMph0z+tCmcDjXDe+DlKQq9ywQuvWrQg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.1.0",
+ "@babel/plugin-proposal-json-strings": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.0.0",
+ "@babel/plugin-syntax-async-generators": "^7.0.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.0.0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0",
+ "@babel/plugin-transform-async-to-generator": "^7.1.0",
+ "@babel/plugin-transform-block-scoped-functions": "^7.0.0",
+ "@babel/plugin-transform-block-scoping": "^7.0.0",
+ "@babel/plugin-transform-classes": "^7.1.0",
+ "@babel/plugin-transform-computed-properties": "^7.0.0",
+ "@babel/plugin-transform-destructuring": "^7.0.0",
+ "@babel/plugin-transform-dotall-regex": "^7.0.0",
+ "@babel/plugin-transform-duplicate-keys": "^7.0.0",
+ "@babel/plugin-transform-exponentiation-operator": "^7.1.0",
+ "@babel/plugin-transform-for-of": "^7.0.0",
+ "@babel/plugin-transform-function-name": "^7.1.0",
+ "@babel/plugin-transform-literals": "^7.0.0",
+ "@babel/plugin-transform-modules-amd": "^7.1.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.1.0",
+ "@babel/plugin-transform-modules-systemjs": "^7.0.0",
+ "@babel/plugin-transform-modules-umd": "^7.1.0",
+ "@babel/plugin-transform-new-target": "^7.0.0",
+ "@babel/plugin-transform-object-super": "^7.1.0",
+ "@babel/plugin-transform-parameters": "^7.1.0",
+ "@babel/plugin-transform-regenerator": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0",
+ "@babel/plugin-transform-spread": "^7.0.0",
+ "@babel/plugin-transform-sticky-regex": "^7.0.0",
+ "@babel/plugin-transform-template-literals": "^7.0.0",
+ "@babel/plugin-transform-typeof-symbol": "^7.0.0",
+ "@babel/plugin-transform-unicode-regex": "^7.0.0",
+ "browserslist": "^4.1.0",
+ "invariant": "^2.2.2",
+ "js-levenshtein": "^1.1.3",
+ "semver": "^5.3.0"
+ },
+ "dependencies": {
+ "browserslist": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.1.1.tgz",
+ "integrity": "sha512-VBorw+tgpOtZ1BYhrVSVTzTt/3+vSE3eFUh0N2GCFK1HffceOaf32YS/bs6WiFhjDAblAFrx85jMy3BG9fBK2Q==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30000884",
+ "electron-to-chromium": "^1.3.62",
+ "node-releases": "^1.0.0-alpha.11"
+ }
+ }
+ }
+ },
+ "@babel/template": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.2.tgz",
+ "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/parser": "^7.1.2",
+ "@babel/types": "^7.1.2"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.0.tgz",
+ "integrity": "sha512-bwgln0FsMoxm3pLOgrrnGaXk18sSM9JNf1/nHC/FksmNGFbYnPWY4GYCfLxyP1KRmfsxqkRpfoa6xr6VuuSxdw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/generator": "^7.0.0",
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-split-export-declaration": "^7.0.0",
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0",
+ "debug": "^3.1.0",
+ "globals": "^11.1.0",
+ "lodash": "^4.17.10"
+ },
+ "dependencies": {
+ "globals": {
+ "version": "11.7.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz",
+ "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/types": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.2.tgz",
+ "integrity": "sha512-pb1I05sZEKiSlMUV9UReaqsCPUpgbHHHu2n1piRm7JkuBkm6QxcaIzKu6FMnMtCbih/cEYTR+RGYYC96Yk9HAg==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.10",
+ "to-fast-properties": "^2.0.0"
+ },
+ "dependencies": {
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "dev": true
+ }
+ }
+ },
"@comandeer/babel-plugin-banner": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@comandeer/babel-plugin-banner/-/babel-plugin-banner-1.0.0.tgz",
@@ -45,9 +901,9 @@
"dev": true
},
"@types/node": {
- "version": "10.3.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-10.3.3.tgz",
- "integrity": "sha512-/gwCgiI2e9RzzZTKbl+am3vgNqOt7a9fJ/uxv4SqYKxenoEDNVU3KZEadlpusWhQI0A0dOrZ0T68JYKVjzmgdQ==",
+ "version": "10.11.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.3.tgz",
+ "integrity": "sha512-3AvcEJAh9EMatxs+OxAlvAEs7OTy6AG94mcH1iqyVDwVVndekLxzwkWQ/Z4SDbY6GO2oyUXyWW8tQ4rENSSQVQ==",
"dev": true
},
"abab": {
@@ -74,7 +930,7 @@
"integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==",
"dev": true,
"requires": {
- "acorn": "5.5.3"
+ "acorn": "^5.0.0"
}
},
"acorn-jsx": {
@@ -83,7 +939,7 @@
"integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
"dev": true,
"requires": {
- "acorn": "3.3.0"
+ "acorn": "^3.0.4"
},
"dependencies": {
"acorn": {
@@ -100,10 +956,10 @@
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
"dev": true,
"requires": {
- "co": "4.6.0",
- "fast-deep-equal": "1.1.0",
- "fast-json-stable-stringify": "2.0.0",
- "json-schema-traverse": "0.3.1"
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
}
},
"ajv-keywords": {
@@ -136,7 +992,7 @@
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
- "color-convert": "1.9.1"
+ "color-convert": "^1.9.0"
}
},
"anymatch": {
@@ -145,8 +1001,8 @@
"integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
"dev": true,
"requires": {
- "micromatch": "3.1.10",
- "normalize-path": "2.1.1"
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
},
"dependencies": {
"arr-diff": {
@@ -167,16 +1023,16 @@
"integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
"dev": true,
"requires": {
- "arr-flatten": "1.1.0",
- "array-unique": "0.3.2",
- "extend-shallow": "2.0.1",
- "fill-range": "4.0.0",
- "isobject": "3.0.1",
- "repeat-element": "1.1.3",
- "snapdragon": "0.8.2",
- "snapdragon-node": "2.1.1",
- "split-string": "3.1.0",
- "to-regex": "3.0.2"
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
},
"dependencies": {
"extend-shallow": {
@@ -185,7 +1041,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
}
}
@@ -205,13 +1061,13 @@
"integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
"dev": true,
"requires": {
- "debug": "2.6.9",
- "define-property": "0.2.5",
- "extend-shallow": "2.0.1",
- "posix-character-classes": "0.1.1",
- "regex-not": "1.0.2",
- "snapdragon": "0.8.2",
- "to-regex": "3.0.2"
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
},
"dependencies": {
"define-property": {
@@ -220,7 +1076,7 @@
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
"requires": {
- "is-descriptor": "0.1.6"
+ "is-descriptor": "^0.1.0"
}
},
"extend-shallow": {
@@ -229,7 +1085,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
},
"is-accessor-descriptor": {
@@ -238,7 +1094,7 @@
"integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
},
"dependencies": {
"kind-of": {
@@ -247,7 +1103,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
}
}
@@ -258,7 +1114,7 @@
"integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
},
"dependencies": {
"kind-of": {
@@ -267,7 +1123,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
}
}
@@ -278,9 +1134,9 @@
"integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "0.1.6",
- "is-data-descriptor": "0.1.4",
- "kind-of": "5.1.0"
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
}
},
"kind-of": {
@@ -297,14 +1153,14 @@
"integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
"dev": true,
"requires": {
- "array-unique": "0.3.2",
- "define-property": "1.0.0",
- "expand-brackets": "2.1.4",
- "extend-shallow": "2.0.1",
- "fragment-cache": "0.2.1",
- "regex-not": "1.0.2",
- "snapdragon": "0.8.2",
- "to-regex": "3.0.2"
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
},
"dependencies": {
"define-property": {
@@ -313,7 +1169,7 @@
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"dev": true,
"requires": {
- "is-descriptor": "1.0.2"
+ "is-descriptor": "^1.0.0"
}
},
"extend-shallow": {
@@ -322,7 +1178,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
}
}
@@ -333,10 +1189,10 @@
"integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
"dev": true,
"requires": {
- "extend-shallow": "2.0.1",
- "is-number": "3.0.0",
- "repeat-string": "1.6.1",
- "to-regex-range": "2.1.1"
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
},
"dependencies": {
"extend-shallow": {
@@ -345,7 +1201,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
}
}
@@ -356,7 +1212,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-data-descriptor": {
@@ -365,7 +1221,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-descriptor": {
@@ -374,9 +1230,9 @@
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "1.0.0",
- "is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
}
},
"is-number": {
@@ -385,7 +1241,7 @@
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
},
"dependencies": {
"kind-of": {
@@ -394,7 +1250,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
}
}
@@ -417,19 +1273,19 @@
"integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
"dev": true,
"requires": {
- "arr-diff": "4.0.0",
- "array-unique": "0.3.2",
- "braces": "2.3.2",
- "define-property": "2.0.2",
- "extend-shallow": "3.0.2",
- "extglob": "2.0.4",
- "fragment-cache": "0.2.1",
- "kind-of": "6.0.2",
- "nanomatch": "1.2.13",
- "object.pick": "1.3.0",
- "regex-not": "1.0.2",
- "snapdragon": "0.8.2",
- "to-regex": "3.0.2"
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
}
}
}
@@ -440,7 +1296,7 @@
"integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=",
"dev": true,
"requires": {
- "default-require-extensions": "1.0.0"
+ "default-require-extensions": "^1.0.0"
}
},
"aproba": {
@@ -455,8 +1311,8 @@
"integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"dev": true,
"requires": {
- "delegates": "1.0.0",
- "readable-stream": "2.3.3"
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
}
},
"argparse": {
@@ -465,7 +1321,7 @@
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
"requires": {
- "sprintf-js": "1.0.3"
+ "sprintf-js": "~1.0.2"
}
},
"arr-diff": {
@@ -474,7 +1330,7 @@
"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
"dev": true,
"requires": {
- "arr-flatten": "1.1.0"
+ "arr-flatten": "^1.0.1"
}
},
"arr-flatten": {
@@ -507,8 +1363,8 @@
"integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
"dev": true,
"requires": {
- "define-properties": "1.1.2",
- "es-abstract": "1.11.0"
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.7.0"
}
},
"array-union": {
@@ -517,7 +1373,7 @@
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
"dev": true,
"requires": {
- "array-uniq": "1.0.3"
+ "array-uniq": "^1.0.1"
}
},
"array-uniq": {
@@ -550,7 +1406,7 @@
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
"dev": true,
"requires": {
- "safer-buffer": "2.1.2"
+ "safer-buffer": "~2.1.0"
}
},
"assert-plus": {
@@ -577,7 +1433,7 @@
"integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
"dev": true,
"requires": {
- "lodash": "4.17.11"
+ "lodash": "^4.17.10"
},
"dependencies": {
"lodash": {
@@ -630,9 +1486,9 @@
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
"dev": true,
"requires": {
- "chalk": "1.1.3",
- "esutils": "2.0.2",
- "js-tokens": "3.0.2"
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
},
"dependencies": {
"ansi-regex": {
@@ -653,11 +1509,11 @@
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
- "ansi-styles": "2.2.1",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
}
},
"has-ansi": {
@@ -666,7 +1522,7 @@
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"dev": true,
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
},
"strip-ansi": {
@@ -675,7 +1531,7 @@
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
},
"supports-color": {
@@ -692,25 +1548,25 @@
"integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
"dev": true,
"requires": {
- "babel-code-frame": "6.26.0",
- "babel-generator": "6.26.1",
- "babel-helpers": "6.24.1",
- "babel-messages": "6.23.0",
- "babel-register": "6.26.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "convert-source-map": "1.5.1",
- "debug": "2.6.9",
- "json5": "0.5.1",
- "lodash": "4.17.4",
- "minimatch": "3.0.4",
- "path-is-absolute": "1.0.1",
- "private": "0.1.8",
- "slash": "1.0.0",
- "source-map": "0.5.7"
+ "babel-code-frame": "^6.26.0",
+ "babel-generator": "^6.26.0",
+ "babel-helpers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-register": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "convert-source-map": "^1.5.1",
+ "debug": "^2.6.9",
+ "json5": "^0.5.1",
+ "lodash": "^4.17.4",
+ "minimatch": "^3.0.4",
+ "path-is-absolute": "^1.0.1",
+ "private": "^0.1.8",
+ "slash": "^1.0.0",
+ "source-map": "^0.5.7"
},
"dependencies": {
"debug": {
@@ -730,49 +1586,14 @@
"integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
"dev": true,
"requires": {
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "detect-indent": "4.0.0",
- "jsesc": "1.3.0",
- "lodash": "4.17.4",
- "source-map": "0.5.7",
- "trim-right": "1.0.1"
- }
- },
- "babel-helper-builder-binary-assignment-operator-visitor": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
- "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
- "dev": true,
- "requires": {
- "babel-helper-explode-assignable-expression": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-call-delegate": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
- "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
- "dev": true,
- "requires": {
- "babel-helper-hoist-variables": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-define-map": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
- "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
- "dev": true,
- "requires": {
- "babel-helper-function-name": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "lodash": "4.17.4"
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "detect-indent": "^4.0.0",
+ "jsesc": "^1.3.0",
+ "lodash": "^4.17.4",
+ "source-map": "^0.5.7",
+ "trim-right": "^1.0.1"
}
},
"babel-helper-evaluate-path": {
@@ -781,56 +1602,12 @@
"integrity": "sha512-dRFlMTqUJRGzx5a2smKxmptDdNCXKSkPcXWzKLwAV72hvIZumrd/0z9RcewHkr7PmAEq+ETtpD1GK6wZ6ZUXzw==",
"dev": true
},
- "babel-helper-explode-assignable-expression": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
- "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
"babel-helper-flip-expressions": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.3.0.tgz",
"integrity": "sha512-kNGohWmtAG3b7tN1xocRQ5rsKkH/hpvZsMiGOJ1VwGJKhnwzR5KlB3rvKBaBPl5/IGHcopB2JN+r1SUEX1iMAw==",
"dev": true
},
- "babel-helper-function-name": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
- "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
- "dev": true,
- "requires": {
- "babel-helper-get-function-arity": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-get-function-arity": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
- "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-hoist-variables": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
- "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
"babel-helper-is-nodes-equiv": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz",
@@ -849,60 +1626,12 @@
"integrity": "sha512-nrho5Dg4vl0VUgURVpGpEGiwbst5JX7efIyDHFxmkCx/ocQFnrPt8ze9Kxl6TKjR29bJ7D/XKY1NMlSxOQJRbQ==",
"dev": true
},
- "babel-helper-optimise-call-expression": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
- "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-regex": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
- "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "lodash": "4.17.4"
- }
- },
- "babel-helper-remap-async-to-generator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
- "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
- "dev": true,
- "requires": {
- "babel-helper-function-name": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
"babel-helper-remove-or-void": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.3.0.tgz",
"integrity": "sha512-D68W1M3ibCcbg0ysh3ww4/O0g10X1CXK720oOuR8kpfY7w0yP4tVcpK7zDmI1JecynycTQYAZ1rhLJo9aVtIKQ==",
"dev": true
},
- "babel-helper-replace-supers": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
- "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
- "dev": true,
- "requires": {
- "babel-helper-optimise-call-expression": "6.24.1",
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
"babel-helper-to-multiple-sequence-expressions": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.3.0.tgz",
@@ -915,8 +1644,8 @@
"integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
"dev": true,
"requires": {
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
"babel-jest": {
@@ -925,8 +1654,8 @@
"integrity": "sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew==",
"dev": true,
"requires": {
- "babel-plugin-istanbul": "4.1.6",
- "babel-preset-jest": "23.2.0"
+ "babel-plugin-istanbul": "^4.1.6",
+ "babel-preset-jest": "^23.2.0"
}
},
"babel-messages": {
@@ -935,16 +1664,7 @@
"integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
"dev": true,
"requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-check-es2015-constants": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
- "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-istanbul": {
@@ -953,10 +1673,10 @@
"integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==",
"dev": true,
"requires": {
- "babel-plugin-syntax-object-rest-spread": "6.13.0",
- "find-up": "2.1.0",
- "istanbul-lib-instrument": "1.10.2",
- "test-exclude": "4.2.3"
+ "babel-plugin-syntax-object-rest-spread": "^6.13.0",
+ "find-up": "^2.1.0",
+ "istanbul-lib-instrument": "^1.10.1",
+ "test-exclude": "^4.2.1"
},
"dependencies": {
"find-up": {
@@ -965,7 +1685,7 @@
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"dev": true,
"requires": {
- "locate-path": "2.0.0"
+ "locate-path": "^2.0.0"
}
}
}
@@ -982,7 +1702,7 @@
"integrity": "sha512-MqhSHlxkmgURqj3144qPksbZ/qof1JWdumcbucc4tysFcf3P3V3z3munTevQgKEFNMd8F5/ECGnwb63xogLjAg==",
"dev": true,
"requires": {
- "babel-helper-evaluate-path": "0.3.0"
+ "babel-helper-evaluate-path": "^0.3.0"
}
},
"babel-plugin-minify-constant-folding": {
@@ -991,7 +1711,7 @@
"integrity": "sha512-1XeRpx+aY1BuNY6QU/cm6P+FtEi3ar3XceYbmC+4q4W+2Ewq5pL7V68oHg1hKXkBIE0Z4/FjSoHz6vosZLOe/A==",
"dev": true,
"requires": {
- "babel-helper-evaluate-path": "0.3.0"
+ "babel-helper-evaluate-path": "^0.3.0"
}
},
"babel-plugin-minify-dead-code-elimination": {
@@ -1000,10 +1720,10 @@
"integrity": "sha512-SjM2Fzg85YZz+q/PNJ/HU4O3W98FKFOiP9K5z3sfonlamGOzvZw3Eup2OTiEBsbbqTeY8yzNCAv3qpJRYCgGmw==",
"dev": true,
"requires": {
- "babel-helper-evaluate-path": "0.3.0",
- "babel-helper-mark-eval-scopes": "0.3.0",
- "babel-helper-remove-or-void": "0.3.0",
- "lodash.some": "4.6.0"
+ "babel-helper-evaluate-path": "^0.3.0",
+ "babel-helper-mark-eval-scopes": "^0.3.0",
+ "babel-helper-remove-or-void": "^0.3.0",
+ "lodash.some": "^4.6.0"
}
},
"babel-plugin-minify-flip-comparisons": {
@@ -1012,7 +1732,7 @@
"integrity": "sha512-B8lK+ekcpSNVH7PZpWDe5nC5zxjRiiT4nTsa6h3QkF3Kk6y9qooIFLemdGlqBq6j0zALEnebvCpw8v7gAdpgnw==",
"dev": true,
"requires": {
- "babel-helper-is-void-0": "0.3.0"
+ "babel-helper-is-void-0": "^0.3.0"
}
},
"babel-plugin-minify-guarded-expressions": {
@@ -1021,7 +1741,7 @@
"integrity": "sha512-O+6CvF5/Ttsth3LMg4/BhyvVZ82GImeKMXGdVRQGK/8jFiP15EjRpdgFlxv3cnqRjqdYxLCS6r28VfLpb9C/kA==",
"dev": true,
"requires": {
- "babel-helper-flip-expressions": "0.3.0"
+ "babel-helper-flip-expressions": "^0.3.0"
}
},
"babel-plugin-minify-infinity": {
@@ -1036,7 +1756,7 @@
"integrity": "sha512-PYTonhFWURsfAN8achDwvR5Xgy6EeTClLz+fSgGRqjAIXb0OyFm3/xfccbQviVi1qDXmlSnt6oJhBg8KE4Fn7Q==",
"dev": true,
"requires": {
- "babel-helper-mark-eval-scopes": "0.3.0"
+ "babel-helper-mark-eval-scopes": "^0.3.0"
}
},
"babel-plugin-minify-numeric-literals": {
@@ -1057,9 +1777,9 @@
"integrity": "sha512-2M16ytQOCqBi7bYMu4DCWn8e6KyFCA108F6+tVrBJxOmm5u2sOmTFEa8s94tR9RHRRNYmcUf+rgidfnzL3ik9Q==",
"dev": true,
"requires": {
- "babel-helper-flip-expressions": "0.3.0",
- "babel-helper-is-nodes-equiv": "0.0.1",
- "babel-helper-to-multiple-sequence-expressions": "0.3.0"
+ "babel-helper-flip-expressions": "^0.3.0",
+ "babel-helper-is-nodes-equiv": "^0.0.1",
+ "babel-helper-to-multiple-sequence-expressions": "^0.3.0"
}
},
"babel-plugin-minify-type-constructors": {
@@ -1068,289 +1788,15 @@
"integrity": "sha512-XRXpvsUCPeVw9YEUw+9vSiugcSZfow81oIJT0yR9s8H4W7yJ6FHbImi5DJHoL8KcDUjYnL9wYASXk/fOkbyR6Q==",
"dev": true,
"requires": {
- "babel-helper-is-void-0": "0.3.0"
+ "babel-helper-is-void-0": "^0.3.0"
}
},
- "babel-plugin-syntax-async-functions": {
- "version": "6.13.0",
- "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
- "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
- "dev": true
- },
- "babel-plugin-syntax-exponentiation-operator": {
- "version": "6.13.0",
- "resolved": "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
- "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
- "dev": true
- },
"babel-plugin-syntax-object-rest-spread": {
"version": "6.13.0",
"resolved": "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
"integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=",
"dev": true
},
- "babel-plugin-syntax-trailing-function-commas": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
- "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
- "dev": true
- },
- "babel-plugin-transform-async-to-generator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
- "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
- "dev": true,
- "requires": {
- "babel-helper-remap-async-to-generator": "6.24.1",
- "babel-plugin-syntax-async-functions": "6.13.0",
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-arrow-functions": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
- "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-block-scoped-functions": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
- "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-block-scoping": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
- "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "lodash": "4.17.4"
- }
- },
- "babel-plugin-transform-es2015-classes": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
- "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
- "dev": true,
- "requires": {
- "babel-helper-define-map": "6.26.0",
- "babel-helper-function-name": "6.24.1",
- "babel-helper-optimise-call-expression": "6.24.1",
- "babel-helper-replace-supers": "6.24.1",
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-computed-properties": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
- "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-destructuring": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
- "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-duplicate-keys": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
- "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-for-of": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
- "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-function-name": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
- "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
- "dev": true,
- "requires": {
- "babel-helper-function-name": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-literals": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
- "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-modules-amd": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
- "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
- "dev": true,
- "requires": {
- "babel-plugin-transform-es2015-modules-commonjs": "6.26.2",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-modules-commonjs": {
- "version": "6.26.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
- "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
- "dev": true,
- "requires": {
- "babel-plugin-transform-strict-mode": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-modules-systemjs": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
- "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
- "dev": true,
- "requires": {
- "babel-helper-hoist-variables": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-modules-umd": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
- "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
- "dev": true,
- "requires": {
- "babel-plugin-transform-es2015-modules-amd": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-object-super": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
- "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
- "dev": true,
- "requires": {
- "babel-helper-replace-supers": "6.24.1",
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-parameters": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
- "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
- "dev": true,
- "requires": {
- "babel-helper-call-delegate": "6.24.1",
- "babel-helper-get-function-arity": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-shorthand-properties": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
- "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-spread": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
- "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-sticky-regex": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
- "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
- "dev": true,
- "requires": {
- "babel-helper-regex": "6.26.0",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-template-literals": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
- "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-typeof-symbol": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
- "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-unicode-regex": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
- "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
- "dev": true,
- "requires": {
- "babel-helper-regex": "6.26.0",
- "babel-runtime": "6.26.0",
- "regexpu-core": "2.0.0"
- }
- },
- "babel-plugin-transform-exponentiation-operator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
- "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
- "dev": true,
- "requires": {
- "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1",
- "babel-plugin-syntax-exponentiation-operator": "6.13.0",
- "babel-runtime": "6.26.0"
- }
- },
"babel-plugin-transform-inline-consecutive-adds": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.3.0.tgz",
@@ -1381,16 +1827,7 @@
"integrity": "sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=",
"dev": true,
"requires": {
- "esutils": "2.0.2"
- }
- },
- "babel-plugin-transform-regenerator": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
- "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
- "dev": true,
- "requires": {
- "regenerator-transform": "0.10.1"
+ "esutils": "^2.0.2"
}
},
"babel-plugin-transform-regexp-constructors": {
@@ -1417,7 +1854,7 @@
"integrity": "sha512-TYGQucc8iP3LJwN3kDZLEz5aa/2KuFrqpT+s8f8NnHsBU1sAgR3y8Opns0xhC+smyDYWscqFCKM1gbkWQOhhnw==",
"dev": true,
"requires": {
- "babel-helper-evaluate-path": "0.3.0"
+ "babel-helper-evaluate-path": "^0.3.0"
}
},
"babel-plugin-transform-simplify-comparison-operators": {
@@ -1426,68 +1863,20 @@
"integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=",
"dev": true
},
- "babel-plugin-transform-strict-mode": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
- "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
"babel-plugin-transform-undefined-to-void": {
"version": "6.9.4",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz",
"integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=",
"dev": true
},
- "babel-preset-env": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz",
- "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==",
- "dev": true,
- "requires": {
- "babel-plugin-check-es2015-constants": "6.22.0",
- "babel-plugin-syntax-trailing-function-commas": "6.22.0",
- "babel-plugin-transform-async-to-generator": "6.24.1",
- "babel-plugin-transform-es2015-arrow-functions": "6.22.0",
- "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0",
- "babel-plugin-transform-es2015-block-scoping": "6.26.0",
- "babel-plugin-transform-es2015-classes": "6.24.1",
- "babel-plugin-transform-es2015-computed-properties": "6.24.1",
- "babel-plugin-transform-es2015-destructuring": "6.23.0",
- "babel-plugin-transform-es2015-duplicate-keys": "6.24.1",
- "babel-plugin-transform-es2015-for-of": "6.23.0",
- "babel-plugin-transform-es2015-function-name": "6.24.1",
- "babel-plugin-transform-es2015-literals": "6.22.0",
- "babel-plugin-transform-es2015-modules-amd": "6.24.1",
- "babel-plugin-transform-es2015-modules-commonjs": "6.26.2",
- "babel-plugin-transform-es2015-modules-systemjs": "6.24.1",
- "babel-plugin-transform-es2015-modules-umd": "6.24.1",
- "babel-plugin-transform-es2015-object-super": "6.24.1",
- "babel-plugin-transform-es2015-parameters": "6.24.1",
- "babel-plugin-transform-es2015-shorthand-properties": "6.24.1",
- "babel-plugin-transform-es2015-spread": "6.22.0",
- "babel-plugin-transform-es2015-sticky-regex": "6.24.1",
- "babel-plugin-transform-es2015-template-literals": "6.22.0",
- "babel-plugin-transform-es2015-typeof-symbol": "6.23.0",
- "babel-plugin-transform-es2015-unicode-regex": "6.24.1",
- "babel-plugin-transform-exponentiation-operator": "6.24.1",
- "babel-plugin-transform-regenerator": "6.26.0",
- "browserslist": "3.2.8",
- "invariant": "2.2.2",
- "semver": "5.4.1"
- }
- },
"babel-preset-jest": {
"version": "23.2.0",
"resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz",
"integrity": "sha1-jsegOhOPABoaj7HoETZSvxpV2kY=",
"dev": true,
"requires": {
- "babel-plugin-jest-hoist": "23.2.0",
- "babel-plugin-syntax-object-rest-spread": "6.13.0"
+ "babel-plugin-jest-hoist": "^23.2.0",
+ "babel-plugin-syntax-object-rest-spread": "^6.13.0"
}
},
"babel-preset-minify": {
@@ -1496,29 +1885,29 @@
"integrity": "sha512-+VV2GWEyak3eDOmzT1DDMuqHrw3VbE9nBNkx2LLVs4pH/Me32ND8DRpVDd8IRvk1xX5p75nygyRPtkMh6GIAbQ==",
"dev": true,
"requires": {
- "babel-plugin-minify-builtins": "0.3.0",
- "babel-plugin-minify-constant-folding": "0.3.0",
- "babel-plugin-minify-dead-code-elimination": "0.3.0",
- "babel-plugin-minify-flip-comparisons": "0.3.0",
- "babel-plugin-minify-guarded-expressions": "0.3.0",
- "babel-plugin-minify-infinity": "0.3.0",
- "babel-plugin-minify-mangle-names": "0.3.0",
- "babel-plugin-minify-numeric-literals": "0.3.0",
- "babel-plugin-minify-replace": "0.3.0",
- "babel-plugin-minify-simplify": "0.3.0",
- "babel-plugin-minify-type-constructors": "0.3.0",
- "babel-plugin-transform-inline-consecutive-adds": "0.3.0",
- "babel-plugin-transform-member-expression-literals": "6.9.4",
- "babel-plugin-transform-merge-sibling-variables": "6.9.4",
- "babel-plugin-transform-minify-booleans": "6.9.4",
- "babel-plugin-transform-property-literals": "6.9.4",
- "babel-plugin-transform-regexp-constructors": "0.3.0",
- "babel-plugin-transform-remove-console": "6.9.4",
- "babel-plugin-transform-remove-debugger": "6.9.4",
- "babel-plugin-transform-remove-undefined": "0.3.0",
- "babel-plugin-transform-simplify-comparison-operators": "6.9.4",
- "babel-plugin-transform-undefined-to-void": "6.9.4",
- "lodash.isplainobject": "4.0.6"
+ "babel-plugin-minify-builtins": "^0.3.0",
+ "babel-plugin-minify-constant-folding": "^0.3.0",
+ "babel-plugin-minify-dead-code-elimination": "^0.3.0",
+ "babel-plugin-minify-flip-comparisons": "^0.3.0",
+ "babel-plugin-minify-guarded-expressions": "^0.3.0",
+ "babel-plugin-minify-infinity": "^0.3.0",
+ "babel-plugin-minify-mangle-names": "^0.3.0",
+ "babel-plugin-minify-numeric-literals": "^0.3.0",
+ "babel-plugin-minify-replace": "^0.3.0",
+ "babel-plugin-minify-simplify": "^0.3.0",
+ "babel-plugin-minify-type-constructors": "^0.3.0",
+ "babel-plugin-transform-inline-consecutive-adds": "^0.3.0",
+ "babel-plugin-transform-member-expression-literals": "^6.9.0",
+ "babel-plugin-transform-merge-sibling-variables": "^6.9.0",
+ "babel-plugin-transform-minify-booleans": "^6.9.0",
+ "babel-plugin-transform-property-literals": "^6.9.0",
+ "babel-plugin-transform-regexp-constructors": "^0.3.0",
+ "babel-plugin-transform-remove-console": "^6.9.0",
+ "babel-plugin-transform-remove-debugger": "^6.9.0",
+ "babel-plugin-transform-remove-undefined": "^0.3.0",
+ "babel-plugin-transform-simplify-comparison-operators": "^6.9.0",
+ "babel-plugin-transform-undefined-to-void": "^6.9.0",
+ "lodash.isplainobject": "^4.0.6"
}
},
"babel-register": {
@@ -1527,13 +1916,13 @@
"integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
"dev": true,
"requires": {
- "babel-core": "6.26.3",
- "babel-runtime": "6.26.0",
- "core-js": "2.5.3",
- "home-or-tmp": "2.0.0",
- "lodash": "4.17.4",
- "mkdirp": "0.5.1",
- "source-map-support": "0.4.18"
+ "babel-core": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "core-js": "^2.5.0",
+ "home-or-tmp": "^2.0.0",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "source-map-support": "^0.4.15"
}
},
"babel-runtime": {
@@ -1542,8 +1931,8 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.5.3",
- "regenerator-runtime": "0.11.1"
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
}
},
"babel-template": {
@@ -1552,11 +1941,11 @@
"integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
"dev": true,
"requires": {
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "lodash": "4.17.4"
+ "babel-runtime": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "lodash": "^4.17.4"
}
},
"babel-traverse": {
@@ -1565,15 +1954,15 @@
"integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
"dev": true,
"requires": {
- "babel-code-frame": "6.26.0",
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "debug": "2.6.9",
- "globals": "9.18.0",
- "invariant": "2.2.2",
- "lodash": "4.17.4"
+ "babel-code-frame": "^6.26.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "debug": "^2.6.8",
+ "globals": "^9.18.0",
+ "invariant": "^2.2.2",
+ "lodash": "^4.17.4"
},
"dependencies": {
"debug": {
@@ -1599,10 +1988,10 @@
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
"dev": true,
"requires": {
- "babel-runtime": "6.26.0",
- "esutils": "2.0.2",
- "lodash": "4.17.4",
- "to-fast-properties": "1.0.3"
+ "babel-runtime": "^6.26.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.4",
+ "to-fast-properties": "^1.0.3"
}
},
"babylon": {
@@ -1623,13 +2012,13 @@
"integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
"dev": true,
"requires": {
- "cache-base": "1.0.1",
- "class-utils": "0.3.6",
- "component-emitter": "1.2.1",
- "define-property": "1.0.0",
- "isobject": "3.0.1",
- "mixin-deep": "1.3.1",
- "pascalcase": "0.1.1"
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
},
"dependencies": {
"define-property": {
@@ -1638,7 +2027,7 @@
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"dev": true,
"requires": {
- "is-descriptor": "1.0.2"
+ "is-descriptor": "^1.0.0"
}
},
"is-accessor-descriptor": {
@@ -1647,7 +2036,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-data-descriptor": {
@@ -1656,7 +2045,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-descriptor": {
@@ -1665,9 +2054,9 @@
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "1.0.0",
- "is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
}
},
"isobject": {
@@ -1691,7 +2080,7 @@
"dev": true,
"optional": true,
"requires": {
- "tweetnacl": "0.14.5"
+ "tweetnacl": "^0.14.3"
}
},
"block-stream": {
@@ -1700,7 +2089,7 @@
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
"dev": true,
"requires": {
- "inherits": "2.0.3"
+ "inherits": "~2.0.0"
}
},
"brace-expansion": {
@@ -1709,7 +2098,7 @@
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": {
- "balanced-match": "1.0.0",
+ "balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
@@ -1719,9 +2108,9 @@
"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
"dev": true,
"requires": {
- "expand-range": "1.8.2",
- "preserve": "0.2.0",
- "repeat-element": "1.1.3"
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
}
},
"browser-process-hrtime": {
@@ -1747,23 +2136,13 @@
}
}
},
- "browserslist": {
- "version": "3.2.8",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz",
- "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==",
- "dev": true,
- "requires": {
- "caniuse-lite": "1.0.30000885",
- "electron-to-chromium": "1.3.67"
- }
- },
"bser": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz",
"integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=",
"dev": true,
"requires": {
- "node-int64": "0.4.0"
+ "node-int64": "^0.4.0"
}
},
"buffer-from": {
@@ -1784,15 +2163,15 @@
"integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
"dev": true,
"requires": {
- "collection-visit": "1.0.0",
- "component-emitter": "1.2.1",
- "get-value": "2.0.6",
- "has-value": "1.0.0",
- "isobject": "3.0.1",
- "set-value": "2.0.0",
- "to-object-path": "0.3.0",
- "union-value": "1.0.0",
- "unset-value": "1.0.0"
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
},
"dependencies": {
"isobject": {
@@ -1809,7 +2188,7 @@
"integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
"dev": true,
"requires": {
- "callsites": "0.2.0"
+ "callsites": "^0.2.0"
},
"dependencies": {
"callsites": {
@@ -1832,8 +2211,8 @@
"integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
"dev": true,
"requires": {
- "no-case": "2.3.2",
- "upper-case": "1.1.3"
+ "no-case": "^2.2.0",
+ "upper-case": "^1.1.1"
}
},
"camelcase": {
@@ -1848,8 +2227,8 @@
"integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
"dev": true,
"requires": {
- "camelcase": "2.1.1",
- "map-obj": "1.0.1"
+ "camelcase": "^2.0.0",
+ "map-obj": "^1.0.0"
},
"dependencies": {
"camelcase": {
@@ -1872,7 +2251,7 @@
"integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=",
"dev": true,
"requires": {
- "rsvp": "3.6.2"
+ "rsvp": "^3.3.3"
}
},
"caseless": {
@@ -1887,9 +2266,9 @@
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
"dev": true,
"requires": {
- "ansi-styles": "3.2.1",
- "escape-string-regexp": "1.0.5",
- "supports-color": "5.4.0"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
},
"dependencies": {
"ansi-styles": {
@@ -1898,7 +2277,7 @@
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
- "color-convert": "1.9.1"
+ "color-convert": "^1.9.0"
}
},
"supports-color": {
@@ -1907,7 +2286,7 @@
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
"dev": true,
"requires": {
- "has-flag": "3.0.0"
+ "has-flag": "^3.0.0"
}
}
}
@@ -1936,10 +2315,10 @@
"integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
"dev": true,
"requires": {
- "arr-union": "3.1.0",
- "define-property": "0.2.5",
- "isobject": "3.0.1",
- "static-extend": "0.1.2"
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
},
"dependencies": {
"define-property": {
@@ -1948,7 +2327,7 @@
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
"requires": {
- "is-descriptor": "0.1.6"
+ "is-descriptor": "^0.1.0"
}
},
"isobject": {
@@ -1965,7 +2344,7 @@
"integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
"dev": true,
"requires": {
- "source-map": "0.6.1"
+ "source-map": "~0.6.0"
},
"dependencies": {
"source-map": {
@@ -1982,7 +2361,7 @@
"integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
"dev": true,
"requires": {
- "restore-cursor": "2.0.0"
+ "restore-cursor": "^2.0.0"
}
},
"cli-width": {
@@ -1998,9 +2377,9 @@
"dev": true,
"optional": true,
"requires": {
- "good-listener": "1.2.2",
- "select": "1.1.2",
- "tiny-emitter": "2.0.2"
+ "good-listener": "^1.2.2",
+ "select": "^1.1.2",
+ "tiny-emitter": "^2.0.0"
}
},
"cliui": {
@@ -2009,9 +2388,9 @@
"integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
"dev": true,
"requires": {
- "string-width": "2.1.1",
- "strip-ansi": "4.0.0",
- "wrap-ansi": "2.1.0"
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
}
},
"co": {
@@ -2032,8 +2411,8 @@
"integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
"dev": true,
"requires": {
- "map-visit": "1.0.0",
- "object-visit": "1.0.1"
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
}
},
"color-convert": {
@@ -2042,7 +2421,7 @@
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"dev": true,
"requires": {
- "color-name": "1.1.3"
+ "color-name": "^1.1.1"
}
},
"color-name": {
@@ -2057,7 +2436,7 @@
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
"dev": true,
"requires": {
- "delayed-stream": "1.0.0"
+ "delayed-stream": "~1.0.0"
}
},
"commander": {
@@ -2084,10 +2463,10 @@
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
"dev": true,
"requires": {
- "buffer-from": "1.1.0",
- "inherits": "2.0.3",
- "readable-stream": "2.3.3",
- "typedarray": "0.0.6"
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
}
},
"console-control-strings": {
@@ -2132,9 +2511,9 @@
"integrity": "sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==",
"dev": true,
"requires": {
- "is-directory": "0.3.1",
- "js-yaml": "3.12.0",
- "parse-json": "4.0.0"
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.9.0",
+ "parse-json": "^4.0.0"
},
"dependencies": {
"parse-json": {
@@ -2143,8 +2522,8 @@
"integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
"dev": true,
"requires": {
- "error-ex": "1.3.1",
- "json-parse-better-errors": "1.0.2"
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
}
}
}
@@ -2155,9 +2534,9 @@
"integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
"dev": true,
"requires": {
- "lru-cache": "4.1.2",
- "shebang-command": "1.2.0",
- "which": "1.3.0"
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
}
},
"cssom": {
@@ -2172,7 +2551,7 @@
"integrity": "sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==",
"dev": true,
"requires": {
- "cssom": "0.3.4"
+ "cssom": "0.3.x"
}
},
"currently-unhandled": {
@@ -2181,7 +2560,7 @@
"integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
"dev": true,
"requires": {
- "array-find-index": "1.0.2"
+ "array-find-index": "^1.0.1"
}
},
"dashdash": {
@@ -2190,7 +2569,7 @@
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"dev": true,
"requires": {
- "assert-plus": "1.0.0"
+ "assert-plus": "^1.0.0"
}
},
"data-urls": {
@@ -2199,9 +2578,9 @@
"integrity": "sha512-0HdcMZzK6ubMUnsMmQmG0AcLQPvbvb47R0+7CCZQCYgcd8OUWG91CG7sM6GoXgjz+WLl4ArFzHtBMy/QqSF4eg==",
"dev": true,
"requires": {
- "abab": "2.0.0",
- "whatwg-mimetype": "2.1.0",
- "whatwg-url": "7.0.0"
+ "abab": "^2.0.0",
+ "whatwg-mimetype": "^2.1.0",
+ "whatwg-url": "^7.0.0"
},
"dependencies": {
"whatwg-url": {
@@ -2210,9 +2589,9 @@
"integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==",
"dev": true,
"requires": {
- "lodash.sortby": "4.7.0",
- "tr46": "1.0.1",
- "webidl-conversions": "4.0.2"
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
}
}
}
@@ -2256,7 +2635,7 @@
"integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=",
"dev": true,
"requires": {
- "strip-bom": "2.0.0"
+ "strip-bom": "^2.0.0"
},
"dependencies": {
"strip-bom": {
@@ -2265,7 +2644,7 @@
"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
"dev": true,
"requires": {
- "is-utf8": "0.2.1"
+ "is-utf8": "^0.2.0"
}
}
}
@@ -2276,8 +2655,8 @@
"integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
"dev": true,
"requires": {
- "foreach": "2.0.5",
- "object-keys": "1.0.11"
+ "foreach": "^2.0.5",
+ "object-keys": "^1.0.8"
}
},
"define-property": {
@@ -2286,8 +2665,8 @@
"integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
"dev": true,
"requires": {
- "is-descriptor": "1.0.2",
- "isobject": "3.0.1"
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
},
"dependencies": {
"is-accessor-descriptor": {
@@ -2296,7 +2675,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-data-descriptor": {
@@ -2305,7 +2684,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-descriptor": {
@@ -2314,9 +2693,9 @@
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "1.0.0",
- "is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
}
},
"isobject": {
@@ -2339,12 +2718,12 @@
"integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==",
"dev": true,
"requires": {
- "find-root": "1.1.0",
- "glob": "7.1.2",
- "ignore": "3.3.8",
- "pkg-config": "1.1.1",
- "run-parallel": "1.1.9",
- "uniq": "1.0.1"
+ "find-root": "^1.0.0",
+ "glob": "^7.0.5",
+ "ignore": "^3.0.9",
+ "pkg-config": "^1.1.0",
+ "run-parallel": "^1.1.2",
+ "uniq": "^1.0.1"
}
},
"del": {
@@ -2353,13 +2732,13 @@
"integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
"dev": true,
"requires": {
- "globby": "5.0.0",
- "is-path-cwd": "1.0.0",
- "is-path-in-cwd": "1.0.1",
- "object-assign": "4.1.1",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1",
- "rimraf": "2.6.2"
+ "globby": "^5.0.0",
+ "is-path-cwd": "^1.0.0",
+ "is-path-in-cwd": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "rimraf": "^2.2.8"
}
},
"delayed-stream": {
@@ -2393,7 +2772,7 @@
"integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
"dev": true,
"requires": {
- "repeating": "2.0.1"
+ "repeating": "^2.0.0"
}
},
"detect-newline": {
@@ -2414,7 +2793,7 @@
"integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
"requires": {
- "esutils": "2.0.2"
+ "esutils": "^2.0.2"
}
},
"domexception": {
@@ -2423,7 +2802,7 @@
"integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
"dev": true,
"requires": {
- "webidl-conversions": "4.0.2"
+ "webidl-conversions": "^4.0.2"
}
},
"ecc-jsbn": {
@@ -2433,8 +2812,8 @@
"dev": true,
"optional": true,
"requires": {
- "jsbn": "0.1.1",
- "safer-buffer": "2.1.2"
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
}
},
"electron-to-chromium": {
@@ -2449,7 +2828,7 @@
"integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
"dev": true,
"requires": {
- "iconv-lite": "0.4.19"
+ "iconv-lite": "~0.4.13"
}
},
"entities": {
@@ -2464,7 +2843,7 @@
"integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
"dev": true,
"requires": {
- "is-arrayish": "0.2.1"
+ "is-arrayish": "^0.2.1"
}
},
"es-abstract": {
@@ -2473,11 +2852,11 @@
"integrity": "sha512-ZnQrE/lXTTQ39ulXZ+J1DTFazV9qBy61x2bY071B+qGco8Z8q1QddsLdt/EF8Ai9hcWH72dWS0kFqXLxOxqslA==",
"dev": true,
"requires": {
- "es-to-primitive": "1.1.1",
- "function-bind": "1.1.1",
- "has": "1.0.1",
- "is-callable": "1.1.3",
- "is-regex": "1.0.4"
+ "es-to-primitive": "^1.1.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.1",
+ "is-callable": "^1.1.3",
+ "is-regex": "^1.0.4"
}
},
"es-to-primitive": {
@@ -2486,9 +2865,9 @@
"integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
"dev": true,
"requires": {
- "is-callable": "1.1.3",
- "is-date-object": "1.0.1",
- "is-symbol": "1.0.1"
+ "is-callable": "^1.1.1",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.1"
}
},
"escape-string-regexp": {
@@ -2503,11 +2882,11 @@
"integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==",
"dev": true,
"requires": {
- "esprima": "3.1.3",
- "estraverse": "4.2.0",
- "esutils": "2.0.2",
- "optionator": "0.8.2",
- "source-map": "0.6.1"
+ "esprima": "^3.1.3",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.6.1"
},
"dependencies": {
"esprima": {
@@ -2531,43 +2910,43 @@
"integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==",
"dev": true,
"requires": {
- "ajv": "5.5.2",
- "babel-code-frame": "6.26.0",
- "chalk": "2.4.1",
- "concat-stream": "1.6.2",
- "cross-spawn": "5.1.0",
- "debug": "3.1.0",
- "doctrine": "2.1.0",
- "eslint-scope": "3.7.1",
- "eslint-visitor-keys": "1.0.0",
- "espree": "3.5.4",
- "esquery": "1.0.1",
- "esutils": "2.0.2",
- "file-entry-cache": "2.0.0",
- "functional-red-black-tree": "1.0.1",
- "glob": "7.1.2",
- "globals": "11.5.0",
- "ignore": "3.3.8",
- "imurmurhash": "0.1.4",
- "inquirer": "3.3.0",
- "is-resolvable": "1.1.0",
- "js-yaml": "3.12.0",
- "json-stable-stringify-without-jsonify": "1.0.1",
- "levn": "0.3.0",
- "lodash": "4.17.4",
- "minimatch": "3.0.4",
- "mkdirp": "0.5.1",
- "natural-compare": "1.4.0",
- "optionator": "0.8.2",
- "path-is-inside": "1.0.2",
- "pluralize": "7.0.0",
- "progress": "2.0.0",
- "require-uncached": "1.0.3",
- "semver": "5.4.1",
- "strip-ansi": "4.0.0",
- "strip-json-comments": "2.0.1",
+ "ajv": "^5.3.0",
+ "babel-code-frame": "^6.22.0",
+ "chalk": "^2.1.0",
+ "concat-stream": "^1.6.0",
+ "cross-spawn": "^5.1.0",
+ "debug": "^3.1.0",
+ "doctrine": "^2.1.0",
+ "eslint-scope": "^3.7.1",
+ "eslint-visitor-keys": "^1.0.0",
+ "espree": "^3.5.2",
+ "esquery": "^1.0.0",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^2.0.0",
+ "functional-red-black-tree": "^1.0.1",
+ "glob": "^7.1.2",
+ "globals": "^11.0.1",
+ "ignore": "^3.3.3",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^3.0.6",
+ "is-resolvable": "^1.0.0",
+ "js-yaml": "^3.9.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.4",
+ "minimatch": "^3.0.2",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.2",
+ "path-is-inside": "^1.0.2",
+ "pluralize": "^7.0.0",
+ "progress": "^2.0.0",
+ "require-uncached": "^1.0.3",
+ "semver": "^5.3.0",
+ "strip-ansi": "^4.0.0",
+ "strip-json-comments": "~2.0.1",
"table": "4.0.2",
- "text-table": "0.2.0"
+ "text-table": "~0.2.0"
},
"dependencies": {
"ansi-regex": {
@@ -2582,9 +2961,9 @@
"integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
"dev": true,
"requires": {
- "lru-cache": "4.1.2",
- "shebang-command": "1.2.0",
- "which": "1.3.0"
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
}
},
"globals": {
@@ -2599,7 +2978,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "3.0.0"
+ "ansi-regex": "^3.0.0"
}
}
}
@@ -2628,8 +3007,8 @@
"integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==",
"dev": true,
"requires": {
- "debug": "2.6.9",
- "resolve": "1.5.0"
+ "debug": "^2.6.9",
+ "resolve": "^1.5.0"
},
"dependencies": {
"debug": {
@@ -2649,8 +3028,8 @@
"integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=",
"dev": true,
"requires": {
- "debug": "2.6.9",
- "pkg-dir": "1.0.0"
+ "debug": "^2.6.8",
+ "pkg-dir": "^1.0.0"
},
"dependencies": {
"debug": {
@@ -2668,7 +3047,7 @@
"integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
"dev": true,
"requires": {
- "find-up": "1.1.2"
+ "find-up": "^1.0.0"
}
}
}
@@ -2679,16 +3058,16 @@
"integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==",
"dev": true,
"requires": {
- "builtin-modules": "1.1.1",
- "contains-path": "0.1.0",
- "debug": "2.6.9",
+ "builtin-modules": "^1.1.1",
+ "contains-path": "^0.1.0",
+ "debug": "^2.6.8",
"doctrine": "1.5.0",
- "eslint-import-resolver-node": "0.3.2",
- "eslint-module-utils": "2.2.0",
- "has": "1.0.1",
- "lodash.cond": "4.5.2",
- "minimatch": "3.0.4",
- "read-pkg-up": "2.0.0"
+ "eslint-import-resolver-node": "^0.3.1",
+ "eslint-module-utils": "^2.1.1",
+ "has": "^1.0.1",
+ "lodash.cond": "^4.3.0",
+ "minimatch": "^3.0.3",
+ "read-pkg-up": "^2.0.0"
},
"dependencies": {
"debug": {
@@ -2706,8 +3085,8 @@
"integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
"dev": true,
"requires": {
- "esutils": "2.0.2",
- "isarray": "1.0.0"
+ "esutils": "^2.0.2",
+ "isarray": "^1.0.0"
}
},
"find-up": {
@@ -2716,7 +3095,7 @@
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"dev": true,
"requires": {
- "locate-path": "2.0.0"
+ "locate-path": "^2.0.0"
}
},
"path-type": {
@@ -2725,7 +3104,7 @@
"integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
"dev": true,
"requires": {
- "pify": "2.3.0"
+ "pify": "^2.0.0"
}
},
"read-pkg": {
@@ -2734,9 +3113,9 @@
"integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
"dev": true,
"requires": {
- "load-json-file": "2.0.0",
- "normalize-package-data": "2.4.0",
- "path-type": "2.0.0"
+ "load-json-file": "^2.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^2.0.0"
}
},
"read-pkg-up": {
@@ -2745,8 +3124,8 @@
"integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
"dev": true,
"requires": {
- "find-up": "2.1.0",
- "read-pkg": "2.0.0"
+ "find-up": "^2.0.0",
+ "read-pkg": "^2.0.0"
}
}
}
@@ -2757,10 +3136,10 @@
"integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==",
"dev": true,
"requires": {
- "ignore": "3.3.8",
- "minimatch": "3.0.4",
- "resolve": "1.5.0",
- "semver": "5.4.1"
+ "ignore": "^3.3.6",
+ "minimatch": "^3.0.4",
+ "resolve": "^1.3.3",
+ "semver": "^5.4.1"
}
},
"eslint-plugin-promise": {
@@ -2775,10 +3154,10 @@
"integrity": "sha512-30aMOHWX/DOaaLJVBHz6RMvYM2qy5GH63+y2PLFdIrYe4YLtODFmT3N1YA7ZqUnaBweVbedr4K4cqxOlWAPjIw==",
"dev": true,
"requires": {
- "doctrine": "2.1.0",
- "has": "1.0.1",
- "jsx-ast-utils": "2.0.1",
- "prop-types": "15.6.1"
+ "doctrine": "^2.0.2",
+ "has": "^1.0.1",
+ "jsx-ast-utils": "^2.0.1",
+ "prop-types": "^15.6.0"
}
},
"eslint-plugin-standard": {
@@ -2793,8 +3172,8 @@
"integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
"dev": true,
"requires": {
- "esrecurse": "4.2.1",
- "estraverse": "4.2.0"
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
}
},
"eslint-visitor-keys": {
@@ -2809,8 +3188,8 @@
"integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
"dev": true,
"requires": {
- "acorn": "5.5.3",
- "acorn-jsx": "3.0.1"
+ "acorn": "^5.5.0",
+ "acorn-jsx": "^3.0.0"
}
},
"esprima": {
@@ -2825,7 +3204,7 @@
"integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
"dev": true,
"requires": {
- "estraverse": "4.2.0"
+ "estraverse": "^4.0.0"
}
},
"esrecurse": {
@@ -2834,7 +3213,7 @@
"integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
"dev": true,
"requires": {
- "estraverse": "4.2.0"
+ "estraverse": "^4.1.0"
}
},
"estraverse": {
@@ -2844,9 +3223,9 @@
"dev": true
},
"estree-walker": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz",
- "integrity": "sha1-va/oCVOD2EFNXcLs9MkXO225QS4=",
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz",
+ "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==",
"dev": true
},
"esutils": {
@@ -2861,7 +3240,7 @@
"integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==",
"dev": true,
"requires": {
- "merge": "1.2.0"
+ "merge": "^1.2.0"
}
},
"execa": {
@@ -2870,13 +3249,13 @@
"integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
"dev": true,
"requires": {
- "cross-spawn": "5.1.0",
- "get-stream": "3.0.0",
- "is-stream": "1.1.0",
- "npm-run-path": "2.0.2",
- "p-finally": "1.0.0",
- "signal-exit": "3.0.2",
- "strip-eof": "1.0.0"
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
}
},
"exit": {
@@ -2891,7 +3270,7 @@
"integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
"dev": true,
"requires": {
- "is-posix-bracket": "0.1.1"
+ "is-posix-bracket": "^0.1.0"
}
},
"expand-range": {
@@ -2900,7 +3279,7 @@
"integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
"dev": true,
"requires": {
- "fill-range": "2.2.4"
+ "fill-range": "^2.1.0"
}
},
"expect": {
@@ -2909,12 +3288,12 @@
"integrity": "sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w==",
"dev": true,
"requires": {
- "ansi-styles": "3.2.1",
- "jest-diff": "23.6.0",
- "jest-get-type": "22.4.3",
- "jest-matcher-utils": "23.6.0",
- "jest-message-util": "23.4.0",
- "jest-regex-util": "23.3.0"
+ "ansi-styles": "^3.2.0",
+ "jest-diff": "^23.6.0",
+ "jest-get-type": "^22.1.0",
+ "jest-matcher-utils": "^23.6.0",
+ "jest-message-util": "^23.4.0",
+ "jest-regex-util": "^23.3.0"
}
},
"extend": {
@@ -2929,8 +3308,8 @@
"integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
"dev": true,
"requires": {
- "assign-symbols": "1.0.0",
- "is-extendable": "1.0.1"
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
},
"dependencies": {
"is-extendable": {
@@ -2939,7 +3318,7 @@
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dev": true,
"requires": {
- "is-plain-object": "2.0.4"
+ "is-plain-object": "^2.0.4"
}
}
}
@@ -2950,9 +3329,9 @@
"integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
"dev": true,
"requires": {
- "chardet": "0.4.2",
- "iconv-lite": "0.4.19",
- "tmp": "0.0.33"
+ "chardet": "^0.4.0",
+ "iconv-lite": "^0.4.17",
+ "tmp": "^0.0.33"
}
},
"extglob": {
@@ -2961,7 +3340,7 @@
"integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
"dev": true,
"requires": {
- "is-extglob": "1.0.0"
+ "is-extglob": "^1.0.0"
}
},
"extsprintf": {
@@ -2994,7 +3373,7 @@
"integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=",
"dev": true,
"requires": {
- "bser": "2.0.0"
+ "bser": "^2.0.0"
}
},
"fbjs": {
@@ -3003,13 +3382,13 @@
"integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
"dev": true,
"requires": {
- "core-js": "1.2.7",
- "isomorphic-fetch": "2.2.1",
- "loose-envify": "1.3.1",
- "object-assign": "4.1.1",
- "promise": "7.3.1",
- "setimmediate": "1.0.5",
- "ua-parser-js": "0.7.18"
+ "core-js": "^1.0.0",
+ "isomorphic-fetch": "^2.1.1",
+ "loose-envify": "^1.0.0",
+ "object-assign": "^4.1.0",
+ "promise": "^7.1.1",
+ "setimmediate": "^1.0.5",
+ "ua-parser-js": "^0.7.18"
},
"dependencies": {
"core-js": {
@@ -3026,8 +3405,8 @@
"integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
"dev": true,
"requires": {
- "flat-cache": "1.3.0",
- "object-assign": "4.1.1"
+ "flat-cache": "^1.2.1",
+ "object-assign": "^4.0.1"
}
},
"filename-regex": {
@@ -3042,8 +3421,8 @@
"integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
"dev": true,
"requires": {
- "glob": "7.1.2",
- "minimatch": "3.0.4"
+ "glob": "^7.0.3",
+ "minimatch": "^3.0.3"
}
},
"fill-range": {
@@ -3052,11 +3431,11 @@
"integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
"dev": true,
"requires": {
- "is-number": "2.1.0",
- "isobject": "2.1.0",
- "randomatic": "3.1.0",
- "repeat-element": "1.1.3",
- "repeat-string": "1.6.1"
+ "is-number": "^2.1.0",
+ "isobject": "^2.0.0",
+ "randomatic": "^3.0.0",
+ "repeat-element": "^1.1.2",
+ "repeat-string": "^1.5.2"
}
},
"find-root": {
@@ -3071,8 +3450,8 @@
"integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
"dev": true,
"requires": {
- "path-exists": "2.1.0",
- "pinkie-promise": "2.0.1"
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
}
},
"flat-cache": {
@@ -3081,10 +3460,10 @@
"integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
"dev": true,
"requires": {
- "circular-json": "0.3.3",
- "del": "2.2.2",
- "graceful-fs": "4.1.11",
- "write": "0.2.1"
+ "circular-json": "^0.3.1",
+ "del": "^2.0.2",
+ "graceful-fs": "^4.1.2",
+ "write": "^0.2.1"
}
},
"for-in": {
@@ -3099,7 +3478,7 @@
"integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
"dev": true,
"requires": {
- "for-in": "1.0.2"
+ "for-in": "^1.0.1"
}
},
"foreach": {
@@ -3120,9 +3499,9 @@
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
"dev": true,
"requires": {
- "asynckit": "0.4.0",
+ "asynckit": "^0.4.0",
"combined-stream": "1.0.6",
- "mime-types": "2.1.20"
+ "mime-types": "^2.1.12"
}
},
"fragment-cache": {
@@ -3131,7 +3510,7 @@
"integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
"dev": true,
"requires": {
- "map-cache": "0.2.2"
+ "map-cache": "^0.2.2"
}
},
"fs-extra": {
@@ -3140,9 +3519,9 @@
"integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==",
"dev": true,
"requires": {
- "graceful-fs": "4.1.11",
- "jsonfile": "4.0.0",
- "universalify": "0.1.1"
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
}
},
"fs.realpath": {
@@ -3158,8 +3537,8 @@
"dev": true,
"optional": true,
"requires": {
- "nan": "2.11.0",
- "node-pre-gyp": "0.10.0"
+ "nan": "^2.9.2",
+ "node-pre-gyp": "^0.10.0"
},
"dependencies": {
"abbrev": {
@@ -3185,8 +3564,8 @@
"dev": true,
"optional": true,
"requires": {
- "delegates": "1.0.0",
- "readable-stream": "2.3.6"
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
}
},
"balanced-match": {
@@ -3199,7 +3578,7 @@
"bundled": true,
"dev": true,
"requires": {
- "balanced-match": "1.0.0",
+ "balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
@@ -3263,7 +3642,7 @@
"dev": true,
"optional": true,
"requires": {
- "minipass": "2.2.4"
+ "minipass": "^2.2.1"
}
},
"fs.realpath": {
@@ -3278,14 +3657,14 @@
"dev": true,
"optional": true,
"requires": {
- "aproba": "1.2.0",
- "console-control-strings": "1.1.0",
- "has-unicode": "2.0.1",
- "object-assign": "4.1.1",
- "signal-exit": "3.0.2",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wide-align": "1.1.2"
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
}
},
"glob": {
@@ -3294,12 +3673,12 @@
"dev": true,
"optional": true,
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
"has-unicode": {
@@ -3314,7 +3693,7 @@
"dev": true,
"optional": true,
"requires": {
- "safer-buffer": "2.1.2"
+ "safer-buffer": "^2.1.0"
}
},
"ignore-walk": {
@@ -3323,7 +3702,7 @@
"dev": true,
"optional": true,
"requires": {
- "minimatch": "3.0.4"
+ "minimatch": "^3.0.4"
}
},
"inflight": {
@@ -3332,8 +3711,8 @@
"dev": true,
"optional": true,
"requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
"inherits": {
@@ -3352,7 +3731,7 @@
"bundled": true,
"dev": true,
"requires": {
- "number-is-nan": "1.0.1"
+ "number-is-nan": "^1.0.0"
}
},
"isarray": {
@@ -3366,7 +3745,7 @@
"bundled": true,
"dev": true,
"requires": {
- "brace-expansion": "1.1.11"
+ "brace-expansion": "^1.1.7"
}
},
"minimist": {
@@ -3379,8 +3758,8 @@
"bundled": true,
"dev": true,
"requires": {
- "safe-buffer": "5.1.1",
- "yallist": "3.0.2"
+ "safe-buffer": "^5.1.1",
+ "yallist": "^3.0.0"
}
},
"minizlib": {
@@ -3389,7 +3768,7 @@
"dev": true,
"optional": true,
"requires": {
- "minipass": "2.2.4"
+ "minipass": "^2.2.1"
}
},
"mkdirp": {
@@ -3412,9 +3791,9 @@
"dev": true,
"optional": true,
"requires": {
- "debug": "2.6.9",
- "iconv-lite": "0.4.21",
- "sax": "1.2.4"
+ "debug": "^2.1.2",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
}
},
"node-pre-gyp": {
@@ -3423,16 +3802,16 @@
"dev": true,
"optional": true,
"requires": {
- "detect-libc": "1.0.3",
- "mkdirp": "0.5.1",
- "needle": "2.2.0",
- "nopt": "4.0.1",
- "npm-packlist": "1.1.10",
- "npmlog": "4.1.2",
- "rc": "1.2.7",
- "rimraf": "2.6.2",
- "semver": "5.5.0",
- "tar": "4.4.1"
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.0",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.1.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
}
},
"nopt": {
@@ -3441,8 +3820,8 @@
"dev": true,
"optional": true,
"requires": {
- "abbrev": "1.1.1",
- "osenv": "0.1.5"
+ "abbrev": "1",
+ "osenv": "^0.1.4"
}
},
"npm-bundled": {
@@ -3457,8 +3836,8 @@
"dev": true,
"optional": true,
"requires": {
- "ignore-walk": "3.0.1",
- "npm-bundled": "1.0.3"
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1"
}
},
"npmlog": {
@@ -3467,10 +3846,10 @@
"dev": true,
"optional": true,
"requires": {
- "are-we-there-yet": "1.1.4",
- "console-control-strings": "1.1.0",
- "gauge": "2.7.4",
- "set-blocking": "2.0.0"
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
}
},
"number-is-nan": {
@@ -3489,7 +3868,7 @@
"bundled": true,
"dev": true,
"requires": {
- "wrappy": "1.0.2"
+ "wrappy": "1"
}
},
"os-homedir": {
@@ -3510,8 +3889,8 @@
"dev": true,
"optional": true,
"requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
}
},
"path-is-absolute": {
@@ -3532,10 +3911,10 @@
"dev": true,
"optional": true,
"requires": {
- "deep-extend": "0.5.1",
- "ini": "1.3.5",
- "minimist": "1.2.0",
- "strip-json-comments": "2.0.1"
+ "deep-extend": "^0.5.1",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
},
"dependencies": {
"minimist": {
@@ -3552,13 +3931,13 @@
"dev": true,
"optional": true,
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "2.0.0",
- "safe-buffer": "5.1.1",
- "string_decoder": "1.1.1",
- "util-deprecate": "1.0.2"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
"rimraf": {
@@ -3567,7 +3946,7 @@
"dev": true,
"optional": true,
"requires": {
- "glob": "7.1.2"
+ "glob": "^7.0.5"
}
},
"safe-buffer": {
@@ -3610,9 +3989,9 @@
"bundled": true,
"dev": true,
"requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
}
},
"string_decoder": {
@@ -3621,7 +4000,7 @@
"dev": true,
"optional": true,
"requires": {
- "safe-buffer": "5.1.1"
+ "safe-buffer": "~5.1.0"
}
},
"strip-ansi": {
@@ -3629,7 +4008,7 @@
"bundled": true,
"dev": true,
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
},
"strip-json-comments": {
@@ -3644,13 +4023,13 @@
"dev": true,
"optional": true,
"requires": {
- "chownr": "1.0.1",
- "fs-minipass": "1.2.5",
- "minipass": "2.2.4",
- "minizlib": "1.1.0",
- "mkdirp": "0.5.1",
- "safe-buffer": "5.1.1",
- "yallist": "3.0.2"
+ "chownr": "^1.0.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.2.4",
+ "minizlib": "^1.1.0",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.1",
+ "yallist": "^3.0.2"
}
},
"util-deprecate": {
@@ -3665,7 +4044,7 @@
"dev": true,
"optional": true,
"requires": {
- "string-width": "1.0.2"
+ "string-width": "^1.0.2"
}
},
"wrappy": {
@@ -3686,10 +4065,10 @@
"integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
"dev": true,
"requires": {
- "graceful-fs": "4.1.11",
- "inherits": "2.0.3",
- "mkdirp": "0.5.1",
- "rimraf": "2.6.2"
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
}
},
"function-bind": {
@@ -3710,14 +4089,14 @@
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"dev": true,
"requires": {
- "aproba": "1.2.0",
- "console-control-strings": "1.1.0",
- "has-unicode": "2.0.1",
- "object-assign": "4.1.1",
- "signal-exit": "3.0.2",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wide-align": "1.1.3"
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
},
"dependencies": {
"ansi-regex": {
@@ -3732,7 +4111,7 @@
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true,
"requires": {
- "number-is-nan": "1.0.1"
+ "number-is-nan": "^1.0.0"
}
},
"string-width": {
@@ -3741,9 +4120,9 @@
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"dev": true,
"requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
}
},
"strip-ansi": {
@@ -3752,7 +4131,7 @@
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
}
}
@@ -3763,7 +4142,7 @@
"integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
"dev": true,
"requires": {
- "globule": "1.2.1"
+ "globule": "^1.0.0"
}
},
"get-caller-file": {
@@ -3796,7 +4175,7 @@
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"dev": true,
"requires": {
- "assert-plus": "1.0.0"
+ "assert-plus": "^1.0.0"
}
},
"glob": {
@@ -3805,12 +4184,12 @@
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"dev": true,
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
"glob-base": {
@@ -3819,8 +4198,8 @@
"integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
"dev": true,
"requires": {
- "glob-parent": "2.0.0",
- "is-glob": "2.0.1"
+ "glob-parent": "^2.0.0",
+ "is-glob": "^2.0.0"
}
},
"glob-parent": {
@@ -3829,7 +4208,7 @@
"integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
"dev": true,
"requires": {
- "is-glob": "2.0.1"
+ "is-glob": "^2.0.0"
}
},
"globals": {
@@ -3844,12 +4223,12 @@
"integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
"dev": true,
"requires": {
- "array-union": "1.0.2",
- "arrify": "1.0.1",
- "glob": "7.1.2",
- "object-assign": "4.1.1",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
+ "array-union": "^1.0.1",
+ "arrify": "^1.0.0",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
}
},
"globule": {
@@ -3858,9 +4237,9 @@
"integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
"dev": true,
"requires": {
- "glob": "7.1.2",
- "lodash": "4.17.11",
- "minimatch": "3.0.4"
+ "glob": "~7.1.1",
+ "lodash": "~4.17.10",
+ "minimatch": "~3.0.2"
},
"dependencies": {
"lodash": {
@@ -3878,7 +4257,7 @@
"dev": true,
"optional": true,
"requires": {
- "delegate": "3.2.0"
+ "delegate": "^3.1.2"
}
},
"graceful-fs": {
@@ -3899,10 +4278,10 @@
"integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==",
"dev": true,
"requires": {
- "async": "2.6.1",
- "optimist": "0.6.1",
- "source-map": "0.6.1",
- "uglify-js": "3.4.9"
+ "async": "^2.5.0",
+ "optimist": "^0.6.1",
+ "source-map": "^0.6.1",
+ "uglify-js": "^3.1.4"
},
"dependencies": {
"source-map": {
@@ -3925,8 +4304,8 @@
"integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
"dev": true,
"requires": {
- "ajv": "5.5.2",
- "har-schema": "2.0.0"
+ "ajv": "^5.3.0",
+ "har-schema": "^2.0.0"
}
},
"has": {
@@ -3935,7 +4314,7 @@
"integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
"dev": true,
"requires": {
- "function-bind": "1.1.1"
+ "function-bind": "^1.0.2"
}
},
"has-ansi": {
@@ -3944,7 +4323,7 @@
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"dev": true,
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
},
"dependencies": {
"ansi-regex": {
@@ -3973,9 +4352,9 @@
"integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
"dev": true,
"requires": {
- "get-value": "2.0.6",
- "has-values": "1.0.0",
- "isobject": "3.0.1"
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
},
"dependencies": {
"isobject": {
@@ -3992,8 +4371,8 @@
"integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
"dev": true,
"requires": {
- "is-number": "3.0.0",
- "kind-of": "4.0.0"
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
},
"dependencies": {
"is-number": {
@@ -4002,7 +4381,7 @@
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
},
"dependencies": {
"kind-of": {
@@ -4011,7 +4390,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
}
}
@@ -4022,7 +4401,7 @@
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
}
}
@@ -4039,8 +4418,8 @@
"integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
"dev": true,
"requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.1"
}
},
"hosted-git-info": {
@@ -4055,7 +4434,7 @@
"integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
"dev": true,
"requires": {
- "whatwg-encoding": "1.0.4"
+ "whatwg-encoding": "^1.0.1"
}
},
"html-minifier": {
@@ -4064,13 +4443,13 @@
"integrity": "sha512-ZmgNLaTp54+HFKkONyLFEfs5dd/ZOtlquKaTnqIWFmx3Av5zG6ZPcV2d0o9XM2fXOTxxIf6eDcwzFFotke/5zA==",
"dev": true,
"requires": {
- "camel-case": "3.0.0",
- "clean-css": "4.2.1",
- "commander": "2.17.1",
- "he": "1.1.1",
- "param-case": "2.1.1",
- "relateurl": "0.2.7",
- "uglify-js": "3.4.9"
+ "camel-case": "3.0.x",
+ "clean-css": "4.2.x",
+ "commander": "2.17.x",
+ "he": "1.1.x",
+ "param-case": "2.1.x",
+ "relateurl": "0.2.x",
+ "uglify-js": "3.4.x"
}
},
"http-signature": {
@@ -4079,9 +4458,9 @@
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"dev": true,
"requires": {
- "assert-plus": "1.0.0",
- "jsprim": "1.4.1",
- "sshpk": "1.14.2"
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
}
},
"husky": {
@@ -4090,16 +4469,16 @@
"integrity": "sha512-lxdl0+FrKhRXvhOW978oCHCiaXQAtwoR0hdaPY1CwKd+dgbtktepEvk/3DXwQ7L1YriuG/9HDc4AHlzQ0T6cNw==",
"dev": true,
"requires": {
- "cosmiconfig": "5.0.6",
- "execa": "0.9.0",
- "find-up": "3.0.0",
- "get-stdin": "6.0.0",
- "is-ci": "1.2.1",
- "pkg-dir": "3.0.0",
- "please-upgrade-node": "3.1.1",
- "read-pkg": "4.0.1",
- "run-node": "1.0.0",
- "slash": "2.0.0"
+ "cosmiconfig": "^5.0.6",
+ "execa": "^0.9.0",
+ "find-up": "^3.0.0",
+ "get-stdin": "^6.0.0",
+ "is-ci": "^1.2.1",
+ "pkg-dir": "^3.0.0",
+ "please-upgrade-node": "^3.1.1",
+ "read-pkg": "^4.0.1",
+ "run-node": "^1.0.0",
+ "slash": "^2.0.0"
},
"dependencies": {
"ci-info": {
@@ -4114,9 +4493,9 @@
"integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
"dev": true,
"requires": {
- "lru-cache": "4.1.2",
- "shebang-command": "1.2.0",
- "which": "1.3.0"
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
}
},
"execa": {
@@ -4125,13 +4504,13 @@
"integrity": "sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==",
"dev": true,
"requires": {
- "cross-spawn": "5.1.0",
- "get-stream": "3.0.0",
- "is-stream": "1.1.0",
- "npm-run-path": "2.0.2",
- "p-finally": "1.0.0",
- "signal-exit": "3.0.2",
- "strip-eof": "1.0.0"
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
}
},
"find-up": {
@@ -4140,7 +4519,7 @@
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dev": true,
"requires": {
- "locate-path": "3.0.0"
+ "locate-path": "^3.0.0"
}
},
"is-ci": {
@@ -4149,7 +4528,7 @@
"integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
"dev": true,
"requires": {
- "ci-info": "1.5.1"
+ "ci-info": "^1.5.0"
}
},
"locate-path": {
@@ -4158,8 +4537,8 @@
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"requires": {
- "p-locate": "3.0.0",
- "path-exists": "3.0.0"
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
}
},
"p-limit": {
@@ -4168,7 +4547,7 @@
"integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
"dev": true,
"requires": {
- "p-try": "2.0.0"
+ "p-try": "^2.0.0"
}
},
"p-locate": {
@@ -4177,7 +4556,7 @@
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
- "p-limit": "2.0.0"
+ "p-limit": "^2.0.0"
}
},
"p-try": {
@@ -4192,8 +4571,8 @@
"integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
"dev": true,
"requires": {
- "error-ex": "1.3.1",
- "json-parse-better-errors": "1.0.2"
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
}
},
"path-exists": {
@@ -4214,7 +4593,7 @@
"integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
"dev": true,
"requires": {
- "find-up": "3.0.0"
+ "find-up": "^3.0.0"
}
},
"read-pkg": {
@@ -4223,9 +4602,9 @@
"integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=",
"dev": true,
"requires": {
- "normalize-package-data": "2.4.0",
- "parse-json": "4.0.0",
- "pify": "3.0.0"
+ "normalize-package-data": "^2.3.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0"
}
},
"slash": {
@@ -4254,8 +4633,8 @@
"integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==",
"dev": true,
"requires": {
- "pkg-dir": "2.0.0",
- "resolve-cwd": "2.0.0"
+ "pkg-dir": "^2.0.0",
+ "resolve-cwd": "^2.0.0"
}
},
"imurmurhash": {
@@ -4276,7 +4655,7 @@
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
"dev": true,
"requires": {
- "repeating": "2.0.1"
+ "repeating": "^2.0.0"
}
},
"inflight": {
@@ -4285,8 +4664,8 @@
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dev": true,
"requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
"inherits": {
@@ -4301,20 +4680,20 @@
"integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
"dev": true,
"requires": {
- "ansi-escapes": "3.1.0",
- "chalk": "2.4.1",
- "cli-cursor": "2.1.0",
- "cli-width": "2.2.0",
- "external-editor": "2.2.0",
- "figures": "2.0.0",
- "lodash": "4.17.4",
+ "ansi-escapes": "^3.0.0",
+ "chalk": "^2.0.0",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^2.0.4",
+ "figures": "^2.0.0",
+ "lodash": "^4.3.0",
"mute-stream": "0.0.7",
- "run-async": "2.3.0",
- "rx-lite": "4.0.8",
- "rx-lite-aggregates": "4.0.8",
- "string-width": "2.1.1",
- "strip-ansi": "4.0.0",
- "through": "2.3.8"
+ "run-async": "^2.2.0",
+ "rx-lite": "^4.0.8",
+ "rx-lite-aggregates": "^4.0.8",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^4.0.0",
+ "through": "^2.3.6"
},
"dependencies": {
"ansi-regex": {
@@ -4329,7 +4708,7 @@
"integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
"dev": true,
"requires": {
- "escape-string-regexp": "1.0.5"
+ "escape-string-regexp": "^1.0.5"
}
},
"strip-ansi": {
@@ -4338,7 +4717,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "3.0.0"
+ "ansi-regex": "^3.0.0"
}
}
}
@@ -4349,7 +4728,7 @@
"integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
"dev": true,
"requires": {
- "loose-envify": "1.3.1"
+ "loose-envify": "^1.0.0"
}
},
"invert-kv": {
@@ -4364,7 +4743,7 @@
"integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
}
},
"is-arrayish": {
@@ -4385,7 +4764,7 @@
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
"dev": true,
"requires": {
- "builtin-modules": "1.1.1"
+ "builtin-modules": "^1.0.0"
}
},
"is-callable": {
@@ -4400,7 +4779,7 @@
"integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
"dev": true,
"requires": {
- "ci-info": "1.5.1"
+ "ci-info": "^1.5.0"
}
},
"is-data-descriptor": {
@@ -4409,7 +4788,7 @@
"integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
}
},
"is-date-object": {
@@ -4424,9 +4803,9 @@
"integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "0.1.6",
- "is-data-descriptor": "0.1.4",
- "kind-of": "5.1.0"
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
},
"dependencies": {
"kind-of": {
@@ -4455,7 +4834,7 @@
"integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
"dev": true,
"requires": {
- "is-primitive": "2.0.0"
+ "is-primitive": "^2.0.0"
}
},
"is-extendable": {
@@ -4476,7 +4855,7 @@
"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
"dev": true,
"requires": {
- "number-is-nan": "1.0.1"
+ "number-is-nan": "^1.0.0"
}
},
"is-fullwidth-code-point": {
@@ -4497,7 +4876,7 @@
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"dev": true,
"requires": {
- "is-extglob": "1.0.0"
+ "is-extglob": "^1.0.0"
}
},
"is-number": {
@@ -4506,7 +4885,7 @@
"integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
}
},
"is-path-cwd": {
@@ -4521,7 +4900,7 @@
"integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
"dev": true,
"requires": {
- "is-path-inside": "1.0.1"
+ "is-path-inside": "^1.0.0"
}
},
"is-path-inside": {
@@ -4530,7 +4909,7 @@
"integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
"dev": true,
"requires": {
- "path-is-inside": "1.0.2"
+ "path-is-inside": "^1.0.1"
}
},
"is-plain-object": {
@@ -4539,7 +4918,7 @@
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"dev": true,
"requires": {
- "isobject": "3.0.1"
+ "isobject": "^3.0.1"
},
"dependencies": {
"isobject": {
@@ -4574,7 +4953,7 @@
"integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
"dev": true,
"requires": {
- "has": "1.0.1"
+ "has": "^1.0.1"
}
},
"is-resolvable": {
@@ -4640,8 +5019,8 @@
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
"dev": true,
"requires": {
- "node-fetch": "1.7.3",
- "whatwg-fetch": "2.0.4"
+ "node-fetch": "^1.0.1",
+ "whatwg-fetch": ">=0.10.0"
}
},
"isstream": {
@@ -4656,17 +5035,17 @@
"integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==",
"dev": true,
"requires": {
- "async": "2.6.1",
- "fileset": "2.0.3",
- "istanbul-lib-coverage": "1.2.1",
- "istanbul-lib-hook": "1.2.2",
- "istanbul-lib-instrument": "1.10.2",
- "istanbul-lib-report": "1.1.5",
- "istanbul-lib-source-maps": "1.2.6",
- "istanbul-reports": "1.5.1",
- "js-yaml": "3.12.0",
- "mkdirp": "0.5.1",
- "once": "1.4.0"
+ "async": "^2.1.4",
+ "fileset": "^2.0.2",
+ "istanbul-lib-coverage": "^1.2.1",
+ "istanbul-lib-hook": "^1.2.2",
+ "istanbul-lib-instrument": "^1.10.2",
+ "istanbul-lib-report": "^1.1.5",
+ "istanbul-lib-source-maps": "^1.2.6",
+ "istanbul-reports": "^1.5.1",
+ "js-yaml": "^3.7.0",
+ "mkdirp": "^0.5.1",
+ "once": "^1.4.0"
}
},
"istanbul-lib-coverage": {
@@ -4681,7 +5060,7 @@
"integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==",
"dev": true,
"requires": {
- "append-transform": "0.4.0"
+ "append-transform": "^0.4.0"
}
},
"istanbul-lib-instrument": {
@@ -4690,13 +5069,13 @@
"integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==",
"dev": true,
"requires": {
- "babel-generator": "6.26.1",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "istanbul-lib-coverage": "1.2.1",
- "semver": "5.4.1"
+ "babel-generator": "^6.18.0",
+ "babel-template": "^6.16.0",
+ "babel-traverse": "^6.18.0",
+ "babel-types": "^6.18.0",
+ "babylon": "^6.18.0",
+ "istanbul-lib-coverage": "^1.2.1",
+ "semver": "^5.3.0"
}
},
"istanbul-lib-report": {
@@ -4705,10 +5084,10 @@
"integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==",
"dev": true,
"requires": {
- "istanbul-lib-coverage": "1.2.1",
- "mkdirp": "0.5.1",
- "path-parse": "1.0.5",
- "supports-color": "3.2.3"
+ "istanbul-lib-coverage": "^1.2.1",
+ "mkdirp": "^0.5.1",
+ "path-parse": "^1.0.5",
+ "supports-color": "^3.1.2"
}
},
"istanbul-lib-source-maps": {
@@ -4717,11 +5096,11 @@
"integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==",
"dev": true,
"requires": {
- "debug": "3.1.0",
- "istanbul-lib-coverage": "1.2.1",
- "mkdirp": "0.5.1",
- "rimraf": "2.6.2",
- "source-map": "0.5.7"
+ "debug": "^3.1.0",
+ "istanbul-lib-coverage": "^1.2.1",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.6.1",
+ "source-map": "^0.5.3"
}
},
"istanbul-reports": {
@@ -4730,7 +5109,7 @@
"integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==",
"dev": true,
"requires": {
- "handlebars": "4.0.12"
+ "handlebars": "^4.0.3"
}
},
"jest": {
@@ -4739,8 +5118,8 @@
"integrity": "sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw==",
"dev": true,
"requires": {
- "import-local": "1.0.0",
- "jest-cli": "23.6.0"
+ "import-local": "^1.0.0",
+ "jest-cli": "^23.6.0"
},
"dependencies": {
"jest-cli": {
@@ -4749,42 +5128,42 @@
"integrity": "sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ==",
"dev": true,
"requires": {
- "ansi-escapes": "3.1.0",
- "chalk": "2.4.1",
- "exit": "0.1.2",
- "glob": "7.1.2",
- "graceful-fs": "4.1.11",
- "import-local": "1.0.0",
- "is-ci": "1.2.1",
- "istanbul-api": "1.3.7",
- "istanbul-lib-coverage": "1.2.1",
- "istanbul-lib-instrument": "1.10.2",
- "istanbul-lib-source-maps": "1.2.6",
- "jest-changed-files": "23.4.2",
- "jest-config": "23.6.0",
- "jest-environment-jsdom": "23.4.0",
- "jest-get-type": "22.4.3",
- "jest-haste-map": "23.6.0",
- "jest-message-util": "23.4.0",
- "jest-regex-util": "23.3.0",
- "jest-resolve-dependencies": "23.6.0",
- "jest-runner": "23.6.0",
- "jest-runtime": "23.6.0",
- "jest-snapshot": "23.6.0",
- "jest-util": "23.4.0",
- "jest-validate": "23.6.0",
- "jest-watcher": "23.4.0",
- "jest-worker": "23.2.0",
- "micromatch": "2.3.11",
- "node-notifier": "5.2.1",
- "prompts": "0.1.14",
- "realpath-native": "1.0.2",
- "rimraf": "2.6.2",
- "slash": "1.0.0",
- "string-length": "2.0.0",
- "strip-ansi": "4.0.0",
- "which": "1.3.0",
- "yargs": "11.1.0"
+ "ansi-escapes": "^3.0.0",
+ "chalk": "^2.0.1",
+ "exit": "^0.1.2",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.1.11",
+ "import-local": "^1.0.0",
+ "is-ci": "^1.0.10",
+ "istanbul-api": "^1.3.1",
+ "istanbul-lib-coverage": "^1.2.0",
+ "istanbul-lib-instrument": "^1.10.1",
+ "istanbul-lib-source-maps": "^1.2.4",
+ "jest-changed-files": "^23.4.2",
+ "jest-config": "^23.6.0",
+ "jest-environment-jsdom": "^23.4.0",
+ "jest-get-type": "^22.1.0",
+ "jest-haste-map": "^23.6.0",
+ "jest-message-util": "^23.4.0",
+ "jest-regex-util": "^23.3.0",
+ "jest-resolve-dependencies": "^23.6.0",
+ "jest-runner": "^23.6.0",
+ "jest-runtime": "^23.6.0",
+ "jest-snapshot": "^23.6.0",
+ "jest-util": "^23.4.0",
+ "jest-validate": "^23.6.0",
+ "jest-watcher": "^23.4.0",
+ "jest-worker": "^23.2.0",
+ "micromatch": "^2.3.11",
+ "node-notifier": "^5.2.1",
+ "prompts": "^0.1.9",
+ "realpath-native": "^1.0.0",
+ "rimraf": "^2.5.4",
+ "slash": "^1.0.0",
+ "string-length": "^2.0.0",
+ "strip-ansi": "^4.0.0",
+ "which": "^1.2.12",
+ "yargs": "^11.0.0"
}
}
}
@@ -4795,7 +5174,7 @@
"integrity": "sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA==",
"dev": true,
"requires": {
- "throat": "4.1.0"
+ "throat": "^4.0.0"
}
},
"jest-config": {
@@ -4804,20 +5183,20 @@
"integrity": "sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ==",
"dev": true,
"requires": {
- "babel-core": "6.26.3",
- "babel-jest": "23.6.0",
- "chalk": "2.4.1",
- "glob": "7.1.2",
- "jest-environment-jsdom": "23.4.0",
- "jest-environment-node": "23.4.0",
- "jest-get-type": "22.4.3",
- "jest-jasmine2": "23.6.0",
- "jest-regex-util": "23.3.0",
- "jest-resolve": "23.6.0",
- "jest-util": "23.4.0",
- "jest-validate": "23.6.0",
- "micromatch": "2.3.11",
- "pretty-format": "23.6.0"
+ "babel-core": "^6.0.0",
+ "babel-jest": "^23.6.0",
+ "chalk": "^2.0.1",
+ "glob": "^7.1.1",
+ "jest-environment-jsdom": "^23.4.0",
+ "jest-environment-node": "^23.4.0",
+ "jest-get-type": "^22.1.0",
+ "jest-jasmine2": "^23.6.0",
+ "jest-regex-util": "^23.3.0",
+ "jest-resolve": "^23.6.0",
+ "jest-util": "^23.4.0",
+ "jest-validate": "^23.6.0",
+ "micromatch": "^2.3.11",
+ "pretty-format": "^23.6.0"
}
},
"jest-diff": {
@@ -4826,10 +5205,10 @@
"integrity": "sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g==",
"dev": true,
"requires": {
- "chalk": "2.4.1",
- "diff": "3.5.0",
- "jest-get-type": "22.4.3",
- "pretty-format": "23.6.0"
+ "chalk": "^2.0.1",
+ "diff": "^3.2.0",
+ "jest-get-type": "^22.1.0",
+ "pretty-format": "^23.6.0"
}
},
"jest-docblock": {
@@ -4838,7 +5217,7 @@
"integrity": "sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=",
"dev": true,
"requires": {
- "detect-newline": "2.1.0"
+ "detect-newline": "^2.1.0"
}
},
"jest-each": {
@@ -4847,8 +5226,8 @@
"integrity": "sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg==",
"dev": true,
"requires": {
- "chalk": "2.4.1",
- "pretty-format": "23.6.0"
+ "chalk": "^2.0.1",
+ "pretty-format": "^23.6.0"
}
},
"jest-environment-jsdom": {
@@ -4857,9 +5236,9 @@
"integrity": "sha1-BWp5UrP+pROsYqFAosNox52eYCM=",
"dev": true,
"requires": {
- "jest-mock": "23.2.0",
- "jest-util": "23.4.0",
- "jsdom": "11.12.0"
+ "jest-mock": "^23.2.0",
+ "jest-util": "^23.4.0",
+ "jsdom": "^11.5.1"
}
},
"jest-environment-node": {
@@ -4868,8 +5247,8 @@
"integrity": "sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA=",
"dev": true,
"requires": {
- "jest-mock": "23.2.0",
- "jest-util": "23.4.0"
+ "jest-mock": "^23.2.0",
+ "jest-util": "^23.4.0"
}
},
"jest-get-type": {
@@ -4884,14 +5263,14 @@
"integrity": "sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg==",
"dev": true,
"requires": {
- "fb-watchman": "2.0.0",
- "graceful-fs": "4.1.11",
- "invariant": "2.2.4",
- "jest-docblock": "23.2.0",
- "jest-serializer": "23.0.1",
- "jest-worker": "23.2.0",
- "micromatch": "2.3.11",
- "sane": "2.5.2"
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.1.11",
+ "invariant": "^2.2.4",
+ "jest-docblock": "^23.2.0",
+ "jest-serializer": "^23.0.1",
+ "jest-worker": "^23.2.0",
+ "micromatch": "^2.3.11",
+ "sane": "^2.0.0"
},
"dependencies": {
"invariant": {
@@ -4900,7 +5279,7 @@
"integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
"dev": true,
"requires": {
- "loose-envify": "1.3.1"
+ "loose-envify": "^1.0.0"
}
}
}
@@ -4911,18 +5290,18 @@
"integrity": "sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ==",
"dev": true,
"requires": {
- "babel-traverse": "6.26.0",
- "chalk": "2.4.1",
- "co": "4.6.0",
- "expect": "23.6.0",
- "is-generator-fn": "1.0.0",
- "jest-diff": "23.6.0",
- "jest-each": "23.6.0",
- "jest-matcher-utils": "23.6.0",
- "jest-message-util": "23.4.0",
- "jest-snapshot": "23.6.0",
- "jest-util": "23.4.0",
- "pretty-format": "23.6.0"
+ "babel-traverse": "^6.0.0",
+ "chalk": "^2.0.1",
+ "co": "^4.6.0",
+ "expect": "^23.6.0",
+ "is-generator-fn": "^1.0.0",
+ "jest-diff": "^23.6.0",
+ "jest-each": "^23.6.0",
+ "jest-matcher-utils": "^23.6.0",
+ "jest-message-util": "^23.4.0",
+ "jest-snapshot": "^23.6.0",
+ "jest-util": "^23.4.0",
+ "pretty-format": "^23.6.0"
}
},
"jest-leak-detector": {
@@ -4931,7 +5310,7 @@
"integrity": "sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg==",
"dev": true,
"requires": {
- "pretty-format": "23.6.0"
+ "pretty-format": "^23.6.0"
}
},
"jest-matcher-utils": {
@@ -4940,9 +5319,9 @@
"integrity": "sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog==",
"dev": true,
"requires": {
- "chalk": "2.4.1",
- "jest-get-type": "22.4.3",
- "pretty-format": "23.6.0"
+ "chalk": "^2.0.1",
+ "jest-get-type": "^22.1.0",
+ "pretty-format": "^23.6.0"
}
},
"jest-message-util": {
@@ -4951,11 +5330,11 @@
"integrity": "sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8=",
"dev": true,
"requires": {
- "@babel/code-frame": "7.0.0",
- "chalk": "2.4.1",
- "micromatch": "2.3.11",
- "slash": "1.0.0",
- "stack-utils": "1.0.1"
+ "@babel/code-frame": "^7.0.0-beta.35",
+ "chalk": "^2.0.1",
+ "micromatch": "^2.3.11",
+ "slash": "^1.0.0",
+ "stack-utils": "^1.0.1"
}
},
"jest-mock": {
@@ -4976,9 +5355,9 @@
"integrity": "sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA==",
"dev": true,
"requires": {
- "browser-resolve": "1.11.3",
- "chalk": "2.4.1",
- "realpath-native": "1.0.2"
+ "browser-resolve": "^1.11.3",
+ "chalk": "^2.0.1",
+ "realpath-native": "^1.0.0"
}
},
"jest-resolve-dependencies": {
@@ -4987,8 +5366,8 @@
"integrity": "sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA==",
"dev": true,
"requires": {
- "jest-regex-util": "23.3.0",
- "jest-snapshot": "23.6.0"
+ "jest-regex-util": "^23.3.0",
+ "jest-snapshot": "^23.6.0"
}
},
"jest-runner": {
@@ -4997,19 +5376,19 @@
"integrity": "sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA==",
"dev": true,
"requires": {
- "exit": "0.1.2",
- "graceful-fs": "4.1.11",
- "jest-config": "23.6.0",
- "jest-docblock": "23.2.0",
- "jest-haste-map": "23.6.0",
- "jest-jasmine2": "23.6.0",
- "jest-leak-detector": "23.6.0",
- "jest-message-util": "23.4.0",
- "jest-runtime": "23.6.0",
- "jest-util": "23.4.0",
- "jest-worker": "23.2.0",
- "source-map-support": "0.5.9",
- "throat": "4.1.0"
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.1.11",
+ "jest-config": "^23.6.0",
+ "jest-docblock": "^23.2.0",
+ "jest-haste-map": "^23.6.0",
+ "jest-jasmine2": "^23.6.0",
+ "jest-leak-detector": "^23.6.0",
+ "jest-message-util": "^23.4.0",
+ "jest-runtime": "^23.6.0",
+ "jest-util": "^23.4.0",
+ "jest-worker": "^23.2.0",
+ "source-map-support": "^0.5.6",
+ "throat": "^4.0.0"
},
"dependencies": {
"source-map": {
@@ -5024,8 +5403,8 @@
"integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
"dev": true,
"requires": {
- "buffer-from": "1.1.0",
- "source-map": "0.6.1"
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
}
}
}
@@ -5036,27 +5415,27 @@
"integrity": "sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw==",
"dev": true,
"requires": {
- "babel-core": "6.26.3",
- "babel-plugin-istanbul": "4.1.6",
- "chalk": "2.4.1",
- "convert-source-map": "1.5.1",
- "exit": "0.1.2",
- "fast-json-stable-stringify": "2.0.0",
- "graceful-fs": "4.1.11",
- "jest-config": "23.6.0",
- "jest-haste-map": "23.6.0",
- "jest-message-util": "23.4.0",
- "jest-regex-util": "23.3.0",
- "jest-resolve": "23.6.0",
- "jest-snapshot": "23.6.0",
- "jest-util": "23.4.0",
- "jest-validate": "23.6.0",
- "micromatch": "2.3.11",
- "realpath-native": "1.0.2",
- "slash": "1.0.0",
+ "babel-core": "^6.0.0",
+ "babel-plugin-istanbul": "^4.1.6",
+ "chalk": "^2.0.1",
+ "convert-source-map": "^1.4.0",
+ "exit": "^0.1.2",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.1.11",
+ "jest-config": "^23.6.0",
+ "jest-haste-map": "^23.6.0",
+ "jest-message-util": "^23.4.0",
+ "jest-regex-util": "^23.3.0",
+ "jest-resolve": "^23.6.0",
+ "jest-snapshot": "^23.6.0",
+ "jest-util": "^23.4.0",
+ "jest-validate": "^23.6.0",
+ "micromatch": "^2.3.11",
+ "realpath-native": "^1.0.0",
+ "slash": "^1.0.0",
"strip-bom": "3.0.0",
- "write-file-atomic": "2.3.0",
- "yargs": "11.1.0"
+ "write-file-atomic": "^2.1.0",
+ "yargs": "^11.0.0"
}
},
"jest-serializer": {
@@ -5071,16 +5450,16 @@
"integrity": "sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg==",
"dev": true,
"requires": {
- "babel-types": "6.26.0",
- "chalk": "2.4.1",
- "jest-diff": "23.6.0",
- "jest-matcher-utils": "23.6.0",
- "jest-message-util": "23.4.0",
- "jest-resolve": "23.6.0",
- "mkdirp": "0.5.1",
- "natural-compare": "1.4.0",
- "pretty-format": "23.6.0",
- "semver": "5.5.1"
+ "babel-types": "^6.0.0",
+ "chalk": "^2.0.1",
+ "jest-diff": "^23.6.0",
+ "jest-matcher-utils": "^23.6.0",
+ "jest-message-util": "^23.4.0",
+ "jest-resolve": "^23.6.0",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^23.6.0",
+ "semver": "^5.5.0"
},
"dependencies": {
"semver": {
@@ -5098,9 +5477,9 @@
"dev": true,
"requires": {
"@babel/code-frame": "7.0.0-beta.36",
- "chalk": "2.4.1",
- "string.prototype.padend": "3.0.0",
- "string.prototype.padstart": "3.0.0",
+ "chalk": "^2.3.0",
+ "string.prototype.padend": "^3.0.0",
+ "string.prototype.padstart": "^3.0.0",
"strip-ansi": "4.0.0",
"utf8-bar": "0.1.0"
},
@@ -5111,9 +5490,9 @@
"integrity": "sha512-sW77BFwJ48YvQp3Gzz5xtAUiXuYOL2aMJKDwiaY3OcvdqBFurtYfOpSa4QrNyDxmOGRFSYzUpabU2m9QrlWE7w==",
"dev": true,
"requires": {
- "chalk": "2.4.1",
- "esutils": "2.0.2",
- "js-tokens": "3.0.2"
+ "chalk": "^2.0.0",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.0"
}
},
"ansi-regex": {
@@ -5128,7 +5507,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "3.0.0"
+ "ansi-regex": "^3.0.0"
}
}
}
@@ -5139,14 +5518,14 @@
"integrity": "sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE=",
"dev": true,
"requires": {
- "callsites": "2.0.0",
- "chalk": "2.4.1",
- "graceful-fs": "4.1.11",
- "is-ci": "1.2.1",
- "jest-message-util": "23.4.0",
- "mkdirp": "0.5.1",
- "slash": "1.0.0",
- "source-map": "0.6.1"
+ "callsites": "^2.0.0",
+ "chalk": "^2.0.1",
+ "graceful-fs": "^4.1.11",
+ "is-ci": "^1.0.10",
+ "jest-message-util": "^23.4.0",
+ "mkdirp": "^0.5.1",
+ "slash": "^1.0.0",
+ "source-map": "^0.6.0"
},
"dependencies": {
"source-map": {
@@ -5163,10 +5542,10 @@
"integrity": "sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A==",
"dev": true,
"requires": {
- "chalk": "2.4.1",
- "jest-get-type": "22.4.3",
- "leven": "2.1.0",
- "pretty-format": "23.6.0"
+ "chalk": "^2.0.1",
+ "jest-get-type": "^22.1.0",
+ "leven": "^2.1.0",
+ "pretty-format": "^23.6.0"
}
},
"jest-watcher": {
@@ -5175,9 +5554,9 @@
"integrity": "sha1-0uKM50+NrWxq/JIrksq+9u0FyRw=",
"dev": true,
"requires": {
- "ansi-escapes": "3.1.0",
- "chalk": "2.4.1",
- "string-length": "2.0.0"
+ "ansi-escapes": "^3.0.0",
+ "chalk": "^2.0.1",
+ "string-length": "^2.0.0"
}
},
"jest-worker": {
@@ -5186,7 +5565,7 @@
"integrity": "sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=",
"dev": true,
"requires": {
- "merge-stream": "1.0.1"
+ "merge-stream": "^1.0.1"
}
},
"js-base64": {
@@ -5195,6 +5574,12 @@
"integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==",
"dev": true
},
+ "js-levenshtein": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.4.tgz",
+ "integrity": "sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==",
+ "dev": true
+ },
"js-tokens": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
@@ -5207,8 +5592,8 @@
"integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
"dev": true,
"requires": {
- "argparse": "1.0.10",
- "esprima": "4.0.0"
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
}
},
"jsbn": {
@@ -5224,32 +5609,32 @@
"integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==",
"dev": true,
"requires": {
- "abab": "2.0.0",
- "acorn": "5.5.3",
- "acorn-globals": "4.1.0",
- "array-equal": "1.0.0",
- "cssom": "0.3.4",
- "cssstyle": "1.1.1",
- "data-urls": "1.0.1",
- "domexception": "1.0.1",
- "escodegen": "1.11.0",
- "html-encoding-sniffer": "1.0.2",
- "left-pad": "1.3.0",
- "nwsapi": "2.0.9",
+ "abab": "^2.0.0",
+ "acorn": "^5.5.3",
+ "acorn-globals": "^4.1.0",
+ "array-equal": "^1.0.0",
+ "cssom": ">= 0.3.2 < 0.4.0",
+ "cssstyle": "^1.0.0",
+ "data-urls": "^1.0.0",
+ "domexception": "^1.0.1",
+ "escodegen": "^1.9.1",
+ "html-encoding-sniffer": "^1.0.2",
+ "left-pad": "^1.3.0",
+ "nwsapi": "^2.0.7",
"parse5": "4.0.0",
- "pn": "1.1.0",
- "request": "2.88.0",
- "request-promise-native": "1.0.5",
- "sax": "1.2.4",
- "symbol-tree": "3.2.2",
- "tough-cookie": "2.4.3",
- "w3c-hr-time": "1.0.1",
- "webidl-conversions": "4.0.2",
- "whatwg-encoding": "1.0.4",
- "whatwg-mimetype": "2.1.0",
- "whatwg-url": "6.5.0",
- "ws": "5.2.2",
- "xml-name-validator": "3.0.0"
+ "pn": "^1.1.0",
+ "request": "^2.87.0",
+ "request-promise-native": "^1.0.5",
+ "sax": "^1.2.4",
+ "symbol-tree": "^3.2.2",
+ "tough-cookie": "^2.3.4",
+ "w3c-hr-time": "^1.0.1",
+ "webidl-conversions": "^4.0.2",
+ "whatwg-encoding": "^1.0.3",
+ "whatwg-mimetype": "^2.1.0",
+ "whatwg-url": "^6.4.1",
+ "ws": "^5.2.0",
+ "xml-name-validator": "^3.0.0"
}
},
"jsesc": {
@@ -5300,7 +5685,7 @@
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
"dev": true,
"requires": {
- "graceful-fs": "4.1.11"
+ "graceful-fs": "^4.1.6"
}
},
"jsprim": {
@@ -5321,7 +5706,7 @@
"integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=",
"dev": true,
"requires": {
- "array-includes": "3.0.3"
+ "array-includes": "^3.0.3"
}
},
"kind-of": {
@@ -5330,7 +5715,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
},
"kleur": {
@@ -5345,7 +5730,7 @@
"integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
"dev": true,
"requires": {
- "invert-kv": "1.0.0"
+ "invert-kv": "^1.0.0"
}
},
"left-pad": {
@@ -5366,8 +5751,8 @@
"integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
"dev": true,
"requires": {
- "prelude-ls": "1.1.2",
- "type-check": "0.3.2"
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
}
},
"linkify-it": {
@@ -5376,7 +5761,7 @@
"integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=",
"dev": true,
"requires": {
- "uc.micro": "1.0.5"
+ "uc.micro": "^1.0.1"
}
},
"load-json-file": {
@@ -5385,10 +5770,10 @@
"integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
"dev": true,
"requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "strip-bom": "3.0.0"
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "strip-bom": "^3.0.0"
}
},
"locate-path": {
@@ -5397,8 +5782,8 @@
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
"dev": true,
"requires": {
- "p-locate": "2.0.0",
- "path-exists": "3.0.0"
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
},
"dependencies": {
"path-exists": {
@@ -5410,9 +5795,9 @@
}
},
"lodash": {
- "version": "4.17.4",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
- "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+ "version": "4.17.11",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
+ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
"dev": true
},
"lodash.assign": {
@@ -5463,7 +5848,7 @@
"integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
"dev": true,
"requires": {
- "js-tokens": "3.0.2"
+ "js-tokens": "^3.0.0"
}
},
"loud-rejection": {
@@ -5472,8 +5857,8 @@
"integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
"dev": true,
"requires": {
- "currently-unhandled": "0.4.1",
- "signal-exit": "3.0.2"
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
}
},
"lower-case": {
@@ -5488,8 +5873,8 @@
"integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==",
"dev": true,
"requires": {
- "pseudomap": "1.0.2",
- "yallist": "2.1.2"
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
}
},
"magic-string": {
@@ -5498,7 +5883,7 @@
"integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==",
"dev": true,
"requires": {
- "vlq": "0.2.3"
+ "vlq": "^0.2.2"
}
},
"makeerror": {
@@ -5507,7 +5892,7 @@
"integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=",
"dev": true,
"requires": {
- "tmpl": "1.0.4"
+ "tmpl": "1.0.x"
}
},
"map-cache": {
@@ -5528,7 +5913,7 @@
"integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
"dev": true,
"requires": {
- "object-visit": "1.0.1"
+ "object-visit": "^1.0.0"
}
},
"markdown-builder": {
@@ -5537,7 +5922,7 @@
"integrity": "sha512-zI9O16OxyA7kqBdkCkgqvbDGO8FsCYF7rOV+XoeQ0H6ucZII7Do2p2kTkdiLTuxKWPBo/RFYnmP+To8KOp4jCQ==",
"dev": true,
"requires": {
- "husky": "1.0.0-rc.14"
+ "husky": "^1.0.0-rc.14"
}
},
"markdown-it": {
@@ -5546,11 +5931,11 @@
"integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
"dev": true,
"requires": {
- "argparse": "1.0.10",
- "entities": "1.1.1",
- "linkify-it": "2.0.3",
- "mdurl": "1.0.1",
- "uc.micro": "1.0.5"
+ "argparse": "^1.0.7",
+ "entities": "~1.1.1",
+ "linkify-it": "^2.0.0",
+ "mdurl": "^1.0.1",
+ "uc.micro": "^1.0.5"
}
},
"math-random": {
@@ -5571,7 +5956,7 @@
"integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
"dev": true,
"requires": {
- "mimic-fn": "1.2.0"
+ "mimic-fn": "^1.0.0"
}
},
"meow": {
@@ -5580,16 +5965,16 @@
"integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
"dev": true,
"requires": {
- "camelcase-keys": "2.1.0",
- "decamelize": "1.2.0",
- "loud-rejection": "1.6.0",
- "map-obj": "1.0.1",
- "minimist": "1.2.0",
- "normalize-package-data": "2.4.0",
- "object-assign": "4.1.1",
- "read-pkg-up": "1.0.1",
- "redent": "1.0.0",
- "trim-newlines": "1.0.0"
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
}
},
"merge": {
@@ -5604,7 +5989,7 @@
"integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
"dev": true,
"requires": {
- "readable-stream": "2.3.3"
+ "readable-stream": "^2.0.1"
}
},
"micromatch": {
@@ -5613,19 +5998,19 @@
"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
"dev": true,
"requires": {
- "arr-diff": "2.0.0",
- "array-unique": "0.2.1",
- "braces": "1.8.5",
- "expand-brackets": "0.1.5",
- "extglob": "0.3.2",
- "filename-regex": "2.0.1",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1",
- "kind-of": "3.2.2",
- "normalize-path": "2.1.1",
- "object.omit": "2.0.1",
- "parse-glob": "3.0.4",
- "regex-cache": "0.4.4"
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
}
},
"mime-db": {
@@ -5640,7 +6025,7 @@
"integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
"dev": true,
"requires": {
- "mime-db": "1.36.0"
+ "mime-db": "~1.36.0"
}
},
"mimic-fn": {
@@ -5661,7 +6046,7 @@
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
- "brace-expansion": "1.1.11"
+ "brace-expansion": "^1.1.7"
}
},
"minimist": {
@@ -5676,8 +6061,8 @@
"integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
"dev": true,
"requires": {
- "for-in": "1.0.2",
- "is-extendable": "1.0.1"
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
},
"dependencies": {
"is-extendable": {
@@ -5686,7 +6071,7 @@
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dev": true,
"requires": {
- "is-plain-object": "2.0.4"
+ "is-plain-object": "^2.0.4"
}
}
}
@@ -5732,17 +6117,17 @@
"integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
"dev": true,
"requires": {
- "arr-diff": "4.0.0",
- "array-unique": "0.3.2",
- "define-property": "2.0.2",
- "extend-shallow": "3.0.2",
- "fragment-cache": "0.2.1",
- "is-windows": "1.0.2",
- "kind-of": "6.0.2",
- "object.pick": "1.3.0",
- "regex-not": "1.0.2",
- "snapdragon": "0.8.2",
- "to-regex": "3.0.2"
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
},
"dependencies": {
"arr-diff": {
@@ -5777,7 +6162,7 @@
"integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
"dev": true,
"requires": {
- "lower-case": "1.1.4"
+ "lower-case": "^1.1.1"
}
},
"node-fetch": {
@@ -5786,8 +6171,8 @@
"integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
"dev": true,
"requires": {
- "encoding": "0.1.12",
- "is-stream": "1.1.0"
+ "encoding": "^0.1.11",
+ "is-stream": "^1.0.1"
}
},
"node-gyp": {
@@ -5796,18 +6181,18 @@
"integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
"dev": true,
"requires": {
- "fstream": "1.0.11",
- "glob": "7.1.2",
- "graceful-fs": "4.1.11",
- "mkdirp": "0.5.1",
- "nopt": "3.0.6",
- "npmlog": "4.1.2",
- "osenv": "0.1.5",
- "request": "2.88.0",
- "rimraf": "2.6.2",
- "semver": "5.3.0",
- "tar": "2.2.1",
- "which": "1.3.0"
+ "fstream": "^1.0.0",
+ "glob": "^7.0.3",
+ "graceful-fs": "^4.1.2",
+ "mkdirp": "^0.5.0",
+ "nopt": "2 || 3",
+ "npmlog": "0 || 1 || 2 || 3 || 4",
+ "osenv": "0",
+ "request": "^2.87.0",
+ "rimraf": "2",
+ "semver": "~5.3.0",
+ "tar": "^2.0.0",
+ "which": "1"
},
"dependencies": {
"semver": {
@@ -5830,10 +6215,19 @@
"integrity": "sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg==",
"dev": true,
"requires": {
- "growly": "1.3.0",
- "semver": "5.4.1",
- "shellwords": "0.1.1",
- "which": "1.3.0"
+ "growly": "^1.3.0",
+ "semver": "^5.4.1",
+ "shellwords": "^0.1.1",
+ "which": "^1.3.0"
+ }
+ },
+ "node-releases": {
+ "version": "1.0.0-alpha.12",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.0-alpha.12.tgz",
+ "integrity": "sha512-VPB4rTPqpVyWKBHbSa4YPFme3+8WHsOSpvbp0Mfj0bWsC8TEjt4HQrLl1hsBDELlp1nB4lflSgSuGTYiuyaP7Q==",
+ "dev": true,
+ "requires": {
+ "semver": "^5.3.0"
}
},
"node-sass": {
@@ -5842,25 +6236,25 @@
"integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==",
"dev": true,
"requires": {
- "async-foreach": "0.1.3",
- "chalk": "1.1.3",
- "cross-spawn": "3.0.1",
- "gaze": "1.1.3",
- "get-stdin": "4.0.1",
- "glob": "7.1.2",
- "in-publish": "2.0.0",
- "lodash.assign": "4.2.0",
- "lodash.clonedeep": "4.5.0",
- "lodash.mergewith": "4.6.1",
- "meow": "3.7.0",
- "mkdirp": "0.5.1",
- "nan": "2.11.0",
- "node-gyp": "3.8.0",
- "npmlog": "4.1.2",
+ "async-foreach": "^0.1.3",
+ "chalk": "^1.1.1",
+ "cross-spawn": "^3.0.0",
+ "gaze": "^1.0.0",
+ "get-stdin": "^4.0.1",
+ "glob": "^7.0.3",
+ "in-publish": "^2.0.0",
+ "lodash.assign": "^4.2.0",
+ "lodash.clonedeep": "^4.3.2",
+ "lodash.mergewith": "^4.6.0",
+ "meow": "^3.7.0",
+ "mkdirp": "^0.5.1",
+ "nan": "^2.10.0",
+ "node-gyp": "^3.8.0",
+ "npmlog": "^4.0.0",
"request": "2.87.0",
- "sass-graph": "2.2.4",
- "stdout-stream": "1.4.1",
- "true-case-path": "1.0.3"
+ "sass-graph": "^2.2.4",
+ "stdout-stream": "^1.4.0",
+ "true-case-path": "^1.0.2"
},
"dependencies": {
"ansi-regex": {
@@ -5881,11 +6275,11 @@
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
- "ansi-styles": "2.2.1",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
}
},
"cross-spawn": {
@@ -5894,8 +6288,8 @@
"integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
"dev": true,
"requires": {
- "lru-cache": "4.1.2",
- "which": "1.3.0"
+ "lru-cache": "^4.0.1",
+ "which": "^1.2.9"
}
},
"get-stdin": {
@@ -5910,8 +6304,8 @@
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
"dev": true,
"requires": {
- "ajv": "5.5.2",
- "har-schema": "2.0.0"
+ "ajv": "^5.1.0",
+ "har-schema": "^2.0.0"
}
},
"oauth-sign": {
@@ -5932,26 +6326,26 @@
"integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
"dev": true,
"requires": {
- "aws-sign2": "0.7.0",
- "aws4": "1.8.0",
- "caseless": "0.12.0",
- "combined-stream": "1.0.6",
- "extend": "3.0.2",
- "forever-agent": "0.6.1",
- "form-data": "2.3.2",
- "har-validator": "5.0.3",
- "http-signature": "1.2.0",
- "is-typedarray": "1.0.0",
- "isstream": "0.1.2",
- "json-stringify-safe": "5.0.1",
- "mime-types": "2.1.20",
- "oauth-sign": "0.8.2",
- "performance-now": "2.1.0",
- "qs": "6.5.2",
- "safe-buffer": "5.1.1",
- "tough-cookie": "2.3.4",
- "tunnel-agent": "0.6.0",
- "uuid": "3.3.2"
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.6.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.1",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.1",
+ "har-validator": "~5.0.3",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.17",
+ "oauth-sign": "~0.8.2",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.1",
+ "safe-buffer": "^5.1.1",
+ "tough-cookie": "~2.3.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.1.0"
}
},
"strip-ansi": {
@@ -5960,7 +6354,7 @@
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
},
"supports-color": {
@@ -5975,7 +6369,7 @@
"integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
"dev": true,
"requires": {
- "punycode": "1.4.1"
+ "punycode": "^1.4.1"
}
}
}
@@ -5986,7 +6380,7 @@
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"dev": true,
"requires": {
- "abbrev": "1.1.1"
+ "abbrev": "1"
}
},
"normalize-package-data": {
@@ -5995,10 +6389,10 @@
"integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
"dev": true,
"requires": {
- "hosted-git-info": "2.6.0",
- "is-builtin-module": "1.0.0",
- "semver": "5.4.1",
- "validate-npm-package-license": "3.0.3"
+ "hosted-git-info": "^2.1.4",
+ "is-builtin-module": "^1.0.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
}
},
"normalize-path": {
@@ -6007,7 +6401,7 @@
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
"dev": true,
"requires": {
- "remove-trailing-separator": "1.1.0"
+ "remove-trailing-separator": "^1.0.1"
}
},
"npm-run-path": {
@@ -6016,7 +6410,7 @@
"integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
"dev": true,
"requires": {
- "path-key": "2.0.1"
+ "path-key": "^2.0.0"
}
},
"npmlog": {
@@ -6025,10 +6419,10 @@
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"dev": true,
"requires": {
- "are-we-there-yet": "1.1.5",
- "console-control-strings": "1.1.0",
- "gauge": "2.7.4",
- "set-blocking": "2.0.0"
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
}
},
"number-is-nan": {
@@ -6061,9 +6455,9 @@
"integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
"dev": true,
"requires": {
- "copy-descriptor": "0.1.1",
- "define-property": "0.2.5",
- "kind-of": "3.2.2"
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
},
"dependencies": {
"define-property": {
@@ -6072,7 +6466,7 @@
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
"requires": {
- "is-descriptor": "0.1.6"
+ "is-descriptor": "^0.1.0"
}
}
}
@@ -6089,7 +6483,7 @@
"integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
"dev": true,
"requires": {
- "isobject": "3.0.1"
+ "isobject": "^3.0.0"
},
"dependencies": {
"isobject": {
@@ -6106,8 +6500,8 @@
"integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
"dev": true,
"requires": {
- "define-properties": "1.1.2",
- "es-abstract": "1.11.0"
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.5.1"
}
},
"object.omit": {
@@ -6116,8 +6510,8 @@
"integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
"dev": true,
"requires": {
- "for-own": "0.1.5",
- "is-extendable": "0.1.1"
+ "for-own": "^0.1.4",
+ "is-extendable": "^0.1.1"
}
},
"object.pick": {
@@ -6126,7 +6520,7 @@
"integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
"dev": true,
"requires": {
- "isobject": "3.0.1"
+ "isobject": "^3.0.1"
},
"dependencies": {
"isobject": {
@@ -6143,7 +6537,7 @@
"integrity": "sha512-j53BDX+FpJ4DQwENARbk9hHkwG/Oaq5NPUMNzYdGxRA/R5M6BbPVQEakUVMNKLzvzPue/gEEUTtSj6utFse5QQ==",
"dev": true,
"requires": {
- "object-assign": "4.1.1"
+ "object-assign": "^4.1.1"
}
},
"once": {
@@ -6152,7 +6546,7 @@
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
"requires": {
- "wrappy": "1.0.2"
+ "wrappy": "1"
}
},
"onetime": {
@@ -6161,7 +6555,7 @@
"integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
"dev": true,
"requires": {
- "mimic-fn": "1.2.0"
+ "mimic-fn": "^1.0.0"
}
},
"optimist": {
@@ -6170,8 +6564,8 @@
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
"dev": true,
"requires": {
- "minimist": "0.0.10",
- "wordwrap": "0.0.3"
+ "minimist": "~0.0.1",
+ "wordwrap": "~0.0.2"
},
"dependencies": {
"minimist": {
@@ -6194,12 +6588,12 @@
"integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
"dev": true,
"requires": {
- "deep-is": "0.1.3",
- "fast-levenshtein": "2.0.6",
- "levn": "0.3.0",
- "prelude-ls": "1.1.2",
- "type-check": "0.3.2",
- "wordwrap": "1.0.0"
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.4",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "wordwrap": "~1.0.0"
}
},
"os-homedir": {
@@ -6214,9 +6608,9 @@
"integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
"dev": true,
"requires": {
- "execa": "0.7.0",
- "lcid": "1.0.0",
- "mem": "1.1.0"
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
}
},
"os-tmpdir": {
@@ -6231,8 +6625,8 @@
"integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
"dev": true,
"requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
}
},
"p-finally": {
@@ -6247,7 +6641,7 @@
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"dev": true,
"requires": {
- "p-try": "1.0.0"
+ "p-try": "^1.0.0"
}
},
"p-locate": {
@@ -6256,7 +6650,7 @@
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
"dev": true,
"requires": {
- "p-limit": "1.3.0"
+ "p-limit": "^1.1.0"
}
},
"p-try": {
@@ -6271,7 +6665,7 @@
"integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
"dev": true,
"requires": {
- "no-case": "2.3.2"
+ "no-case": "^2.2.0"
}
},
"parse-glob": {
@@ -6280,10 +6674,10 @@
"integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
"dev": true,
"requires": {
- "glob-base": "0.3.0",
- "is-dotfile": "1.0.3",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1"
+ "glob-base": "^0.3.0",
+ "is-dotfile": "^1.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.0"
}
},
"parse-json": {
@@ -6292,7 +6686,7 @@
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
"dev": true,
"requires": {
- "error-ex": "1.3.1"
+ "error-ex": "^1.2.0"
}
},
"parse5": {
@@ -6313,7 +6707,7 @@
"integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
"dev": true,
"requires": {
- "pinkie-promise": "2.0.1"
+ "pinkie-promise": "^2.0.0"
}
},
"path-is-absolute": {
@@ -6346,9 +6740,9 @@
"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
"dev": true,
"requires": {
- "graceful-fs": "4.1.11",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
}
},
"performance-now": {
@@ -6375,7 +6769,7 @@
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
"dev": true,
"requires": {
- "pinkie": "2.0.4"
+ "pinkie": "^2.0.0"
}
},
"pkg-conf": {
@@ -6384,8 +6778,8 @@
"integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=",
"dev": true,
"requires": {
- "find-up": "2.1.0",
- "load-json-file": "4.0.0"
+ "find-up": "^2.0.0",
+ "load-json-file": "^4.0.0"
},
"dependencies": {
"find-up": {
@@ -6394,7 +6788,7 @@
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"dev": true,
"requires": {
- "locate-path": "2.0.0"
+ "locate-path": "^2.0.0"
}
},
"load-json-file": {
@@ -6403,10 +6797,10 @@
"integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
"dev": true,
"requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "4.0.0",
- "pify": "3.0.0",
- "strip-bom": "3.0.0"
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
}
},
"parse-json": {
@@ -6415,8 +6809,8 @@
"integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
"dev": true,
"requires": {
- "error-ex": "1.3.1",
- "json-parse-better-errors": "1.0.2"
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
}
},
"pify": {
@@ -6433,9 +6827,9 @@
"integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=",
"dev": true,
"requires": {
- "debug-log": "1.0.1",
- "find-root": "1.1.0",
- "xtend": "4.0.1"
+ "debug-log": "^1.0.0",
+ "find-root": "^1.0.0",
+ "xtend": "^4.0.1"
}
},
"pkg-dir": {
@@ -6444,7 +6838,7 @@
"integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
"dev": true,
"requires": {
- "find-up": "2.1.0"
+ "find-up": "^2.1.0"
},
"dependencies": {
"find-up": {
@@ -6453,7 +6847,7 @@
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"dev": true,
"requires": {
- "locate-path": "2.0.0"
+ "locate-path": "^2.0.0"
}
}
}
@@ -6464,7 +6858,7 @@
"integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==",
"dev": true,
"requires": {
- "semver-compare": "1.0.0"
+ "semver-compare": "^1.0.0"
}
},
"pluralize": {
@@ -6509,8 +6903,8 @@
"integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==",
"dev": true,
"requires": {
- "ansi-regex": "3.0.0",
- "ansi-styles": "3.2.1"
+ "ansi-regex": "^3.0.0",
+ "ansi-styles": "^3.2.0"
}
},
"prismjs": {
@@ -6519,7 +6913,7 @@
"integrity": "sha512-Lf2JrFYx8FanHrjoV5oL8YHCclLQgbJcVZR+gikGGMqz6ub5QVWDTM6YIwm3BuPxM/LOV+rKns3LssXNLIf+DA==",
"dev": true,
"requires": {
- "clipboard": "2.0.1"
+ "clipboard": "^2.0.0"
}
},
"private": {
@@ -6546,7 +6940,7 @@
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
"dev": true,
"requires": {
- "asap": "2.0.6"
+ "asap": "~2.0.3"
}
},
"prompts": {
@@ -6555,8 +6949,8 @@
"integrity": "sha512-rxkyiE9YH6zAz/rZpywySLKkpaj0NMVyNw1qhsubdbjjSgcayjTShDreZGlFMcGSu5sab3bAKPfFk78PB90+8w==",
"dev": true,
"requires": {
- "kleur": "2.0.2",
- "sisteransi": "0.1.1"
+ "kleur": "^2.0.1",
+ "sisteransi": "^0.1.1"
}
},
"prop-types": {
@@ -6565,9 +6959,9 @@
"integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==",
"dev": true,
"requires": {
- "fbjs": "0.8.17",
- "loose-envify": "1.3.1",
- "object-assign": "4.1.1"
+ "fbjs": "^0.8.16",
+ "loose-envify": "^1.3.1",
+ "object-assign": "^4.1.1"
}
},
"pseudomap": {
@@ -6600,9 +6994,9 @@
"integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
"dev": true,
"requires": {
- "is-number": "4.0.0",
- "kind-of": "6.0.2",
- "math-random": "1.0.1"
+ "is-number": "^4.0.0",
+ "kind-of": "^6.0.0",
+ "math-random": "^1.0.1"
},
"dependencies": {
"is-number": {
@@ -6625,9 +7019,9 @@
"integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
"dev": true,
"requires": {
- "load-json-file": "1.1.0",
- "normalize-package-data": "2.4.0",
- "path-type": "1.1.0"
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
},
"dependencies": {
"load-json-file": {
@@ -6636,11 +7030,11 @@
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
"dev": true,
"requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1",
- "strip-bom": "2.0.0"
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
}
},
"strip-bom": {
@@ -6649,7 +7043,7 @@
"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
"dev": true,
"requires": {
- "is-utf8": "0.2.1"
+ "is-utf8": "^0.2.0"
}
}
}
@@ -6660,8 +7054,8 @@
"integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
"dev": true,
"requires": {
- "find-up": "1.1.2",
- "read-pkg": "1.1.0"
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
}
},
"readable-stream": {
@@ -6670,13 +7064,13 @@
"integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
"dev": true,
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "safe-buffer": "5.1.1",
- "string_decoder": "1.0.3",
- "util-deprecate": "1.0.2"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.0.3",
+ "util-deprecate": "~1.0.1"
}
},
"realpath-native": {
@@ -6685,7 +7079,7 @@
"integrity": "sha512-+S3zTvVt9yTntFrBpm7TQmQ3tzpCrnA1a/y+3cUHAc9ZR6aIjG0WNLR+Rj79QpJktY+VeW/TQtFlQ1bzsehI8g==",
"dev": true,
"requires": {
- "util.promisify": "1.0.0"
+ "util.promisify": "^1.0.0"
}
},
"redent": {
@@ -6694,8 +7088,8 @@
"integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
"dev": true,
"requires": {
- "indent-string": "2.1.0",
- "strip-indent": "1.0.1"
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
}
},
"regenerate": {
@@ -6704,30 +7098,28 @@
"integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
"dev": true
},
+ "regenerate-unicode-properties": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz",
+ "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.0"
+ }
+ },
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
"dev": true
},
- "regenerator-transform": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
- "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "private": "0.1.8"
- }
- },
"regex-cache": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
"integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
"dev": true,
"requires": {
- "is-equal-shallow": "0.1.3"
+ "is-equal-shallow": "^0.1.3"
}
},
"regex-not": {
@@ -6736,42 +7128,8 @@
"integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
"dev": true,
"requires": {
- "extend-shallow": "3.0.2",
- "safe-regex": "1.1.0"
- }
- },
- "regexpu-core": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
- "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
- "dev": true,
- "requires": {
- "regenerate": "1.4.0",
- "regjsgen": "0.2.0",
- "regjsparser": "0.1.5"
- }
- },
- "regjsgen": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
- "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
- "dev": true
- },
- "regjsparser": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
- "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
- "dev": true,
- "requires": {
- "jsesc": "0.5.0"
- },
- "dependencies": {
- "jsesc": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
- "dev": true
- }
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
}
},
"relateurl": {
@@ -6804,7 +7162,7 @@
"integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
"dev": true,
"requires": {
- "is-finite": "1.0.2"
+ "is-finite": "^1.0.0"
}
},
"request": {
@@ -6813,26 +7171,26 @@
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
"dev": true,
"requires": {
- "aws-sign2": "0.7.0",
- "aws4": "1.8.0",
- "caseless": "0.12.0",
- "combined-stream": "1.0.6",
- "extend": "3.0.2",
- "forever-agent": "0.6.1",
- "form-data": "2.3.2",
- "har-validator": "5.1.0",
- "http-signature": "1.2.0",
- "is-typedarray": "1.0.0",
- "isstream": "0.1.2",
- "json-stringify-safe": "5.0.1",
- "mime-types": "2.1.20",
- "oauth-sign": "0.9.0",
- "performance-now": "2.1.0",
- "qs": "6.5.2",
- "safe-buffer": "5.1.2",
- "tough-cookie": "2.4.3",
- "tunnel-agent": "0.6.0",
- "uuid": "3.3.2"
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
},
"dependencies": {
"safe-buffer": {
@@ -6849,7 +7207,7 @@
"integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=",
"dev": true,
"requires": {
- "lodash": "4.17.4"
+ "lodash": "^4.13.1"
}
},
"request-promise-native": {
@@ -6859,8 +7217,8 @@
"dev": true,
"requires": {
"request-promise-core": "1.1.1",
- "stealthy-require": "1.1.1",
- "tough-cookie": "2.4.3"
+ "stealthy-require": "^1.1.0",
+ "tough-cookie": ">=2.3.3"
}
},
"require-directory": {
@@ -6881,8 +7239,8 @@
"integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
"dev": true,
"requires": {
- "caller-path": "0.1.0",
- "resolve-from": "1.0.1"
+ "caller-path": "^0.1.0",
+ "resolve-from": "^1.0.0"
},
"dependencies": {
"resolve-from": {
@@ -6899,7 +7257,7 @@
"integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==",
"dev": true,
"requires": {
- "path-parse": "1.0.5"
+ "path-parse": "^1.0.5"
}
},
"resolve-cwd": {
@@ -6908,7 +7266,7 @@
"integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
"dev": true,
"requires": {
- "resolve-from": "3.0.0"
+ "resolve-from": "^3.0.0"
}
},
"resolve-from": {
@@ -6929,8 +7287,8 @@
"integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
"dev": true,
"requires": {
- "onetime": "2.0.1",
- "signal-exit": "3.0.2"
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
}
},
"ret": {
@@ -6945,7 +7303,7 @@
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
"dev": true,
"requires": {
- "glob": "7.1.2"
+ "glob": "^7.0.5"
}
},
"rollup": {
@@ -6955,16 +7313,17 @@
"dev": true,
"requires": {
"@types/estree": "0.0.38",
- "@types/node": "10.3.3"
+ "@types/node": "*"
}
},
"rollup-plugin-babel": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-3.0.7.tgz",
- "integrity": "sha512-bVe2y0z/V5Ax1qU8NX/0idmzIwJPdUGu8Xx3vXH73h0yGjxfv2gkFI82MBVg49SlsFlLTBadBHb67zy4TWM3hA==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.0.3.tgz",
+ "integrity": "sha512-/PP0MgbPQyRywI4zRIJim6ySjTcOLo4kQbEbROqp9kOR3kHC3FeU++QpBDZhS2BcHtJTVZMVbBV46flbBN5zxQ==",
"dev": true,
"requires": {
- "rollup-pluginutils": "1.5.2"
+ "@babel/helper-module-imports": "^7.0.0",
+ "rollup-pluginutils": "^2.3.0"
}
},
"rollup-plugin-babel-minify": {
@@ -6973,30 +7332,30 @@
"integrity": "sha512-aqQTNCjrYZrWogHVpPQPVFRB/oKT9pGQzW8M/l3lRRuNz1zPtsYR/3shd5/SA8Msfb4HIytBEFUOQBCMoVVx6Q==",
"dev": true,
"requires": {
- "@comandeer/babel-plugin-banner": "1.0.0",
- "babel-core": "6.26.3",
- "babel-preset-minify": "0.3.0",
- "depd": "1.1.2",
- "magic-string": "0.22.5",
- "semver": "5.5.0"
+ "@comandeer/babel-plugin-banner": "^1.0.0",
+ "babel-core": "^6.26.0",
+ "babel-preset-minify": "^0.3.0",
+ "depd": "^1.1.2",
+ "magic-string": "^0.22.4",
+ "semver": "^5.5.0"
},
"dependencies": {
"semver": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
- "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
+ "version": "5.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
+ "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
"dev": true
}
}
},
"rollup-pluginutils": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz",
- "integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz",
+ "integrity": "sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA==",
"dev": true,
"requires": {
- "estree-walker": "0.2.1",
- "minimatch": "3.0.4"
+ "estree-walker": "^0.5.2",
+ "micromatch": "^2.3.11"
}
},
"rsvp": {
@@ -7011,7 +7370,7 @@
"integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
"dev": true,
"requires": {
- "is-promise": "2.1.0"
+ "is-promise": "^2.1.0"
}
},
"run-node": {
@@ -7038,7 +7397,7 @@
"integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
"dev": true,
"requires": {
- "rx-lite": "4.0.8"
+ "rx-lite": "*"
}
},
"safe-buffer": {
@@ -7053,7 +7412,7 @@
"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
"dev": true,
"requires": {
- "ret": "0.1.15"
+ "ret": "~0.1.10"
}
},
"safer-buffer": {
@@ -7068,15 +7427,15 @@
"integrity": "sha1-tNwYYcIbQn6SlQej51HiosuKs/o=",
"dev": true,
"requires": {
- "anymatch": "2.0.0",
- "capture-exit": "1.2.0",
- "exec-sh": "0.2.2",
- "fb-watchman": "2.0.0",
- "fsevents": "1.2.4",
- "micromatch": "3.1.10",
- "minimist": "1.2.0",
- "walker": "1.0.7",
- "watch": "0.18.0"
+ "anymatch": "^2.0.0",
+ "capture-exit": "^1.2.0",
+ "exec-sh": "^0.2.0",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^1.2.3",
+ "micromatch": "^3.1.4",
+ "minimist": "^1.1.1",
+ "walker": "~1.0.5",
+ "watch": "~0.18.0"
},
"dependencies": {
"arr-diff": {
@@ -7097,16 +7456,16 @@
"integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
"dev": true,
"requires": {
- "arr-flatten": "1.1.0",
- "array-unique": "0.3.2",
- "extend-shallow": "2.0.1",
- "fill-range": "4.0.0",
- "isobject": "3.0.1",
- "repeat-element": "1.1.3",
- "snapdragon": "0.8.2",
- "snapdragon-node": "2.1.1",
- "split-string": "3.1.0",
- "to-regex": "3.0.2"
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
},
"dependencies": {
"extend-shallow": {
@@ -7115,7 +7474,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
}
}
@@ -7135,13 +7494,13 @@
"integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
"dev": true,
"requires": {
- "debug": "2.6.9",
- "define-property": "0.2.5",
- "extend-shallow": "2.0.1",
- "posix-character-classes": "0.1.1",
- "regex-not": "1.0.2",
- "snapdragon": "0.8.2",
- "to-regex": "3.0.2"
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
},
"dependencies": {
"define-property": {
@@ -7150,7 +7509,7 @@
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
"requires": {
- "is-descriptor": "0.1.6"
+ "is-descriptor": "^0.1.0"
}
},
"extend-shallow": {
@@ -7159,7 +7518,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
},
"is-accessor-descriptor": {
@@ -7168,7 +7527,7 @@
"integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
},
"dependencies": {
"kind-of": {
@@ -7177,7 +7536,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
}
}
@@ -7188,7 +7547,7 @@
"integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
},
"dependencies": {
"kind-of": {
@@ -7197,7 +7556,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
}
}
@@ -7208,9 +7567,9 @@
"integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "0.1.6",
- "is-data-descriptor": "0.1.4",
- "kind-of": "5.1.0"
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
}
},
"kind-of": {
@@ -7227,14 +7586,14 @@
"integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
"dev": true,
"requires": {
- "array-unique": "0.3.2",
- "define-property": "1.0.0",
- "expand-brackets": "2.1.4",
- "extend-shallow": "2.0.1",
- "fragment-cache": "0.2.1",
- "regex-not": "1.0.2",
- "snapdragon": "0.8.2",
- "to-regex": "3.0.2"
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
},
"dependencies": {
"define-property": {
@@ -7243,7 +7602,7 @@
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"dev": true,
"requires": {
- "is-descriptor": "1.0.2"
+ "is-descriptor": "^1.0.0"
}
},
"extend-shallow": {
@@ -7252,7 +7611,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
}
}
@@ -7263,10 +7622,10 @@
"integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
"dev": true,
"requires": {
- "extend-shallow": "2.0.1",
- "is-number": "3.0.0",
- "repeat-string": "1.6.1",
- "to-regex-range": "2.1.1"
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
},
"dependencies": {
"extend-shallow": {
@@ -7275,7 +7634,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
}
}
@@ -7286,7 +7645,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-data-descriptor": {
@@ -7295,7 +7654,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-descriptor": {
@@ -7304,9 +7663,9 @@
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "1.0.0",
- "is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
}
},
"is-number": {
@@ -7315,7 +7674,7 @@
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
},
"dependencies": {
"kind-of": {
@@ -7324,7 +7683,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.6"
+ "is-buffer": "^1.1.5"
}
}
}
@@ -7347,19 +7706,19 @@
"integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
"dev": true,
"requires": {
- "arr-diff": "4.0.0",
- "array-unique": "0.3.2",
- "braces": "2.3.2",
- "define-property": "2.0.2",
- "extend-shallow": "3.0.2",
- "extglob": "2.0.4",
- "fragment-cache": "0.2.1",
- "kind-of": "6.0.2",
- "nanomatch": "1.2.13",
- "object.pick": "1.3.0",
- "regex-not": "1.0.2",
- "snapdragon": "0.8.2",
- "to-regex": "3.0.2"
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
}
}
}
@@ -7370,10 +7729,10 @@
"integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
"dev": true,
"requires": {
- "glob": "7.1.2",
- "lodash": "4.17.4",
- "scss-tokenizer": "0.2.3",
- "yargs": "7.1.0"
+ "glob": "^7.0.0",
+ "lodash": "^4.0.0",
+ "scss-tokenizer": "^0.2.3",
+ "yargs": "^7.0.0"
},
"dependencies": {
"ansi-regex": {
@@ -7394,9 +7753,9 @@
"integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
"dev": true,
"requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wrap-ansi": "2.1.0"
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
}
},
"is-fullwidth-code-point": {
@@ -7405,7 +7764,7 @@
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true,
"requires": {
- "number-is-nan": "1.0.1"
+ "number-is-nan": "^1.0.0"
}
},
"os-locale": {
@@ -7414,7 +7773,7 @@
"integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
"dev": true,
"requires": {
- "lcid": "1.0.0"
+ "lcid": "^1.0.0"
}
},
"string-width": {
@@ -7423,9 +7782,9 @@
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"dev": true,
"requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
}
},
"strip-ansi": {
@@ -7434,7 +7793,7 @@
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
},
"which-module": {
@@ -7449,19 +7808,19 @@
"integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
"dev": true,
"requires": {
- "camelcase": "3.0.0",
- "cliui": "3.2.0",
- "decamelize": "1.2.0",
- "get-caller-file": "1.0.3",
- "os-locale": "1.4.0",
- "read-pkg-up": "1.0.1",
- "require-directory": "2.1.1",
- "require-main-filename": "1.0.1",
- "set-blocking": "2.0.0",
- "string-width": "1.0.2",
- "which-module": "1.0.0",
- "y18n": "3.2.1",
- "yargs-parser": "5.0.0"
+ "camelcase": "^3.0.0",
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^1.4.0",
+ "read-pkg-up": "^1.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^1.0.2",
+ "which-module": "^1.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^5.0.0"
}
},
"yargs-parser": {
@@ -7470,7 +7829,7 @@
"integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
"dev": true,
"requires": {
- "camelcase": "3.0.0"
+ "camelcase": "^3.0.0"
}
}
}
@@ -7487,8 +7846,8 @@
"integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
"dev": true,
"requires": {
- "js-base64": "2.4.9",
- "source-map": "0.4.4"
+ "js-base64": "^2.1.8",
+ "source-map": "^0.4.2"
},
"dependencies": {
"source-map": {
@@ -7497,7 +7856,7 @@
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
"dev": true,
"requires": {
- "amdefine": "1.0.1"
+ "amdefine": ">=0.0.4"
}
}
}
@@ -7515,16 +7874,16 @@
"integrity": "sha512-+FBRXBCi8GC1Nivc4ruw2KXER31bE1lrNyESo7prn2Sv9I9+H/Iqpt0NOtlV/GUxq34AgJwJViBUpA3/PUGqOw==",
"dev": true,
"requires": {
- "eslint": "4.18.2",
+ "eslint": "~4.18.0",
"eslint-config-semistandard": "12.0.1",
"eslint-config-standard": "11.0.0",
"eslint-config-standard-jsx": "5.0.0",
- "eslint-plugin-import": "2.8.0",
- "eslint-plugin-node": "6.0.1",
- "eslint-plugin-promise": "3.6.0",
- "eslint-plugin-react": "7.6.1",
- "eslint-plugin-standard": "3.0.1",
- "standard-engine": "8.0.1"
+ "eslint-plugin-import": "~2.8.0",
+ "eslint-plugin-node": "~6.0.0",
+ "eslint-plugin-promise": "~3.6.0",
+ "eslint-plugin-react": "~7.6.1",
+ "eslint-plugin-standard": "~3.0.1",
+ "standard-engine": "~8.0.0"
}
},
"semver": {
@@ -7551,10 +7910,10 @@
"integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
"dev": true,
"requires": {
- "extend-shallow": "2.0.1",
- "is-extendable": "0.1.1",
- "is-plain-object": "2.0.4",
- "split-string": "3.1.0"
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
},
"dependencies": {
"extend-shallow": {
@@ -7563,7 +7922,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
}
}
@@ -7580,7 +7939,7 @@
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
"dev": true,
"requires": {
- "shebang-regex": "1.0.0"
+ "shebang-regex": "^1.0.0"
}
},
"shebang-regex": {
@@ -7619,7 +7978,7 @@
"integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "2.0.0"
+ "is-fullwidth-code-point": "^2.0.0"
}
},
"snapdragon": {
@@ -7628,14 +7987,14 @@
"integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
"dev": true,
"requires": {
- "base": "0.11.2",
- "debug": "2.6.9",
- "define-property": "0.2.5",
- "extend-shallow": "2.0.1",
- "map-cache": "0.2.2",
- "source-map": "0.5.7",
- "source-map-resolve": "0.5.2",
- "use": "3.1.1"
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
},
"dependencies": {
"debug": {
@@ -7653,7 +8012,7 @@
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
"requires": {
- "is-descriptor": "0.1.6"
+ "is-descriptor": "^0.1.0"
}
},
"extend-shallow": {
@@ -7662,7 +8021,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
}
}
@@ -7673,9 +8032,9 @@
"integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
"dev": true,
"requires": {
- "define-property": "1.0.0",
- "isobject": "3.0.1",
- "snapdragon-util": "3.0.1"
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
},
"dependencies": {
"define-property": {
@@ -7684,7 +8043,7 @@
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"dev": true,
"requires": {
- "is-descriptor": "1.0.2"
+ "is-descriptor": "^1.0.0"
}
},
"is-accessor-descriptor": {
@@ -7693,7 +8052,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-data-descriptor": {
@@ -7702,7 +8061,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "^6.0.0"
}
},
"is-descriptor": {
@@ -7711,9 +8070,9 @@
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "1.0.0",
- "is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
}
},
"isobject": {
@@ -7736,7 +8095,7 @@
"integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.2.0"
}
},
"source-map": {
@@ -7751,11 +8110,11 @@
"integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
"dev": true,
"requires": {
- "atob": "2.1.2",
- "decode-uri-component": "0.2.0",
- "resolve-url": "0.2.1",
- "source-map-url": "0.4.0",
- "urix": "0.1.0"
+ "atob": "^2.1.1",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
}
},
"source-map-support": {
@@ -7764,7 +8123,7 @@
"integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
"dev": true,
"requires": {
- "source-map": "0.5.7"
+ "source-map": "^0.5.6"
}
},
"source-map-url": {
@@ -7779,8 +8138,8 @@
"integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==",
"dev": true,
"requires": {
- "spdx-expression-parse": "3.0.0",
- "spdx-license-ids": "3.0.0"
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
}
},
"spdx-exceptions": {
@@ -7795,8 +8154,8 @@
"integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
"dev": true,
"requires": {
- "spdx-exceptions": "2.1.0",
- "spdx-license-ids": "3.0.0"
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
}
},
"spdx-license-ids": {
@@ -7811,7 +8170,7 @@
"integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
"dev": true,
"requires": {
- "extend-shallow": "3.0.2"
+ "extend-shallow": "^3.0.0"
}
},
"sprintf-js": {
@@ -7826,15 +8185,15 @@
"integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
"dev": true,
"requires": {
- "asn1": "0.2.4",
- "assert-plus": "1.0.0",
- "bcrypt-pbkdf": "1.0.2",
- "dashdash": "1.14.1",
- "ecc-jsbn": "0.1.2",
- "getpass": "0.1.7",
- "jsbn": "0.1.1",
- "safer-buffer": "2.1.2",
- "tweetnacl": "0.14.5"
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
}
},
"stack-utils": {
@@ -7849,10 +8208,10 @@
"integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==",
"dev": true,
"requires": {
- "deglob": "2.1.1",
- "get-stdin": "6.0.0",
- "minimist": "1.2.0",
- "pkg-conf": "2.1.0"
+ "deglob": "^2.1.0",
+ "get-stdin": "^6.0.0",
+ "minimist": "^1.1.0",
+ "pkg-conf": "^2.0.0"
}
},
"static-extend": {
@@ -7861,8 +8220,8 @@
"integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
"dev": true,
"requires": {
- "define-property": "0.2.5",
- "object-copy": "0.1.0"
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
},
"dependencies": {
"define-property": {
@@ -7871,7 +8230,7 @@
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dev": true,
"requires": {
- "is-descriptor": "0.1.6"
+ "is-descriptor": "^0.1.0"
}
}
}
@@ -7882,7 +8241,7 @@
"integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
"dev": true,
"requires": {
- "readable-stream": "2.3.3"
+ "readable-stream": "^2.0.1"
}
},
"stealthy-require": {
@@ -7897,8 +8256,8 @@
"integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=",
"dev": true,
"requires": {
- "astral-regex": "1.0.0",
- "strip-ansi": "4.0.0"
+ "astral-regex": "^1.0.0",
+ "strip-ansi": "^4.0.0"
}
},
"string-width": {
@@ -7907,8 +8266,8 @@
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "2.0.0",
- "strip-ansi": "4.0.0"
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
},
"dependencies": {
"ansi-regex": {
@@ -7923,7 +8282,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "3.0.0"
+ "ansi-regex": "^3.0.0"
}
}
}
@@ -7934,9 +8293,9 @@
"integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=",
"dev": true,
"requires": {
- "define-properties": "1.1.2",
- "es-abstract": "1.11.0",
- "function-bind": "1.1.1"
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.4.3",
+ "function-bind": "^1.0.2"
}
},
"string.prototype.padstart": {
@@ -7945,9 +8304,9 @@
"integrity": "sha1-W8+tOfRkm7LQMSkuGbzwtRDUskI=",
"dev": true,
"requires": {
- "define-properties": "1.1.2",
- "es-abstract": "1.11.0",
- "function-bind": "1.1.1"
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.4.3",
+ "function-bind": "^1.0.2"
}
},
"string_decoder": {
@@ -7956,7 +8315,7 @@
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
"dev": true,
"requires": {
- "safe-buffer": "5.1.1"
+ "safe-buffer": "~5.1.0"
}
},
"strip-ansi": {
@@ -7965,7 +8324,7 @@
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
- "ansi-regex": "3.0.0"
+ "ansi-regex": "^3.0.0"
}
},
"strip-bom": {
@@ -7986,7 +8345,7 @@
"integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
"dev": true,
"requires": {
- "get-stdin": "4.0.1"
+ "get-stdin": "^4.0.1"
},
"dependencies": {
"get-stdin": {
@@ -8009,7 +8368,7 @@
"integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
"dev": true,
"requires": {
- "has-flag": "1.0.0"
+ "has-flag": "^1.0.0"
},
"dependencies": {
"has-flag": {
@@ -8032,12 +8391,12 @@
"integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
"dev": true,
"requires": {
- "ajv": "5.5.2",
- "ajv-keywords": "2.1.1",
- "chalk": "2.4.1",
- "lodash": "4.17.4",
+ "ajv": "^5.2.3",
+ "ajv-keywords": "^2.1.0",
+ "chalk": "^2.1.0",
+ "lodash": "^4.17.4",
"slice-ansi": "1.0.0",
- "string-width": "2.1.1"
+ "string-width": "^2.1.1"
}
},
"tar": {
@@ -8046,9 +8405,9 @@
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
"dev": true,
"requires": {
- "block-stream": "0.0.9",
- "fstream": "1.0.11",
- "inherits": "2.0.3"
+ "block-stream": "*",
+ "fstream": "^1.0.2",
+ "inherits": "2"
}
},
"test-exclude": {
@@ -8057,11 +8416,11 @@
"integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==",
"dev": true,
"requires": {
- "arrify": "1.0.1",
- "micromatch": "2.3.11",
- "object-assign": "4.1.1",
- "read-pkg-up": "1.0.1",
- "require-main-filename": "1.0.1"
+ "arrify": "^1.0.1",
+ "micromatch": "^2.3.11",
+ "object-assign": "^4.1.0",
+ "read-pkg-up": "^1.0.1",
+ "require-main-filename": "^1.0.1"
}
},
"text-table": {
@@ -8095,7 +8454,7 @@
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"dev": true,
"requires": {
- "os-tmpdir": "1.0.2"
+ "os-tmpdir": "~1.0.2"
}
},
"tmpl": {
@@ -8116,7 +8475,7 @@
"integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
}
},
"to-regex": {
@@ -8125,10 +8484,10 @@
"integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
"dev": true,
"requires": {
- "define-property": "2.0.2",
- "extend-shallow": "3.0.2",
- "regex-not": "1.0.2",
- "safe-regex": "1.1.0"
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
}
},
"to-regex-range": {
@@ -8137,8 +8496,8 @@
"integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
"dev": true,
"requires": {
- "is-number": "3.0.0",
- "repeat-string": "1.6.1"
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
},
"dependencies": {
"is-number": {
@@ -8147,7 +8506,7 @@
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
}
}
}
@@ -8158,8 +8517,8 @@
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
"dev": true,
"requires": {
- "psl": "1.1.29",
- "punycode": "1.4.1"
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
},
"dependencies": {
"punycode": {
@@ -8176,7 +8535,7 @@
"integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
"dev": true,
"requires": {
- "punycode": "2.1.1"
+ "punycode": "^2.1.0"
}
},
"trim-newlines": {
@@ -8197,7 +8556,7 @@
"integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
"dev": true,
"requires": {
- "glob": "7.1.2"
+ "glob": "^7.1.2"
}
},
"tunnel-agent": {
@@ -8206,7 +8565,7 @@
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"dev": true,
"requires": {
- "safe-buffer": "5.1.1"
+ "safe-buffer": "^5.0.1"
}
},
"tweetnacl": {
@@ -8222,7 +8581,7 @@
"integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
"dev": true,
"requires": {
- "prelude-ls": "1.1.2"
+ "prelude-ls": "~1.1.2"
}
},
"typedarray": {
@@ -8249,8 +8608,8 @@
"integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==",
"dev": true,
"requires": {
- "commander": "2.17.1",
- "source-map": "0.6.1"
+ "commander": "~2.17.1",
+ "source-map": "~0.6.1"
},
"dependencies": {
"source-map": {
@@ -8261,16 +8620,44 @@
}
}
},
+ "unicode-canonical-property-names-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
+ "dev": true
+ },
+ "unicode-match-property-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
+ "dev": true,
+ "requires": {
+ "unicode-canonical-property-names-ecmascript": "^1.0.4",
+ "unicode-property-aliases-ecmascript": "^1.0.4"
+ }
+ },
+ "unicode-match-property-value-ecmascript": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz",
+ "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==",
+ "dev": true
+ },
+ "unicode-property-aliases-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==",
+ "dev": true
+ },
"union-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
"integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
"dev": true,
"requires": {
- "arr-union": "3.1.0",
- "get-value": "2.0.6",
- "is-extendable": "0.1.1",
- "set-value": "0.4.3"
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^0.4.3"
},
"dependencies": {
"extend-shallow": {
@@ -8279,7 +8666,7 @@
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "is-extendable": "^0.1.0"
}
},
"set-value": {
@@ -8288,10 +8675,10 @@
"integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
"dev": true,
"requires": {
- "extend-shallow": "2.0.1",
- "is-extendable": "0.1.1",
- "is-plain-object": "2.0.4",
- "to-object-path": "0.3.0"
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.1",
+ "to-object-path": "^0.3.0"
}
}
}
@@ -8314,8 +8701,8 @@
"integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
"dev": true,
"requires": {
- "has-value": "0.3.1",
- "isobject": "3.0.1"
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
},
"dependencies": {
"has-value": {
@@ -8324,9 +8711,9 @@
"integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
"dev": true,
"requires": {
- "get-value": "2.0.6",
- "has-values": "0.1.4",
- "isobject": "2.1.0"
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
},
"dependencies": {
"isobject": {
@@ -8390,8 +8777,8 @@
"integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
"dev": true,
"requires": {
- "define-properties": "1.1.2",
- "object.getownpropertydescriptors": "2.0.3"
+ "define-properties": "^1.1.2",
+ "object.getownpropertydescriptors": "^2.0.3"
}
},
"uuid": {
@@ -8406,8 +8793,8 @@
"integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==",
"dev": true,
"requires": {
- "spdx-correct": "3.0.0",
- "spdx-expression-parse": "3.0.0"
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
}
},
"verror": {
@@ -8416,9 +8803,9 @@
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"dev": true,
"requires": {
- "assert-plus": "1.0.0",
+ "assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
- "extsprintf": "1.3.0"
+ "extsprintf": "^1.2.0"
}
},
"vlq": {
@@ -8433,7 +8820,7 @@
"integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=",
"dev": true,
"requires": {
- "browser-process-hrtime": "0.1.2"
+ "browser-process-hrtime": "^0.1.2"
}
},
"walker": {
@@ -8442,7 +8829,7 @@
"integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=",
"dev": true,
"requires": {
- "makeerror": "1.0.11"
+ "makeerror": "1.0.x"
}
},
"watch": {
@@ -8451,8 +8838,8 @@
"integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=",
"dev": true,
"requires": {
- "exec-sh": "0.2.2",
- "minimist": "1.2.0"
+ "exec-sh": "^0.2.0",
+ "minimist": "^1.2.0"
}
},
"webidl-conversions": {
@@ -8476,7 +8863,7 @@
"integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
"dev": true,
"requires": {
- "safer-buffer": "2.1.2"
+ "safer-buffer": ">= 2.1.2 < 3"
}
}
}
@@ -8499,9 +8886,9 @@
"integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==",
"dev": true,
"requires": {
- "lodash.sortby": "4.7.0",
- "tr46": "1.0.1",
- "webidl-conversions": "4.0.2"
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
}
},
"which": {
@@ -8510,7 +8897,7 @@
"integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
"dev": true,
"requires": {
- "isexe": "2.0.0"
+ "isexe": "^2.0.0"
}
},
"which-module": {
@@ -8525,7 +8912,7 @@
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"dev": true,
"requires": {
- "string-width": "2.1.1"
+ "string-width": "^1.0.2 || 2"
}
},
"wordwrap": {
@@ -8540,8 +8927,8 @@
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
"dev": true,
"requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1"
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
},
"dependencies": {
"ansi-regex": {
@@ -8556,7 +8943,7 @@
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true,
"requires": {
- "number-is-nan": "1.0.1"
+ "number-is-nan": "^1.0.0"
}
},
"string-width": {
@@ -8565,9 +8952,9 @@
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"dev": true,
"requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
}
},
"strip-ansi": {
@@ -8576,7 +8963,7 @@
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
}
}
@@ -8593,7 +8980,7 @@
"integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
"dev": true,
"requires": {
- "mkdirp": "0.5.1"
+ "mkdirp": "^0.5.1"
}
},
"write-file-atomic": {
@@ -8602,9 +8989,9 @@
"integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==",
"dev": true,
"requires": {
- "graceful-fs": "4.1.11",
- "imurmurhash": "0.1.4",
- "signal-exit": "3.0.2"
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
}
},
"ws": {
@@ -8613,7 +9000,7 @@
"integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
"dev": true,
"requires": {
- "async-limiter": "1.0.0"
+ "async-limiter": "~1.0.0"
}
},
"xml-name-validator": {
@@ -8646,18 +9033,18 @@
"integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==",
"dev": true,
"requires": {
- "cliui": "4.1.0",
- "decamelize": "1.2.0",
- "find-up": "2.1.0",
- "get-caller-file": "1.0.3",
- "os-locale": "2.1.0",
- "require-directory": "2.1.1",
- "require-main-filename": "1.0.1",
- "set-blocking": "2.0.0",
- "string-width": "2.1.1",
- "which-module": "2.0.0",
- "y18n": "3.2.1",
- "yargs-parser": "9.0.2"
+ "cliui": "^4.0.0",
+ "decamelize": "^1.1.1",
+ "find-up": "^2.1.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^9.0.2"
},
"dependencies": {
"find-up": {
@@ -8666,7 +9053,7 @@
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"dev": true,
"requires": {
- "locate-path": "2.0.0"
+ "locate-path": "^2.0.0"
}
}
}
@@ -8677,7 +9064,7 @@
"integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
"dev": true,
"requires": {
- "camelcase": "4.1.0"
+ "camelcase": "^4.1.0"
}
}
}
diff --git a/package.json b/package.json
index 9f98e0741..b65482662 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,7 @@
{
"devDependencies": {
- "babel-preset-env": "^1.7.0",
+ "@babel/core": "^7.1.2",
+ "@babel/preset-env": "^7.1.0",
"chalk": "^2.4.1",
"fs-extra": "^6.0.0",
"html-minifier": "^3.5.20",
@@ -14,7 +15,7 @@
"prettier": "^1.14.2",
"prismjs": "^1.15.0",
"rollup": "^0.58.2",
- "rollup-plugin-babel": "^3.0.7",
+ "rollup-plugin-babel": "^4.0.3",
"rollup-plugin-babel-minify": "^4.0.0",
"semistandard": "^12.0.1"
},
diff --git a/scripts/module.js b/scripts/module.js
index cb63f931c..87ab15fa4 100644
--- a/scripts/module.js
+++ b/scripts/module.js
@@ -31,7 +31,6 @@ try {
}
// Write `imports.js`
fs.writeFileSync(IMPORTS, '');
- let exportStr = 'export default {';
// Read all snippets and store them appropriately
for (const snippet of snippets) {
const snippetData = fs.readFileSync(path.join(SNIPPETS_PATH, snippet), 'utf8');
@@ -42,12 +41,11 @@ try {
.split('\n')[0]
.includes('node');
// Read `imports.js` and write the data
- const importData = fs.readFileSync(IMPORTS);
+ const importData = fs.readFileSync(IMPORTS, 'utf8');
fs.writeFileSync(
IMPORTS,
- importData + `\nimport { ${snippetName} } from './temp/${snippetName}.js'`
+ importData + `\nexport { ${snippetName} } from './temp/${snippetName}.js'`
);
- exportStr += `${snippetName},`;
// Find the code in each snippet
const code = snippetData.match(codeRE)[1].replace('\n', '');
// Store the data to be written
@@ -61,8 +59,6 @@ try {
fs.writeFileSync(`${TEMP_PATH}/${snippetName}.js`, toWrite);
}
// Write to the proper files and start the `rollup` script
- exportStr += '}';
- fs.appendFileSync(IMPORTS, `\n${exportStr}`);
cp.execSync('node ./scripts/rollup.js');
// Clean up temporary data
fs.removeSync(TEMP_PATH);
diff --git a/scripts/rollup.js b/scripts/rollup.js
index 4fe1951a6..f7a349165 100644
--- a/scripts/rollup.js
+++ b/scripts/rollup.js
@@ -13,30 +13,31 @@ const DIST = './dist';
// Create `dist` folder if not existing
if (!fs.existsSync(DIST)) fs.mkdirSync(DIST);
// Setup babel and minification
-const es5 = babel({ presets: [['env', { modules: false }]] });
+const es5 = babel({
+ presets: ['@babel/preset-env']
+});
const min = minify({ comments: false });
// Create the bundles
(async () => {
const bundle = await rollup({ input: INPUT_FILE });
const bundleES5 = await rollup({ input: INPUT_FILE, plugins: [es5] });
- const bundleMin = await rollup({ input: INPUT_FILE, plugins: [min] });
const bundleES5Min = await rollup({
input: INPUT_FILE,
plugins: [es5, min]
});
- // UMD ES2017
+ // UMD ES2018
await bundle.write({
file: `${DIST}/${MODULE_NAME}.js`,
name: MODULE_NAME,
format: 'umd'
});
- // UMD ES2017 minified
- await bundleMin.write({
- file: `${DIST}/${MODULE_NAME}.min.js`,
+ // ESM ES2018
+ await bundle.write({
+ file: `${DIST}/${MODULE_NAME}.esm.js`,
name: MODULE_NAME,
- format: 'umd'
+ format: 'es'
});
// UMD ES5
@@ -52,11 +53,4 @@ const min = minify({ comments: false });
name: MODULE_NAME,
format: 'umd'
});
-
- // ESM ES2017
- await bundle.write({
- file: `${DIST}/${MODULE_NAME}.esm.js`,
- name: MODULE_NAME,
- format: 'es'
- });
})();