UNPKG

tfl-js

Version:

A TypeScript library for parsing and evaluating propositional logic formulas

1,563 lines (1,422 loc) 332 kB
var __defProp = Object.defineProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true, configurable: true, set: (newValue) => all[name] = () => newValue }); }; // src/types/formula.ts class Atom { name; constructor(name) { this.name = name; } evaluate(valuation) { if (!(this.name in valuation)) { throw new Error(`No valuation provided for atomic proposition ${this.name}`); } return valuation[this.name]; } subformulas() { return [this]; } atoms() { return [this.name]; } toString() { return this.name; } } var Operator; ((Operator2) => { Operator2["NOT"] = "\xAC"; Operator2["AND"] = "\u2227"; Operator2["OR"] = "\u2228"; Operator2["IF"] = "\u2192"; Operator2["IFF"] = "\u2194"; })(Operator ||= {}); class Compound { operator; left; right; constructor(operator, left, right) { this.operator = operator; this.left = left; this.right = right; if (operator !== "\xAC" /* NOT */ && !right) { throw new Error(`Binary operator ${operator} requires two operands`); } if (operator === "\xAC" /* NOT */ && right) { throw new Error(`Unary operator ${operator} cannot have two operands`); } } evaluate(valuation) { switch (this.operator) { case "\u2227" /* AND */: return this.left.evaluate(valuation) && (this.right?.evaluate(valuation) ?? false); case "\u2228" /* OR */: return this.left.evaluate(valuation) || (this.right?.evaluate(valuation) ?? false); case "\u2192" /* IF */: const antecedent = this.left.evaluate(valuation); return antecedent ? this.right?.evaluate(valuation) ?? false : true; case "\u2194" /* IFF */: return this.left.evaluate(valuation) === (this.right?.evaluate(valuation) ?? false); case "\xAC" /* NOT */: return !this.left.evaluate(valuation); default: throw new Error(`Unknown operator: ${this.operator}`); } } subformulas() { const subs = new Set; for (const sub of this.left.subformulas()) { subs.add(sub); } if (this.right) { for (const sub of this.right.subformulas()) { subs.add(sub); } } subs.add(this); return Array.from(subs); } atoms() { const atoms = [...this.left.atoms()]; if (this.right) { atoms.push(...this.right.atoms()); } return [...new Set(atoms)]; } toString() { if (this.operator === "\xAC" /* NOT */) { return `${this.operator}${this.left.toString()}`; } return `(${this.left.toString()} ${this.operator} ${this.right.toString()})`; } } // node_modules/lodash-es/_freeGlobal.js var freeGlobal = typeof global == "object" && global && global.Object === Object && global; var _freeGlobal_default = freeGlobal; // node_modules/lodash-es/_root.js var freeSelf = typeof self == "object" && self && self.Object === Object && self; var root = _freeGlobal_default || freeSelf || Function("return this")(); var _root_default = root; // node_modules/lodash-es/_Symbol.js var Symbol2 = _root_default.Symbol; var _Symbol_default = Symbol2; // node_modules/lodash-es/_getRawTag.js function getRawTag(value) { var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; try { value[symToStringTag] = undefined; var unmasked = true; } catch (e) { } var result = nativeObjectToString.call(value); if (unmasked) { if (isOwn) { value[symToStringTag] = tag; } else { delete value[symToStringTag]; } } return result; } var objectProto = Object.prototype; var hasOwnProperty = objectProto.hasOwnProperty; var nativeObjectToString = objectProto.toString; var symToStringTag = _Symbol_default ? _Symbol_default.toStringTag : undefined; var _getRawTag_default = getRawTag; // node_modules/lodash-es/_objectToString.js function objectToString(value) { return nativeObjectToString2.call(value); } var objectProto2 = Object.prototype; var nativeObjectToString2 = objectProto2.toString; var _objectToString_default = objectToString; // node_modules/lodash-es/_baseGetTag.js function baseGetTag(value) { if (value == null) { return value === undefined ? undefinedTag : nullTag; } return symToStringTag2 && symToStringTag2 in Object(value) ? _getRawTag_default(value) : _objectToString_default(value); } var nullTag = "[object Null]"; var undefinedTag = "[object Undefined]"; var symToStringTag2 = _Symbol_default ? _Symbol_default.toStringTag : undefined; var _baseGetTag_default = baseGetTag; // node_modules/lodash-es/isObjectLike.js function isObjectLike(value) { return value != null && typeof value == "object"; } var isObjectLike_default = isObjectLike; // node_modules/lodash-es/isSymbol.js function isSymbol(value) { return typeof value == "symbol" || isObjectLike_default(value) && _baseGetTag_default(value) == symbolTag; } var symbolTag = "[object Symbol]"; var isSymbol_default = isSymbol; // node_modules/lodash-es/_arrayMap.js function arrayMap(array, iteratee) { var index = -1, length = array == null ? 0 : array.length, result = Array(length); while (++index < length) { result[index] = iteratee(array[index], index, array); } return result; } var _arrayMap_default = arrayMap; // node_modules/lodash-es/isArray.js var isArray = Array.isArray; var isArray_default = isArray; // node_modules/lodash-es/_baseToString.js function baseToString(value) { if (typeof value == "string") { return value; } if (isArray_default(value)) { return _arrayMap_default(value, baseToString) + ""; } if (isSymbol_default(value)) { return symbolToString ? symbolToString.call(value) : ""; } var result = value + ""; return result == "0" && 1 / value == -INFINITY ? "-0" : result; } var INFINITY = 1 / 0; var symbolProto = _Symbol_default ? _Symbol_default.prototype : undefined; var symbolToString = symbolProto ? symbolProto.toString : undefined; var _baseToString_default = baseToString; // node_modules/lodash-es/_trimmedEndIndex.js function trimmedEndIndex(string) { var index = string.length; while (index-- && reWhitespace.test(string.charAt(index))) { } return index; } var reWhitespace = /\s/; var _trimmedEndIndex_default = trimmedEndIndex; // node_modules/lodash-es/_baseTrim.js function baseTrim(string) { return string ? string.slice(0, _trimmedEndIndex_default(string) + 1).replace(reTrimStart, "") : string; } var reTrimStart = /^\s+/; var _baseTrim_default = baseTrim; // node_modules/lodash-es/isObject.js function isObject(value) { var type = typeof value; return value != null && (type == "object" || type == "function"); } var isObject_default = isObject; // node_modules/lodash-es/toNumber.js function toNumber(value) { if (typeof value == "number") { return value; } if (isSymbol_default(value)) { return NAN; } if (isObject_default(value)) { var other = typeof value.valueOf == "function" ? value.valueOf() : value; value = isObject_default(other) ? other + "" : other; } if (typeof value != "string") { return value === 0 ? value : +value; } value = _baseTrim_default(value); var isBinary = reIsBinary.test(value); return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; } var NAN = 0 / 0; var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; var reIsBinary = /^0b[01]+$/i; var reIsOctal = /^0o[0-7]+$/i; var freeParseInt = parseInt; var toNumber_default = toNumber; // node_modules/lodash-es/toFinite.js function toFinite(value) { if (!value) { return value === 0 ? value : 0; } value = toNumber_default(value); if (value === INFINITY2 || value === -INFINITY2) { var sign = value < 0 ? -1 : 1; return sign * MAX_INTEGER; } return value === value ? value : 0; } var INFINITY2 = 1 / 0; var MAX_INTEGER = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; var toFinite_default = toFinite; // node_modules/lodash-es/toInteger.js function toInteger(value) { var result = toFinite_default(value), remainder = result % 1; return result === result ? remainder ? result - remainder : result : 0; } var toInteger_default = toInteger; // node_modules/lodash-es/identity.js function identity(value) { return value; } var identity_default = identity; // node_modules/lodash-es/isFunction.js function isFunction(value) { if (!isObject_default(value)) { return false; } var tag = _baseGetTag_default(value); return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; } var asyncTag = "[object AsyncFunction]"; var funcTag = "[object Function]"; var genTag = "[object GeneratorFunction]"; var proxyTag = "[object Proxy]"; var isFunction_default = isFunction; // node_modules/lodash-es/_coreJsData.js var coreJsData = _root_default["__core-js_shared__"]; var _coreJsData_default = coreJsData; // node_modules/lodash-es/_isMasked.js function isMasked(func) { return !!maskSrcKey && maskSrcKey in func; } var maskSrcKey = function() { var uid = /[^.]+$/.exec(_coreJsData_default && _coreJsData_default.keys && _coreJsData_default.keys.IE_PROTO || ""); return uid ? "Symbol(src)_1." + uid : ""; }(); var _isMasked_default = isMasked; // node_modules/lodash-es/_toSource.js function toSource(func) { if (func != null) { try { return funcToString.call(func); } catch (e) { } try { return func + ""; } catch (e) { } } return ""; } var funcProto = Function.prototype; var funcToString = funcProto.toString; var _toSource_default = toSource; // node_modules/lodash-es/_baseIsNative.js function baseIsNative(value) { if (!isObject_default(value) || _isMasked_default(value)) { return false; } var pattern = isFunction_default(value) ? reIsNative : reIsHostCtor; return pattern.test(_toSource_default(value)); } var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; var reIsHostCtor = /^\[object .+?Constructor\]$/; var funcProto2 = Function.prototype; var objectProto3 = Object.prototype; var funcToString2 = funcProto2.toString; var hasOwnProperty2 = objectProto3.hasOwnProperty; var reIsNative = RegExp("^" + funcToString2.call(hasOwnProperty2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); var _baseIsNative_default = baseIsNative; // node_modules/lodash-es/_getValue.js function getValue(object, key) { return object == null ? undefined : object[key]; } var _getValue_default = getValue; // node_modules/lodash-es/_getNative.js function getNative(object, key) { var value = _getValue_default(object, key); return _baseIsNative_default(value) ? value : undefined; } var _getNative_default = getNative; // node_modules/lodash-es/_WeakMap.js var WeakMap2 = _getNative_default(_root_default, "WeakMap"); var _WeakMap_default = WeakMap2; // node_modules/lodash-es/_baseCreate.js var objectCreate = Object.create; var baseCreate = function() { function object() { } return function(proto) { if (!isObject_default(proto)) { return {}; } if (objectCreate) { return objectCreate(proto); } object.prototype = proto; var result = new object; object.prototype = undefined; return result; }; }(); var _baseCreate_default = baseCreate; // node_modules/lodash-es/_apply.js 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); } var _apply_default = apply; // node_modules/lodash-es/noop.js function noop() { } var noop_default = noop; // node_modules/lodash-es/_copyArray.js function copyArray(source, array) { var index = -1, length = source.length; array || (array = Array(length)); while (++index < length) { array[index] = source[index]; } return array; } var _copyArray_default = copyArray; // node_modules/lodash-es/_shortOut.js function shortOut(func) { var count = 0, lastCalled = 0; return function() { var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); lastCalled = stamp; if (remaining > 0) { if (++count >= HOT_COUNT) { return arguments[0]; } } else { count = 0; } return func.apply(undefined, arguments); }; } var HOT_COUNT = 800; var HOT_SPAN = 16; var nativeNow = Date.now; var _shortOut_default = shortOut; // node_modules/lodash-es/constant.js function constant(value) { return function() { return value; }; } var constant_default = constant; // node_modules/lodash-es/_defineProperty.js var defineProperty = function() { try { var func = _getNative_default(Object, "defineProperty"); func({}, "", {}); return func; } catch (e) { } }(); var _defineProperty_default = defineProperty; // node_modules/lodash-es/_baseSetToString.js var baseSetToString = !_defineProperty_default ? identity_default : function(func, string) { return _defineProperty_default(func, "toString", { configurable: true, enumerable: false, value: constant_default(string), writable: true }); }; var _baseSetToString_default = baseSetToString; // node_modules/lodash-es/_setToString.js var setToString = _shortOut_default(_baseSetToString_default); var _setToString_default = setToString; // node_modules/lodash-es/_arrayEach.js function arrayEach(array, iteratee) { var index = -1, length = array == null ? 0 : array.length; while (++index < length) { if (iteratee(array[index], index, array) === false) { break; } } return array; } var _arrayEach_default = arrayEach; // node_modules/lodash-es/_baseFindIndex.js function baseFindIndex(array, predicate, fromIndex, fromRight) { var length = array.length, index = fromIndex + (fromRight ? 1 : -1); while (fromRight ? index-- : ++index < length) { if (predicate(array[index], index, array)) { return index; } } return -1; } var _baseFindIndex_default = baseFindIndex; // node_modules/lodash-es/_baseIsNaN.js function baseIsNaN(value) { return value !== value; } var _baseIsNaN_default = baseIsNaN; // node_modules/lodash-es/_strictIndexOf.js function strictIndexOf(array, value, fromIndex) { var index = fromIndex - 1, length = array.length; while (++index < length) { if (array[index] === value) { return index; } } return -1; } var _strictIndexOf_default = strictIndexOf; // node_modules/lodash-es/_baseIndexOf.js function baseIndexOf(array, value, fromIndex) { return value === value ? _strictIndexOf_default(array, value, fromIndex) : _baseFindIndex_default(array, _baseIsNaN_default, fromIndex); } var _baseIndexOf_default = baseIndexOf; // node_modules/lodash-es/_arrayIncludes.js function arrayIncludes(array, value) { var length = array == null ? 0 : array.length; return !!length && _baseIndexOf_default(array, value, 0) > -1; } var _arrayIncludes_default = arrayIncludes; // node_modules/lodash-es/_isIndex.js function isIndex(value, length) { var type = typeof value; length = length == null ? MAX_SAFE_INTEGER : length; return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); } var MAX_SAFE_INTEGER = 9007199254740991; var reIsUint = /^(?:0|[1-9]\d*)$/; var _isIndex_default = isIndex; // node_modules/lodash-es/_baseAssignValue.js function baseAssignValue(object, key, value) { if (key == "__proto__" && _defineProperty_default) { _defineProperty_default(object, key, { configurable: true, enumerable: true, value, writable: true }); } else { object[key] = value; } } var _baseAssignValue_default = baseAssignValue; // node_modules/lodash-es/eq.js function eq(value, other) { return value === other || value !== value && other !== other; } var eq_default = eq; // node_modules/lodash-es/_assignValue.js function assignValue(object, key, value) { var objValue = object[key]; if (!(hasOwnProperty3.call(object, key) && eq_default(objValue, value)) || value === undefined && !(key in object)) { _baseAssignValue_default(object, key, value); } } var objectProto4 = Object.prototype; var hasOwnProperty3 = objectProto4.hasOwnProperty; var _assignValue_default = assignValue; // node_modules/lodash-es/_copyObject.js function copyObject(source, props, object, customizer) { var isNew = !object; object || (object = {}); var index = -1, length = props.length; while (++index < length) { var key = props[index]; var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined; if (newValue === undefined) { newValue = source[key]; } if (isNew) { _baseAssignValue_default(object, key, newValue); } else { _assignValue_default(object, key, newValue); } } return object; } var _copyObject_default = copyObject; // node_modules/lodash-es/_overRest.js function overRest(func, start, transform) { start = nativeMax(start === undefined ? func.length - 1 : start, 0); return function() { var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array(length); while (++index < length) { array[index] = args[start + index]; } index = -1; var otherArgs = Array(start + 1); while (++index < start) { otherArgs[index] = args[index]; } otherArgs[start] = transform(array); return _apply_default(func, this, otherArgs); }; } var nativeMax = Math.max; var _overRest_default = overRest; // node_modules/lodash-es/_baseRest.js function baseRest(func, start) { return _setToString_default(_overRest_default(func, start, identity_default), func + ""); } var _baseRest_default = baseRest; // node_modules/lodash-es/isLength.js function isLength(value) { return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER2; } var MAX_SAFE_INTEGER2 = 9007199254740991; var isLength_default = isLength; // node_modules/lodash-es/isArrayLike.js function isArrayLike(value) { return value != null && isLength_default(value.length) && !isFunction_default(value); } var isArrayLike_default = isArrayLike; // node_modules/lodash-es/_isIterateeCall.js function isIterateeCall(value, index, object) { if (!isObject_default(object)) { return false; } var type = typeof index; if (type == "number" ? isArrayLike_default(object) && _isIndex_default(index, object.length) : type == "string" && (index in object)) { return eq_default(object[index], value); } return false; } var _isIterateeCall_default = isIterateeCall; // node_modules/lodash-es/_createAssigner.js function createAssigner(assigner) { return _baseRest_default(function(object, sources) { var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined, guard = length > 2 ? sources[2] : undefined; customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : undefined; if (guard && _isIterateeCall_default(sources[0], sources[1], guard)) { customizer = length < 3 ? undefined : customizer; length = 1; } object = Object(object); while (++index < length) { var source = sources[index]; if (source) { assigner(object, source, index, customizer); } } return object; }); } var _createAssigner_default = createAssigner; // node_modules/lodash-es/_isPrototype.js function isPrototype(value) { var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto5; return value === proto; } var objectProto5 = Object.prototype; var _isPrototype_default = isPrototype; // node_modules/lodash-es/_baseTimes.js function baseTimes(n, iteratee) { var index = -1, result = Array(n); while (++index < n) { result[index] = iteratee(index); } return result; } var _baseTimes_default = baseTimes; // node_modules/lodash-es/_baseIsArguments.js function baseIsArguments(value) { return isObjectLike_default(value) && _baseGetTag_default(value) == argsTag; } var argsTag = "[object Arguments]"; var _baseIsArguments_default = baseIsArguments; // node_modules/lodash-es/isArguments.js var objectProto6 = Object.prototype; var hasOwnProperty4 = objectProto6.hasOwnProperty; var propertyIsEnumerable = objectProto6.propertyIsEnumerable; var isArguments = _baseIsArguments_default(function() { return arguments; }()) ? _baseIsArguments_default : function(value) { return isObjectLike_default(value) && hasOwnProperty4.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); }; var isArguments_default = isArguments; // node_modules/lodash-es/isBuffer.js var exports_isBuffer = {}; __export(exports_isBuffer, { default: () => isBuffer_default }); // node_modules/lodash-es/stubFalse.js function stubFalse() { return false; } var stubFalse_default = stubFalse; // node_modules/lodash-es/isBuffer.js var freeExports = typeof exports_isBuffer == "object" && exports_isBuffer && !exports_isBuffer.nodeType && exports_isBuffer; var freeModule = freeExports && typeof module_isBuffer == "object" && module_isBuffer && !module_isBuffer.nodeType && module_isBuffer; var moduleExports = freeModule && freeModule.exports === freeExports; var Buffer = moduleExports ? _root_default.Buffer : undefined; var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; var isBuffer = nativeIsBuffer || stubFalse_default; var isBuffer_default = isBuffer; // node_modules/lodash-es/_baseIsTypedArray.js function baseIsTypedArray(value) { return isObjectLike_default(value) && isLength_default(value.length) && !!typedArrayTags[_baseGetTag_default(value)]; } var argsTag2 = "[object Arguments]"; var arrayTag = "[object Array]"; var boolTag = "[object Boolean]"; var dateTag = "[object Date]"; var errorTag = "[object Error]"; var funcTag2 = "[object Function]"; var mapTag = "[object Map]"; var numberTag = "[object Number]"; var objectTag = "[object Object]"; var regexpTag = "[object RegExp]"; var setTag = "[object Set]"; var stringTag = "[object String]"; var weakMapTag = "[object WeakMap]"; var arrayBufferTag = "[object ArrayBuffer]"; var dataViewTag = "[object DataView]"; var float32Tag = "[object Float32Array]"; var float64Tag = "[object Float64Array]"; var int8Tag = "[object Int8Array]"; var int16Tag = "[object Int16Array]"; var int32Tag = "[object Int32Array]"; var uint8Tag = "[object Uint8Array]"; var uint8ClampedTag = "[object Uint8ClampedArray]"; var uint16Tag = "[object Uint16Array]"; var uint32Tag = "[object Uint32Array]"; var typedArrayTags = {}; typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; typedArrayTags[argsTag2] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag2] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; var _baseIsTypedArray_default = baseIsTypedArray; // node_modules/lodash-es/_baseUnary.js function baseUnary(func) { return function(value) { return func(value); }; } var _baseUnary_default = baseUnary; // node_modules/lodash-es/_nodeUtil.js var exports__nodeUtil = {}; __export(exports__nodeUtil, { default: () => _nodeUtil_default }); var freeExports2 = typeof exports__nodeUtil == "object" && exports__nodeUtil && !exports__nodeUtil.nodeType && exports__nodeUtil; var freeModule2 = freeExports2 && typeof module__nodeUtil == "object" && module__nodeUtil && !module__nodeUtil.nodeType && module__nodeUtil; var moduleExports2 = freeModule2 && freeModule2.exports === freeExports2; var freeProcess = moduleExports2 && _freeGlobal_default.process; var nodeUtil = function() { try { var types = freeModule2 && freeModule2.require && freeModule2.require("util").types; if (types) { return types; } return freeProcess && freeProcess.binding && freeProcess.binding("util"); } catch (e) { } }(); var _nodeUtil_default = nodeUtil; // node_modules/lodash-es/isTypedArray.js var nodeIsTypedArray = _nodeUtil_default && _nodeUtil_default.isTypedArray; var isTypedArray = nodeIsTypedArray ? _baseUnary_default(nodeIsTypedArray) : _baseIsTypedArray_default; var isTypedArray_default = isTypedArray; // node_modules/lodash-es/_arrayLikeKeys.js function arrayLikeKeys(value, inherited) { var isArr = isArray_default(value), isArg = !isArr && isArguments_default(value), isBuff = !isArr && !isArg && isBuffer_default(value), isType = !isArr && !isArg && !isBuff && isTypedArray_default(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? _baseTimes_default(value.length, String) : [], length = result.length; for (var key in value) { if ((inherited || hasOwnProperty5.call(value, key)) && !(skipIndexes && (key == "length" || isBuff && (key == "offset" || key == "parent") || isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || _isIndex_default(key, length)))) { result.push(key); } } return result; } var objectProto7 = Object.prototype; var hasOwnProperty5 = objectProto7.hasOwnProperty; var _arrayLikeKeys_default = arrayLikeKeys; // node_modules/lodash-es/_overArg.js function overArg(func, transform) { return function(arg) { return func(transform(arg)); }; } var _overArg_default = overArg; // node_modules/lodash-es/_nativeKeys.js var nativeKeys = _overArg_default(Object.keys, Object); var _nativeKeys_default = nativeKeys; // node_modules/lodash-es/_baseKeys.js function baseKeys(object) { if (!_isPrototype_default(object)) { return _nativeKeys_default(object); } var result = []; for (var key in Object(object)) { if (hasOwnProperty6.call(object, key) && key != "constructor") { result.push(key); } } return result; } var objectProto8 = Object.prototype; var hasOwnProperty6 = objectProto8.hasOwnProperty; var _baseKeys_default = baseKeys; // node_modules/lodash-es/keys.js function keys(object) { return isArrayLike_default(object) ? _arrayLikeKeys_default(object) : _baseKeys_default(object); } var keys_default = keys; // node_modules/lodash-es/assign.js var objectProto9 = Object.prototype; var hasOwnProperty7 = objectProto9.hasOwnProperty; var assign = _createAssigner_default(function(object, source) { if (_isPrototype_default(source) || isArrayLike_default(source)) { _copyObject_default(source, keys_default(source), object); return; } for (var key in source) { if (hasOwnProperty7.call(source, key)) { _assignValue_default(object, key, source[key]); } } }); var assign_default = assign; // node_modules/lodash-es/_nativeKeysIn.js function nativeKeysIn(object) { var result = []; if (object != null) { for (var key in Object(object)) { result.push(key); } } return result; } var _nativeKeysIn_default = nativeKeysIn; // node_modules/lodash-es/_baseKeysIn.js function baseKeysIn(object) { if (!isObject_default(object)) { return _nativeKeysIn_default(object); } var isProto = _isPrototype_default(object), result = []; for (var key in object) { if (!(key == "constructor" && (isProto || !hasOwnProperty8.call(object, key)))) { result.push(key); } } return result; } var objectProto10 = Object.prototype; var hasOwnProperty8 = objectProto10.hasOwnProperty; var _baseKeysIn_default = baseKeysIn; // node_modules/lodash-es/keysIn.js function keysIn(object) { return isArrayLike_default(object) ? _arrayLikeKeys_default(object, true) : _baseKeysIn_default(object); } var keysIn_default = keysIn; // node_modules/lodash-es/_isKey.js function isKey(value, object) { if (isArray_default(value)) { return false; } var type = typeof value; if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol_default(value)) { return true; } return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); } var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/; var reIsPlainProp = /^\w*$/; var _isKey_default = isKey; // node_modules/lodash-es/_nativeCreate.js var nativeCreate = _getNative_default(Object, "create"); var _nativeCreate_default = nativeCreate; // node_modules/lodash-es/_hashClear.js function hashClear() { this.__data__ = _nativeCreate_default ? _nativeCreate_default(null) : {}; this.size = 0; } var _hashClear_default = hashClear; // node_modules/lodash-es/_hashDelete.js function hashDelete(key) { var result = this.has(key) && delete this.__data__[key]; this.size -= result ? 1 : 0; return result; } var _hashDelete_default = hashDelete; // node_modules/lodash-es/_hashGet.js function hashGet(key) { var data = this.__data__; if (_nativeCreate_default) { var result = data[key]; return result === HASH_UNDEFINED ? undefined : result; } return hasOwnProperty9.call(data, key) ? data[key] : undefined; } var HASH_UNDEFINED = "__lodash_hash_undefined__"; var objectProto11 = Object.prototype; var hasOwnProperty9 = objectProto11.hasOwnProperty; var _hashGet_default = hashGet; // node_modules/lodash-es/_hashHas.js function hashHas(key) { var data = this.__data__; return _nativeCreate_default ? data[key] !== undefined : hasOwnProperty10.call(data, key); } var objectProto12 = Object.prototype; var hasOwnProperty10 = objectProto12.hasOwnProperty; var _hashHas_default = hashHas; // node_modules/lodash-es/_hashSet.js function hashSet(key, value) { var data = this.__data__; this.size += this.has(key) ? 0 : 1; data[key] = _nativeCreate_default && value === undefined ? HASH_UNDEFINED2 : value; return this; } var HASH_UNDEFINED2 = "__lodash_hash_undefined__"; var _hashSet_default = hashSet; // node_modules/lodash-es/_Hash.js function Hash(entries) { var index = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } Hash.prototype.clear = _hashClear_default; Hash.prototype["delete"] = _hashDelete_default; Hash.prototype.get = _hashGet_default; Hash.prototype.has = _hashHas_default; Hash.prototype.set = _hashSet_default; var _Hash_default = Hash; // node_modules/lodash-es/_listCacheClear.js function listCacheClear() { this.__data__ = []; this.size = 0; } var _listCacheClear_default = listCacheClear; // node_modules/lodash-es/_assocIndexOf.js function assocIndexOf(array, key) { var length = array.length; while (length--) { if (eq_default(array[length][0], key)) { return length; } } return -1; } var _assocIndexOf_default = assocIndexOf; // node_modules/lodash-es/_listCacheDelete.js function listCacheDelete(key) { var data = this.__data__, index = _assocIndexOf_default(data, key); if (index < 0) { return false; } var lastIndex = data.length - 1; if (index == lastIndex) { data.pop(); } else { splice.call(data, index, 1); } --this.size; return true; } var arrayProto = Array.prototype; var splice = arrayProto.splice; var _listCacheDelete_default = listCacheDelete; // node_modules/lodash-es/_listCacheGet.js function listCacheGet(key) { var data = this.__data__, index = _assocIndexOf_default(data, key); return index < 0 ? undefined : data[index][1]; } var _listCacheGet_default = listCacheGet; // node_modules/lodash-es/_listCacheHas.js function listCacheHas(key) { return _assocIndexOf_default(this.__data__, key) > -1; } var _listCacheHas_default = listCacheHas; // node_modules/lodash-es/_listCacheSet.js function listCacheSet(key, value) { var data = this.__data__, index = _assocIndexOf_default(data, key); if (index < 0) { ++this.size; data.push([key, value]); } else { data[index][1] = value; } return this; } var _listCacheSet_default = listCacheSet; // node_modules/lodash-es/_ListCache.js function ListCache(entries) { var index = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } ListCache.prototype.clear = _listCacheClear_default; ListCache.prototype["delete"] = _listCacheDelete_default; ListCache.prototype.get = _listCacheGet_default; ListCache.prototype.has = _listCacheHas_default; ListCache.prototype.set = _listCacheSet_default; var _ListCache_default = ListCache; // node_modules/lodash-es/_Map.js var Map2 = _getNative_default(_root_default, "Map"); var _Map_default = Map2; // node_modules/lodash-es/_mapCacheClear.js function mapCacheClear() { this.size = 0; this.__data__ = { hash: new _Hash_default, map: new (_Map_default || _ListCache_default), string: new _Hash_default }; } var _mapCacheClear_default = mapCacheClear; // node_modules/lodash-es/_isKeyable.js function isKeyable(value) { var type = typeof value; return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; } var _isKeyable_default = isKeyable; // node_modules/lodash-es/_getMapData.js function getMapData(map, key) { var data = map.__data__; return _isKeyable_default(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; } var _getMapData_default = getMapData; // node_modules/lodash-es/_mapCacheDelete.js function mapCacheDelete(key) { var result = _getMapData_default(this, key)["delete"](key); this.size -= result ? 1 : 0; return result; } var _mapCacheDelete_default = mapCacheDelete; // node_modules/lodash-es/_mapCacheGet.js function mapCacheGet(key) { return _getMapData_default(this, key).get(key); } var _mapCacheGet_default = mapCacheGet; // node_modules/lodash-es/_mapCacheHas.js function mapCacheHas(key) { return _getMapData_default(this, key).has(key); } var _mapCacheHas_default = mapCacheHas; // node_modules/lodash-es/_mapCacheSet.js function mapCacheSet(key, value) { var data = _getMapData_default(this, key), size = data.size; data.set(key, value); this.size += data.size == size ? 0 : 1; return this; } var _mapCacheSet_default = mapCacheSet; // node_modules/lodash-es/_MapCache.js function MapCache(entries) { var index = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } MapCache.prototype.clear = _mapCacheClear_default; MapCache.prototype["delete"] = _mapCacheDelete_default; MapCache.prototype.get = _mapCacheGet_default; MapCache.prototype.has = _mapCacheHas_default; MapCache.prototype.set = _mapCacheSet_default; var _MapCache_default = MapCache; // node_modules/lodash-es/memoize.js function memoize(func, resolver) { if (typeof func != "function" || resolver != null && typeof resolver != "function") { throw new TypeError(FUNC_ERROR_TEXT); } var memoized = function() { var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; if (cache.has(key)) { return cache.get(key); } var result = func.apply(this, args); memoized.cache = cache.set(key, result) || cache; return result; }; memoized.cache = new (memoize.Cache || _MapCache_default); return memoized; } var FUNC_ERROR_TEXT = "Expected a function"; memoize.Cache = _MapCache_default; var memoize_default = memoize; // node_modules/lodash-es/_memoizeCapped.js function memoizeCapped(func) { var result = memoize_default(func, function(key) { if (cache.size === MAX_MEMOIZE_SIZE) { cache.clear(); } return key; }); var cache = result.cache; return result; } var MAX_MEMOIZE_SIZE = 500; var _memoizeCapped_default = memoizeCapped; // node_modules/lodash-es/_stringToPath.js var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; var reEscapeChar = /\\(\\)?/g; var stringToPath = _memoizeCapped_default(function(string) { var result = []; if (string.charCodeAt(0) === 46) { result.push(""); } string.replace(rePropName, function(match, number, quote, subString) { result.push(quote ? subString.replace(reEscapeChar, "$1") : number || match); }); return result; }); var _stringToPath_default = stringToPath; // node_modules/lodash-es/toString.js function toString(value) { return value == null ? "" : _baseToString_default(value); } var toString_default = toString; // node_modules/lodash-es/_castPath.js function castPath(value, object) { if (isArray_default(value)) { return value; } return _isKey_default(value, object) ? [value] : _stringToPath_default(toString_default(value)); } var _castPath_default = castPath; // node_modules/lodash-es/_toKey.js function toKey(value) { if (typeof value == "string" || isSymbol_default(value)) { return value; } var result = value + ""; return result == "0" && 1 / value == -INFINITY3 ? "-0" : result; } var INFINITY3 = 1 / 0; var _toKey_default = toKey; // node_modules/lodash-es/_baseGet.js function baseGet(object, path) { path = _castPath_default(path, object); var index = 0, length = path.length; while (object != null && index < length) { object = object[_toKey_default(path[index++])]; } return index && index == length ? object : undefined; } var _baseGet_default = baseGet; // node_modules/lodash-es/get.js function get(object, path, defaultValue) { var result = object == null ? undefined : _baseGet_default(object, path); return result === undefined ? defaultValue : result; } var get_default = get; // node_modules/lodash-es/_arrayPush.js function arrayPush(array, values) { var index = -1, length = values.length, offset = array.length; while (++index < length) { array[offset + index] = values[index]; } return array; } var _arrayPush_default = arrayPush; // node_modules/lodash-es/_isFlattenable.js function isFlattenable(value) { return isArray_default(value) || isArguments_default(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); } var spreadableSymbol = _Symbol_default ? _Symbol_default.isConcatSpreadable : undefined; var _isFlattenable_default = isFlattenable; // node_modules/lodash-es/_baseFlatten.js function baseFlatten(array, depth, predicate, isStrict, result) { var index = -1, length = array.length; predicate || (predicate = _isFlattenable_default); result || (result = []); while (++index < length) { var value = array[index]; if (depth > 0 && predicate(value)) { if (depth > 1) { baseFlatten(value, depth - 1, predicate, isStrict, result); } else { _arrayPush_default(result, value); } } else if (!isStrict) { result[result.length] = value; } } return result; } var _baseFlatten_default = baseFlatten; // node_modules/lodash-es/flatten.js function flatten(array) { var length = array == null ? 0 : array.length; return length ? _baseFlatten_default(array, 1) : []; } var flatten_default = flatten; // node_modules/lodash-es/_getPrototype.js var getPrototype = _overArg_default(Object.getPrototypeOf, Object); var _getPrototype_default = getPrototype; // node_modules/lodash-es/_baseSlice.js function baseSlice(array, start, end) { var index = -1, length = array.length; if (start < 0) { start = -start > length ? 0 : length + start; } end = end > length ? length : end; if (end < 0) { end += length; } length = start > end ? 0 : end - start >>> 0; start >>>= 0; var result = Array(length); while (++index < length) { result[index] = array[index + start]; } return result; } var _baseSlice_default = baseSlice; // node_modules/lodash-es/_arrayReduce.js function arrayReduce(array, iteratee, accumulator, initAccum) { var index = -1, length = array == null ? 0 : array.length; if (initAccum && length) { accumulator = array[++index]; } while (++index < length) { accumulator = iteratee(accumulator, array[index], index, array); } return accumulator; } var _arrayReduce_default = arrayReduce; // node_modules/lodash-es/_stackClear.js function stackClear() { this.__data__ = new _ListCache_default; this.size = 0; } var _stackClear_default = stackClear; // node_modules/lodash-es/_stackDelete.js function stackDelete(key) { var data = this.__data__, result = data["delete"](key); this.size = data.size; return result; } var _stackDelete_default = stackDelete; // node_modules/lodash-es/_stackGet.js function stackGet(key) { return this.__data__.get(key); } var _stackGet_default = stackGet; // node_modules/lodash-es/_stackHas.js function stackHas(key) { return this.__data__.has(key); } var _stackHas_default = stackHas; // node_modules/lodash-es/_stackSet.js function stackSet(key, value) { var data = this.__data__; if (data instanceof _ListCache_default) { var pairs = data.__data__; if (!_Map_default || pairs.length < LARGE_ARRAY_SIZE - 1) { pairs.push([key, value]); this.size = ++data.size; return this; } data = this.__data__ = new _MapCache_default(pairs); } data.set(key, value); this.size = data.size; return this; } var LARGE_ARRAY_SIZE = 200; var _stackSet_default = stackSet; // node_modules/lodash-es/_Stack.js function Stack(entries) { var data = this.__data__ = new _ListCache_default(entries); this.size = data.size; } Stack.prototype.clear = _stackClear_default; Stack.prototype["delete"] = _stackDelete_default; Stack.prototype.get = _stackGet_default; Stack.prototype.has = _stackHas_default; Stack.prototype.set = _stackSet_default; var _Stack_default = Stack; // node_modules/lodash-es/_baseAssign.js function baseAssign(object, source) { return object && _copyObject_default(source, keys_default(source), object); } var _baseAssign_default = baseAssign; // node_modules/lodash-es/_baseAssignIn.js function baseAssignIn(object, source) { return object && _copyObject_default(source, keysIn_default(source), object); } var _baseAssignIn_default = baseAssignIn; // node_modules/lodash-es/_cloneBuffer.js var exports__cloneBuffer = {}; __export(exports__cloneBuffer, { default: () => _cloneBuffer_default }); function cloneBuffer(buffer, isDeep) { if (isDeep) { return buffer.slice(); } var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); buffer.copy(result); return result; } var freeExports3 = typeof exports__cloneBuffer == "object" && exports__cloneBuffer && !exports__cloneBuffer.nodeType && exports__cloneBuffer; var freeModule3 = freeExports3 && typeof module__cloneBuffer == "object" && module__cloneBuffer && !module__cloneBuffer.nodeType && module__cloneBuffer; var moduleExports3 = freeModule3 && freeModule3.exports === freeExports3; var Buffer2 = moduleExports3 ? _root_default.Buffer : undefined; var allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined; var _cloneBuffer_default = cloneBuffer; // node_modules/lodash-es/_arrayFilter.js function arrayFilter(array, predicate) { var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; while (++index < length) { var value = array[index]; if (predicate(value, index, array)) { result[resIndex++] = value; } } return result; } var _arrayFilter_default = arrayFilter; // node_modules/lodash-es/stubArray.js function stubArray() { return []; } var stubArray_default = stubArray; // node_modules/lodash-es/_getSymbols.js var objectProto13 = Object.prototype; var propertyIsEnumerable2 = objectProto13.propertyIsEnumerable; var nativeGetSymbols = Object.getOwnPropertySymbols; var getSymbols = !nativeGetSymbols ? stubArray_default : function(object) { if (object == null) { return []; } object = Object(object); return _arrayFilter_default(nativeGetSymbols(object), function(symbol) { return propertyIsEnumerable2.call(object, symbol); }); }; var _getSymbols_default = getSymbols; // node_modules/lodash-es/_copySymbols.js function copySymbols(source, object) { return _copyObject_default(source, _getSymbols_default(source), object); } var _copySymbols_default = copySymbols; // node_modules/lodash-es/_getSymbolsIn.js var nativeGetSymbols2 = Object.getOwnPropertySymbols; var getSymbolsIn = !nativeGetSymbols2 ? stubArray_default : function(object) { var result = []; while (object) { _arrayPush_default(result, _getSymbols_default(object)); object = _getPrototype_default(object); } return result; }; var _getSymbolsIn_default = getSymbolsIn; // node_modules/lodash-es/_copySymbolsIn.js function copySymbolsIn(source, object) { return _copyObject_default(source, _getSymbolsIn_default(source), object); } var _copySymbolsIn_default = copySymbolsIn; // node_modules/lodash-es/_baseGetAllKeys.js function baseGetAllKeys(object, keysFunc, symbolsFunc) { var result = keysFunc(object); return isArray_default(object) ? result : _arrayPush_default(result, symbolsFunc(object)); } var _baseGetAllKeys_default = baseGetAllKeys; // node_modules/lodash-es/_getAllKeys.js function getAllKeys(object) { return _baseGetAllKeys_default(object, keys_default, _getSymbols_default); } var _getAllKeys_default = getAllKeys; // node_modules/lodash-es/_getAllKeysIn.js function getAllKeysIn(object) { return _baseGetAllKeys_default(object, keysIn_default, _getSymbolsIn_default); } var _getAllKeysIn_default = getAllKeysIn; // node_modules/lodash-es/_DataView.js var DataView = _getNative_default(_root_default, "DataView"); var _DataView_default = DataView; // node_modules/lodash-es/_Promise.js var Promise2 = _getNative_default(_root_default, "Promise"); var _Promise_default = Promise2; // node_modules/lodash-es/_Set.js var Set2 = _getNative_default(_root_default, "Set"); var _Set_default = Set2; // node_modules/lodash-es/_getTag.js var mapTag2 = "[object Map]"; var objectTag2 = "[object Object]"; var promiseTag = "[object Promise]"; var setTag2 = "[object Set]"; var weakMapTag2 = "[object WeakMap]"; var dataViewTag2 = "[object DataView]"; var dataViewCtorString = _toSource_default(_DataView_default); var mapCtorString = _toSource_default(_Map_default); var promiseCtorString = _toSource_default(_Promise_default); var setCtorString = _toSource_default(_Set_default); var weakMapCtorString = _toSource_default(_WeakMap_default); var getTag = _baseGetTag_default; if (_DataView_default && getTag(new _DataView_default(new ArrayBuffer(1))) != dataViewTag2 || _Map_default && getTag(new _Map_default) != mapTag2 || _Promise_default && getTag(_Promise_default.resolve()) != promiseTag || _Set_default && getTag(new _Set_default) != setTag2 || _WeakMap_default && getTag(new _WeakMap_default) != weakMapTag2) { getTag = function(value) { var result = _baseGetTag_default(value), Ctor = result == objectTag2 ? value.constructor : undefined, ctorString = Ctor ? _toSource_default(Ctor) : ""; if (ctorString) { switch (ctorString) { case dataViewCtorString: return dataViewTag2; case mapCtorString: return mapTag2; case promiseCtorString: return promiseTag; case setCtorString: return setTag2; case weakMapCtorString: return weakMapTag2; } } return result; }; } var _getTag_default = getTag; // node_modules/lodash-es/_initCloneArray.js function initCloneArray(array) { var length = array.length, result = new array.constructor(length); if (length && typeof array[0] == "string" && hasOwnProperty11.call(array, "index")) { result.index = array.index; result.input = array.input; } return result; } var objectProto14 = Object.prototype; var hasOwnProperty11 = objectProto14.hasOwnProperty; var _initCloneArray_default = initCloneArray; // node_modules/lodash-es/_Uint8Array.js var Uint8Array = _root_default.Uint8Array; var _Uint8Array_default = Uint8Array; // node_modules/lodash-es/_cloneArrayBuffer.js function cloneArrayBuffer(arrayBuffer) { var result = new arrayBuffer.constructor(arrayBuffer.byteLength); new _Uint8Array_default(result).set(new _Uint8Array_default(arrayBuffer)); return result; } var _cloneArrayBuffer_default = cloneArrayBuffer; // node_modules/lodash-es/_cloneDataView.js function cloneDataView(dataView, isDeep) { var buffer = isDeep ? _cloneArrayBuffer_default(dataView.buffer) : dataView.buffer; return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); } var _cloneDataView_default = cloneDataView; // node_modules/lodash-es/_cloneRegExp.js function cloneRegExp(regexp) { var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); result.lastIndex = regexp.lastIndex; return result; } var reFlags = /\w*$/; var _cloneRegExp_default = cloneRegExp; // node_modules/lodash-es/_cloneSymbol.js function cloneSymbol(symbol) { return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; } var symbolProto2 = _Symbol_default ? _Symbol_default.prototype : undefined; var symbolValueOf = symbolProto2 ? symbolProto2.valueOf : undefined; var _cloneSymbol_default = cloneSymbol; // node_modules/lodash-es/_cloneTypedArray.js function cloneTypedArray(typedArray, isDeep) {