@@ -69949,15 +69949,16 @@ exports.Deprecation = Deprecation;
6994969949 var undefined;
6995069950
6995169951 /** Used as the semantic version number. */
69952- var VERSION = '4.17.21 ';
69952+ var VERSION = '4.18.1 ';
6995369953
6995469954 /** Used as the size to enable large array optimizations. */
6995569955 var LARGE_ARRAY_SIZE = 200;
6995669956
6995769957 /** Error message constants. */
6995869958 var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',
6995969959 FUNC_ERROR_TEXT = 'Expected a function',
69960- INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';
69960+ INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`',
69961+ INVALID_TEMPL_IMPORTS_ERROR_TEXT = 'Invalid `imports` option passed into `_.template`';
6996169962
6996269963 /** Used to stand-in for `undefined` hash values. */
6996369964 var HASH_UNDEFINED = '__lodash_hash_undefined__';
@@ -71689,6 +71690,10 @@ exports.Deprecation = Deprecation;
7168971690 * embedded Ruby (ERB) as well as ES2015 template strings. Change the
7169071691 * following template settings to use alternative delimiters.
7169171692 *
71693+ * **Security:** See
71694+ * [threat model](https://github.com/lodash/lodash/blob/main/threat-model.md)
71695+ * — `_.template` is insecure and will be removed in v5.
71696+ *
7169271697 * @static
7169371698 * @memberOf _
7169471699 * @type {Object}
@@ -72237,7 +72242,7 @@ exports.Deprecation = Deprecation;
7223772242 * @name has
7223872243 * @memberOf SetCache
7223972244 * @param {*} value The value to search for.
72240- * @returns {number } Returns `true` if `value` is found, else `false`.
72245+ * @returns {boolean } Returns `true` if `value` is found, else `false`.
7224172246 */
7224272247 function setCacheHas(value) {
7224372248 return this.__data__.has(value);
@@ -73703,7 +73708,7 @@ exports.Deprecation = Deprecation;
7370373708 if (isArray(iteratee)) {
7370473709 return function(value) {
7370573710 return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);
73706- }
73711+ };
7370773712 }
7370873713 return iteratee;
7370973714 });
@@ -74307,8 +74312,34 @@ exports.Deprecation = Deprecation;
7430774312 */
7430874313 function baseUnset(object, path) {
7430974314 path = castPath(path, object);
74310- object = parent(object, path);
74311- return object == null || delete object[toKey(last(path))];
74315+
74316+ // Prevent prototype pollution:
74317+ // https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg
74318+ // https://github.com/lodash/lodash/security/advisories/GHSA-f23m-r3pf-42rh
74319+ var index = -1,
74320+ length = path.length;
74321+
74322+ if (!length) {
74323+ return true;
74324+ }
74325+
74326+ while (++index < length) {
74327+ var key = toKey(path[index]);
74328+
74329+ // Always block "__proto__" anywhere in the path if it's not expected
74330+ if (key === '__proto__' && !hasOwnProperty.call(object, '__proto__')) {
74331+ return false;
74332+ }
74333+
74334+ // Block constructor/prototype as non-terminal traversal keys to prevent
74335+ // escaping the object graph into built-in constructors and prototypes.
74336+ if ((key === 'constructor' || key === 'prototype') && index < length - 1) {
74337+ return false;
74338+ }
74339+ }
74340+
74341+ var obj = parent(object, path);
74342+ return obj == null || delete obj[toKey(last(path))];
7431274343 }
7431374344
7431474345 /**
@@ -76859,7 +76890,7 @@ exports.Deprecation = Deprecation;
7685976890
7686076891 /**
7686176892 * Creates an array with all falsey values removed. The values `false`, `null`,
76862- * `0`, `""`, `undefined`, and `NaN` are falsey .
76893+ * `0`, `-0`, `0n`, ` ""`, `undefined`, and `NaN` are falsy .
7686376894 *
7686476895 * @static
7686576896 * @memberOf _
@@ -77398,7 +77429,7 @@ exports.Deprecation = Deprecation;
7739877429
7739977430 while (++index < length) {
7740077431 var pair = pairs[index];
77401- result[ pair[0]] = pair[1];
77432+ baseAssignValue( result, pair[0], pair[1]) ;
7740277433 }
7740377434 return result;
7740477435 }
@@ -84058,6 +84089,8 @@ exports.Deprecation = Deprecation;
8405884089 * **Note:** JavaScript follows the IEEE-754 standard for resolving
8405984090 * floating-point values which can produce unexpected results.
8406084091 *
84092+ * **Note:** If `lower` is greater than `upper`, the values are swapped.
84093+ *
8406184094 * @static
8406284095 * @memberOf _
8406384096 * @since 0.7.0
@@ -84071,9 +84104,16 @@ exports.Deprecation = Deprecation;
8407184104 * _.random(0, 5);
8407284105 * // => an integer between 0 and 5
8407384106 *
84107+ * // when lower is greater than upper the values are swapped
84108+ * _.random(5, 0);
84109+ * // => an integer between 0 and 5
84110+ *
8407484111 * _.random(5);
8407584112 * // => also an integer between 0 and 5
8407684113 *
84114+ * _.random(-5);
84115+ * // => an integer between -5 and 0
84116+ *
8407784117 * _.random(5, true);
8407884118 * // => a floating-point number between 0 and 5
8407984119 *
@@ -84675,6 +84715,10 @@ exports.Deprecation = Deprecation;
8467584715 * properties may be accessed as free variables in the template. If a setting
8467684716 * object is given, it takes precedence over `_.templateSettings` values.
8467784717 *
84718+ * **Security:** `_.template` is insecure and should not be used. It will be
84719+ * removed in Lodash v5. Avoid untrusted input. See
84720+ * [threat model](https://github.com/lodash/lodash/blob/main/threat-model.md).
84721+ *
8467884722 * **Note:** In the development build `_.template` utilizes
8467984723 * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)
8468084724 * for easier debugging.
@@ -84782,12 +84826,18 @@ exports.Deprecation = Deprecation;
8478284826 options = undefined;
8478384827 }
8478484828 string = toString(string);
84785- options = assignInWith ({}, options, settings, customDefaultsAssignIn);
84829+ options = assignWith ({}, options, settings, customDefaultsAssignIn);
8478684830
84787- var imports = assignInWith ({}, options.imports, settings.imports, customDefaultsAssignIn),
84831+ var imports = assignWith ({}, options.imports, settings.imports, customDefaultsAssignIn),
8478884832 importsKeys = keys(imports),
8478984833 importsValues = baseValues(imports, importsKeys);
8479084834
84835+ arrayEach(importsKeys, function(key) {
84836+ if (reForbiddenIdentifierChars.test(key)) {
84837+ throw new Error(INVALID_TEMPL_IMPORTS_ERROR_TEXT);
84838+ }
84839+ });
84840+
8479184841 var isEscaping,
8479284842 isEvaluating,
8479384843 index = 0,
0 commit comments