8889841cunion.js000066600000000504150444175340006244 0ustar00'use strict'; module.exports = function union(object) { var _this = this; var collection = JSON.parse(JSON.stringify(this.items)); Object.keys(object).forEach(function (prop) { if (_this.items[prop] === undefined) { collection[prop] = object[prop]; } }); return new this.constructor(collection); };mapWithKeys.js000066600000004225150444175340007365 0ustar00'use strict'; function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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 _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } module.exports = function mapWithKeys(fn) { var _this = this; var collection = {}; if (Array.isArray(this.items)) { this.items.forEach(function (item, index) { var _fn = fn(item, index), _fn2 = _slicedToArray(_fn, 2), keyed = _fn2[0], value = _fn2[1]; collection[keyed] = value; }); } else { Object.keys(this.items).forEach(function (key) { var _fn3 = fn(_this.items[key], key), _fn4 = _slicedToArray(_fn3, 2), keyed = _fn4[0], value = _fn4[1]; collection[keyed] = value; }); } return new this.constructor(collection); };merge.js000066600000001004150444175340006207 0ustar00'use strict'; module.exports = function merge(value) { var arrayOrObject = value; if (typeof arrayOrObject === 'string') { arrayOrObject = [arrayOrObject]; } if (Array.isArray(this.items) && Array.isArray(arrayOrObject)) { return new this.constructor(this.items.concat(arrayOrObject)); } var collection = JSON.parse(JSON.stringify(this.items)); Object.keys(arrayOrObject).forEach(function (key) { collection[key] = arrayOrObject[key]; }); return new this.constructor(collection); };last.js000066600000001061150444175340006056 0ustar00'use strict'; var _require = require('../helpers/is'), isFunction = _require.isFunction; module.exports = function last(fn, defaultValue) { var items = this.items; if (isFunction(fn)) { items = this.filter(fn).all(); } if (Array.isArray(items) && !items.length || !Object.keys(items).length) { if (isFunction(defaultValue)) { return defaultValue(); } return defaultValue; } if (Array.isArray(items)) { return items[items.length - 1]; } var keys = Object.keys(items); return items[keys[keys.length - 1]]; };chunk.js000066600000002361150444175340006227 0ustar00'use strict'; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } module.exports = function chunk(size) { var _this = this; var chunks = []; var index = 0; if (Array.isArray(this.items)) { do { var items = this.items.slice(index, index + size); var collection = new this.constructor(items); chunks.push(collection); index += size; } while (index < this.items.length); } else if (_typeof(this.items) === 'object') { var keys = Object.keys(this.items); var _loop = function _loop() { var keysOfChunk = keys.slice(index, index + size); var collection = new _this.constructor({}); keysOfChunk.forEach(function (key) { return collection.put(key, _this.items[key]); }); chunks.push(collection); index += size; }; do { _loop(); } while (index < keys.length); } else { chunks.push(new this.constructor([this.items])); } return new this.constructor(chunks); };reduce.js000066600000000710150444175340006362 0ustar00'use strict'; module.exports = function reduce(fn, carry) { var _this = this; var reduceCarry = null; if (carry !== undefined) { reduceCarry = carry; } if (Array.isArray(this.items)) { this.items.forEach(function (item) { reduceCarry = fn(reduceCarry, item); }); } else { Object.keys(this.items).forEach(function (key) { reduceCarry = fn(reduceCarry, _this.items[key], key); }); } return reduceCarry; };firstWhere.js000066600000000211150444175340007231 0ustar00'use strict'; module.exports = function firstWhere(key, operator, value) { return this.where(key, operator, value).first() || null; };skipUntil.js000066600000001677150444175340007112 0ustar00'use strict'; var _require = require('../helpers/is'), isArray = _require.isArray, isObject = _require.isObject, isFunction = _require.isFunction; module.exports = function skipUntil(valueOrFunction) { var _this = this; var previous = null; var items; var callback = function callback(value) { return value === valueOrFunction; }; if (isFunction(valueOrFunction)) { callback = valueOrFunction; } if (isArray(this.items)) { items = this.items.filter(function (item) { if (previous !== true) { previous = callback(item); } return previous; }); } if (isObject(this.items)) { items = Object.keys(this.items).reduce(function (acc, key) { if (previous !== true) { previous = callback(_this.items[key]); } if (previous !== false) { acc[key] = _this.items[key]; } return acc; }, {}); } return new this.constructor(items); };sortKeysDesc.js000066600000000374150444175340007543 0ustar00'use strict'; module.exports = function sortKeysDesc() { var _this = this; var ordered = {}; Object.keys(this.items).sort().reverse().forEach(function (key) { ordered[key] = _this.items[key]; }); return new this.constructor(ordered); };when.js000066600000000302150444175340006051 0ustar00'use strict'; module.exports = function when(value, fn, defaultFn) { if (value) { return fn(this, value); } if (defaultFn) { return defaultFn(this, value); } return this; };make.js000066600000000260150444175340006030 0ustar00'use strict'; module.exports = function make() { var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; return new this.constructor(items); };mapToDictionary.js000066600000003656150444175340010235 0ustar00'use strict'; function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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 _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } module.exports = function mapToDictionary(fn) { var collection = {}; this.items.forEach(function (item, k) { var _fn = fn(item, k), _fn2 = _slicedToArray(_fn, 2), key = _fn2[0], value = _fn2[1]; if (collection[key] === undefined) { collection[key] = [value]; } else { collection[key].push(value); } }); return new this.constructor(collection); };times.js000066600000000252150444175340006235 0ustar00'use strict'; module.exports = function times(n, fn) { for (var iterator = 1; iterator <= n; iterator += 1) { this.items.push(fn(iterator)); } return this; };zip.js000066600000000525150444175340005721 0ustar00'use strict'; module.exports = function zip(array) { var _this = this; var values = array; if (values instanceof this.constructor) { values = values.all(); } var collection = this.items.map(function (item, index) { return new _this.constructor([item, values[index]]); }); return new this.constructor(collection); };dd.js000066600000000203150444175340005477 0ustar00'use strict'; module.exports = function dd() { this.dump(); if (typeof process !== 'undefined') { process.exit(1); } };wrap.js000066600000001107150444175340006065 0ustar00'use strict'; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } module.exports = function wrap(value) { if (value instanceof this.constructor) { return value; } if (_typeof(value) === 'object') { return new this.constructor(value); } return new this.constructor([value]); };collapse.js000066600000002527150444175340006725 0ustar00'use strict'; function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } module.exports = function collapse() { var _ref; return new this.constructor((_ref = []).concat.apply(_ref, _toConsumableArray(this.items))); };except.js000066600000001323150444175340006404 0ustar00'use strict'; var variadic = require('../helpers/variadic'); module.exports = function except() { var _this = this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var properties = variadic(args); if (Array.isArray(this.items)) { var _collection = this.items.filter(function (item) { return properties.indexOf(item) === -1; }); return new this.constructor(_collection); } var collection = {}; Object.keys(this.items).forEach(function (property) { if (properties.indexOf(property) === -1) { collection[property] = _this.items[property]; } }); return new this.constructor(collection); };split.js000066600000000627150444175340006255 0ustar00'use strict'; module.exports = function split(numberOfGroups) { var itemsPerGroup = Math.round(this.items.length / numberOfGroups); var items = JSON.parse(JSON.stringify(this.items)); var collection = []; for (var iterator = 0; iterator < numberOfGroups; iterator += 1) { collection.push(new this.constructor(items.splice(0, itemsPerGroup))); } return new this.constructor(collection); };transform.js000066600000000535150444175340007133 0ustar00'use strict'; module.exports = function transform(fn) { var _this = this; if (Array.isArray(this.items)) { this.items = this.items.map(fn); } else { var collection = {}; Object.keys(this.items).forEach(function (key) { collection[key] = fn(_this.items[key], key); }); this.items = collection; } return this; };mode.js000066600000001615150444175340006044 0ustar00'use strict'; module.exports = function mode(key) { var values = []; var highestCount = 1; if (!this.items.length) { return null; } this.items.forEach(function (item) { var tempValues = values.filter(function (value) { if (key !== undefined) { return value.key === item[key]; } return value.key === item; }); if (!tempValues.length) { if (key !== undefined) { values.push({ key: item[key], count: 1 }); } else { values.push({ key: item, count: 1 }); } } else { tempValues[0].count += 1; var count = tempValues[0].count; if (count > highestCount) { highestCount = count; } } }); return values.filter(function (value) { return value.count === highestCount; }).map(function (value) { return value.key; }); };reverse.js000066600000000226150444175340006570 0ustar00'use strict'; module.exports = function reverse() { var collection = [].concat(this.items).reverse(); return new this.constructor(collection); };keys.js000066600000000335150444175340006071 0ustar00'use strict'; module.exports = function keys() { var collection = Object.keys(this.items); if (Array.isArray(this.items)) { collection = collection.map(Number); } return new this.constructor(collection); };groupBy.js000066600000001336150444175340006547 0ustar00'use strict'; var nestedValue = require('../helpers/nestedValue'); var _require = require('../helpers/is'), isFunction = _require.isFunction; module.exports = function groupBy(key) { var _this = this; var collection = {}; this.items.forEach(function (item, index) { var resolvedKey; if (isFunction(key)) { resolvedKey = key(item, index); } else if (nestedValue(item, key) || nestedValue(item, key) === 0) { resolvedKey = nestedValue(item, key); } else { resolvedKey = ''; } if (collection[resolvedKey] === undefined) { collection[resolvedKey] = new _this.constructor([]); } collection[resolvedKey].push(item); }); return new this.constructor(collection); };only.js000066600000001301150444175340006071 0ustar00'use strict'; var variadic = require('../helpers/variadic'); module.exports = function only() { var _this = this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var properties = variadic(args); if (Array.isArray(this.items)) { var _collection = this.items.filter(function (item) { return properties.indexOf(item) !== -1; }); return new this.constructor(_collection); } var collection = {}; Object.keys(this.items).forEach(function (prop) { if (properties.indexOf(prop) !== -1) { collection[prop] = _this.items[prop]; } }); return new this.constructor(collection); };sortDesc.js000066600000000130150444175340006675 0ustar00'use strict'; module.exports = function sortDesc() { return this.sort().reverse(); };pull.js000066600000000651150444175340006073 0ustar00'use strict'; var _require = require('../helpers/is'), isFunction = _require.isFunction; module.exports = function pull(key, defaultValue) { var returnValue = this.items[key] || null; if (!returnValue && defaultValue !== undefined) { if (isFunction(defaultValue)) { returnValue = defaultValue(); } else { returnValue = defaultValue; } } delete this.items[key]; return returnValue; };reject.js000066600000000227150444175340006372 0ustar00'use strict'; module.exports = function reject(fn) { return new this.constructor(this.items).filter(function (item) { return !fn(item); }); };search.js000066600000001535150444175340006366 0ustar00'use strict'; /* eslint-disable eqeqeq */ var _require = require('../helpers/is'), isArray = _require.isArray, isObject = _require.isObject, isFunction = _require.isFunction; module.exports = function search(valueOrFunction, strict) { var _this = this; var result; var find = function find(item, key) { if (isFunction(valueOrFunction)) { return valueOrFunction(_this.items[key], key); } if (strict) { return _this.items[key] === valueOrFunction; } return _this.items[key] == valueOrFunction; }; if (isArray(this.items)) { result = this.items.findIndex(find); } else if (isObject(this.items)) { result = Object.keys(this.items).find(function (key) { return find(_this.items[key], key); }); } if (result === undefined || result < 0) { return false; } return result; };dump.js000066600000000166150444175340006065 0ustar00'use strict'; module.exports = function dump() { // eslint-disable-next-line console.log(this); return this; };shuffle.js000066600000000535150444175340006554 0ustar00'use strict'; var values = require('../helpers/values'); module.exports = function shuffle() { var items = values(this.items); var j; var x; var i; for (i = items.length; i; i -= 1) { j = Math.floor(Math.random() * i); x = items[i - 1]; items[i - 1] = items[j]; items[j] = x; } this.items = items; return this; };avg.js000066600000000115150444175340005667 0ustar00'use strict'; var average = require('./average'); module.exports = average;max.js000066600000003047150444175340005706 0ustar00'use strict'; function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } module.exports = function max(key) { if (typeof key === 'string') { var filtered = this.items.filter(function (item) { return item[key] !== undefined; }); return Math.max.apply(Math, _toConsumableArray(filtered.map(function (item) { return item[key]; }))); } return Math.max.apply(Math, _toConsumableArray(this.items)); };diffAssoc.js000066600000000674150444175340007025 0ustar00'use strict'; module.exports = function diffAssoc(values) { var _this = this; var diffValues = values; if (values instanceof this.constructor) { diffValues = values.all(); } var collection = {}; Object.keys(this.items).forEach(function (key) { if (diffValues[key] === undefined || diffValues[key] !== _this.items[key]) { collection[key] = _this.items[key]; } }); return new this.constructor(collection); };mapToGroups.js000066600000003666150444175340007410 0ustar00'use strict'; function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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 _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } module.exports = function mapToGroups(fn) { var collection = {}; this.items.forEach(function (item, key) { var _fn = fn(item, key), _fn2 = _slicedToArray(_fn, 2), keyed = _fn2[0], value = _fn2[1]; if (collection[keyed] === undefined) { collection[keyed] = [value]; } else { collection[keyed].push(value); } }); return new this.constructor(collection); };crossJoin.js000066600000001512150444175340007065 0ustar00'use strict'; module.exports = function crossJoin() { function join(collection, constructor, args) { var current = args[0]; if (current instanceof constructor) { current = current.all(); } var rest = args.slice(1); var last = !rest.length; var result = []; for (var i = 0; i < current.length; i += 1) { var collectionCopy = collection.slice(); collectionCopy.push(current[i]); if (last) { result.push(collectionCopy); } else { result = result.concat(join(collectionCopy, constructor, rest)); } } return result; } for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) { values[_key] = arguments[_key]; } return new this.constructor(join([], this.constructor, [].concat([this.items], values))); };pipe.js000066600000000111150444175340006043 0ustar00'use strict'; module.exports = function pipe(fn) { return fn(this); };flatten.js000066600000002665150444175340006563 0ustar00'use strict'; var _require = require('../helpers/is'), isArray = _require.isArray, isObject = _require.isObject; module.exports = function flatten(depth) { var flattenDepth = depth || Infinity; var fullyFlattened = false; var collection = []; var flat = function flat(items) { collection = []; if (isArray(items)) { items.forEach(function (item) { if (isArray(item)) { collection = collection.concat(item); } else if (isObject(item)) { Object.keys(item).forEach(function (property) { collection = collection.concat(item[property]); }); } else { collection.push(item); } }); } else { Object.keys(items).forEach(function (property) { if (isArray(items[property])) { collection = collection.concat(items[property]); } else if (isObject(items[property])) { Object.keys(items[property]).forEach(function (prop) { collection = collection.concat(items[property][prop]); }); } else { collection.push(items[property]); } }); } fullyFlattened = collection.filter(function (item) { return isObject(item); }); fullyFlattened = fullyFlattened.length === 0; flattenDepth -= 1; }; flat(this.items); while (!fullyFlattened && flattenDepth > 0) { flat(collection); } return new this.constructor(collection); };whereIn.js000066600000000561150444175340006520 0ustar00'use strict'; var extractValues = require('../helpers/values'); var nestedValue = require('../helpers/nestedValue'); module.exports = function whereIn(key, values) { var items = extractValues(values); var collection = this.items.filter(function (item) { return items.indexOf(nestedValue(item, key)) !== -1; }); return new this.constructor(collection); };containsOneItem.js000066600000000134150444175340010212 0ustar00'use strict'; module.exports = function containsOneItem() { return this.count() === 1; };join.js000066600000000624150444175340006056 0ustar00'use strict'; module.exports = function join(glue, finalGlue) { var collection = this.values(); if (finalGlue === undefined) { return collection.implode(glue); } var count = collection.count(); if (count === 0) { return ''; } if (count === 1) { return collection.last(); } var finalItem = collection.pop(); return collection.implode(glue) + finalGlue + finalItem; };sortByDesc.js000066600000000172150444175340007176 0ustar00'use strict'; module.exports = function sortByDesc(valueOrFunction) { return this.sortBy(valueOrFunction).reverse(); };random.js000066600000000650150444175340006376 0ustar00'use strict'; var values = require('../helpers/values'); module.exports = function random() { var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; var items = values(this.items); var collection = new this.constructor(items).shuffle(); // If not a length was specified if (length !== parseInt(length, 10)) { return collection.first(); } return collection.take(length); };replaceRecursive.js000066600000005623150444175340010426 0ustar00'use strict'; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } 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; } return obj; } module.exports = function replaceRecursive(items) { var replace = function replace(target, source) { var replaced = _objectSpread({}, target); var mergedKeys = Object.keys(_objectSpread(_objectSpread({}, target), source)); mergedKeys.forEach(function (key) { if (!Array.isArray(source[key]) && _typeof(source[key]) === 'object') { replaced[key] = replace(target[key], source[key]); } else if (target[key] === undefined && source[key] !== undefined) { if (_typeof(target[key]) === 'object') { replaced[key] = _objectSpread({}, source[key]); } else { replaced[key] = source[key]; } } else if (target[key] !== undefined && source[key] === undefined) { if (_typeof(target[key]) === 'object') { replaced[key] = _objectSpread({}, target[key]); } else { replaced[key] = target[key]; } } else if (target[key] !== undefined && source[key] !== undefined) { if (_typeof(source[key]) === 'object') { replaced[key] = _objectSpread({}, source[key]); } else { replaced[key] = source[key]; } } }); return replaced; }; if (!items) { return this; } if (!Array.isArray(items) && _typeof(items) !== 'object') { return new this.constructor(replace(this.items, [items])); } if (items.constructor.name === 'Collection') { return new this.constructor(replace(this.items, items.all())); } return new this.constructor(replace(this.items, items)); };macro.js000066600000000146150444175340006217 0ustar00'use strict'; module.exports = function macro(name, fn) { this.constructor.prototype[name] = fn; };isEmpty.js000066600000000250150444175340006544 0ustar00'use strict'; module.exports = function isEmpty() { if (Array.isArray(this.items)) { return !this.items.length; } return !Object.keys(this.items).length; };mapInto.js000066600000000226150444175340006524 0ustar00'use strict'; module.exports = function mapInto(ClassName) { return this.map(function (value, key) { return new ClassName(value, key); }); };symbol.iterator.js000066600000000416150444175340010253 0ustar00'use strict'; module.exports = function SymbolIterator() { var _this = this; var index = -1; return { next: function next() { index += 1; return { value: _this.items[index], done: index >= _this.items.length }; } }; };replace.js000066600000003145150444175340006533 0ustar00'use strict'; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } 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; } return obj; } module.exports = function replace(items) { if (!items) { return this; } if (Array.isArray(items)) { var _replaced = this.items.map(function (value, index) { return items[index] || value; }); return new this.constructor(_replaced); } if (items.constructor.name === 'Collection') { var _replaced2 = _objectSpread(_objectSpread({}, this.items), items.all()); return new this.constructor(_replaced2); } var replaced = _objectSpread(_objectSpread({}, this.items), items); return new this.constructor(replaced); };nth.js000066600000000554150444175340005712 0ustar00'use strict'; var values = require('../helpers/values'); module.exports = function nth(n) { var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; var items = values(this.items); var collection = items.slice(offset).filter(function (item, index) { return index % n === 0; }); return new this.constructor(collection); };pop.js000066600000002005150444175340005710 0ustar00'use strict'; var _require = require('../helpers/is'), isArray = _require.isArray, isObject = _require.isObject; var deleteKeys = require('../helpers/deleteKeys'); module.exports = function pop() { var _this = this; var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; if (this.isEmpty()) { return null; } if (isArray(this.items)) { if (count === 1) { return this.items.pop(); } return new this.constructor(this.items.splice(-count)); } if (isObject(this.items)) { var keys = Object.keys(this.items); if (count === 1) { var key = keys[keys.length - 1]; var last = this.items[key]; deleteKeys(this.items, key); return last; } var poppedKeys = keys.slice(-count); var newObject = poppedKeys.reduce(function (acc, current) { acc[current] = _this.items[current]; return acc; }, {}); deleteKeys(this.items, poppedKeys); return new this.constructor(newObject); } return null; };sortKeys.js000066600000000356150444175340006744 0ustar00'use strict'; module.exports = function sortKeys() { var _this = this; var ordered = {}; Object.keys(this.items).sort().forEach(function (key) { ordered[key] = _this.items[key]; }); return new this.constructor(ordered); };toArray.js000066600000001404150444175340006535 0ustar00'use strict'; module.exports = function toArray() { var collectionInstance = this.constructor; function iterate(list, collection) { var childCollection = []; if (list instanceof collectionInstance) { list.items.forEach(function (i) { return iterate(i, childCollection); }); collection.push(childCollection); } else if (Array.isArray(list)) { list.forEach(function (i) { return iterate(i, childCollection); }); collection.push(childCollection); } else { collection.push(list); } } if (Array.isArray(this.items)) { var collection = []; this.items.forEach(function (items) { iterate(items, collection); }); return collection; } return this.values().all(); };each.js000066600000001044150444175340006014 0ustar00'use strict'; module.exports = function each(fn) { var stop = false; if (Array.isArray(this.items)) { var length = this.items.length; for (var index = 0; index < length && !stop; index += 1) { stop = fn(this.items[index], index, this.items) === false; } } else { var keys = Object.keys(this.items); var _length = keys.length; for (var _index = 0; _index < _length && !stop; _index += 1) { var key = keys[_index]; stop = fn(this.items[key], key, this.items) === false; } } return this; };where.js000066600000003070150444175340006227 0ustar00'use strict'; var values = require('../helpers/values'); var nestedValue = require('../helpers/nestedValue'); module.exports = function where(key, operator, value) { var comparisonOperator = operator; var comparisonValue = value; var items = values(this.items); if (operator === undefined || operator === true) { return new this.constructor(items.filter(function (item) { return nestedValue(item, key); })); } if (operator === false) { return new this.constructor(items.filter(function (item) { return !nestedValue(item, key); })); } if (value === undefined) { comparisonValue = operator; comparisonOperator = '==='; } var collection = items.filter(function (item) { switch (comparisonOperator) { case '==': return nestedValue(item, key) === Number(comparisonValue) || nestedValue(item, key) === comparisonValue.toString(); default: case '===': return nestedValue(item, key) === comparisonValue; case '!=': case '<>': return nestedValue(item, key) !== Number(comparisonValue) && nestedValue(item, key) !== comparisonValue.toString(); case '!==': return nestedValue(item, key) !== comparisonValue; case '<': return nestedValue(item, key) < comparisonValue; case '<=': return nestedValue(item, key) <= comparisonValue; case '>': return nestedValue(item, key) > comparisonValue; case '>=': return nestedValue(item, key) >= comparisonValue; } }); return new this.constructor(collection); };flip.js000066600000000625150444175340006052 0ustar00'use strict'; module.exports = function flip() { var _this = this; var collection = {}; if (Array.isArray(this.items)) { Object.keys(this.items).forEach(function (key) { collection[_this.items[key]] = Number(key); }); } else { Object.keys(this.items).forEach(function (key) { collection[_this.items[key]] = key; }); } return new this.constructor(collection); };whereNotBetween.js000066600000000422150444175340010220 0ustar00'use strict'; var nestedValue = require('../helpers/nestedValue'); module.exports = function whereNotBetween(key, values) { return this.filter(function (item) { return nestedValue(item, key) < values[0] || nestedValue(item, key) > values[values.length - 1]; }); };pad.js000066600000001246150444175340005664 0ustar00'use strict'; var clone = require('../helpers/clone'); module.exports = function pad(size, value) { var abs = Math.abs(size); var count = this.count(); if (abs <= count) { return this; } var diff = abs - count; var items = clone(this.items); var isArray = Array.isArray(this.items); var prepend = size < 0; for (var iterator = 0; iterator < diff;) { if (!isArray) { if (items[iterator] !== undefined) { diff += 1; } else { items[iterator] = value; } } else if (prepend) { items.unshift(value); } else { items.push(value); } iterator += 1; } return new this.constructor(items); };whenNotEmpty.js000066600000000701150444175340007554 0ustar00'use strict'; module.exports = function whenNotEmpty(fn, defaultFn) { if (Array.isArray(this.items) && this.items.length) { return fn(this); } if (Object.keys(this.items).length) { return fn(this); } if (defaultFn !== undefined) { if (Array.isArray(this.items) && !this.items.length) { return defaultFn(this); } if (!Object.keys(this.items).length) { return defaultFn(this); } } return this; };unwrap.js000066600000000223150444175340006426 0ustar00'use strict'; module.exports = function unwrap(value) { if (value instanceof this.constructor) { return value.all(); } return value; };take.js000066600000002012150444175340006034 0ustar00'use strict'; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } module.exports = function take(length) { var _this = this; if (!Array.isArray(this.items) && _typeof(this.items) === 'object') { var keys = Object.keys(this.items); var slicedKeys; if (length < 0) { slicedKeys = keys.slice(length); } else { slicedKeys = keys.slice(0, length); } var collection = {}; keys.forEach(function (prop) { if (slicedKeys.indexOf(prop) !== -1) { collection[prop] = _this.items[prop]; } }); return new this.constructor(collection); } if (length < 0) { return new this.constructor(this.items.slice(length)); } return new this.constructor(this.items.slice(0, length)); };first.js000066600000001466150444175340006253 0ustar00'use strict'; var _require = require('../helpers/is'), isFunction = _require.isFunction; module.exports = function first(fn, defaultValue) { if (isFunction(fn)) { var keys = Object.keys(this.items); for (var i = 0; i < keys.length; i += 1) { var key = keys[i]; var item = this.items[key]; if (fn(item, key)) { return item; } } if (isFunction(defaultValue)) { return defaultValue(); } return defaultValue; } if (Array.isArray(this.items) && this.items.length || Object.keys(this.items).length) { if (Array.isArray(this.items)) { return this.items[0]; } var firstKey = Object.keys(this.items)[0]; return this.items[firstKey]; } if (isFunction(defaultValue)) { return defaultValue(); } return defaultValue; };whereBetween.js000066600000000236150444175340007542 0ustar00'use strict'; module.exports = function whereBetween(key, values) { return this.where(key, '>=', values[0]).where(key, '<=', values[values.length - 1]); };all.js000066600000000110150444175340005655 0ustar00'use strict'; module.exports = function all() { return this.items; };whereNull.js000066600000000266150444175340007066 0ustar00'use strict'; module.exports = function whereNull() { var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; return this.where(key, '===', null); };whereNotNull.js000066600000000271150444175340007543 0ustar00'use strict'; module.exports = function whereNotNull() { var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; return this.where(key, '!==', null); };map.js000066600000000523150444175340005672 0ustar00'use strict'; module.exports = function map(fn) { var _this = this; if (Array.isArray(this.items)) { return new this.constructor(this.items.map(fn)); } var collection = {}; Object.keys(this.items).forEach(function (key) { collection[key] = fn(_this.items[key], key); }); return new this.constructor(collection); };whereNotIn.js000066600000000564150444175340007204 0ustar00'use strict'; var extractValues = require('../helpers/values'); var nestedValue = require('../helpers/nestedValue'); module.exports = function whereNotIn(key, values) { var items = extractValues(values); var collection = this.items.filter(function (item) { return items.indexOf(nestedValue(item, key)) === -1; }); return new this.constructor(collection); };undot.js000066600000003373150444175340006254 0ustar00'use strict'; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } 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; } return obj; } module.exports = function undot() { var _this = this; if (Array.isArray(this.items)) { return this; } var collection = {}; Object.keys(this.items).forEach(function (key) { if (key.indexOf('.') !== -1) { var obj = collection; key.split('.').reduce(function (acc, current, index, array) { if (!acc[current]) { acc[current] = {}; } if (index === array.length - 1) { acc[current] = _this.items[key]; } return acc[current]; }, obj); collection = _objectSpread(_objectSpread({}, collection), obj); } else { collection[key] = _this.items[key]; } }); return new this.constructor(collection); };splice.js000066600000000626150444175340006400 0ustar00'use strict'; module.exports = function splice(index, limit, replace) { var slicedCollection = this.slice(index, limit); this.items = this.diff(slicedCollection.all()).all(); if (Array.isArray(replace)) { for (var iterator = 0, length = replace.length; iterator < length; iterator += 1) { this.items.splice(index + iterator, 0, replace[iterator]); } } return slicedCollection; };toJson.js000066600000001045150444175340006371 0ustar00'use strict'; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } module.exports = function toJson() { if (_typeof(this.items) === 'object' && !Array.isArray(this.items)) { return JSON.stringify(this.all()); } return JSON.stringify(this.toArray()); };doesntContain.js000066600000000147150444175340007727 0ustar00'use strict'; module.exports = function contains(key, value) { return !this.contains(key, value); };eachSpread.js000066600000002551150444175340007157 0ustar00'use strict'; function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } module.exports = function eachSpread(fn) { this.each(function (values, key) { fn.apply(void 0, _toConsumableArray(values).concat([key])); }); return this; };some.js000066600000000120150444175340006051 0ustar00'use strict'; var contains = require('./contains'); module.exports = contains;unless.js000066600000000212150444175340006421 0ustar00'use strict'; module.exports = function when(value, fn, defaultFn) { if (!value) { fn(this); } else { defaultFn(this); } };diffKeys.js000066600000000661150444175340006664 0ustar00'use strict'; module.exports = function diffKeys(object) { var objectToDiff; if (object instanceof this.constructor) { objectToDiff = object.all(); } else { objectToDiff = object; } var objectKeys = Object.keys(objectToDiff); var remainingKeys = Object.keys(this.items).filter(function (item) { return objectKeys.indexOf(item) === -1; }); return new this.constructor(this.items).only(remainingKeys); };every.js000066600000000237150444175340006251 0ustar00'use strict'; var values = require('../helpers/values'); module.exports = function every(fn) { var items = values(this.items); return items.every(fn); };push.js000066600000000231150444175340006070 0ustar00'use strict'; module.exports = function push() { var _this$items; (_this$items = this.items).push.apply(_this$items, arguments); return this; };keyBy.js000066600000001006150444175340006175 0ustar00'use strict'; var nestedValue = require('../helpers/nestedValue'); var _require = require('../helpers/is'), isFunction = _require.isFunction; module.exports = function keyBy(key) { var collection = {}; if (isFunction(key)) { this.items.forEach(function (item) { collection[key(item)] = item; }); } else { this.items.forEach(function (item) { var keyValue = nestedValue(item, key); collection[keyValue || ''] = item; }); } return new this.constructor(collection); };average.js000066600000000615150444175340006531 0ustar00'use strict'; var _require = require('../helpers/is'), isFunction = _require.isFunction; module.exports = function average(key) { if (key === undefined) { return this.sum() / this.items.length; } if (isFunction(key)) { return new this.constructor(this.items).sum(key) / this.items.length; } return new this.constructor(this.items).pluck(key).sum() / this.items.length; };has.js000066600000000647150444175340005677 0ustar00'use strict'; var variadic = require('../helpers/variadic'); module.exports = function has() { var _this = this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var properties = variadic(args); return properties.filter(function (key) { return Object.hasOwnProperty.call(_this.items, key); }).length === properties.length; };forPage.js000066600000000645150444175340006505 0ustar00'use strict'; module.exports = function forPage(page, chunk) { var _this = this; var collection = {}; if (Array.isArray(this.items)) { collection = this.items.slice(page * chunk - chunk, page * chunk); } else { Object.keys(this.items).slice(page * chunk - chunk, page * chunk).forEach(function (key) { collection[key] = _this.items[key]; }); } return new this.constructor(collection); };countBy.js000066600000000435150444175340006542 0ustar00'use strict'; module.exports = function countBy() { var fn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (value) { return value; }; return new this.constructor(this.items).groupBy(fn).map(function (value) { return value.count(); }); };concat.js000066600000002156150444175340006370 0ustar00'use strict'; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } var clone = require('../helpers/clone'); module.exports = function concat(collectionOrArrayOrObject) { var list = collectionOrArrayOrObject; if (collectionOrArrayOrObject instanceof this.constructor) { list = collectionOrArrayOrObject.all(); } else if (_typeof(collectionOrArrayOrObject) === 'object') { list = []; Object.keys(collectionOrArrayOrObject).forEach(function (property) { list.push(collectionOrArrayOrObject[property]); }); } var collection = clone(this.items); list.forEach(function (item) { if (_typeof(item) === 'object') { Object.keys(item).forEach(function (key) { return collection.push(item[key]); }); } else { collection.push(item); } }); return new this.constructor(collection); };put.js000066600000000147150444175340005727 0ustar00'use strict'; module.exports = function put(key, value) { this.items[key] = value; return this; };diff.js000066600000000535150444175340006030 0ustar00'use strict'; module.exports = function diff(values) { var valuesToDiff; if (values instanceof this.constructor) { valuesToDiff = values.all(); } else { valuesToDiff = values; } var collection = this.items.filter(function (item) { return valuesToDiff.indexOf(item) === -1; }); return new this.constructor(collection); };slice.js000066600000000352150444175340006214 0ustar00'use strict'; module.exports = function slice(remove, limit) { var collection = this.items.slice(remove); if (limit !== undefined) { collection = collection.slice(0, limit); } return new this.constructor(collection); };duplicates.js000066600000002527150444175340007260 0ustar00'use strict'; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } module.exports = function duplicates() { var _this = this; var occuredValues = []; var duplicateValues = {}; var stringifiedValue = function stringifiedValue(value) { if (Array.isArray(value) || _typeof(value) === 'object') { return JSON.stringify(value); } return value; }; if (Array.isArray(this.items)) { this.items.forEach(function (value, index) { var valueAsString = stringifiedValue(value); if (occuredValues.indexOf(valueAsString) === -1) { occuredValues.push(valueAsString); } else { duplicateValues[index] = value; } }); } else if (_typeof(this.items) === 'object') { Object.keys(this.items).forEach(function (key) { var valueAsString = stringifiedValue(_this.items[key]); if (occuredValues.indexOf(valueAsString) === -1) { occuredValues.push(valueAsString); } else { duplicateValues[key] = _this.items[key]; } }); } return new this.constructor(duplicateValues); };forget.js000066600000000266150444175340006407 0ustar00'use strict'; module.exports = function forget(key) { if (Array.isArray(this.items)) { this.items.splice(key, 1); } else { delete this.items[key]; } return this; };isNotEmpty.js000066600000000124150444175340007225 0ustar00'use strict'; module.exports = function isNotEmpty() { return !this.isEmpty(); };mapSpread.js000066600000002546150444175340007040 0ustar00'use strict'; function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } module.exports = function mapSpread(fn) { return this.map(function (values, key) { return fn.apply(void 0, _toConsumableArray(values).concat([key])); }); };skip.js000066600000000730150444175340006063 0ustar00'use strict'; var _require = require('../helpers/is'), isObject = _require.isObject; module.exports = function skip(number) { var _this = this; if (isObject(this.items)) { return new this.constructor(Object.keys(this.items).reduce(function (accumulator, key, index) { if (index + 1 > number) { accumulator[key] = _this.items[key]; } return accumulator; }, {})); } return new this.constructor(this.items.slice(number)); };shift.js000066600000002016150444175340006231 0ustar00'use strict'; var _require = require('../helpers/is'), isArray = _require.isArray, isObject = _require.isObject; var deleteKeys = require('../helpers/deleteKeys'); module.exports = function shift() { var _this = this; var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; if (this.isEmpty()) { return null; } if (isArray(this.items)) { if (count === 1) { return this.items.shift(); } return new this.constructor(this.items.splice(0, count)); } if (isObject(this.items)) { if (count === 1) { var key = Object.keys(this.items)[0]; var value = this.items[key]; delete this.items[key]; return value; } var keys = Object.keys(this.items); var poppedKeys = keys.slice(0, count); var newObject = poppedKeys.reduce(function (acc, current) { acc[current] = _this.items[current]; return acc; }, {}); deleteKeys(this.items, poppedKeys); return new this.constructor(newObject); } return null; };pluck.js000066600000005062150444175340006236 0ustar00'use strict'; var _require = require('../helpers/is'), isArray = _require.isArray, isObject = _require.isObject; var nestedValue = require('../helpers/nestedValue'); var buildKeyPathMap = function buildKeyPathMap(items) { var keyPaths = {}; items.forEach(function (item, index) { function buildKeyPath(val, keyPath) { if (isObject(val)) { Object.keys(val).forEach(function (prop) { buildKeyPath(val[prop], "".concat(keyPath, ".").concat(prop)); }); } else if (isArray(val)) { val.forEach(function (v, i) { buildKeyPath(v, "".concat(keyPath, ".").concat(i)); }); } keyPaths[keyPath] = val; } buildKeyPath(item, index); }); return keyPaths; }; module.exports = function pluck(value, key) { if (value.indexOf('*') !== -1) { var keyPathMap = buildKeyPathMap(this.items); var keyMatches = []; if (key !== undefined) { var keyRegex = new RegExp("0.".concat(key), 'g'); var keyNumberOfLevels = "0.".concat(key).split('.').length; Object.keys(keyPathMap).forEach(function (k) { var matchingKey = k.match(keyRegex); if (matchingKey) { var match = matchingKey[0]; if (match.split('.').length === keyNumberOfLevels) { keyMatches.push(keyPathMap[match]); } } }); } var valueMatches = []; var valueRegex = new RegExp("0.".concat(value), 'g'); var valueNumberOfLevels = "0.".concat(value).split('.').length; Object.keys(keyPathMap).forEach(function (k) { var matchingValue = k.match(valueRegex); if (matchingValue) { var match = matchingValue[0]; if (match.split('.').length === valueNumberOfLevels) { valueMatches.push(keyPathMap[match]); } } }); if (key !== undefined) { var collection = {}; this.items.forEach(function (item, index) { collection[keyMatches[index] || ''] = valueMatches; }); return new this.constructor(collection); } return new this.constructor([valueMatches]); } if (key !== undefined) { var _collection = {}; this.items.forEach(function (item) { if (nestedValue(item, value) !== undefined) { _collection[item[key] || ''] = nestedValue(item, value); } else { _collection[item[key] || ''] = null; } }); return new this.constructor(_collection); } return this.map(function (item) { if (nestedValue(item, value) !== undefined) { return nestedValue(item, value); } return null; }); };get.js000066600000000674150444175340005703 0ustar00'use strict'; var _require = require('../helpers/is'), isFunction = _require.isFunction; module.exports = function get(key) { var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; if (this.items[key] !== undefined) { return this.items[key]; } if (isFunction(defaultValue)) { return defaultValue(); } if (defaultValue !== null) { return defaultValue; } return null; };takeUntil.js000066600000001703150444175340007056 0ustar00'use strict'; var _require = require('../helpers/is'), isArray = _require.isArray, isObject = _require.isObject, isFunction = _require.isFunction; module.exports = function takeUntil(valueOrFunction) { var _this = this; var previous = null; var items; var callback = function callback(value) { return value === valueOrFunction; }; if (isFunction(valueOrFunction)) { callback = valueOrFunction; } if (isArray(this.items)) { items = this.items.filter(function (item) { if (previous !== false) { previous = !callback(item); } return previous; }); } if (isObject(this.items)) { items = Object.keys(this.items).reduce(function (acc, key) { if (previous !== false) { previous = !callback(_this.items[key]); } if (previous !== false) { acc[key] = _this.items[key]; } return acc; }, {}); } return new this.constructor(items); };sort.js000066600000000631150444175340006104 0ustar00'use strict'; module.exports = function sort(fn) { var collection = [].concat(this.items); if (fn === undefined) { if (this.every(function (item) { return typeof item === 'number'; })) { collection.sort(function (a, b) { return a - b; }); } else { collection.sort(); } } else { collection.sort(fn); } return new this.constructor(collection); };prepend.js000066600000000256150444175340006555 0ustar00'use strict'; module.exports = function prepend(value, key) { if (key !== undefined) { return this.put(key, value); } this.items.unshift(value); return this; };flatMap.js000066600000000133150444175340006476 0ustar00'use strict'; module.exports = function flatMap(fn) { return this.map(fn).collapse(); };count.js000066600000000332150444175340006243 0ustar00'use strict'; module.exports = function count() { var arrayLength = 0; if (Array.isArray(this.items)) { arrayLength = this.items.length; } return Math.max(Object.keys(this.items).length, arrayLength); };whenEmpty.js000066600000000676150444175340007106 0ustar00'use strict'; module.exports = function whenEmpty(fn, defaultFn) { if (Array.isArray(this.items) && !this.items.length) { return fn(this); } if (!Object.keys(this.items).length) { return fn(this); } if (defaultFn !== undefined) { if (Array.isArray(this.items) && this.items.length) { return defaultFn(this); } if (Object.keys(this.items).length) { return defaultFn(this); } } return this; };filter.js000066600000002765150444175340006414 0ustar00'use strict'; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function falsyValue(item) { if (Array.isArray(item)) { if (item.length) { return false; } } else if (item !== undefined && item !== null && _typeof(item) === 'object') { if (Object.keys(item).length) { return false; } } else if (item) { return false; } return true; } function filterObject(func, items) { var result = {}; Object.keys(items).forEach(function (key) { if (func) { if (func(items[key], key)) { result[key] = items[key]; } } else if (!falsyValue(items[key])) { result[key] = items[key]; } }); return result; } function filterArray(func, items) { if (func) { return items.filter(func); } var result = []; for (var i = 0; i < items.length; i += 1) { var item = items[i]; if (!falsyValue(item)) { result.push(item); } } return result; } module.exports = function filter(fn) { var func = fn || false; var filteredItems = null; if (Array.isArray(this.items)) { filteredItems = filterArray(func, this.items); } else { filteredItems = filterObject(func, this.items); } return new this.constructor(filteredItems); };values.js000066600000000233150444175340006412 0ustar00'use strict'; var getValues = require('../helpers/values'); module.exports = function values() { return new this.constructor(getValues(this.items)); };tap.js000066600000000120150444175340005672 0ustar00'use strict'; module.exports = function tap(fn) { fn(this); return this; };sortBy.js000066600000001502150444175340006375 0ustar00'use strict'; var nestedValue = require('../helpers/nestedValue'); var _require = require('../helpers/is'), isFunction = _require.isFunction; module.exports = function sortBy(valueOrFunction) { var collection = [].concat(this.items); var getValue = function getValue(item) { if (isFunction(valueOrFunction)) { return valueOrFunction(item); } return nestedValue(item, valueOrFunction); }; collection.sort(function (a, b) { var valueA = getValue(a); var valueB = getValue(b); if (valueA === null || valueA === undefined) { return 1; } if (valueB === null || valueB === undefined) { return -1; } if (valueA < valueB) { return -1; } if (valueA > valueB) { return 1; } return 0; }); return new this.constructor(collection); };implode.js000066600000000311150444175340006541 0ustar00'use strict'; module.exports = function implode(key, glue) { if (glue === undefined) { return this.items.join(key); } return new this.constructor(this.items).pluck(key).all().join(glue); };takeWhile.js000066600000001701150444175340007031 0ustar00'use strict'; var _require = require('../helpers/is'), isArray = _require.isArray, isObject = _require.isObject, isFunction = _require.isFunction; module.exports = function takeWhile(valueOrFunction) { var _this = this; var previous = null; var items; var callback = function callback(value) { return value === valueOrFunction; }; if (isFunction(valueOrFunction)) { callback = valueOrFunction; } if (isArray(this.items)) { items = this.items.filter(function (item) { if (previous !== false) { previous = callback(item); } return previous; }); } if (isObject(this.items)) { items = Object.keys(this.items).reduce(function (acc, key) { if (previous !== false) { previous = callback(_this.items[key]); } if (previous !== false) { acc[key] = _this.items[key]; } return acc; }, {}); } return new this.constructor(items); };contains.js000066600000004025150444175340006734 0ustar00'use strict'; function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } var values = require('../helpers/values'); var _require = require('../helpers/is'), isFunction = _require.isFunction; module.exports = function contains(key, value) { if (value !== undefined) { if (Array.isArray(this.items)) { return this.items.filter(function (items) { return items[key] !== undefined && items[key] === value; }).length > 0; } return this.items[key] !== undefined && this.items[key] === value; } if (isFunction(key)) { return this.items.filter(function (item, index) { return key(item, index); }).length > 0; } if (Array.isArray(this.items)) { return this.items.indexOf(key) !== -1; } var keysAndValues = values(this.items); keysAndValues.push.apply(keysAndValues, _toConsumableArray(Object.keys(this.items))); return keysAndValues.indexOf(key) !== -1; };whereInstanceOf.js000066600000000221150444175340010174 0ustar00'use strict'; module.exports = function whereInstanceOf(type) { return this.filter(function (item) { return item instanceof type; }); };sole.js000066600000000745150444175340006065 0ustar00'use strict'; var _require = require('../helpers/is'), isFunction = _require.isFunction; module.exports = function sole(key, operator, value) { var collection; if (isFunction(key)) { collection = this.filter(key); } else { collection = this.where(key, operator, value); } if (collection.isEmpty()) { throw new Error('Item not found.'); } if (collection.count() > 1) { throw new Error('Multiple items found.'); } return collection.first(); };intersectByKeys.js000066600000000676150444175340010255 0ustar00'use strict'; module.exports = function intersectByKeys(values) { var _this = this; var intersectKeys = Object.keys(values); if (values instanceof this.constructor) { intersectKeys = Object.keys(values.all()); } var collection = {}; Object.keys(this.items).forEach(function (key) { if (intersectKeys.indexOf(key) !== -1) { collection[key] = _this.items[key]; } }); return new this.constructor(collection); };intersect.js000066600000000516150444175340007117 0ustar00'use strict'; module.exports = function intersect(values) { var intersectValues = values; if (values instanceof this.constructor) { intersectValues = values.all(); } var collection = this.items.filter(function (item) { return intersectValues.indexOf(item) !== -1; }); return new this.constructor(collection); };median.js000066600000000667150444175340006363 0ustar00'use strict'; module.exports = function median(key) { var length = this.items.length; if (key === undefined) { if (length % 2 === 0) { return (this.items[length / 2 - 1] + this.items[length / 2]) / 2; } return this.items[Math.floor(length / 2)]; } if (length % 2 === 0) { return (this.items[length / 2 - 1][key] + this.items[length / 2][key]) / 2; } return this.items[Math.floor(length / 2)][key]; };unique.js000066600000001466150444175340006432 0ustar00'use strict'; var _require = require('../helpers/is'), isFunction = _require.isFunction; module.exports = function unique(key) { var collection; if (key === undefined) { collection = this.items.filter(function (element, index, self) { return self.indexOf(element) === index; }); } else { collection = []; var usedKeys = []; for (var iterator = 0, length = this.items.length; iterator < length; iterator += 1) { var uniqueKey = void 0; if (isFunction(key)) { uniqueKey = key(this.items[iterator]); } else { uniqueKey = this.items[iterator][key]; } if (usedKeys.indexOf(uniqueKey) === -1) { collection.push(this.items[iterator]); usedKeys.push(uniqueKey); } } } return new this.constructor(collection); };sum.js000066600000001275150444175340005726 0ustar00'use strict'; var values = require('../helpers/values'); var _require = require('../helpers/is'), isFunction = _require.isFunction; module.exports = function sum(key) { var items = values(this.items); var total = 0; if (key === undefined) { for (var i = 0, length = items.length; i < length; i += 1) { total += parseFloat(items[i]); } } else if (isFunction(key)) { for (var _i = 0, _length = items.length; _i < _length; _i += 1) { total += parseFloat(key(items[_i])); } } else { for (var _i2 = 0, _length2 = items.length; _i2 < _length2; _i2 += 1) { total += parseFloat(items[_i2][key]); } } return parseFloat(total.toPrecision(12)); };partition.js000066600000001305150444175340007125 0ustar00'use strict'; module.exports = function partition(fn) { var _this = this; var arrays; if (Array.isArray(this.items)) { arrays = [new this.constructor([]), new this.constructor([])]; this.items.forEach(function (item) { if (fn(item) === true) { arrays[0].push(item); } else { arrays[1].push(item); } }); } else { arrays = [new this.constructor({}), new this.constructor({})]; Object.keys(this.items).forEach(function (prop) { var value = _this.items[prop]; if (fn(value) === true) { arrays[0].put(prop, value); } else { arrays[1].put(prop, value); } }); } return new this.constructor(arrays); };combine.js000066600000005466150444175340006544 0ustar00'use strict'; function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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 _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } module.exports = function combine(array) { var _this = this; var values = array; if (values instanceof this.constructor) { values = array.all(); } var collection = {}; if (Array.isArray(this.items) && Array.isArray(values)) { this.items.forEach(function (key, iterator) { collection[key] = values[iterator]; }); } else if (_typeof(this.items) === 'object' && _typeof(values) === 'object') { Object.keys(this.items).forEach(function (key, index) { collection[_this.items[key]] = values[Object.keys(values)[index]]; }); } else if (Array.isArray(this.items)) { collection[this.items[0]] = values; } else if (typeof this.items === 'string' && Array.isArray(values)) { var _values = values; var _values2 = _slicedToArray(_values, 1); collection[this.items] = _values2[0]; } else if (typeof this.items === 'string') { collection[this.items] = values; } return new this.constructor(collection); };mergeRecursive.js000066600000005026150444175340010107 0ustar00'use strict'; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } 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; } return obj; } module.exports = function mergeRecursive(items) { var merge = function merge(target, source) { var merged = {}; var mergedKeys = Object.keys(_objectSpread(_objectSpread({}, target), source)); mergedKeys.forEach(function (key) { if (target[key] === undefined && source[key] !== undefined) { merged[key] = source[key]; } else if (target[key] !== undefined && source[key] === undefined) { merged[key] = target[key]; } else if (target[key] !== undefined && source[key] !== undefined) { if (target[key] === source[key]) { merged[key] = target[key]; } else if (!Array.isArray(target[key]) && _typeof(target[key]) === 'object' && !Array.isArray(source[key]) && _typeof(source[key]) === 'object') { merged[key] = merge(target[key], source[key]); } else { merged[key] = [].concat(target[key], source[key]); } } }); return merged; }; if (!items) { return this; } if (items.constructor.name === 'Collection') { return new this.constructor(merge(this.items, items.all())); } return new this.constructor(merge(this.items, items)); };firstOrFail.js000066600000000666150444175340007351 0ustar00'use strict'; var _require = require('../helpers/is'), isFunction = _require.isFunction; module.exports = function firstOrFail(key, operator, value) { if (isFunction(key)) { return this.first(key, function () { throw new Error('Item not found.'); }); } var collection = this.where(key, operator, value); if (collection.isEmpty()) { throw new Error('Item not found.'); } return collection.first(); };skipWhile.js000066600000001701150444175340007053 0ustar00'use strict'; var _require = require('../helpers/is'), isArray = _require.isArray, isObject = _require.isObject, isFunction = _require.isFunction; module.exports = function skipWhile(valueOrFunction) { var _this = this; var previous = null; var items; var callback = function callback(value) { return value === valueOrFunction; }; if (isFunction(valueOrFunction)) { callback = valueOrFunction; } if (isArray(this.items)) { items = this.items.filter(function (item) { if (previous !== true) { previous = !callback(item); } return previous; }); } if (isObject(this.items)) { items = Object.keys(this.items).reduce(function (acc, key) { if (previous !== true) { previous = !callback(_this.items[key]); } if (previous !== false) { acc[key] = _this.items[key]; } return acc; }, {}); } return new this.constructor(items); };min.js000066600000003041150444175340005676 0ustar00'use strict'; function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } module.exports = function min(key) { if (key !== undefined) { var filtered = this.items.filter(function (item) { return item[key] !== undefined; }); return Math.min.apply(Math, _toConsumableArray(filtered.map(function (item) { return item[key]; }))); } return Math.min.apply(Math, _toConsumableArray(this.items)); };