@sanity/cli
Version:
Sanity CLI tool for managing Sanity installations, managing plugins, schemas and datasets
939 lines • 3.85 MB
JavaScript
"use strict";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
var __copyProps = (to, from2, except, desc) => {
if (from2 && typeof from2 == "object" || typeof from2 == "function")
for (let key2 of __getOwnPropNames(from2))
!__hasOwnProp.call(to, key2) && key2 !== except && __defProp(to, key2, { get: () => from2[key2], enumerable: !(desc = __getOwnPropDesc(from2, key2)) || desc.enumerable });
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
mod
));
var fs$1 = require("node:fs"), os = require("node:os"), path$3 = require("node:path"), chalk = require("chalk"), loadEnv = require("./loadEnv.js"), require$$0$5 = require("path"), require$$1$2 = require("module"), require$$0$4 = require("fs"), telemetry = require("@sanity/telemetry"), childProcess = require("node:child_process"), fs = require("node:fs/promises"), util$4 = require("node:util"), require$$0$6 = require("os"), require$$5$1 = require("url"), require$$1$3 = require("get-it"), require$$2$1 = require("get-it/middleware"), require$$0$7 = require("constants"), require$$0$8 = require("stream"), require$$0$9 = require("util"), require$$0$a = require("assert"), require$$0$b = require("events"), require$$6$1 = require("http"), semver = require("semver"), pkgDir = require("pkg-dir"), client$1 = require("@sanity/client"), require$$3$1 = require("crypto"), require$$1$4 = require("child_process"), require$$0$c = require("fs/promises"), require$$0$d = require("buffer"), getCliConfig = require("./getCliConfig.js"), journeyConfig = require("./journeyConfig.js"), Stream = require("node:stream"), promises$1 = require("node:stream/promises"), templateValidator = require("@sanity/template-validator"), require$$2$2 = require("string_decoder"), require$$0$e = require("zlib"), require$$7$1 = require("process"), http = require("node:http"), traverse = require("@babel/traverse"), node_url = require("node:url"), node_events = require("node:events"), node_string_decoder = require("node:string_decoder"), process$2 = require("node:process"), require$$2$3 = require("readline"), require$$0$f = require("tty");
function _interopDefaultCompat(e) {
return e && typeof e == "object" && "default" in e ? e : { default: e };
}
function _interopNamespaceCompat(e) {
if (e && typeof e == "object" && "default" in e) return e;
var n = /* @__PURE__ */ Object.create(null);
return e && Object.keys(e).forEach(function(k) {
if (k !== "default") {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: !0,
get: function() {
return e[k];
}
});
}
}), n.default = e, Object.freeze(n);
}
function _mergeNamespaces(n, m) {
return m.forEach(function(e) {
e && typeof e != "string" && !Array.isArray(e) && Object.keys(e).forEach(function(k) {
if (k !== "default" && !(k in n)) {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: !0,
get: function() {
return e[k];
}
});
}
});
}), Object.freeze(n);
}
var fs__namespace = /* @__PURE__ */ _interopNamespaceCompat(fs$1), os__default = /* @__PURE__ */ _interopDefaultCompat(os), path__default = /* @__PURE__ */ _interopDefaultCompat(path$3), chalk__default = /* @__PURE__ */ _interopDefaultCompat(chalk), require$$0__default$1 = /* @__PURE__ */ _interopDefaultCompat(require$$0$5), require$$1__default = /* @__PURE__ */ _interopDefaultCompat(require$$1$2), require$$0__default = /* @__PURE__ */ _interopDefaultCompat(require$$0$4), childProcess__default = /* @__PURE__ */ _interopDefaultCompat(childProcess), fs__default = /* @__PURE__ */ _interopDefaultCompat(fs), util__default = /* @__PURE__ */ _interopDefaultCompat(util$4), require$$0__default$2 = /* @__PURE__ */ _interopDefaultCompat(require$$0$6), require$$5__default = /* @__PURE__ */ _interopDefaultCompat(require$$5$1), require$$1__default$1 = /* @__PURE__ */ _interopDefaultCompat(require$$1$3), require$$2__default = /* @__PURE__ */ _interopDefaultCompat(require$$2$1), require$$0__default$3 = /* @__PURE__ */ _interopDefaultCompat(require$$0$7), require$$0__default$4 = /* @__PURE__ */ _interopDefaultCompat(require$$0$8), require$$0__default$5 = /* @__PURE__ */ _interopDefaultCompat(require$$0$9), require$$0__default$6 = /* @__PURE__ */ _interopDefaultCompat(require$$0$a), require$$0__default$7 = /* @__PURE__ */ _interopDefaultCompat(require$$0$b), require$$6__default = /* @__PURE__ */ _interopDefaultCompat(require$$6$1), semver__default = /* @__PURE__ */ _interopDefaultCompat(semver), pkgDir__default = /* @__PURE__ */ _interopDefaultCompat(pkgDir), require$$3__default = /* @__PURE__ */ _interopDefaultCompat(require$$3$1), require$$1__default$2 = /* @__PURE__ */ _interopDefaultCompat(require$$1$4), require$$0__default$8 = /* @__PURE__ */ _interopDefaultCompat(require$$0$c), require$$0__default$9 = /* @__PURE__ */ _interopDefaultCompat(require$$0$d), Stream__default = /* @__PURE__ */ _interopDefaultCompat(Stream), require$$2__default$1 = /* @__PURE__ */ _interopDefaultCompat(require$$2$2), require$$0__default$a = /* @__PURE__ */ _interopDefaultCompat(require$$0$e), require$$7__default = /* @__PURE__ */ _interopDefaultCompat(require$$7$1), http__default = /* @__PURE__ */ _interopDefaultCompat(http), traverse__default = /* @__PURE__ */ _interopDefaultCompat(traverse), process__default = /* @__PURE__ */ _interopDefaultCompat(process$2), require$$2__default$2 = /* @__PURE__ */ _interopDefaultCompat(require$$2$3), require$$0__default$b = /* @__PURE__ */ _interopDefaultCompat(require$$0$f), resolveFrom$1 = { exports: {} }, hasRequiredResolveFrom;
function requireResolveFrom() {
if (hasRequiredResolveFrom) return resolveFrom$1.exports;
hasRequiredResolveFrom = 1;
const path2 = require$$0__default$1.default, Module = require$$1__default.default, fs2 = require$$0__default.default, resolveFrom2 = (fromDirectory, moduleId, silent) => {
if (typeof fromDirectory != "string")
throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDirectory}\``);
if (typeof moduleId != "string")
throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof moduleId}\``);
try {
fromDirectory = fs2.realpathSync(fromDirectory);
} catch (error2) {
if (error2.code === "ENOENT")
fromDirectory = path2.resolve(fromDirectory);
else {
if (silent)
return;
throw error2;
}
}
const fromFile = path2.join(fromDirectory, "noop.js"), resolveFileName = () => Module._resolveFilename(moduleId, {
id: fromFile,
filename: fromFile,
paths: Module._nodeModulePaths(fromDirectory)
});
if (silent)
try {
return resolveFileName();
} catch {
return;
}
return resolveFileName();
};
return resolveFrom$1.exports = (fromDirectory, moduleId) => resolveFrom2(fromDirectory, moduleId), resolveFrom$1.exports.silent = (fromDirectory, moduleId) => resolveFrom2(fromDirectory, moduleId, !0), resolveFrom$1.exports;
}
var resolveFromExports = requireResolveFrom(), resolveFrom = /* @__PURE__ */ loadEnv.getDefaultExportFromCjs(resolveFromExports);
const CliCommand = telemetry.defineTrace({
name: "CLI Command Executed",
version: 1,
description: "A CLI command was executed"
});
var lodash$1 = { exports: {} };
/**
* @license
* Lodash <https://lodash.com/>
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
* Released under MIT license <https://lodash.com/license>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*/
var lodash = lodash$1.exports, hasRequiredLodash;
function requireLodash() {
return hasRequiredLodash || (hasRequiredLodash = 1, function(module2, exports2) {
(function() {
var undefined$1, VERSION = "4.17.21", LARGE_ARRAY_SIZE = 200, CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`", HASH_UNDEFINED = "__lodash_hash_undefined__", MAX_MEMOIZE_SIZE = 500, PLACEHOLDER = "__lodash_placeholder__", CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4, COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2, WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512, DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = "...", HOT_COUNT = 800, HOT_SPAN = 16, LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3, INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 17976931348623157e292, NAN = NaN, MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1, wrapFlags = [
["ary", WRAP_ARY_FLAG],
["bind", WRAP_BIND_FLAG],
["bindKey", WRAP_BIND_KEY_FLAG],
["curry", WRAP_CURRY_FLAG],
["curryRight", WRAP_CURRY_RIGHT_FLAG],
["flip", WRAP_FLIP_FLAG],
["partial", WRAP_PARTIAL_FLAG],
["partialRight", WRAP_PARTIAL_RIGHT_FLAG],
["rearg", WRAP_REARG_FLAG]
], argsTag = "[object Arguments]", arrayTag = "[object Array]", asyncTag = "[object AsyncFunction]", boolTag = "[object Boolean]", dateTag = "[object Date]", domExcTag = "[object DOMException]", errorTag = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag = "[object Map]", numberTag = "[object Number]", nullTag = "[object Null]", objectTag = "[object Object]", promiseTag = "[object Promise]", proxyTag = "[object Proxy]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]", undefinedTag = "[object Undefined]", weakMapTag = "[object WeakMap]", weakSetTag = "[object WeakSet]", arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]", reEmptyStringLeading = /\b__p \+= '';/g, reEmptyStringMiddle = /\b(__p \+=) '' \+/g, reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g, reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source), reEscape = /<%-([\s\S]+?)%>/g, reEvaluate = /<%([\s\S]+?)%>/g, reInterpolate = /<%=([\s\S]+?)%>/g, reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/, rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source), reTrimStart = /^\s+/, reWhitespace = /\s/, reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, reSplitDetails = /,? & /, reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/, reEscapeChar = /\\(\\)?/g, reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, reFlags = /\w*$/, reIsBadHex = /^[-+]0x[0-9a-f]+$/i, reIsBinary = /^0b[01]+$/i, reIsHostCtor = /^\[object .+?Constructor\]$/, reIsOctal = /^0o[0-7]+$/i, reIsUint = /^(?:0|[1-9]\d*)$/, reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, reNoMatch = /($^)/, reUnescapedString = /['\n\r\u2028\u2029\\]/g, rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange, rsApos = "['\u2019]", rsAstral = "[" + rsAstralRange + "]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d", rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq, rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")", reApos = RegExp(rsApos, "g"), reComboMark = RegExp(rsCombo, "g"), reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g"), reUnicodeWord = RegExp([
rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")",
rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")",
rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower,
rsUpper + "+" + rsOptContrUpper,
rsOrdUpper,
rsOrdLower,
rsDigits,
rsEmoji
].join("|"), "g"), reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]"), reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/, contextProps = [
"Array",
"Buffer",
"DataView",
"Date",
"Error",
"Float32Array",
"Float64Array",
"Function",
"Int8Array",
"Int16Array",
"Int32Array",
"Map",
"Math",
"Object",
"Promise",
"RegExp",
"Set",
"String",
"Symbol",
"TypeError",
"Uint8Array",
"Uint8ClampedArray",
"Uint16Array",
"Uint32Array",
"WeakMap",
"_",
"clearTimeout",
"isFinite",
"parseInt",
"setTimeout"
], templateCounter = -1, typedArrayTags = {};
typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = !0, typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = !1;
var cloneableTags = {};
cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = !0, cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = !1;
var deburredLetters = {
// Latin-1 Supplement block.
\u00C0: "A",
\u00C1: "A",
\u00C2: "A",
\u00C3: "A",
\u00C4: "A",
\u00C5: "A",
\u00E0: "a",
\u00E1: "a",
\u00E2: "a",
\u00E3: "a",
\u00E4: "a",
\u00E5: "a",
\u00C7: "C",
\u00E7: "c",
\u00D0: "D",
\u00F0: "d",
\u00C8: "E",
\u00C9: "E",
\u00CA: "E",
\u00CB: "E",
\u00E8: "e",
\u00E9: "e",
\u00EA: "e",
\u00EB: "e",
\u00CC: "I",
\u00CD: "I",
\u00CE: "I",
\u00CF: "I",
\u00EC: "i",
\u00ED: "i",
\u00EE: "i",
\u00EF: "i",
\u00D1: "N",
\u00F1: "n",
\u00D2: "O",
\u00D3: "O",
\u00D4: "O",
\u00D5: "O",
\u00D6: "O",
\u00D8: "O",
\u00F2: "o",
\u00F3: "o",
\u00F4: "o",
\u00F5: "o",
\u00F6: "o",
\u00F8: "o",
\u00D9: "U",
\u00DA: "U",
\u00DB: "U",
\u00DC: "U",
\u00F9: "u",
\u00FA: "u",
\u00FB: "u",
\u00FC: "u",
\u00DD: "Y",
\u00FD: "y",
\u00FF: "y",
\u00C6: "Ae",
\u00E6: "ae",
\u00DE: "Th",
\u00FE: "th",
\u00DF: "ss",
// Latin Extended-A block.
\u0100: "A",
\u0102: "A",
\u0104: "A",
\u0101: "a",
\u0103: "a",
\u0105: "a",
\u0106: "C",
\u0108: "C",
\u010A: "C",
\u010C: "C",
\u0107: "c",
\u0109: "c",
\u010B: "c",
\u010D: "c",
\u010E: "D",
\u0110: "D",
\u010F: "d",
\u0111: "d",
\u0112: "E",
\u0114: "E",
\u0116: "E",
\u0118: "E",
\u011A: "E",
\u0113: "e",
\u0115: "e",
\u0117: "e",
\u0119: "e",
\u011B: "e",
\u011C: "G",
\u011E: "G",
\u0120: "G",
\u0122: "G",
\u011D: "g",
\u011F: "g",
\u0121: "g",
\u0123: "g",
\u0124: "H",
\u0126: "H",
\u0125: "h",
\u0127: "h",
\u0128: "I",
\u012A: "I",
\u012C: "I",
\u012E: "I",
\u0130: "I",
\u0129: "i",
\u012B: "i",
\u012D: "i",
\u012F: "i",
\u0131: "i",
\u0134: "J",
\u0135: "j",
\u0136: "K",
\u0137: "k",
\u0138: "k",
\u0139: "L",
\u013B: "L",
\u013D: "L",
\u013F: "L",
\u0141: "L",
\u013A: "l",
\u013C: "l",
\u013E: "l",
\u0140: "l",
\u0142: "l",
\u0143: "N",
\u0145: "N",
\u0147: "N",
\u014A: "N",
\u0144: "n",
\u0146: "n",
\u0148: "n",
\u014B: "n",
\u014C: "O",
\u014E: "O",
\u0150: "O",
\u014D: "o",
\u014F: "o",
\u0151: "o",
\u0154: "R",
\u0156: "R",
\u0158: "R",
\u0155: "r",
\u0157: "r",
\u0159: "r",
\u015A: "S",
\u015C: "S",
\u015E: "S",
\u0160: "S",
\u015B: "s",
\u015D: "s",
\u015F: "s",
\u0161: "s",
\u0162: "T",
\u0164: "T",
\u0166: "T",
\u0163: "t",
\u0165: "t",
\u0167: "t",
\u0168: "U",
\u016A: "U",
\u016C: "U",
\u016E: "U",
\u0170: "U",
\u0172: "U",
\u0169: "u",
\u016B: "u",
\u016D: "u",
\u016F: "u",
\u0171: "u",
\u0173: "u",
\u0174: "W",
\u0175: "w",
\u0176: "Y",
\u0177: "y",
\u0178: "Y",
\u0179: "Z",
\u017B: "Z",
\u017D: "Z",
\u017A: "z",
\u017C: "z",
\u017E: "z",
\u0132: "IJ",
\u0133: "ij",
\u0152: "Oe",
\u0153: "oe",
\u0149: "'n",
\u017F: "s"
}, htmlEscapes = {
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'"
}, htmlUnescapes = {
"&": "&",
"<": "<",
">": ">",
""": '"',
"'": "'"
}, stringEscapes = {
"\\": "\\",
"'": "'",
"\n": "n",
"\r": "r",
"\u2028": "u2028",
"\u2029": "u2029"
}, freeParseFloat = parseFloat, freeParseInt = parseInt, freeGlobal = typeof loadEnv.commonjsGlobal == "object" && loadEnv.commonjsGlobal && loadEnv.commonjsGlobal.Object === Object && loadEnv.commonjsGlobal, freeSelf = typeof self == "object" && self && self.Object === Object && self, root2 = freeGlobal || freeSelf || Function("return this")(), freeExports = exports2 && !exports2.nodeType && exports2, freeModule = freeExports && !0 && module2 && !module2.nodeType && module2, moduleExports = freeModule && freeModule.exports === freeExports, freeProcess = moduleExports && freeGlobal.process, nodeUtil = function() {
try {
var types2 = freeModule && freeModule.require && freeModule.require("util").types;
return types2 || freeProcess && freeProcess.binding && freeProcess.binding("util");
} catch {
}
}(), nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
function apply(func, thisArg, args) {
switch (args.length) {
case 0:
return func.call(thisArg);
case 1:
return func.call(thisArg, args[0]);
case 2:
return func.call(thisArg, args[0], args[1]);
case 3:
return func.call(thisArg, args[0], args[1], args[2]);
}
return func.apply(thisArg, args);
}
function arrayAggregator(array, setter, iteratee, accumulator) {
for (var index = -1, length = array == null ? 0 : array.length; ++index < length; ) {
var value = array[index];
setter(accumulator, value, iteratee(value), array);
}
return accumulator;
}
function arrayEach(array, iteratee) {
for (var index = -1, length = array == null ? 0 : array.length; ++index < length && iteratee(array[index], index, array) !== !1; )
;
return array;
}
function arrayEachRight(array, iteratee) {
for (var length = array == null ? 0 : array.length; length-- && iteratee(array[length], length, array) !== !1; )
;
return array;
}
function arrayEvery(array, predicate) {
for (var index = -1, length = array == null ? 0 : array.length; ++index < length; )
if (!predicate(array[index], index, array))
return !1;
return !0;
}
function arrayFilter(array, predicate) {
for (var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; ++index < length; ) {
var value = array[index];
predicate(value, index, array) && (result[resIndex++] = value);
}
return result;
}
function arrayIncludes(array, value) {
var length = array == null ? 0 : array.length;
return !!length && baseIndexOf(array, value, 0) > -1;
}
function arrayIncludesWith(array, value, comparator) {
for (var index = -1, length = array == null ? 0 : array.length; ++index < length; )
if (comparator(value, array[index]))
return !0;
return !1;
}
function arrayMap(array, iteratee) {
for (var index = -1, length = array == null ? 0 : array.length, result = Array(length); ++index < length; )
result[index] = iteratee(array[index], index, array);
return result;
}
function arrayPush(array, values) {
for (var index = -1, length = values.length, offset = array.length; ++index < length; )
array[offset + index] = values[index];
return array;
}
function arrayReduce(array, iteratee, accumulator, initAccum) {
var index = -1, length = array == null ? 0 : array.length;
for (initAccum && length && (accumulator = array[++index]); ++index < length; )
accumulator = iteratee(accumulator, array[index], index, array);
return accumulator;
}
function arrayReduceRight(array, iteratee, accumulator, initAccum) {
var length = array == null ? 0 : array.length;
for (initAccum && length && (accumulator = array[--length]); length--; )
accumulator = iteratee(accumulator, array[length], length, array);
return accumulator;
}
function arraySome(array, predicate) {
for (var index = -1, length = array == null ? 0 : array.length; ++index < length; )
if (predicate(array[index], index, array))
return !0;
return !1;
}
var asciiSize = baseProperty("length");
function asciiToArray(string) {
return string.split("");
}
function asciiWords(string) {
return string.match(reAsciiWord) || [];
}
function baseFindKey(collection, predicate, eachFunc) {
var result;
return eachFunc(collection, function(value, key2, collection2) {
if (predicate(value, key2, collection2))
return result = key2, !1;
}), result;
}
function baseFindIndex(array, predicate, fromIndex, fromRight) {
for (var length = array.length, index = fromIndex + (fromRight ? 1 : -1); fromRight ? index-- : ++index < length; )
if (predicate(array[index], index, array))
return index;
return -1;
}
function baseIndexOf(array, value, fromIndex) {
return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);
}
function baseIndexOfWith(array, value, fromIndex, comparator) {
for (var index = fromIndex - 1, length = array.length; ++index < length; )
if (comparator(array[index], value))
return index;
return -1;
}
function baseIsNaN(value) {
return value !== value;
}
function baseMean(array, iteratee) {
var length = array == null ? 0 : array.length;
return length ? baseSum(array, iteratee) / length : NAN;
}
function baseProperty(key2) {
return function(object) {
return object == null ? undefined$1 : object[key2];
};
}
function basePropertyOf(object) {
return function(key2) {
return object == null ? undefined$1 : object[key2];
};
}
function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
return eachFunc(collection, function(value, index, collection2) {
accumulator = initAccum ? (initAccum = !1, value) : iteratee(accumulator, value, index, collection2);
}), accumulator;
}
function baseSortBy(array, comparer) {
var length = array.length;
for (array.sort(comparer); length--; )
array[length] = array[length].value;
return array;
}
function baseSum(array, iteratee) {
for (var result, index = -1, length = array.length; ++index < length; ) {
var current = iteratee(array[index]);
current !== undefined$1 && (result = result === undefined$1 ? current : result + current);
}
return result;
}
function baseTimes(n, iteratee) {
for (var index = -1, result = Array(n); ++index < n; )
result[index] = iteratee(index);
return result;
}
function baseToPairs(object, props) {
return arrayMap(props, function(key2) {
return [key2, object[key2]];
});
}
function baseTrim(string) {
return string && string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "");
}
function baseUnary(func) {
return function(value) {
return func(value);
};
}
function baseValues(object, props) {
return arrayMap(props, function(key2) {
return object[key2];
});
}
function cacheHas(cache, key2) {
return cache.has(key2);
}
function charsStartIndex(strSymbols, chrSymbols) {
for (var index = -1, length = strSymbols.length; ++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1; )
;
return index;
}
function charsEndIndex(strSymbols, chrSymbols) {
for (var index = strSymbols.length; index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1; )
;
return index;
}
function countHolders(array, placeholder) {
for (var length = array.length, result = 0; length--; )
array[length] === placeholder && ++result;
return result;
}
var deburrLetter = basePropertyOf(deburredLetters), escapeHtmlChar = basePropertyOf(htmlEscapes);
function escapeStringChar(chr) {
return "\\" + stringEscapes[chr];
}
function getValue(object, key2) {
return object == null ? undefined$1 : object[key2];
}
function hasUnicode(string) {
return reHasUnicode.test(string);
}
function hasUnicodeWord(string) {
return reHasUnicodeWord.test(string);
}
function iteratorToArray(iterator2) {
for (var data, result = []; !(data = iterator2.next()).done; )
result.push(data.value);
return result;
}
function mapToArray(map2) {
var index = -1, result = Array(map2.size);
return map2.forEach(function(value, key2) {
result[++index] = [key2, value];
}), result;
}
function overArg(func, transform) {
return function(arg) {
return func(transform(arg));
};
}
function replaceHolders(array, placeholder) {
for (var index = -1, length = array.length, resIndex = 0, result = []; ++index < length; ) {
var value = array[index];
(value === placeholder || value === PLACEHOLDER) && (array[index] = PLACEHOLDER, result[resIndex++] = index);
}
return result;
}
function setToArray(set2) {
var index = -1, result = Array(set2.size);
return set2.forEach(function(value) {
result[++index] = value;
}), result;
}
function setToPairs(set2) {
var index = -1, result = Array(set2.size);
return set2.forEach(function(value) {
result[++index] = [value, value];
}), result;
}
function strictIndexOf(array, value, fromIndex) {
for (var index = fromIndex - 1, length = array.length; ++index < length; )
if (array[index] === value)
return index;
return -1;
}
function strictLastIndexOf(array, value, fromIndex) {
for (var index = fromIndex + 1; index--; )
if (array[index] === value)
return index;
return index;
}
function stringSize(string) {
return hasUnicode(string) ? unicodeSize(string) : asciiSize(string);
}
function stringToArray(string) {
return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string);
}
function trimmedEndIndex(string) {
for (var index = string.length; index-- && reWhitespace.test(string.charAt(index)); )
;
return index;
}
var unescapeHtmlChar = basePropertyOf(htmlUnescapes);
function unicodeSize(string) {
for (var result = reUnicode.lastIndex = 0; reUnicode.test(string); )
++result;
return result;
}
function unicodeToArray(string) {
return string.match(reUnicode) || [];
}
function unicodeWords(string) {
return string.match(reUnicodeWord) || [];
}
var runInContext = function runInContext2(context) {
context = context == null ? root2 : _.defaults(root2.Object(), context, _.pick(root2, contextProps));
var Array2 = context.Array, Date2 = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError, arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype, coreJsData = context["__core-js_shared__"], funcToString = funcProto.toString, hasOwnProperty2 = objectProto.hasOwnProperty, idCounter = 0, maskSrcKey = function() {
var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
return uid ? "Symbol(src)_1." + uid : "";
}(), nativeObjectToString = objectProto.toString, objectCtorString = funcToString.call(Object2), oldDash = root2._, reIsNative = RegExp2(
"^" + funcToString.call(hasOwnProperty2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
), Buffer2 = moduleExports ? context.Buffer : undefined$1, Symbol2 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined$1, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined$1, symIterator = Symbol2 ? Symbol2.iterator : undefined$1, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined$1, defineProperty2 = function() {
try {
var func = getNative(Object2, "defineProperty");
return func({}, "", {}), func;
} catch {
}
}(), ctxClearTimeout = context.clearTimeout !== root2.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root2.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root2.setTimeout && context.setTimeout, nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined$1, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse, DataView = getNative(context, "DataView"), Map2 = getNative(context, "Map"), Promise2 = getNative(context, "Promise"), Set2 = getNative(context, "Set"), WeakMap2 = getNative(context, "WeakMap"), nativeCreate = getNative(Object2, "create"), metaMap = WeakMap2 && new WeakMap2(), realNames = {}, dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap2), symbolProto = Symbol2 ? Symbol2.prototype : undefined$1, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined$1, symbolToString = symbolProto ? symbolProto.toString : undefined$1;
function lodash2(value) {
if (isObjectLike(value) && !isArray2(value) && !(value instanceof LazyWrapper)) {
if (value instanceof LodashWrapper)
return value;
if (hasOwnProperty2.call(value, "__wrapped__"))
return wrapperClone(value);
}
return new LodashWrapper(value);
}
var baseCreate = /* @__PURE__ */ function() {
function object() {
}
return function(proto) {
if (!isObject2(proto))
return {};
if (objectCreate)
return objectCreate(proto);
object.prototype = proto;
var result2 = new object();
return object.prototype = undefined$1, result2;
};
}();
function baseLodash() {
}
function LodashWrapper(value, chainAll) {
this.__wrapped__ = value, this.__actions__ = [], this.__chain__ = !!chainAll, this.__index__ = 0, this.__values__ = undefined$1;
}
lodash2.templateSettings = {
/**
* Used to detect `data` property values to be HTML-escaped.
*
* @memberOf _.templateSettings
* @type {RegExp}
*/
escape: reEscape,
/**
* Used to detect code to be evaluated.
*
* @memberOf _.templateSettings
* @type {RegExp}
*/
evaluate: reEvaluate,
/**
* Used to detect `data` property values to inject.
*
* @memberOf _.templateSettings
* @type {RegExp}
*/
interpolate: reInterpolate,
/**
* Used to reference the data object in the template text.
*
* @memberOf _.templateSettings
* @type {string}
*/
variable: "",
/**
* Used to import variables into the compiled template.
*
* @memberOf _.templateSettings
* @type {Object}
*/
imports: {
/**
* A reference to the `lodash` function.
*
* @memberOf _.templateSettings.imports
* @type {Function}
*/
_: lodash2
}
}, lodash2.prototype = baseLodash.prototype, lodash2.prototype.constructor = lodash2, LodashWrapper.prototype = baseCreate(baseLodash.prototype), LodashWrapper.prototype.constructor = LodashWrapper;
function LazyWrapper(value) {
this.__wrapped__ = value, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = !1, this.__iteratees__ = [], this.__takeCount__ = MAX_ARRAY_LENGTH, this.__views__ = [];
}
function lazyClone() {
var result2 = new LazyWrapper(this.__wrapped__);
return result2.__actions__ = copyArray(this.__actions__), result2.__dir__ = this.__dir__, result2.__filtered__ = this.__filtered__, result2.__iteratees__ = copyArray(this.__iteratees__), result2.__takeCount__ = this.__takeCount__, result2.__views__ = copyArray(this.__views__), result2;
}
function lazyReverse() {
if (this.__filtered__) {
var result2 = new LazyWrapper(this);
result2.__dir__ = -1, result2.__filtered__ = !0;
} else
result2 = this.clone(), result2.__dir__ *= -1;
return result2;
}
function lazyValue() {
var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray2(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView(0, arrLength, this.__views__), start = view.start, end = view.end, length = end - start, index = isRight ? end : start - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length, this.__takeCount__);
if (!isArr || !isRight && arrLength == length && takeCount == length)
return baseWrapperValue(array, this.__actions__);
var result2 = [];
outer:
for (; length-- && resIndex < takeCount; ) {
index += dir;
for (var iterIndex = -1, value = array[index]; ++iterIndex < iterLength; ) {
var data = iteratees[iterIndex], iteratee2 = data.iteratee, type2 = data.type, computed = iteratee2(value);
if (type2 == LAZY_MAP_FLAG)
value = computed;
else if (!computed) {
if (type2 == LAZY_FILTER_FLAG)
continue outer;
break outer;
}
}
result2[resIndex++] = value;
}
return result2;
}
LazyWrapper.prototype = baseCreate(baseLodash.prototype), LazyWrapper.prototype.constructor = LazyWrapper;
function Hash(entries) {
var index = -1, length = entries == null ? 0 : entries.length;
for (this.clear(); ++index < length; ) {
var entry = entries[index];
this.set(entry[0], entry[1]);
}
}
function hashClear() {
this.__data__ = nativeCreate ? nativeCreate(null) : {}, this.size = 0;
}
function hashDelete(key2) {
var result2 = this.has(key2) && delete this.__data__[key2];
return this.size -= result2 ? 1 : 0, result2;
}
function hashGet(key2) {
var data = this.__data__;
if (nativeCreate) {
var result2 = data[key2];
return result2 === HASH_UNDEFINED ? undefined$1 : result2;
}
return hasOwnProperty2.call(data, key2) ? data[key2] : undefined$1;
}
function hashHas(key2) {
var data = this.__data__;
return nativeCreate ? data[key2] !== undefined$1 : hasOwnProperty2.call(data, key2);
}
function hashSet(key2, value) {
var data = this.__data__;
return this.size += this.has(key2) ? 0 : 1, data[key2] = nativeCreate && value === undefined$1 ? HASH_UNDEFINED : value, this;
}
Hash.prototype.clear = hashClear, Hash.prototype.delete = hashDelete, Hash.prototype.get = hashGet, Hash.prototype.has = hashHas, Hash.prototype.set = hashSet;
function ListCache(entries) {
var index = -1, length = entries == null ? 0 : entries.length;
for (this.clear(); ++index < length; ) {
var entry = entries[index];
this.set(entry[0], entry[1]);
}
}
function listCacheClear() {
this.__data__ = [], this.size = 0;
}
function listCacheDelete(key2) {
var data = this.__data__, index = assocIndexOf(data, key2);
if (index < 0)
return !1;
var lastIndex = data.length - 1;
return index == lastIndex ? data.pop() : splice.call(data, index, 1), --this.size, !0;
}
function listCacheGet(key2) {
var data = this.__data__, index = assocIndexOf(data, key2);
return index < 0 ? undefined$1 : data[index][1];
}
function listCacheHas(key2) {
return assocIndexOf(this.__data__, key2) > -1;
}
function listCacheSet(key2, value) {
var data = this.__data__, index = assocIndexOf(data, key2);
return index < 0 ? (++this.size, data.push([key2, value])) : data[index][1] = value, this;
}
ListCache.prototype.clear = listCacheClear, ListCache.prototype.delete = listCacheDelete, ListCache.prototype.get = listCacheGet, ListCache.prototype.has = listCacheHas, ListCache.prototype.set = listCacheSet;
function MapCache(entries) {
var index = -1, length = entries == null ? 0 : entries.length;
for (this.clear(); ++index < length; ) {
var entry = entries[index];
this.set(entry[0], entry[1]);
}
}
function mapCacheClear() {
this.size = 0, this.__data__ = {
hash: new Hash(),
map: new (Map2 || ListCache)(),
string: new Hash()
};
}
function mapCacheDelete(key2) {
var result2 = getMapData(this, key2).delete(key2);
return this.size -= result2 ? 1 : 0, result2;
}
function mapCacheGet(key2) {
return getMapData(this, key2).get(key2);
}
function mapCacheHas(key2) {
return getMapData(this, key2).has(key2);
}
function mapCacheSet(key2, value) {
var data = getMapData(this, key2), size2 = data.size;
return data.set(key2, value), this.size += data.size == size2 ? 0 : 1, this;
}
MapCache.prototype.clear = mapCacheClear, MapCache.prototype.delete = mapCacheDelete, MapCache.prototype.get = mapCacheGet, MapCache.prototype.has = mapCacheHas, MapCache.prototype.set = mapCacheSet;
function SetCache(values2) {
var index = -1, length = values2 == null ? 0 : values2.length;
for (this.__data__ = new MapCache(); ++index < length; )
this.add(values2[index]);
}
function setCacheAdd(value) {
return this.__data__.set(value, HASH_UNDEFINED), this;
}
function setCacheHas(value) {
return this.__data__.has(value);
}
SetCache.prototype.add = SetCache.prototype.push = setCacheAdd, SetCache.prototype.has = setCacheHas;
function Stack2(entries) {
var data = this.__data__ = new ListCache(entries);
this.size = data.size;
}
function stackClear() {
this.__data__ = new ListCache(), this.size = 0;
}
function stackDelete(key2) {
var data = this.__data__, result2 = data.delete(key2);
return this.size = data.size, result2;
}
function stackGet(key2) {
return this.__data__.get(key2);
}
function stackHas(key2) {
return this.__data__.has(key2);
}
function stackSet(key2, value) {
var data = this.__data__;
if (data instanceof ListCache) {
var pairs2 = data.__data__;
if (!Map2 || pairs2.length < LARGE_ARRAY_SIZE - 1)
return pairs2.push([key2, value]), this.size = ++data.size, this;
data = this.__data__ = new MapCache(pairs2);
}
return data.set(key2, value), this.size = data.size, this;
}
Stack2.prototype.clear = stackClear, Stack2.prototype.delete = stackDelete, Stack2.prototype.get = stackGet, Stack2.prototype.has = stackHas, Stack2.prototype.set = stackSet;
function arrayLikeKeys(value, inherited) {
var isArr = isArray2(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result2 = skipIndexes ? baseTimes(value.length, String2) : [], length = result2.length;
for (var key2 in value)
(inherited || hasOwnProperty2.call(value, key2)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
(key2 == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
isBuff && (key2 == "offset" || key2 == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
isType && (key2 == "buffer" || key2 == "byteLength" || key2 == "byteOffset") || // Skip index properties.
isIndex(key2, length))) && result2.push(key2);
return result2;
}
function arraySample(array) {
var length = array.length;
return length ? array[baseRandom(0, length - 1)] : undefined$1;
}
function arraySampleSize(array, n) {
return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));
}
function arrayShuffle(array) {
return shuffleSelf(copyArray(array));
}
function assignMergeValue(object, key2, value) {
(value !== undefined$1 && !eq(object[key2], value) || value === undefined$1 && !(key2 in object)) && baseAssignValue(object, key2, value);
}
function assignValue(object, key2, value) {
var objValue = object[key2];
(!(hasOwnProperty2.call(object, key2) && eq(objValue, value)) || value === undefined$1 && !(key2 in object)) && baseAssignValue(object, key2, value);
}
function assocIndexOf(array, key2) {
for (var length = array.length; length--; )
if (eq(array[length][0], key2))
return length;
return -1;
}
function baseAggregator(collection, setter, iteratee2, accumulator) {
return baseEach(collection, function(value, key2, collection2) {
setter(accumulator, value, itera