lodash.ismatch
Advanced tools
Comparing version 4.2.0 to 4.3.0
509
index.js
@@ -9,4 +9,2 @@ /** | ||
*/ | ||
var keys = require('lodash.keys'), | ||
root = require('lodash._root'); | ||
@@ -65,2 +63,5 @@ /** Used as the size to enable large array optimizations. */ | ||
/** Used to detect unsigned integer values. */ | ||
var reIsUint = /^(?:0|[1-9]\d*)$/; | ||
/** Used to identify `toStringTag` values of typed arrays. */ | ||
@@ -82,22 +83,33 @@ var typedArrayTags = {}; | ||
/** | ||
* A specialized version of `_.map` for arrays without support for iteratee | ||
* shorthands. | ||
* | ||
* @private | ||
* @param {Array} array The array to iterate over. | ||
* @param {Function} iteratee The function invoked per iteration. | ||
* @returns {Array} Returns the new mapped array. | ||
*/ | ||
function arrayMap(array, iteratee) { | ||
var index = -1, | ||
length = array.length, | ||
result = Array(length); | ||
/** Detect free variable `global` from Node.js. */ | ||
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; | ||
while (++index < length) { | ||
result[index] = iteratee(array[index], index, array); | ||
} | ||
return result; | ||
} | ||
/** Detect free variable `self`. */ | ||
var freeSelf = typeof self == 'object' && self && self.Object === Object && self; | ||
/** Used as a reference to the global object. */ | ||
var root = freeGlobal || freeSelf || Function('return this')(); | ||
/** Detect free variable `exports`. */ | ||
var freeExports = freeGlobal && typeof exports == 'object' && exports; | ||
/** Detect free variable `module`. */ | ||
var freeModule = freeExports && typeof module == 'object' && module; | ||
/** Detect the popular CommonJS extension `module.exports`. */ | ||
var moduleExports = freeModule && freeModule.exports === freeExports; | ||
/** Detect free variable `process` from Node.js. */ | ||
var freeProcess = moduleExports && freeGlobal.process; | ||
/** Used to access faster Node.js helpers. */ | ||
var nodeUtil = (function() { | ||
try { | ||
return freeProcess && freeProcess.binding('util'); | ||
} catch (e) {} | ||
}()); | ||
/* Node.js helper references. */ | ||
var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; | ||
/** | ||
@@ -108,3 +120,3 @@ * A specialized version of `_.some` for arrays without support for iteratee | ||
* @private | ||
* @param {Array} array The array to iterate over. | ||
* @param {Array} [array] The array to iterate over. | ||
* @param {Function} predicate The function invoked per iteration. | ||
@@ -116,3 +128,3 @@ * @returns {boolean} Returns `true` if any element passes the predicate check, | ||
var index = -1, | ||
length = array.length; | ||
length = array ? array.length : 0; | ||
@@ -128,17 +140,59 @@ while (++index < length) { | ||
/** | ||
* The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array | ||
* of key-value pairs for `object` corresponding to the property names of `props`. | ||
* The base implementation of `_.property` without support for deep paths. | ||
* | ||
* @private | ||
* @param {Object} object The object to query. | ||
* @param {Array} props The property names to get values for. | ||
* @returns {Object} Returns the key-value pairs. | ||
* @param {string} key The key of the property to get. | ||
* @returns {Function} Returns the new accessor function. | ||
*/ | ||
function baseToPairs(object, props) { | ||
return arrayMap(props, function(key) { | ||
return [key, object[key]]; | ||
}); | ||
function baseProperty(key) { | ||
return function(object) { | ||
return object == null ? undefined : object[key]; | ||
}; | ||
} | ||
/** | ||
* The base implementation of `_.times` without support for iteratee shorthands | ||
* or max array length checks. | ||
* | ||
* @private | ||
* @param {number} n The number of times to invoke `iteratee`. | ||
* @param {Function} iteratee The function invoked per iteration. | ||
* @returns {Array} Returns the array of results. | ||
*/ | ||
function baseTimes(n, iteratee) { | ||
var index = -1, | ||
result = Array(n); | ||
while (++index < n) { | ||
result[index] = iteratee(index); | ||
} | ||
return result; | ||
} | ||
/** | ||
* The base implementation of `_.unary` without support for storing metadata. | ||
* | ||
* @private | ||
* @param {Function} func The function to cap arguments for. | ||
* @returns {Function} Returns the new capped function. | ||
*/ | ||
function baseUnary(func) { | ||
return function(value) { | ||
return func(value); | ||
}; | ||
} | ||
/** | ||
* Gets the value at `key` of `object`. | ||
* | ||
* @private | ||
* @param {Object} [object] The object to query. | ||
* @param {string} key The key of the property to get. | ||
* @returns {*} Returns the property value. | ||
*/ | ||
function getValue(object, key) { | ||
return object == null ? undefined : object[key]; | ||
} | ||
/** | ||
* Checks if `value` is a host object in IE < 9. | ||
@@ -180,26 +234,23 @@ * | ||
/** | ||
* Converts `set` to an array of its values. | ||
* Creates a function that invokes `func` with its first argument transformed. | ||
* | ||
* @private | ||
* @param {Object} set The set to convert. | ||
* @returns {Array} Returns the values. | ||
* @param {Function} func The function to wrap. | ||
* @param {Function} transform The argument transform. | ||
* @returns {Function} Returns the new function. | ||
*/ | ||
function setToArray(set) { | ||
var index = -1, | ||
result = Array(set.size); | ||
set.forEach(function(value) { | ||
result[++index] = value; | ||
}); | ||
return result; | ||
function overArg(func, transform) { | ||
return function(arg) { | ||
return func(transform(arg)); | ||
}; | ||
} | ||
/** | ||
* Converts `set` to its value-value pairs. | ||
* Converts `set` to an array of its values. | ||
* | ||
* @private | ||
* @param {Object} set The set to convert. | ||
* @returns {Array} Returns the value-value pairs. | ||
* @returns {Array} Returns the values. | ||
*/ | ||
function setToPairs(set) { | ||
function setToArray(set) { | ||
var index = -1, | ||
@@ -209,3 +260,3 @@ result = Array(set.size); | ||
set.forEach(function(value) { | ||
result[++index] = [value, value]; | ||
result[++index] = value; | ||
}); | ||
@@ -219,2 +270,11 @@ return result; | ||
/** Used to detect overreaching core-js shims. */ | ||
var coreJsData = root['__core-js_shared__']; | ||
/** Used to detect methods masquerading as native. */ | ||
var maskSrcKey = (function() { | ||
var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); | ||
return uid ? ('Symbol(src)_1.' + uid) : ''; | ||
}()); | ||
/** Used to resolve the decompiled source of functions. */ | ||
@@ -242,6 +302,8 @@ var funcToString = Function.prototype.toString; | ||
Uint8Array = root.Uint8Array, | ||
propertyIsEnumerable = objectProto.propertyIsEnumerable, | ||
splice = arrayProto.splice; | ||
/* Built-in method references for those with the same name as other `lodash` methods. */ | ||
var nativeGetPrototype = Object.getPrototypeOf; | ||
var nativeGetPrototype = Object.getPrototypeOf, | ||
nativeKeys = Object.keys; | ||
@@ -694,4 +756,9 @@ /* Built-in method references that are verified to be native. */ | ||
var cache = this.__data__; | ||
if (cache instanceof ListCache && cache.__data__.length == LARGE_ARRAY_SIZE) { | ||
cache = this.__data__ = new MapCache(cache.__data__); | ||
if (cache instanceof ListCache) { | ||
var pairs = cache.__data__; | ||
if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { | ||
pairs.push([key, value]); | ||
return this; | ||
} | ||
cache = this.__data__ = new MapCache(pairs); | ||
} | ||
@@ -728,6 +795,17 @@ cache.set(key, value); | ||
/** | ||
* The base implementation of `getTag`. | ||
* | ||
* @private | ||
* @param {*} value The value to query. | ||
* @returns {string} Returns the `toStringTag`. | ||
*/ | ||
function baseGetTag(value) { | ||
return objectToString.call(value); | ||
} | ||
/** | ||
* The base implementation of `_.has` without support for deep paths. | ||
* | ||
* @private | ||
* @param {Object} object The object to query. | ||
* @param {Object} [object] The object to query. | ||
* @param {Array|string} key The key to check. | ||
@@ -740,4 +818,5 @@ * @returns {boolean} Returns `true` if `key` exists, else `false`. | ||
// `hasOwnProperty` checks of them. | ||
return hasOwnProperty.call(object, key) || | ||
(typeof object == 'object' && key in object && getPrototype(object) === null); | ||
return object != null && | ||
(hasOwnProperty.call(object, key) || | ||
(typeof object == 'object' && key in object && getPrototype(object) === null)); | ||
} | ||
@@ -883,22 +962,40 @@ | ||
/** | ||
* Creates a `_.toPairs` or `_.toPairsIn` function. | ||
* The base implementation of `_.isNative` without bad shim checks. | ||
* | ||
* @private | ||
* @param {Function} keysFunc The function to get the keys of a given object. | ||
* @returns {Function} Returns the new pairs function. | ||
* @param {*} value The value to check. | ||
* @returns {boolean} Returns `true` if `value` is a native function, | ||
* else `false`. | ||
*/ | ||
function createToPairs(keysFunc) { | ||
return function(object) { | ||
var tag = getTag(object); | ||
if (tag == mapTag) { | ||
return mapToArray(object); | ||
} | ||
if (tag == setTag) { | ||
return setToPairs(object); | ||
} | ||
return baseToPairs(object, keysFunc(object)); | ||
}; | ||
function baseIsNative(value) { | ||
if (!isObject(value) || isMasked(value)) { | ||
return false; | ||
} | ||
var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor; | ||
return pattern.test(toSource(value)); | ||
} | ||
/** | ||
* The base implementation of `_.isTypedArray` without Node.js optimizations. | ||
* | ||
* @private | ||
* @param {*} value The value to check. | ||
* @returns {boolean} Returns `true` if `value` is a typed array, else `false`. | ||
*/ | ||
function baseIsTypedArray(value) { | ||
return isObjectLike(value) && | ||
isLength(value.length) && !!typedArrayTags[objectToString.call(value)]; | ||
} | ||
/** | ||
* The base implementation of `_.keys` which doesn't skip the constructor | ||
* property of prototypes or treat sparse arrays as dense. | ||
* | ||
* @private | ||
* @param {Object} object The object to query. | ||
* @returns {Array} Returns the array of property names. | ||
*/ | ||
var baseKeys = overArg(nativeKeys, Object); | ||
/** | ||
* A specialized version of `baseIsEqualDeep` for arrays with support for | ||
@@ -927,3 +1024,3 @@ * partial deep comparisons. | ||
var stacked = stack.get(array); | ||
if (stacked) { | ||
if (stacked && stack.get(other)) { | ||
return stacked == other; | ||
@@ -936,2 +1033,3 @@ } | ||
stack.set(array, other); | ||
stack.set(other, array); | ||
@@ -1015,6 +1113,6 @@ // Ignore non-index properties. | ||
case dateTag: | ||
// Coerce dates and booleans to numbers, dates to milliseconds and | ||
// booleans to `1` or `0` treating invalid dates coerced to `NaN` as | ||
// not equal. | ||
return +object == +other; | ||
case numberTag: | ||
// Coerce booleans to `1` or `0` and dates to milliseconds. | ||
// Invalid dates are coerced to `NaN`. | ||
return eq(+object, +other); | ||
@@ -1024,6 +1122,2 @@ case errorTag: | ||
case numberTag: | ||
// Treat `NaN` vs. `NaN` as equal. | ||
return (object != +object) ? other != +other : object == +other; | ||
case regexpTag: | ||
@@ -1052,6 +1146,8 @@ case stringTag: | ||
bitmask |= UNORDERED_COMPARE_FLAG; | ||
stack.set(object, other); | ||
// Recursively compare objects (susceptible to call stack limits). | ||
return equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack); | ||
stack.set(object, other); | ||
var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack); | ||
stack['delete'](object); | ||
return result; | ||
@@ -1099,3 +1195,3 @@ case symbolTag: | ||
var stacked = stack.get(object); | ||
if (stacked) { | ||
if (stacked && stack.get(other)) { | ||
return stacked == other; | ||
@@ -1105,2 +1201,3 @@ } | ||
stack.set(object, other); | ||
stack.set(other, object); | ||
@@ -1145,2 +1242,15 @@ var skipCtor = isPartial; | ||
/** | ||
* Gets the "length" property value of `object`. | ||
* | ||
* **Note:** This function is used to avoid a | ||
* [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) that affects | ||
* Safari on at least iOS 8.1-8.3 ARM64. | ||
* | ||
* @private | ||
* @param {Object} object The object to query. | ||
* @returns {*} Returns the "length" value. | ||
*/ | ||
var getLength = baseProperty('length'); | ||
/** | ||
* Gets the data for `map`. | ||
@@ -1168,7 +1278,10 @@ * | ||
function getMatchData(object) { | ||
var result = toPairs(object), | ||
var result = keys(object), | ||
length = result.length; | ||
while (length--) { | ||
result[length][2] = isStrictComparable(result[length][1]); | ||
var key = result[length], | ||
value = object[key]; | ||
result[length] = [key, value, isStrictComparable(value)]; | ||
} | ||
@@ -1187,4 +1300,4 @@ return result; | ||
function getNative(object, key) { | ||
var value = object[key]; | ||
return isNative(value) ? value : undefined; | ||
var value = getValue(object, key); | ||
return baseIsNative(value) ? value : undefined; | ||
} | ||
@@ -1199,5 +1312,3 @@ | ||
*/ | ||
function getPrototype(value) { | ||
return nativeGetPrototype(Object(value)); | ||
} | ||
var getPrototype = overArg(nativeGetPrototype, Object); | ||
@@ -1211,5 +1322,3 @@ /** | ||
*/ | ||
function getTag(value) { | ||
return objectToString.call(value); | ||
} | ||
var getTag = baseGetTag; | ||
@@ -1242,2 +1351,34 @@ // Fallback for data views, maps, sets, and weak maps in IE 11, | ||
/** | ||
* Creates an array of index keys for `object` values of arrays, | ||
* `arguments` objects, and strings, otherwise `null` is returned. | ||
* | ||
* @private | ||
* @param {Object} object The object to query. | ||
* @returns {Array|null} Returns index keys, else `null`. | ||
*/ | ||
function indexKeys(object) { | ||
var length = object ? object.length : undefined; | ||
if (isLength(length) && | ||
(isArray(object) || isString(object) || isArguments(object))) { | ||
return baseTimes(length, String); | ||
} | ||
return null; | ||
} | ||
/** | ||
* 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 `value` is suitable for use as unique object key. | ||
@@ -1257,2 +1398,27 @@ * | ||
/** | ||
* Checks if `func` has its source masked. | ||
* | ||
* @private | ||
* @param {Function} func The function to check. | ||
* @returns {boolean} Returns `true` if `func` is masked, else `false`. | ||
*/ | ||
function isMasked(func) { | ||
return !!maskSrcKey && (maskSrcKey in func); | ||
} | ||
/** | ||
* Checks if `value` is likely a prototype object. | ||
* | ||
* @private | ||
* @param {*} value The value to check. | ||
* @returns {boolean} Returns `true` if `value` is a prototype, else `false`. | ||
*/ | ||
function isPrototype(value) { | ||
var Ctor = value && value.constructor, | ||
proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; | ||
return value === proto; | ||
} | ||
/** | ||
* Checks if `value` is suitable for strict equality comparisons, i.e. `===`. | ||
@@ -1302,4 +1468,4 @@ * | ||
* | ||
* var object = { 'user': 'fred' }; | ||
* var other = { 'user': 'fred' }; | ||
* var object = { 'a': 1 }; | ||
* var other = { 'a': 1 }; | ||
* | ||
@@ -1326,3 +1492,3 @@ * _.eq(object, object); | ||
/** | ||
* Checks if `value` is classified as an `Array` object. | ||
* Checks if `value` is likely an `arguments` object. | ||
* | ||
@@ -1332,9 +1498,31 @@ * @static | ||
* @since 0.1.0 | ||
* @type {Function} | ||
* @category Lang | ||
* @param {*} value The value to check. | ||
* @returns {boolean} Returns `true` if `value` is correctly classified, | ||
* @returns {boolean} Returns `true` if `value` is an `arguments` object, | ||
* else `false`. | ||
* @example | ||
* | ||
* _.isArguments(function() { return arguments; }()); | ||
* // => true | ||
* | ||
* _.isArguments([1, 2, 3]); | ||
* // => false | ||
*/ | ||
function isArguments(value) { | ||
// Safari 8.1 incorrectly makes `arguments.callee` enumerable in strict mode. | ||
return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && | ||
(!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag); | ||
} | ||
/** | ||
* Checks if `value` is classified as an `Array` object. | ||
* | ||
* @static | ||
* @memberOf _ | ||
* @since 0.1.0 | ||
* @category Lang | ||
* @param {*} value The value to check. | ||
* @returns {boolean} Returns `true` if `value` is an array, else `false`. | ||
* @example | ||
* | ||
* _.isArray([1, 2, 3]); | ||
@@ -1355,2 +1543,60 @@ * // => true | ||
/** | ||
* Checks if `value` is array-like. A value is considered array-like if it's | ||
* not a function and has a `value.length` that's an integer greater than or | ||
* equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. | ||
* | ||
* @static | ||
* @memberOf _ | ||
* @since 4.0.0 | ||
* @category Lang | ||
* @param {*} value The value to check. | ||
* @returns {boolean} Returns `true` if `value` is array-like, else `false`. | ||
* @example | ||
* | ||
* _.isArrayLike([1, 2, 3]); | ||
* // => true | ||
* | ||
* _.isArrayLike(document.body.children); | ||
* // => true | ||
* | ||
* _.isArrayLike('abc'); | ||
* // => true | ||
* | ||
* _.isArrayLike(_.noop); | ||
* // => false | ||
*/ | ||
function isArrayLike(value) { | ||
return value != null && isLength(getLength(value)) && !isFunction(value); | ||
} | ||
/** | ||
* This method is like `_.isArrayLike` except that it also checks if `value` | ||
* is an object. | ||
* | ||
* @static | ||
* @memberOf _ | ||
* @since 4.0.0 | ||
* @category Lang | ||
* @param {*} value The value to check. | ||
* @returns {boolean} Returns `true` if `value` is an array-like object, | ||
* else `false`. | ||
* @example | ||
* | ||
* _.isArrayLikeObject([1, 2, 3]); | ||
* // => true | ||
* | ||
* _.isArrayLikeObject(document.body.children); | ||
* // => true | ||
* | ||
* _.isArrayLikeObject('abc'); | ||
* // => false | ||
* | ||
* _.isArrayLikeObject(_.noop); | ||
* // => false | ||
*/ | ||
function isArrayLikeObject(value) { | ||
return isObjectLike(value) && isArrayLike(value); | ||
} | ||
/** | ||
* Checks if `value` is classified as a `Function` object. | ||
@@ -1363,4 +1609,3 @@ * | ||
* @param {*} value The value to check. | ||
* @returns {boolean} Returns `true` if `value` is correctly classified, | ||
* else `false`. | ||
* @returns {boolean} Returns `true` if `value` is a function, else `false`. | ||
* @example | ||
@@ -1488,8 +1733,8 @@ * | ||
* | ||
* var object = { 'user': 'fred', 'age': 40 }; | ||
* var object = { 'a': 1, 'b': 2 }; | ||
* | ||
* _.isMatch(object, { 'age': 40 }); | ||
* _.isMatch(object, { 'b': 2 }); | ||
* // => true | ||
* | ||
* _.isMatch(object, { 'age': 36 }); | ||
* _.isMatch(object, { 'b': 1 }); | ||
* // => false | ||
@@ -1502,25 +1747,21 @@ */ | ||
/** | ||
* Checks if `value` is a native function. | ||
* Checks if `value` is classified as a `String` primitive or object. | ||
* | ||
* @static | ||
* @since 0.1.0 | ||
* @memberOf _ | ||
* @since 3.0.0 | ||
* @category Lang | ||
* @param {*} value The value to check. | ||
* @returns {boolean} Returns `true` if `value` is a native function, | ||
* else `false`. | ||
* @returns {boolean} Returns `true` if `value` is a string, else `false`. | ||
* @example | ||
* | ||
* _.isNative(Array.prototype.push); | ||
* _.isString('abc'); | ||
* // => true | ||
* | ||
* _.isNative(_); | ||
* _.isString(1); | ||
* // => false | ||
*/ | ||
function isNative(value) { | ||
if (!isObject(value)) { | ||
return false; | ||
} | ||
var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor; | ||
return pattern.test(toSource(value)); | ||
function isString(value) { | ||
return typeof value == 'string' || | ||
(!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag); | ||
} | ||
@@ -1536,4 +1777,3 @@ | ||
* @param {*} value The value to check. | ||
* @returns {boolean} Returns `true` if `value` is correctly classified, | ||
* else `false`. | ||
* @returns {boolean} Returns `true` if `value` is a typed array, else `false`. | ||
* @example | ||
@@ -1547,19 +1787,17 @@ * | ||
*/ | ||
function isTypedArray(value) { | ||
return isObjectLike(value) && | ||
isLength(value.length) && !!typedArrayTags[objectToString.call(value)]; | ||
} | ||
var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; | ||
/** | ||
* Creates an array of own enumerable string keyed-value pairs for `object` | ||
* which can be consumed by `_.fromPairs`. If `object` is a map or set, its | ||
* entries are returned. | ||
* Creates an array of the own enumerable property names of `object`. | ||
* | ||
* **Note:** Non-object values are coerced to objects. See the | ||
* [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) | ||
* for more details. | ||
* | ||
* @static | ||
* @since 0.1.0 | ||
* @memberOf _ | ||
* @since 4.0.0 | ||
* @alias entries | ||
* @category Object | ||
* @param {Object} object The object to query. | ||
* @returns {Array} Returns the key-value pairs. | ||
* @returns {Array} Returns the array of property names. | ||
* @example | ||
@@ -1574,7 +1812,28 @@ * | ||
* | ||
* _.toPairs(new Foo); | ||
* // => [['a', 1], ['b', 2]] (iteration order is not guaranteed) | ||
* _.keys(new Foo); | ||
* // => ['a', 'b'] (iteration order is not guaranteed) | ||
* | ||
* _.keys('hi'); | ||
* // => ['0', '1'] | ||
*/ | ||
var toPairs = createToPairs(keys); | ||
function keys(object) { | ||
var isProto = isPrototype(object); | ||
if (!(isProto || isArrayLike(object))) { | ||
return baseKeys(object); | ||
} | ||
var indexes = indexKeys(object), | ||
skipIndexes = !!indexes, | ||
result = indexes || [], | ||
length = result.length; | ||
for (var key in object) { | ||
if (baseHas(object, key) && | ||
!(skipIndexes && (key == 'length' || isIndex(key, length))) && | ||
!(isProto && key == 'constructor')) { | ||
result.push(key); | ||
} | ||
} | ||
return result; | ||
} | ||
module.exports = isMatch; |
{ | ||
"name": "lodash.ismatch", | ||
"version": "4.2.0", | ||
"version": "4.3.0", | ||
"description": "The lodash method `_.isMatch` exported as a module.", | ||
@@ -16,7 +16,3 @@ "homepage": "https://lodash.com/", | ||
"repository": "lodash/lodash", | ||
"scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" }, | ||
"dependencies": { | ||
"lodash._root": "~3.0.0", | ||
"lodash.keys": "^4.0.0" | ||
} | ||
"scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" } | ||
} |
@@ -1,2 +0,2 @@ | ||
# lodash.ismatch v4.2.0 | ||
# lodash.ismatch v4.3.0 | ||
@@ -18,2 +18,2 @@ The [lodash](https://lodash.com/) method `_.isMatch` exported as a [Node.js](https://nodejs.org/) module. | ||
See the [documentation](https://lodash.com/docs#isMatch) or [package source](https://github.com/lodash/lodash/blob/4.2.0-npm-packages/lodash.ismatch) for more details. | ||
See the [documentation](https://lodash.com/docs#isMatch) or [package source](https://github.com/lodash/lodash/blob/4.3.0-npm-packages/lodash.ismatch) for more details. |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
51725
0
1650
- Removedlodash._root@~3.0.0
- Removedlodash.keys@^4.0.0
- Removedlodash._root@3.0.1(transitive)
- Removedlodash.keys@4.2.0(transitive)