Compare commits

...

3 Commits

Author SHA1 Message Date
John-David Dalton
005ee66119 Bump to v3.1.7. 2018-02-03 19:13:28 -08:00
John-David Dalton
25b977817b Bump to v3.1.6. 2018-02-03 19:13:28 -08:00
jdalton
d2949f0931 Bump to v3.1.5. 2018-02-03 19:13:28 -08:00
14 changed files with 168 additions and 96 deletions

View File

@@ -1,4 +1,4 @@
# lodash v3.1.4 # lodash v3.1.7
The [lodash](https://lodash.com/) library exported as [npm packages](https://www.npmjs.com/browse/keyword/lodash-modularized) per method. The [lodash](https://lodash.com/) library exported as [npm packages](https://www.npmjs.com/browse/keyword/lodash-modularized) per method.

View File

@@ -1,4 +1,4 @@
# lodash._basematches v3.1.4 # lodash._basematches v3.1.5
The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodashs](https://lodash.com/) internal `baseMatches` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodashs](https://lodash.com/) internal `baseMatches` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
@@ -17,4 +17,4 @@ In Node.js/io.js:
var baseMatches = require('lodash._basematches'); var baseMatches = require('lodash._basematches');
``` ```
See the [package source](https://github.com/lodash/lodash/blob/3.1.4-npm-packages/lodash._basematches) for more details. See the [package source](https://github.com/lodash/lodash/blob/3.1.5-npm-packages/lodash._basematches) for more details.

View File

@@ -1,5 +1,5 @@
/** /**
* lodash 3.1.4 (Custom Build) <https://lodash.com/> * lodash 3.1.5 (Custom Build) <https://lodash.com/>
* Build: `lodash modern modularize exports="npm" -o ./` * Build: `lodash modern modularize exports="npm" -o ./`
* Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/> * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
@@ -58,7 +58,7 @@ function baseMatches(source) {
* equality comparisons, else `false`. * equality comparisons, else `false`.
*/ */
function isStrictComparable(value) { function isStrictComparable(value) {
return value === value && (value === 0 ? ((1 / value) > 0) : !isObject(value)); return value === value && !isObject(value);
} }
/** /**

View File

@@ -1,6 +1,6 @@
{ {
"name": "lodash._basematches", "name": "lodash._basematches",
"version": "3.1.4", "version": "3.1.5",
"description": "The modern build of lodashs internal `baseMatches` as a module.", "description": "The modern build of lodashs internal `baseMatches` as a module.",
"homepage": "https://lodash.com/", "homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg", "icon": "https://lodash.com/icon.svg",

View File

@@ -1,4 +1,4 @@
# lodash.random v3.1.4 # lodash.random v3.1.7
The [lodash](https://lodash.com/) method `_.random` exported as a [Node.js](https://nodejs.org/) module. The [lodash](https://lodash.com/) method `_.random` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var random = require('lodash.random'); var random = require('lodash.random');
``` ```
See the [documentation](https://lodash.com/docs#random) or [package source](https://github.com/lodash/lodash/blob/3.1.4-npm-packages/lodash.random) for more details. See the [documentation](https://lodash.com/docs#random) or [package source](https://github.com/lodash/lodash/blob/3.1.7-npm-packages/lodash.random) for more details.

View File

@@ -1,5 +1,5 @@
/** /**
* lodash 3.1.4 (Custom Build) <https://lodash.com/> * lodash (Custom Build) <https://lodash.com/>
* Build: `lodash modularize exports="npm" -o ./` * Build: `lodash modularize exports="npm" -o ./`
* Copyright jQuery Foundation and other contributors <https://jquery.org/> * Copyright jQuery Foundation and other contributors <https://jquery.org/>
* Released under MIT license <https://lodash.com/license> * Released under MIT license <https://lodash.com/license>
@@ -8,7 +8,9 @@
*/ */
/** Used as references for various `Number` constants. */ /** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991, var INFINITY = 1 / 0,
MAX_SAFE_INTEGER = 9007199254740991,
MAX_INTEGER = 1.7976931348623157e+308,
NAN = 0 / 0; NAN = 0 / 0;
/** `Object#toString` result references. */ /** `Object#toString` result references. */
@@ -36,17 +38,16 @@ var freeParseFloat = parseFloat,
freeParseInt = parseInt; freeParseInt = parseInt;
/** /**
* Checks if `value` is a valid array-like index. * The base implementation of `_.property` without support for deep paths.
* *
* @private * @private
* @param {*} value The value to check. * @param {string} key The key of the property to get.
* @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. * @returns {Function} Returns the new accessor function.
* @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
*/ */
function isIndex(value, length) { function baseProperty(key) {
value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; return function(object) {
length = length == null ? MAX_SAFE_INTEGER : length; return object == null ? undefined : object[key];
return value > -1 && value % 1 == 0 && value < length; };
} }
/** Used for built-in method references. */ /** Used for built-in method references. */
@@ -64,19 +65,6 @@ var nativeFloor = Math.floor,
nativeMin = Math.min, nativeMin = Math.min,
nativeRandom = Math.random; nativeRandom = Math.random;
/**
* The base implementation of `_.property` without support for deep paths.
*
* @private
* @param {string} key The key of the property to get.
* @returns {Function} Returns the new function.
*/
function baseProperty(key) {
return function(object) {
return object == null ? undefined : object[key];
};
}
/** /**
* The base implementation of `_.random` without support for returning * The base implementation of `_.random` without support for returning
* floating-point numbers. * floating-point numbers.
@@ -103,6 +91,21 @@ function baseRandom(lower, upper) {
*/ */
var getLength = baseProperty('length'); var getLength = baseProperty('length');
/**
* Checks if `value` is a valid array-like index.
*
* @private
* @param {*} value The value to check.
* @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
* @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
*/
function isIndex(value, length) {
length = length == null ? MAX_SAFE_INTEGER : length;
return !!length &&
(typeof value == 'number' || reIsUint.test(value)) &&
(value > -1 && value % 1 == 0 && value < length);
}
/** /**
* Checks if the given arguments are from an iteratee call. * Checks if the given arguments are from an iteratee call.
* *
@@ -141,8 +144,8 @@ function isIterateeCall(value, index, object) {
* @returns {boolean} Returns `true` if the values are equivalent, else `false`. * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
* @example * @example
* *
* var object = { 'user': 'fred' }; * var object = { 'a': 1 };
* var other = { 'user': 'fred' }; * var other = { 'a': 1 };
* *
* _.eq(object, object); * _.eq(object, object);
* // => true * // => true
@@ -200,8 +203,7 @@ function isArrayLike(value) {
* @since 0.1.0 * @since 0.1.0
* @category Lang * @category Lang
* @param {*} value The value to check. * @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is correctly classified, * @returns {boolean} Returns `true` if `value` is a function, else `false`.
* else `false`.
* @example * @example
* *
* _.isFunction(_); * _.isFunction(_);
@@ -316,8 +318,7 @@ function isObjectLike(value) {
* @since 4.0.0 * @since 4.0.0
* @category Lang * @category Lang
* @param {*} value The value to check. * @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is correctly classified, * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
* else `false`.
* @example * @example
* *
* _.isSymbol(Symbol.iterator); * _.isSymbol(Symbol.iterator);
@@ -331,6 +332,41 @@ function isSymbol(value) {
(isObjectLike(value) && objectToString.call(value) == symbolTag); (isObjectLike(value) && objectToString.call(value) == symbolTag);
} }
/**
* Converts `value` to a finite number.
*
* @static
* @memberOf _
* @since 4.12.0
* @category Lang
* @param {*} value The value to convert.
* @returns {number} Returns the converted number.
* @example
*
* _.toFinite(3.2);
* // => 3.2
*
* _.toFinite(Number.MIN_VALUE);
* // => 5e-324
*
* _.toFinite(Infinity);
* // => 1.7976931348623157e+308
*
* _.toFinite('3.2');
* // => 3.2
*/
function toFinite(value) {
if (!value) {
return value === 0 ? value : 0;
}
value = toNumber(value);
if (value === INFINITY || value === -INFINITY) {
var sign = (value < 0 ? -1 : 1);
return sign * MAX_INTEGER;
}
return value === value ? value : 0;
}
/** /**
* Converts `value` to a number. * Converts `value` to a number.
* *
@@ -342,8 +378,8 @@ function isSymbol(value) {
* @returns {number} Returns the number. * @returns {number} Returns the number.
* @example * @example
* *
* _.toNumber(3); * _.toNumber(3.2);
* // => 3 * // => 3.2
* *
* _.toNumber(Number.MIN_VALUE); * _.toNumber(Number.MIN_VALUE);
* // => 5e-324 * // => 5e-324
@@ -351,8 +387,8 @@ function isSymbol(value) {
* _.toNumber(Infinity); * _.toNumber(Infinity);
* // => Infinity * // => Infinity
* *
* _.toNumber('3'); * _.toNumber('3.2');
* // => 3 * // => 3.2
*/ */
function toNumber(value) { function toNumber(value) {
if (typeof value == 'number') { if (typeof value == 'number') {
@@ -425,12 +461,12 @@ function random(lower, upper, floating) {
upper = 1; upper = 1;
} }
else { else {
lower = toNumber(lower) || 0; lower = toFinite(lower);
if (upper === undefined) { if (upper === undefined) {
upper = lower; upper = lower;
lower = 0; lower = 0;
} else { } else {
upper = toNumber(upper) || 0; upper = toFinite(upper);
} }
} }
if (lower > upper) { if (lower > upper) {

View File

@@ -1,6 +1,6 @@
{ {
"name": "lodash.random", "name": "lodash.random",
"version": "3.1.4", "version": "3.1.7",
"description": "The lodash method `_.random` exported as a module.", "description": "The lodash method `_.random` exported as a module.",
"homepage": "https://lodash.com/", "homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg", "icon": "https://lodash.com/icon.svg",

View File

@@ -1,4 +1,4 @@
# lodash.range v3.1.4 # lodash.range v3.1.7
The [lodash](https://lodash.com/) method `_.range` exported as a [Node.js](https://nodejs.org/) module. The [lodash](https://lodash.com/) method `_.range` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var range = require('lodash.range'); var range = require('lodash.range');
``` ```
See the [documentation](https://lodash.com/docs#range) or [package source](https://github.com/lodash/lodash/blob/3.1.4-npm-packages/lodash.range) for more details. See the [documentation](https://lodash.com/docs#range) or [package source](https://github.com/lodash/lodash/blob/3.1.7-npm-packages/lodash.range) for more details.

View File

@@ -1,5 +1,5 @@
/** /**
* lodash 3.1.4 (Custom Build) <https://lodash.com/> * lodash (Custom Build) <https://lodash.com/>
* Build: `lodash modularize exports="npm" -o ./` * Build: `lodash modularize exports="npm" -o ./`
* Copyright jQuery Foundation and other contributors <https://jquery.org/> * Copyright jQuery Foundation and other contributors <https://jquery.org/>
* Released under MIT license <https://lodash.com/license> * Released under MIT license <https://lodash.com/license>
@@ -8,7 +8,9 @@
*/ */
/** Used as references for various `Number` constants. */ /** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991, var INFINITY = 1 / 0,
MAX_SAFE_INTEGER = 9007199254740991,
MAX_INTEGER = 1.7976931348623157e+308,
NAN = 0 / 0; NAN = 0 / 0;
/** `Object#toString` result references. */ /** `Object#toString` result references. */
@@ -35,17 +37,16 @@ var reIsUint = /^(?:0|[1-9]\d*)$/;
var freeParseInt = parseInt; var freeParseInt = parseInt;
/** /**
* Checks if `value` is a valid array-like index. * The base implementation of `_.property` without support for deep paths.
* *
* @private * @private
* @param {*} value The value to check. * @param {string} key The key of the property to get.
* @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. * @returns {Function} Returns the new accessor function.
* @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
*/ */
function isIndex(value, length) { function baseProperty(key) {
value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; return function(object) {
length = length == null ? MAX_SAFE_INTEGER : length; return object == null ? undefined : object[key];
return value > -1 && value % 1 == 0 && value < length; };
} }
/** Used for built-in method references. */ /** Used for built-in method references. */
@@ -62,29 +63,16 @@ var objectToString = objectProto.toString;
var nativeCeil = Math.ceil, var nativeCeil = Math.ceil,
nativeMax = Math.max; nativeMax = Math.max;
/**
* The base implementation of `_.property` without support for deep paths.
*
* @private
* @param {string} key The key of the property to get.
* @returns {Function} Returns the new function.
*/
function baseProperty(key) {
return function(object) {
return object == null ? undefined : object[key];
};
}
/** /**
* The base implementation of `_.range` and `_.rangeRight` which doesn't * The base implementation of `_.range` and `_.rangeRight` which doesn't
* coerce arguments to numbers. * coerce arguments.
* *
* @private * @private
* @param {number} start The start of the range. * @param {number} start The start of the range.
* @param {number} end The end of the range. * @param {number} end The end of the range.
* @param {number} step The value to increment or decrement by. * @param {number} step The value to increment or decrement by.
* @param {boolean} [fromRight] Specify iterating from right to left. * @param {boolean} [fromRight] Specify iterating from right to left.
* @returns {Array} Returns the new array of numbers. * @returns {Array} Returns the range of numbers.
*/ */
function baseRange(start, end, step, fromRight) { function baseRange(start, end, step, fromRight) {
var index = -1, var index = -1,
@@ -111,15 +99,14 @@ function createRange(fromRight) {
end = step = undefined; end = step = undefined;
} }
// Ensure the sign of `-0` is preserved. // Ensure the sign of `-0` is preserved.
start = toNumber(start); start = toFinite(start);
start = start === start ? start : 0;
if (end === undefined) { if (end === undefined) {
end = start; end = start;
start = 0; start = 0;
} else { } else {
end = toNumber(end) || 0; end = toFinite(end);
} }
step = step === undefined ? (start < end ? 1 : -1) : (toNumber(step) || 0); step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);
return baseRange(start, end, step, fromRight); return baseRange(start, end, step, fromRight);
}; };
} }
@@ -137,6 +124,21 @@ function createRange(fromRight) {
*/ */
var getLength = baseProperty('length'); var getLength = baseProperty('length');
/**
* Checks if `value` is a valid array-like index.
*
* @private
* @param {*} value The value to check.
* @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
* @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
*/
function isIndex(value, length) {
length = length == null ? MAX_SAFE_INTEGER : length;
return !!length &&
(typeof value == 'number' || reIsUint.test(value)) &&
(value > -1 && value % 1 == 0 && value < length);
}
/** /**
* Checks if the given arguments are from an iteratee call. * Checks if the given arguments are from an iteratee call.
* *
@@ -175,8 +177,8 @@ function isIterateeCall(value, index, object) {
* @returns {boolean} Returns `true` if the values are equivalent, else `false`. * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
* @example * @example
* *
* var object = { 'user': 'fred' }; * var object = { 'a': 1 };
* var other = { 'user': 'fred' }; * var other = { 'a': 1 };
* *
* _.eq(object, object); * _.eq(object, object);
* // => true * // => true
@@ -234,8 +236,7 @@ function isArrayLike(value) {
* @since 0.1.0 * @since 0.1.0
* @category Lang * @category Lang
* @param {*} value The value to check. * @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is correctly classified, * @returns {boolean} Returns `true` if `value` is a function, else `false`.
* else `false`.
* @example * @example
* *
* _.isFunction(_); * _.isFunction(_);
@@ -350,8 +351,7 @@ function isObjectLike(value) {
* @since 4.0.0 * @since 4.0.0
* @category Lang * @category Lang
* @param {*} value The value to check. * @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is correctly classified, * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
* else `false`.
* @example * @example
* *
* _.isSymbol(Symbol.iterator); * _.isSymbol(Symbol.iterator);
@@ -365,6 +365,41 @@ function isSymbol(value) {
(isObjectLike(value) && objectToString.call(value) == symbolTag); (isObjectLike(value) && objectToString.call(value) == symbolTag);
} }
/**
* Converts `value` to a finite number.
*
* @static
* @memberOf _
* @since 4.12.0
* @category Lang
* @param {*} value The value to convert.
* @returns {number} Returns the converted number.
* @example
*
* _.toFinite(3.2);
* // => 3.2
*
* _.toFinite(Number.MIN_VALUE);
* // => 5e-324
*
* _.toFinite(Infinity);
* // => 1.7976931348623157e+308
*
* _.toFinite('3.2');
* // => 3.2
*/
function toFinite(value) {
if (!value) {
return value === 0 ? value : 0;
}
value = toNumber(value);
if (value === INFINITY || value === -INFINITY) {
var sign = (value < 0 ? -1 : 1);
return sign * MAX_INTEGER;
}
return value === value ? value : 0;
}
/** /**
* Converts `value` to a number. * Converts `value` to a number.
* *
@@ -376,8 +411,8 @@ function isSymbol(value) {
* @returns {number} Returns the number. * @returns {number} Returns the number.
* @example * @example
* *
* _.toNumber(3); * _.toNumber(3.2);
* // => 3 * // => 3.2
* *
* _.toNumber(Number.MIN_VALUE); * _.toNumber(Number.MIN_VALUE);
* // => 5e-324 * // => 5e-324
@@ -385,8 +420,8 @@ function isSymbol(value) {
* _.toNumber(Infinity); * _.toNumber(Infinity);
* // => Infinity * // => Infinity
* *
* _.toNumber('3'); * _.toNumber('3.2');
* // => 3 * // => 3.2
*/ */
function toNumber(value) { function toNumber(value) {
if (typeof value == 'number') { if (typeof value == 'number') {
@@ -425,7 +460,8 @@ function toNumber(value) {
* @param {number} [start=0] The start of the range. * @param {number} [start=0] The start of the range.
* @param {number} end The end of the range. * @param {number} end The end of the range.
* @param {number} [step=1] The value to increment or decrement by. * @param {number} [step=1] The value to increment or decrement by.
* @returns {Array} Returns the new array of numbers. * @returns {Array} Returns the range of numbers.
* @see _.inRange, _.rangeRight
* @example * @example
* *
* _.range(4); * _.range(4);

View File

@@ -1,6 +1,6 @@
{ {
"name": "lodash.range", "name": "lodash.range",
"version": "3.1.4", "version": "3.1.7",
"description": "The lodash method `_.range` exported as a module.", "description": "The lodash method `_.range` exported as a module.",
"homepage": "https://lodash.com/", "homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg", "icon": "https://lodash.com/icon.svg",

View File

@@ -1,4 +1,4 @@
# lodash.sortby v3.1.4 # lodash.sortby v3.1.5
The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodashs](https://lodash.com/) `_.sortBy` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodashs](https://lodash.com/) `_.sortBy` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
@@ -17,4 +17,4 @@ In Node.js/io.js:
var sortBy = require('lodash.sortby'); var sortBy = require('lodash.sortby');
``` ```
See the [documentation](https://lodash.com/docs#sortBy) or [package source](https://github.com/lodash/lodash/blob/3.1.4-npm-packages/lodash.sortby) for more details. See the [documentation](https://lodash.com/docs#sortBy) or [package source](https://github.com/lodash/lodash/blob/3.1.5-npm-packages/lodash.sortby) for more details.

View File

@@ -1,5 +1,5 @@
/** /**
* lodash 3.1.4 (Custom Build) <https://lodash.com/> * lodash 3.1.5 (Custom Build) <https://lodash.com/>
* Build: `lodash modern modularize exports="npm" -o ./` * Build: `lodash modern modularize exports="npm" -o ./`
* Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/> * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
@@ -17,8 +17,8 @@ var baseCallback = require('lodash._basecallback'),
* sort them in ascending order. * sort them in ascending order.
* *
* @private * @private
* @param {Object} object The object to compare to `other`. * @param {Object} object The object to compare.
* @param {Object} other The object to compare to `object`. * @param {Object} other The other object to compare.
* @returns {number} Returns the sort order indicator for `object`. * @returns {number} Returns the sort order indicator for `object`.
*/ */
function compareAscending(object, other) { function compareAscending(object, other) {
@@ -26,7 +26,7 @@ function compareAscending(object, other) {
} }
/** /**
* Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
* of an array-like value. * of an array-like value.
*/ */
var MAX_SAFE_INTEGER = 9007199254740991; var MAX_SAFE_INTEGER = 9007199254740991;
@@ -89,7 +89,7 @@ function isArrayLike(value) {
/** /**
* Checks if `value` is a valid array-like length. * Checks if `value` is a valid array-like length.
* *
* **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength). * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
* *
* @private * @private
* @param {*} value The value to check. * @param {*} value The value to check.
@@ -152,7 +152,7 @@ function sortBy(collection, iteratee, thisArg) {
return []; return [];
} }
if (thisArg && isIterateeCall(collection, iteratee, thisArg)) { if (thisArg && isIterateeCall(collection, iteratee, thisArg)) {
iteratee = null; iteratee = undefined;
} }
var index = -1; var index = -1;
iteratee = baseCallback(iteratee, thisArg, 3); iteratee = baseCallback(iteratee, thisArg, 3);

View File

@@ -1,6 +1,6 @@
{ {
"name": "lodash.sortby", "name": "lodash.sortby",
"version": "3.1.4", "version": "3.1.5",
"description": "The modern build of lodashs `_.sortBy` as a module.", "description": "The modern build of lodashs `_.sortBy` as a module.",
"homepage": "https://lodash.com/", "homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg", "icon": "https://lodash.com/icon.svg",