@ywfe/fe-tools 1.0.2-beta.5 → 1.0.2-beta.7
Sign up to get free protection for your applications and to get access to all the features.
- package/index.ts +1 -1
- package/jest.config.js +12 -0
- package/package.json +19 -13
- package/rollup.config.js +72 -21
- package/tsconfig.json +17 -3
- package/tsconfig.type.json +7 -7
- package/userInputToJson.ts +2 -2
- package/lib/JSON2String.d.ts +0 -5
- package/lib/JSON2String.d.ts.map +0 -1
- package/lib/index.d.ts +0 -4
- package/lib/index.d.ts.map +0 -1
- package/lib/request.d.ts +0 -10
- package/lib/request.d.ts.map +0 -1
- package/lib/userInputToJson.d.ts +0 -9
- package/lib/userInputToJson.d.ts.map +0 -1
- package/lib/ywfe-tools.esm.js +0 -8677
- package/lib/ywfe-tools.esm.js.map +0 -1
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"ywfe-tools.esm.js","sources":["../node_modules/@ywfe/utils/lib/ywfe-utils.esm.js","../../request.ts","../../userInputToJson.ts","../../JSON2String.ts"],"sourcesContent":["'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar require$$0 = require('fs');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0);\n\n/*\n * @author 春风\n * @date 2021/7/8 下午2:53\n **/\nfunction basePullAt(array, indexes) {\n let length = array ? indexes.length : 0, lastIndex = length - 1, previous = 0;\n while (length--) {\n const index = indexes[length];\n if (length == lastIndex || index !== previous) {\n previous = index;\n Array.prototype.splice.call(array, index, 1);\n }\n }\n return array;\n}\n\nfunction remove(array, predicate) {\n const result = [];\n if (!(array && array.length)) {\n return result;\n }\n let index = -1, indexes = [], length = array.length;\n while (++index < length) {\n const value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n}\n\nfunction _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}\n\n/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nfunction _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n idx = 0;\n\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n\n idx = 0;\n\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n\n return result;\n}\n\nfunction _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}\n\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n\n combined[combinedIdx] = result;\n\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n\n combinedIdx += 1;\n }\n\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}\n\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curryN =\n/*#__PURE__*/\n_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n\n return _arity(length, _curryN(length, [], fn));\n});\n\nvar curryN$1 = curryN;\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nfunction _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}\n\n/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nvar _isArray = Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};\n\nfunction _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}\n\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\nfunction _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n\n if (!_isArray(obj)) {\n var idx = 0;\n\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n\n idx += 1;\n }\n\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n\n return fn.apply(this, arguments);\n };\n}\n\nfunction _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}\n\nvar _xfBase = {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};\n\nfunction _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n\n return result;\n}\n\nfunction _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\nvar _isArrayLike =\n/*#__PURE__*/\n_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n\n if (!x) {\n return false;\n }\n\n if (typeof x !== 'object') {\n return false;\n }\n\n if (_isString(x)) {\n return false;\n }\n\n if (x.nodeType === 1) {\n return !!x.length;\n }\n\n if (x.length === 0) {\n return true;\n }\n\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n\n return false;\n});\n\nvar _isArrayLike$1 = _isArrayLike;\n\nvar XWrap =\n/*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nfunction _xwrap(fn) {\n return new XWrap(fn);\n}\n\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\nvar bind =\n/*#__PURE__*/\n_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\n\nvar bind$1 = bind;\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind$1(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nfunction _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n\n if (_isArrayLike$1(list)) {\n return _arrayReduce(fn, acc, list);\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}\n\nvar XMap =\n/*#__PURE__*/\nfunction () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap =\n/*#__PURE__*/\n_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\n\nvar _xmap$1 = _xmap;\n\nfunction _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar toString$2 = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString$2.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString$2.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nvar _isArguments$1 = _isArguments;\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments$1(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nvar keys$1 = keys;\n\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\nvar map =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/map', 'map'], _xmap$1, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN$1(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys$1(functor));\n\n default:\n return _map(fn, functor);\n }\n}));\n\nvar map$1 = map;\n\n/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nvar _isInteger = Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};\n\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\nvar nth =\n/*#__PURE__*/\n_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\n\nvar nth$1 = nth;\n\n/**\n * Retrieves the values at given paths of an object.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Object\n * @typedefn Idx = [String | Int]\n * @sig [Idx] -> {a} -> [a | Undefined]\n * @param {Array} pathsArray The array of paths to be fetched.\n * @param {Object} obj The object to retrieve the nested properties from.\n * @return {Array} A list consisting of values at paths specified by \"pathsArray\".\n * @see R.path\n * @example\n *\n * R.paths([['a', 'b'], ['p', 0, 'q']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, 3]\n * R.paths([['a', 'b'], ['p', 'r']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, undefined]\n */\n\nvar paths =\n/*#__PURE__*/\n_curry2(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n\n p = paths[idx];\n val = _isInteger(p) ? nth$1(p, val) : val[p];\n idx += 1;\n }\n\n return val;\n });\n});\n\nvar paths$1 = paths;\n\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop, R.nth\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n * R.path(['a', 'b', 0], {a: {b: [1, 2, 3]}}); //=> 1\n * R.path(['a', 'b', -2], {a: {b: [1, 2, 3]}}); //=> 2\n */\n\nvar path =\n/*#__PURE__*/\n_curry2(function path(pathAr, obj) {\n return paths$1([pathAr], obj)[0];\n});\n\nvar path$1 = path;\n\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig Idx -> {s: a} -> a | Undefined\n * @param {String|Number} p The property name or array index\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path, R.nth\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.prop(0, [100]); //=> 100\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop =\n/*#__PURE__*/\n_curry2(function prop(p, obj) {\n return path$1([p], obj);\n});\n\nvar prop$1 = prop;\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\nvar reduce =\n/*#__PURE__*/\n_curry3(_reduce);\n\nvar reduce$1 = reduce;\n\n/**\n * ap applies a list of functions to a list of values.\n *\n * Dispatches to the `ap` method of the second argument, if present. Also\n * treats curried functions as applicatives.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig [a -> b] -> [a] -> [b]\n * @sig Apply f => f (a -> b) -> f a -> f b\n * @sig (r -> a -> b) -> (r -> a) -> (r -> b)\n * @param {*} applyF\n * @param {*} applyX\n * @return {*}\n * @example\n *\n * R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]\n * R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> [\"tasty pizza\", \"tasty salad\", \"PIZZA\", \"SALAD\"]\n *\n * // R.ap can also be used as S combinator\n * // when only two functions are passed\n * R.ap(R.concat, R.toUpper)('Ramda') //=> 'RamdaRAMDA'\n * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]\n */\n\nvar ap =\n/*#__PURE__*/\n_curry2(function ap(applyF, applyX) {\n return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {\n return applyF(x)(applyX(x));\n } : _reduce(function (acc, f) {\n return _concat(acc, map$1(f, applyX));\n }, [], applyF);\n});\n\nvar ap$1 = ap;\n\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\n\nvar values =\n/*#__PURE__*/\n_curry1(function values(obj) {\n var props = keys$1(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n\n return vals;\n});\n\nvar values$1 = values;\n\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\nvar isNil =\n/*#__PURE__*/\n_curry1(function isNil(x) {\n return x == null;\n});\n\nvar isNil$1 = isNil;\n\nfunction _isFunction(x) {\n var type = Object.prototype.toString.call(x);\n return type === '[object Function]' || type === '[object AsyncFunction]' || type === '[object GeneratorFunction]' || type === '[object AsyncGeneratorFunction]';\n}\n\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" that\n * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig Number -> (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.lift, R.ap\n * @example\n *\n * const madd3 = R.liftN(3, (...args) => R.sum(args));\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n */\n\nvar liftN =\n/*#__PURE__*/\n_curry2(function liftN(arity, fn) {\n var lifted = curryN$1(arity, fn);\n return curryN$1(arity, function () {\n return _reduce(ap$1, map$1(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\n\nvar liftN$1 = liftN;\n\n/**\n * \"lifts\" a function of arity > 1 so that it may \"map over\" a list, Function or other\n * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.liftN\n * @example\n *\n * const madd3 = R.lift((a, b, c) => a + b + c);\n *\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n *\n * const madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);\n *\n * madd5([1,2], [3], [4, 5], [6], [7, 8]); //=> [21, 22, 22, 23, 22, 23, 23, 24]\n */\n\nvar lift =\n/*#__PURE__*/\n_curry1(function lift(fn) {\n return liftN$1(fn.length, fn);\n});\n\nvar lift$1 = lift;\n\n/**\n * Returns a curried equivalent of the provided function. The curried function\n * has two unusual capabilities. First, its arguments needn't be provided one\n * at a time. If `f` is a ternary function and `g` is `R.curry(f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> a) -> (* -> a)\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curryN, R.partial\n * @example\n *\n * const addFourNumbers = (a, b, c, d) => a + b + c + d;\n *\n * const curriedAddFourNumbers = R.curry(addFourNumbers);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curry =\n/*#__PURE__*/\n_curry1(function curry(fn) {\n return curryN$1(fn.length, fn);\n});\n\nvar curry$1 = curry;\n\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\n\nfunction _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n\n while (idx < ilen) {\n if (_isArrayLike$1(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n };\n}\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\nvar type =\n/*#__PURE__*/\n_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\n\nvar type$1 = type;\n\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\n\nvar not =\n/*#__PURE__*/\n_curry1(function not(a) {\n return !a;\n});\n\nvar not$1 = not;\n\n/**\n * Takes a function `f` and returns a function `g` such that if called with the same arguments\n * when `f` returns a \"truthy\" value, `g` returns `false` and when `f` returns a \"falsy\" value `g` returns `true`.\n *\n * `R.complement` may be applied to any functor\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> *) -> (*... -> Boolean)\n * @param {Function} f\n * @return {Function}\n * @see R.not\n * @example\n *\n * const isNotNil = R.complement(R.isNil);\n * isNil(null); //=> true\n * isNotNil(null); //=> false\n * isNil(7); //=> false\n * isNotNil(7); //=> true\n */\n\nvar complement =\n/*#__PURE__*/\nlift$1(not$1);\nvar complement$1 = complement;\n\nfunction _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}\n\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\nfunction _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n\n if (length === 0) {\n return fn();\n }\n\n var obj = arguments[length - 1];\n return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}\n\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\nvar slice =\n/*#__PURE__*/\n_curry3(\n/*#__PURE__*/\n_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\n\nvar slice$1 = slice;\n\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\nvar tail =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_checkForMethod('tail',\n/*#__PURE__*/\nslice$1(1, Infinity)));\n\nvar tail$1 = tail;\n\n/**\n * Performs left-to-right function composition. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n */\n\nfunction pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n\n return _arity(arguments[0].length, reduce$1(_pipe, arguments[0], tail$1(arguments)));\n}\n\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse =\n/*#__PURE__*/\n_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\nvar reverse$1 = reverse;\n\n/**\n * Performs right-to-left function composition. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n */\n\nfunction compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n\n return pipe.apply(this, reverse$1(arguments));\n}\n\nfunction _identity(x) {\n return x;\n}\n\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity =\n/*#__PURE__*/\n_curry1(_identity);\n\nvar identity$1 = identity;\n\nfunction _arrayFromIterator(iter) {\n var list = [];\n var next;\n\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n\n return list;\n}\n\nfunction _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}\n\nfunction _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}\n\n// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nvar _objectIs$1 = typeof Object.is === 'function' ? Object.is : _objectIs;\n\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n } // if *a* array contains any element that is not included in *b*\n\n\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nfunction _equals(a, b, stackA, stackB) {\n if (_objectIs$1(a, b)) {\n return true;\n }\n\n var typeA = type$1(a);\n\n if (typeA !== type$1(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n\n break;\n\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs$1(a.valueOf(), b.valueOf()))) {\n return false;\n }\n\n break;\n\n case 'Date':\n if (!_objectIs$1(a.valueOf(), b.valueOf())) {\n return false;\n }\n\n break;\n\n case 'Error':\n return a.name === b.name && a.message === b.message;\n\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n\n break;\n }\n\n var idx = stackA.length - 1;\n\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys$1(a);\n\n if (keysA.length !== keys$1(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n\n while (idx >= 0) {\n var key = keysA[idx];\n\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n\n idx -= 1;\n }\n\n return true;\n}\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\n\nvar equals =\n/*#__PURE__*/\n_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\n\nvar equals$1 = equals;\n\nfunction _indexOf(list, a, idx) {\n var inf, item; // Array.prototype.indexOf doesn't exist below IE9\n\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n\n while (idx < list.length) {\n item = list[idx];\n\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } // non-zero numbers can utilise Set\n\n\n return list.indexOf(a, idx);\n // all these types can utilise Set\n\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n\n }\n } // anything else not covered above, defer to R.equals\n\n\n while (idx < list.length) {\n if (equals$1(list[idx], a)) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}\n\nfunction _includes(a, list) {\n return _indexOf(list, a, 0) >= 0;\n}\n\nfunction _quote(s) {\n var escaped = s.replace(/\\\\/g, '\\\\\\\\').replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t').replace(/\\v/g, '\\\\v').replace(/\\0/g, '\\\\0');\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n}\n\n/**\n * Polyfill from <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString>.\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nvar _toISOString$1 = _toISOString;\n\nfunction _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}\n\nfunction _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n}\n\nfunction _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}\n\nvar XFilter =\n/*#__PURE__*/\nfunction () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return XFilter;\n}();\n\nvar _xfilter =\n/*#__PURE__*/\n_curry2(function _xfilter(f, xf) {\n return new XFilter(f, xf);\n});\n\nvar _xfilter$1 = _xfilter;\n\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar filter =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['filter'], _xfilter$1, function (pred, filterable) {\n return _isObject(filterable) ? _reduce(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n\n return acc;\n }, {}, keys$1(filterable)) : // else\n _filter(pred, filterable);\n}));\n\nvar filter$1 = filter;\n\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 === 1;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar reject =\n/*#__PURE__*/\n_curry2(function reject(pred, filterable) {\n return filter$1(_complement(pred), filterable);\n});\n\nvar reject$1 = reject;\n\nfunction _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return _includes(y, xs) ? '<Circular>' : _toString(y, xs);\n }; // mapPairs :: (Object, [String]) -> [String]\n\n\n var mapPairs = function (obj, keys) {\n return _map(function (k) {\n return _quote(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + _map(recur, x).join(', ') + '))';\n\n case '[object Array]':\n return '[' + _map(recur, x).concat(mapPairs(x, reject$1(function (k) {\n return /^\\d+$/.test(k);\n }, keys$1(x)))).join(', ') + ']';\n\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString$1(x))) + ')';\n\n case '[object Null]':\n return 'null';\n\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : _quote(x);\n\n case '[object Undefined]':\n return 'undefined';\n\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n\n return '{' + mapPairs(x, keys$1(x)).join(', ') + '}';\n }\n}\n\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\n\nvar toString =\n/*#__PURE__*/\n_curry1(function toString(val) {\n return _toString(val, []);\n});\n\nvar toString$1 = toString;\n\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: `R.concat` expects both arguments to be of the same type,\n * unlike the native `Array.prototype.concat` method. It will throw\n * an error if you `concat` an Array with a non-Array value.\n *\n * Dispatches to the `concat` method of the first argument, if present.\n * Can also concatenate two members of a [fantasy-land\n * compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of\n * `secondList`.\n *\n * @example\n *\n * R.concat('ABC', 'DEF'); // 'ABCDEF'\n * R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n * R.concat([], []); //=> []\n */\n\nvar concat =\n/*#__PURE__*/\n_curry2(function concat(a, b) {\n if (_isArray(a)) {\n if (_isArray(b)) {\n return a.concat(b);\n }\n\n throw new TypeError(toString$1(b) + ' is not an array');\n }\n\n if (_isString(a)) {\n if (_isString(b)) {\n return a + b;\n }\n\n throw new TypeError(toString$1(b) + ' is not a string');\n }\n\n if (a != null && _isFunction(a['fantasy-land/concat'])) {\n return a['fantasy-land/concat'](b);\n }\n\n if (a != null && _isFunction(a.concat)) {\n return a.concat(b);\n }\n\n throw new TypeError(toString$1(a) + ' does not have a method named \"concat\" or \"fantasy-land/concat\"');\n});\n\nvar concat$1 = concat;\n\nvar _Set =\n/*#__PURE__*/\nfunction () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n }; //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n\n\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n }; //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n\n\n return _Set;\n}();\n\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n\n return false;\n }\n } // these types can all utilise the native Set\n\n\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n }\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n\n return false;\n }\n\n return true;\n }\n\n /* falls through */\n\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n } // scan through all previously applied items\n\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n} // A simple Set type that honours R.equals semantics\n\n\nvar _Set$1 = _Set;\n\n/**\n * Returns the empty value of its argument's type. Ramda defines the empty\n * value of Array (`[]`), Object (`{}`), String (`''`), and Arguments. Other\n * types are supported if they define `<Type>.empty`,\n * `<Type>.prototype.empty` or implement the\n * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).\n *\n * Dispatches to the `empty` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> a\n * @param {*} x\n * @return {*}\n * @example\n *\n * R.empty(Just(42)); //=> Nothing()\n * R.empty([1, 2, 3]); //=> []\n * R.empty('unicorns'); //=> ''\n * R.empty({x: 1, y: 2}); //=> {}\n */\n\nvar empty =\n/*#__PURE__*/\n_curry1(function empty(x) {\n return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : _isArray(x) ? [] : _isString(x) ? '' : _isObject(x) ? {} : _isArguments$1(x) ? function () {\n return arguments;\n }() : void 0 // else\n ;\n});\n\nvar empty$1 = empty;\n\nvar XFind =\n/*#__PURE__*/\nfunction () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, input));\n }\n\n return result;\n };\n\n return XFind;\n}();\n\nvar _xfind =\n/*#__PURE__*/\n_curry2(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\n\nvar _xfind$1 = _xfind;\n\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar find =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['find'], _xfind$1, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx += 1;\n }\n}));\n\nvar find$1 = find;\n\n/**\n * Returns a new list by pulling every item out of it (and all its sub-arrays)\n * and putting them in a new array, depth-first.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b]\n * @param {Array} list The array to consider.\n * @return {Array} The flattened list.\n * @see R.unnest\n * @example\n *\n * R.flatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]);\n * //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n */\n\nvar flatten =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_makeFlat(true));\n\nvar flatten$1 = flatten;\n\n/**\n * Creates a new object from a list key-value pairs. If a key appears in\n * multiple pairs, the rightmost pair is included in the object.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [[k,v]] -> {k: v}\n * @param {Array} pairs An array of two-element arrays that will be the keys and values of the output object.\n * @return {Object} The object made by pairing up `keys` and `values`.\n * @see R.toPairs, R.pair\n * @example\n *\n * R.fromPairs([['a', 1], ['b', 2], ['c', 3]]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar fromPairs =\n/*#__PURE__*/\n_curry1(function fromPairs(pairs) {\n var result = {};\n var idx = 0;\n\n while (idx < pairs.length) {\n result[pairs[idx][0]] = pairs[idx][1];\n idx += 1;\n }\n\n return result;\n});\n\nvar fromPairs$1 = fromPairs;\n\n/**\n * Returns whether or not a path exists in an object. Only the object's\n * own properties are checked.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array} path The path to use.\n * @param {Object} obj The object to check the path in.\n * @return {Boolean} Whether the path exists.\n * @see R.has\n * @example\n *\n * R.hasPath(['a', 'b'], {a: {b: 2}}); // => true\n * R.hasPath(['a', 'b'], {a: {b: undefined}}); // => true\n * R.hasPath(['a', 'b'], {a: {c: 2}}); // => false\n * R.hasPath(['a', 'b'], {}); // => false\n */\n\nvar hasPath =\n/*#__PURE__*/\n_curry2(function hasPath(_path, obj) {\n if (_path.length === 0 || isNil$1(obj)) {\n return false;\n }\n\n var val = obj;\n var idx = 0;\n\n while (idx < _path.length) {\n if (!isNil$1(val) && _has(_path[idx], val)) {\n val = val[_path[idx]];\n idx += 1;\n } else {\n return false;\n }\n }\n\n return true;\n});\n\nvar hasPath$1 = hasPath;\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied function to\n * each list element. Prefers the first item if the supplied function produces\n * the same value on two items. [`R.equals`](#equals) is used for comparison.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> b) -> [a] -> [a]\n * @param {Function} fn A function used to produce a value to use during comparisons.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]\n */\n\nvar uniqBy =\n/*#__PURE__*/\n_curry2(function uniqBy(fn, list) {\n var set = new _Set$1();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n\n if (set.add(appliedItem)) {\n result.push(item);\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nvar uniqBy$1 = uniqBy;\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list. [`R.equals`](#equals) is used to determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniq([1, 1, 2, 1]); //=> [1, 2]\n * R.uniq([1, '1']); //=> [1, '1']\n * R.uniq([[42], [42]]); //=> [[42]]\n */\n\nvar uniq =\n/*#__PURE__*/\nuniqBy$1(identity$1);\nvar uniq$1 = uniq;\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n\n while (idx < length) {\n var source = arguments[idx];\n\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n\n idx += 1;\n }\n\n return output;\n}\n\nvar _objectAssign$1 = typeof Object.assign === 'function' ? Object.assign : _objectAssign;\n\n/**\n * Turns a named method with a specified arity into a function that can be\n * called directly supplied with arguments and a target object.\n *\n * The returned function is curried and accepts `arity + 1` parameters where\n * the final parameter is the target object.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> String -> (a -> b -> ... -> n -> Object -> *)\n * @param {Number} arity Number of arguments the returned function should take\n * before the target object.\n * @param {String} method Name of any of the target object's methods to call.\n * @return {Function} A new curried function.\n * @see R.construct\n * @example\n *\n * const sliceFrom = R.invoker(1, 'slice');\n * sliceFrom(6, 'abcdefghijklm'); //=> 'ghijklm'\n * const sliceFrom6 = R.invoker(2, 'slice')(6);\n * sliceFrom6(8, 'abcdefghijklm'); //=> 'gh'\n *\n * const dog = {\n * speak: async () => 'Woof!'\n * };\n * const speak = R.invoker(0, 'speak');\n * speak(dog).then(console.log) //~> 'Woof!'\n *\n * @symb R.invoker(0, 'method')(o) = o['method']()\n * @symb R.invoker(1, 'method')(a, o) = o['method'](a)\n * @symb R.invoker(2, 'method')(a, b, o) = o['method'](a, b)\n */\n\nvar invoker =\n/*#__PURE__*/\n_curry2(function invoker(arity, method) {\n return curryN$1(arity + 1, function () {\n var target = arguments[arity];\n\n if (target != null && _isFunction(target[method])) {\n return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity));\n }\n\n throw new TypeError(toString$1(target) + ' does not have a method named \"' + method + '\"');\n });\n});\n\nvar invoker$1 = invoker;\n\n/**\n * See if an object (`val`) is an instance of the supplied constructor. This\n * function will check up the inheritance chain, if any.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Type\n * @sig (* -> {*}) -> a -> Boolean\n * @param {Object} ctor A constructor\n * @param {*} val The value to test\n * @return {Boolean}\n * @example\n *\n * R.is(Object, {}); //=> true\n * R.is(Number, 1); //=> true\n * R.is(Object, 1); //=> false\n * R.is(String, 's'); //=> true\n * R.is(String, new String('')); //=> true\n * R.is(Object, new String('')); //=> true\n * R.is(Object, 's'); //=> false\n * R.is(Number, {}); //=> false\n */\n\nvar is =\n/*#__PURE__*/\n_curry2(function is(Ctor, val) {\n return val != null && val.constructor === Ctor || val instanceof Ctor;\n});\n\nvar is$1 = is;\n\n/**\n * Returns `true` if the given value is its type's empty value; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> Boolean\n * @param {*} x\n * @return {Boolean}\n * @see R.empty\n * @example\n *\n * R.isEmpty([1, 2, 3]); //=> false\n * R.isEmpty([]); //=> true\n * R.isEmpty(''); //=> true\n * R.isEmpty(null); //=> false\n * R.isEmpty({}); //=> true\n * R.isEmpty({length: 0}); //=> false\n */\n\nvar isEmpty =\n/*#__PURE__*/\n_curry1(function isEmpty(x) {\n return x != null && equals$1(x, empty$1(x));\n});\n\nvar isEmpty$1 = isEmpty;\n\n/**\n * Merges a list of objects together into one object.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig [{k: v}] -> {k: v}\n * @param {Array} list An array of objects\n * @return {Object} A merged object.\n * @see R.reduce\n * @example\n *\n * R.mergeAll([{foo:1},{bar:2},{baz:3}]); //=> {foo:1,bar:2,baz:3}\n * R.mergeAll([{foo:1},{foo:2},{bar:2}]); //=> {foo:2,bar:2}\n * @symb R.mergeAll([{ x: 1 }, { y: 2 }, { z: 3 }]) = { x: 1, y: 2, z: 3 }\n */\n\nvar mergeAll =\n/*#__PURE__*/\n_curry1(function mergeAll(list) {\n return _objectAssign$1.apply(null, [{}].concat(list));\n});\n\nvar mergeAll$1 = mergeAll;\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\n\nvar omit =\n/*#__PURE__*/\n_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\nvar omit$1 = omit;\n\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\n\nvar propEq =\n/*#__PURE__*/\n_curry3(function propEq(name, val, obj) {\n return equals$1(val, obj[name]);\n});\n\nvar propEq$1 = propEq;\n\n/**\n * Replace a substring or regex match in a string with a replacement.\n *\n * The first two parameters correspond to the parameters of the\n * `String.prototype.replace()` function, so the second parameter can also be a\n * function.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category String\n * @sig RegExp|String -> String -> String -> String\n * @param {RegExp|String} pattern A regular expression or a substring to match.\n * @param {String} replacement The string to replace the matches with.\n * @param {String} str The String to do the search and replacement in.\n * @return {String} The result.\n * @example\n *\n * R.replace('foo', 'bar', 'foo foo foo'); //=> 'bar foo foo'\n * R.replace(/foo/, 'bar', 'foo foo foo'); //=> 'bar foo foo'\n *\n * // Use the \"g\" (global) flag to replace all occurrences:\n * R.replace(/foo/g, 'bar', 'foo foo foo'); //=> 'bar bar bar'\n */\n\nvar replace =\n/*#__PURE__*/\n_curry3(function replace(regex, replacement, str) {\n return str.replace(regex, replacement);\n});\n\nvar replace$1 = replace;\n\n/**\n * Splits a string into an array of strings based on the given\n * separator.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig (String | RegExp) -> String -> [String]\n * @param {String|RegExp} sep The pattern.\n * @param {String} str The string to separate into an array.\n * @return {Array} The array of strings from `str` separated by `sep`.\n * @see R.join\n * @example\n *\n * const pathComponents = R.split('/');\n * R.tail(pathComponents('/usr/local/bin/node')); //=> ['usr', 'local', 'bin', 'node']\n *\n * R.split('.', 'a.b.c.xyz.d'); //=> ['a', 'b', 'c', 'xyz', 'd']\n */\n\nvar split$1 =\n/*#__PURE__*/\ninvoker$1(1, 'split');\nvar split$2 = split$1;\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\n\nvar trim = !hasProtoTrim ||\n/*#__PURE__*/\nws.trim() || !\n/*#__PURE__*/\nzeroWidth.trim() ?\n/*#__PURE__*/\n_curry1(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) :\n/*#__PURE__*/\n_curry1(function trim(str) {\n return str.trim();\n});\nvar trim$1 = trim;\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @example\n *\n * R.union([1, 2, 3], [2, 3, 4]); //=> [1, 2, 3, 4]\n */\n\nvar union =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\ncompose(uniq$1, _concat));\n\nvar union$1 = union;\n\nconst trimAll = (data) => {\n if (isNil$1(data) || isEmpty$1(data)) {\n return data;\n }\n const type = type$1(data);\n switch (type) {\n case 'String': {\n return trim$1(data);\n }\n case 'Array': {\n return filter$1(complement$1(isEmpty$1))(data);\n }\n default: {\n return data;\n }\n }\n};\n\nconst split = (separator, data) => {\n if (isEmpty$1(data) || isNil$1(data)) {\n return [];\n }\n return pipe(split$2(separator), trimAll)(data);\n};\n\n// sessionStorage\nconst YS = {\n set: (name, value) => {\n if (typeof window !== 'undefined') {\n window.sessionStorage.setItem(name, value);\n }\n },\n get: (name) => {\n if (typeof window !== 'undefined') {\n return window.sessionStorage.getItem(name);\n }\n return null;\n },\n remove: (name) => {\n if (typeof window !== 'undefined') {\n window.sessionStorage.removeItem(name);\n }\n },\n clear: () => {\n if (typeof window !== 'undefined') {\n window.sessionStorage.clear();\n }\n }\n};\n// locationStorage\nconst YL = {\n set: (name, value) => {\n if (typeof window !== 'undefined') {\n window.localStorage.setItem(name, value);\n }\n },\n get: (name) => {\n if (typeof window !== 'undefined') {\n return window.localStorage.getItem(name);\n }\n return null;\n },\n remove: (name) => {\n if (typeof window !== 'undefined') {\n window.localStorage.removeItem(name);\n }\n },\n clear: () => {\n if (typeof window !== 'undefined') {\n window.localStorage.clear();\n }\n }\n};\n\n// cookie\nconst YC = {\n set: (name, value, exdays) => {\n const d = new Date();\n d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);\n const expires = `expires=${d.toUTCString()}`;\n document.cookie = `${name}=${escape(value)};${expires};path=/`;\n },\n get: (name) => {\n const str = `${name}=`;\n const ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i += 1) {\n let c = ca[i];\n while (c.charAt(0) === ' ')\n c = c.substring(1);\n if (c.indexOf(str) !== -1)\n return c.substring(str.length, c.length);\n }\n return undefined;\n },\n};\n\n/**\n * 仅触发一次事件\n *\n * @private\n *\n * @param node DOM 节点\n * @param name 事件名称\n * @param callback 回调函数\n */\nfunction once(node, name, fn, options) {\n function listener(event) {\n node.removeEventListener(name, listener);\n fn(event);\n }\n node.addEventListener(name, listener, options);\n}\n/**\n * 监听脚本加载事件 - IE 兼容\n *\n * @private\n *\n * @param node DOM 节点\n * @param callback 回调函数\n */\nfunction listenWithIE(node, callback) {\n node.onreadystatechange = function () {\n if (node.readyState === 'loaded' || node.readyState === 'complete') {\n node.onreadystatechange = null;\n callback();\n }\n };\n}\n/**\n * 监听脚本加载事件 - 其他浏览器\n *\n * @private\n *\n * @param node DOM 节点\n * @param callback 回调函数\n */\nfunction listen(node, onSuccess, onError) {\n once(node, 'load', onSuccess);\n once(node, 'error', onError);\n}\n// 允许的属性名单\nconst allowLists = [\n 'id',\n 'type',\n 'async',\n 'defer',\n 'crossOrigin',\n 'integrity',\n 'noModule',\n];\n/**\n * 动态加载脚本\n *\n * @param src 文件地址\n * @param attrs 可选的属性\n *\n * @returns dom 节点\n *\n * @example\n *\n * try {\n * const src = 'https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js'\n *\n * await loadScript(src, { id: 'jquery.3.6.0.min' })\n * } catch {\n * alert('加载失败')\n * }\n */\nfunction loadScript(umd, progectId, attrs) {\n return new Promise((resolve, reject) => {\n const scriptNode = document.createElement('script');\n // const styleNode: HTMLLinkElement = document.createElement('link');\n // const id = uuidv4();\n scriptNode.id = progectId;\n // styleNode.id = id;\n // 监听事件\n if (scriptNode.readyState) {\n listenWithIE(scriptNode, () => resolve(scriptNode));\n }\n else {\n listen(scriptNode, () => resolve(scriptNode), () => {\n reject();\n document.removeChild(document.getElementById(progectId));\n });\n }\n // 设置白名单属性\n if (attrs) {\n allowLists.forEach(attrName => {\n if (attrName in attrs) {\n const value = attrs[attrName];\n if (typeof value === 'string') {\n scriptNode.setAttribute(attrName, value);\n // styleNode.setAttribute(attrName, value);\n }\n else if (typeof value === 'boolean') {\n // 布尔值与字符串的设置不太一样\n scriptNode[attrName] = value;\n }\n }\n });\n }\n // 设置资源地址\n scriptNode.src = umd.js;\n // styleNode.href = umd.css;\n // 插入到页面中\n document.body.appendChild(scriptNode);\n // document.body.appendChild(styleNode);\n });\n}\nfunction unLoadScript(progectId) {\n if (document.getElementById(progectId)) {\n const scriptNode = document.getElementById(progectId);\n document.body.removeChild(scriptNode);\n }\n}\n\nconst isDate = (value) => {\n let date = value;\n if (value instanceof Date) {\n date = value;\n }\n else if (typeof value === 'string' &&\n String(value).length >= 13 &&\n !isNaN(value)) {\n date = Number(value);\n }\n else if (typeof value === 'string' && value.includes('-')) {\n date = value.replace(/-/g, '/');\n }\n return new Date(date) && String(new Date(date)) !== 'Invalid Date';\n};\n\nconst toDate = (value) => {\n if (isDate(value)) {\n let date = value;\n if (value instanceof Date) {\n date = value;\n }\n else if (typeof value === 'string' &&\n String(value).length >= 13 &&\n !isNaN(value)) {\n date = Number(value);\n }\n else if (typeof value === 'string' && value.includes('-')) {\n date = value.replace(/-/g, '/');\n }\n return new Date(date).getTime();\n }\n return 0;\n};\n\n/**\n * 获取时间搓 消除-连接时,默认时间为8点的问题\n * @param date 时间\n * return number 时间搓。单位:毫秒\n * */\nconst getDate = (date) => {\n const dateStr = date.replace(/-/g, '/');\n return new Date(dateStr).valueOf();\n};\n\nconst dateFormat = (date, format) => {\n if (!isDate(date))\n return null;\n // 时间格式化函数\n let time;\n if (!isNaN(date)) {\n date = Number(date);\n }\n else if (typeof date === 'string' && date.includes('-')) {\n date = date.replace(/-/g, '/');\n }\n time = new Date(date);\n const o = {\n YYYY: time.getFullYear(),\n YY: `${time.getFullYear()}`.slice(-2),\n MM: `0${time.getMonth() + 1}`.slice(-2),\n M: time.getMonth() + 1,\n DD: `0${time.getDate()}`.slice(-2),\n D: time.getDate(),\n HH: `0${time.getHours()}`.slice(-2),\n H: time.getHours(),\n hh: `0${time.getHours() % 12}`.slice(-2),\n h: time.getHours() % 12,\n mm: `0${time.getMinutes()}`.slice(-2),\n m: time.getMinutes(),\n ss: `0${time.getSeconds()}`.slice(-2),\n s: time.getSeconds(),\n w: (function () {\n return ['日', '一', '二', '三', '四', '五', '六'][time.getDay()];\n })(),\n };\n for (const k in o) {\n format = format.replace(k, o[k]);\n }\n return format;\n};\n\n/**\n * 时光流逝\n * @param startDate string 开始时间\n * @param flowTime number 流逝时长 单位秒\n * @param format string 返回格式 默认: 'HH:mm:ss'\n */\nconst timeFlow = (startDate, flowTime, format = 'HH:mm:ss') => (dateFormat(getDate(startDate) + flowTime * 1000, format));\n\n/**\n * 字符串填充\n * @param type sting 填充左侧还是右侧\n * @param sourceStr string 原字符串\n * @param len number 填充后长度\n * @param charStr string 填充的字符\n * @returns string\n */\nconst strPad = (type, sourceStr, len, charStr) => {\n let retStr = '';\n if (sourceStr.length > len)\n return sourceStr;\n if (type === 'left') {\n // leftPad\n retStr = new Array(len - sourceStr.length + 1).join(charStr) + sourceStr;\n }\n else {\n // rightPad\n retStr = sourceStr + new Array(len - sourceStr.length + 1).join(charStr);\n }\n return retStr;\n};\n\n/**\n * 时长展示 比如:300秒 展示为:0:5\n * @param time number 单位:秒\n * @param format 返回的结果格式 {mm}\n * @param allowEmpty 是否允许time为空\n */\nconst [oneDay$1, oneHour$1, oneMinute$1] = [86400, 3600, 60];\nconst formatTime = (time, format, allowEmpty = true) => {\n let timelen = time < 0 ? 0 : parseFloat(`${time}`);\n if ((isNaN(timelen) || !timelen) && !(allowEmpty && timelen === 0)) { // 0代表无数据,显示-\n return '-';\n }\n let [days, hours, minutes, seconds] = [undefined, undefined, undefined, undefined];\n if (format.indexOf('{DD}') > -1) {\n days = Math.floor(timelen / oneDay$1);\n timelen = Math.floor(timelen % oneDay$1);\n }\n if (format.indexOf('{HH}') > -1) {\n hours = Math.floor(timelen / oneHour$1);\n timelen = Math.floor(timelen % oneHour$1);\n }\n if (format.indexOf('{mm}') > -1) {\n minutes = Math.floor(timelen / oneMinute$1);\n timelen = Math.floor(timelen % oneMinute$1);\n }\n seconds = timelen;\n const timeStr = format\n .replace('{ss}', typeof seconds === 'number' ? strPad('left', String(seconds), 2, '0') : '')\n .replace('{mm}', typeof minutes === 'number' ? strPad('left', String(minutes), 2, '0') : '')\n .replace('{HH}', typeof hours === 'number' ? strPad('left', String(hours), 2, '0') : '')\n .replace('{DD}', typeof days === 'number' ? strPad('left', String(days), 2, '0') : '');\n return timeStr;\n};\n\n/**\n * 计算两个时间の间隔\n * @param startTime 开始时间\n * @param endTime 结束时间\n * @param unit 返回的时间单位 s:秒(默认) m:分钟 h: 小时 d: 天\n * @param fixed 小数位\n * return number 间隔时长。单位:秒\n * */\nconst [oneDay, oneHour, oneMinute] = [86400, 3600, 60];\nconst calTimeLen = (startTime, endTime, unit = 's', fixed) => {\n let unitTime;\n switch (unit) {\n case 'm':\n unitTime = 1000 * oneMinute;\n break;\n case 'h':\n unitTime = 1000 * oneHour;\n break;\n case 'd':\n unitTime = 1000 * oneDay;\n break;\n default:\n unitTime = 1000;\n }\n let interval = (getDate(endTime) - getDate(startTime)) / unitTime;\n // 四舍五入\n interval = typeof fixed === 'number' ? Number(interval.toFixed(fixed)) : interval;\n return interval;\n};\n\nconst treeReduce = (target, childKey, data) => {\n const hasChildren = (node) => {\n return hasPath$1([childKey], node);\n };\n const Tree = {\n reduce: curry$1((reducerFn, init, node) => {\n const acc = reducerFn(init, node);\n if (!hasChildren(node)) {\n return acc;\n }\n return node[childKey]\n ? node[childKey].reduce(Tree.reduce(reducerFn), acc)\n : acc;\n }),\n find: curry$1((findFn, init, node) => {\n return pipe(map$1(Tree.reduce(findFn, init)), flatten$1)(node);\n })\n };\n const fn = (arr, data) => {\n if ((target.value && data[target.key] && data[target.key] === target.value) ||\n (!target.value && data[target.key])) {\n return arr.concat([omit$1([childKey], data)]);\n }\n else {\n return arr;\n }\n };\n const type = type$1(data);\n switch (type) {\n case 'Object': {\n return Tree.reduce(fn, [])(data);\n }\n case 'Array': {\n return Tree.find(fn, [])(data);\n }\n default: {\n return data;\n }\n }\n};\n\nconst treeFind = (target, childKey, data) => {\n const hasChildren = (node) => {\n return childKey && hasPath$1([childKey], node) && !isEmpty$1(node[childKey]);\n };\n const Tree = {\n reduce: curry$1((fn, init, node) => {\n const acc = fn(init, node);\n if (!hasChildren(node) && node[target.key] === target.value) {\n return acc;\n }\n return childKey && node[childKey] && !isEmpty$1(node[childKey]) ? Tree.reduce(findFn, acc)(node[childKey]) : acc;\n }),\n find: curry$1((fn, init, node) => {\n return pipe(map$1(Tree.reduce(fn, init)), flatten$1, union$1(init))(node);\n })\n };\n const reducerFn = (arr, data) => {\n if ((target.value && data[target.key] && data[target.key] === target.value) ||\n (!target.value && data[target.key])) {\n return childKey ? arr.concat([omit$1([childKey], data)]) : arr.concat([data]);\n }\n else {\n return arr;\n }\n };\n const findFn = (arr, data) => {\n const keys = Object.keys(data);\n const result = [];\n keys.map((key) => {\n result.push(data[key]);\n });\n return Tree.find(reducerFn, arr)(result);\n };\n const type = type$1(data);\n switch (type) {\n case 'Object': {\n return Tree.reduce(findFn, [])(data);\n }\n case 'Array': {\n return Tree.find(reducerFn, [])(data);\n }\n default: {\n return [];\n }\n }\n};\n\nconst treePaths = (target, childKey, data) => {\n const hasChildren = (node) => {\n return hasPath$1([childKey], node) && !isEmpty$1(node[childKey]);\n };\n const Tree = {\n reduce: curry$1((reducerFn, init, preNode, node) => {\n const acc = reducerFn(init, preNode, node);\n if (!hasChildren(node) && node[target.key] === target.value) {\n if (preNode.path) {\n acc.splice(0, 0, preNode.path);\n }\n return acc;\n }\n return node[childKey] && !isEmpty$1(node[childKey]) ? Tree.reduce(findFn, [], omit$1([childKey], node))(node[childKey]) : acc;\n }),\n find: curry$1((findFn, init, preNode, node) => {\n return pipe(map$1(Tree.reduce(findFn, init, preNode)), flatten$1)(node);\n })\n };\n const reducerFn = (arr, _preNode, data) => {\n if ((target.value && data[target.key] && data[target.key] === target.value) ||\n (!target.value && data[target.key])) {\n return arr.concat([data.path]);\n }\n else {\n return arr;\n }\n };\n const findFn = (arr, preNode, data) => {\n if (!data || isEmpty$1(data)) {\n return arr;\n }\n const keys = Object.keys(data);\n const result = [];\n keys.map((key) => {\n result.push(data[key]);\n });\n return Tree.find(reducerFn, arr, preNode)(result);\n };\n const type = type$1(data);\n switch (type) {\n case 'Object': {\n return Tree.reduce(findFn, [], {})(data);\n }\n case 'Array': {\n return Tree.find(reducerFn, [], {})(data);\n }\n default: {\n return [];\n }\n }\n};\n\nconst pickAll = (key, childKey, data) => {\n const hasChildren = (node) => {\n return hasPath$1([childKey], node);\n };\n const Tree = {\n reduce: curry$1((reducerFn, init, node) => {\n const acc = reducerFn(init, node);\n if (!hasChildren(node)) {\n const res = acc && acc.length ? map$1((item) => {\n return item[key] || item;\n })(acc) : [];\n return res;\n }\n return node[childKey]\n ? node[childKey].reduce(Tree.reduce(reducerFn), acc)\n : acc;\n }),\n find: curry$1((findFn, init, node) => {\n return pipe(map$1(Tree.reduce(findFn, init)), flatten$1)(node);\n })\n };\n const fn = (arr, data) => {\n if (data[key]) {\n return arr.concat([omit$1([childKey], data)]);\n }\n else {\n return arr;\n }\n };\n const type = type$1(data);\n switch (type) {\n case 'Object': {\n return Tree.reduce(fn, [])(data);\n }\n case 'Array': {\n return Tree.find(fn, [])(data);\n }\n default: {\n return data;\n }\n }\n};\n\nconst getRoutes = (permissionList, routerConfig, defaultConfig, pathname) => {\n if (isEmpty$1(permissionList) || isEmpty$1(routerConfig)) {\n return {\n menus: [],\n defaultSelectedMenus: [],\n defaultOpenMenus: [],\n defaultMenu: {},\n permissions: [],\n };\n }\n let paths;\n if (pathname !== '/' && pathname !== '/undefined' && pathname !== '/null') {\n paths = split('/', pathname);\n }\n else {\n paths = [];\n }\n let defaultOpenMenus = [];\n let defaultSelectedMenus = [];\n let defaultMenu = {};\n const resetData = (item) => {\n const currentItem = routerConfig[item.url];\n if (!currentItem) {\n return {};\n }\n const path = item.url.indexOf('/') === 0 ? item.url || '' : `/${item.url}`;\n const result = {\n path,\n param: currentItem.param || '',\n url: currentItem.url,\n name: item.resourceId,\n meta: {\n title: item.name,\n icon: currentItem.icon,\n },\n component: currentItem.component,\n hidden: currentItem.hidden,\n origion_url: path,\n };\n if (((defaultConfig === null || defaultConfig === void 0 ? void 0 : defaultConfig.primaryDefaultMenu) &&\n item.url === (defaultConfig === null || defaultConfig === void 0 ? void 0 : defaultConfig.primaryDefaultMenu)) ||\n ((defaultConfig === null || defaultConfig === void 0 ? void 0 : defaultConfig.secondaryDefaultMenu) &&\n item.url === (defaultConfig === null || defaultConfig === void 0 ? void 0 : defaultConfig.secondaryDefaultMenu))) {\n defaultOpenMenus = [item.resourceParentId];\n defaultSelectedMenus = [item.resourceId];\n defaultMenu = result;\n }\n return result;\n };\n const result = [];\n let permissions = [];\n permissionList.map((item) => {\n const children = [];\n const currentItem = routerConfig[item.url];\n const btns = treeReduce({ key: 'resourceType', value: 'BUTTON' }, 'childMenus', item);\n if (btns && btns.length) {\n const urls = pipe(map$1(prop$1('url')))(btns);\n permissions = concat$1(permissions, urls);\n }\n if (item.childMenus && item.childMenus.length) {\n const childMenus = treeReduce({ key: 'resourceId' }, 'childMenus', item.childMenus);\n childMenus.map((child) => {\n if (child) {\n const data = resetData(child);\n if (data && data.name) {\n children.push(data);\n }\n }\n });\n }\n const data = resetData(item);\n if (currentItem) {\n result.push(Object.assign(Object.assign({}, data), { children }));\n }\n });\n if (paths.length && result.length) {\n const res = setPathToDefaultMenu(paths, result);\n defaultSelectedMenus = res.defaultSelectedMenus;\n defaultOpenMenus = res.defaultOpenMenus;\n defaultMenu = res.defaultMenu;\n }\n else if (!defaultSelectedMenus.length ||\n !defaultOpenMenus.length ||\n !defaultMenu) {\n const res = setFistChildToDefaultMenu(result);\n defaultSelectedMenus = res.defaultSelectedMenus;\n defaultOpenMenus = res.defaultOpenMenus;\n defaultMenu = res.defaultMenu;\n }\n return {\n menus: result,\n defaultSelectedMenus,\n defaultOpenMenus,\n defaultMenu: defaultMenu,\n permissions,\n };\n};\nconst setPathToDefaultMenu = (paths, menus) => {\n let defaultOpenMenus = [];\n let defaultSelectedMenus = [];\n let defaultMenu = {};\n const openMenus = find$1(propEq$1('origion_url', `/${paths[0]}`))(menus);\n if (openMenus) {\n defaultOpenMenus = [openMenus.name];\n if (paths.length > 1 && openMenus.children && openMenus.children.length) {\n const defaultPath = paths.join('/');\n defaultMenu = find$1(propEq$1('origion_url', `/${defaultPath}`))(openMenus.children);\n }\n else {\n defaultMenu =\n openMenus.children && openMenus.children.length\n ? openMenus.children[0]\n : openMenus;\n }\n defaultSelectedMenus = (defaultMenu === null || defaultMenu === void 0 ? void 0 : defaultMenu.name) ? [defaultMenu.name] : [];\n }\n return {\n defaultOpenMenus,\n defaultSelectedMenus,\n defaultMenu,\n };\n};\nconst setFistChildToDefaultMenu = (menus) => {\n var _a, _b;\n let defaultOpenMenus = [];\n let defaultSelectedMenus = [];\n let defaultMenu = {};\n if (menus[0] && menus[0].children && menus[0].children.length) {\n defaultOpenMenus = [menus[0].name];\n defaultSelectedMenus = [menus[0].children[0].name];\n defaultMenu = menus[0].children[0];\n }\n else if (menus[0]) {\n defaultOpenMenus = [(_a = menus[0]) === null || _a === void 0 ? void 0 : _a.name];\n defaultSelectedMenus = [(_b = menus[0]) === null || _b === void 0 ? void 0 : _b.name];\n defaultMenu = menus[0];\n }\n return {\n defaultOpenMenus,\n defaultSelectedMenus,\n defaultMenu,\n };\n};\n\n/**\n * 转换为带单位的短数据\n * @param num 需要转换的数字(非数字 或是 - 将直接返回 -)\n * @param decimal 返回的小数位\n * @param addUnit 返回值是否添加单位:(万或亿)\n * @param retInt 当数据小于1万时,是否返回无小数位的整数\n */\nconst transformShortNum = (num, decimal = 0, addUnit = true, retInt = false) => {\n let formatValue = parseFloat(num);\n if (isNaN(formatValue) || (num !== 0 && !num)) {\n return '-';\n }\n let isNegativeNumber = false;\n let ret = '';\n if (formatValue < 0) {\n isNegativeNumber = true;\n formatValue = Math.abs(formatValue);\n }\n if (formatValue >= 100000000) {\n ret = (formatValue / 100000000).toFixed(decimal) + (addUnit ? '亿' : '');\n }\n else if (formatValue >= 10000) {\n ret = (formatValue / 10000).toFixed(decimal) + (addUnit ? '万' : '');\n }\n else {\n ret = retInt ? formatValue.toFixed(0) : formatValue.toString();\n ret = !retInt && !isNaN(decimal) ? formatValue.toFixed(decimal) : ret;\n }\n return isNegativeNumber ? `-${ret}` : ret;\n};\n\n/**\n * 特定类型数字的统一格式处理\n * @param num 需要转换的数字(非数字 或是 - 将直接返回 -)\n * @param decimal 返回的小数位\n * @param addUnit 返回值是否添加单位:(万或亿)\n * @param retInt 当数据小于1万时,是否返回无小数位的整数\n */\nconst formatData = (config) => {\n let { afterUnit } = config;\n const { type, value, isAbs, beforeUnit } = config;\n if (Number(value) === -2147483648) {\n return '无权限';\n }\n if (type === 'text') { // 文字类型\n return value || value === 0 ? value : '-';\n }\n if (isNaN(value) || (value !== 0 && !value)) {\n return '-';\n }\n let val;\n switch (type) {\n case 'yuan': // 接口数据,单位为元\n val = transformShortNum(value, 2);\n break;\n case 'fen': // 接口数据,单位为分\n val = transformShortNum(value / 100, 2);\n break;\n case 'decimalToPercentSave2Decimal': // 小数转百分比, 保留两位小数\n val = transformShortNum(value * 100, 2);\n afterUnit = typeof afterUnit === 'string' ? afterUnit : '%';\n break;\n case 'decimalToPercentSave0Decimal': // 小数转百分比, 不保留两位小数\n val = transformShortNum(value * 100, 0);\n afterUnit = typeof afterUnit === 'string' ? afterUnit : '%';\n break;\n case 'percentSave2Decimal': // 百分比, 保留两位小数\n val = transformShortNum(value, 2);\n afterUnit = typeof afterUnit === 'string' ? afterUnit : '%';\n break;\n case 'percentSave0Decimal': // 百分比, 不保留两位小数\n val = transformShortNum(value, 0);\n afterUnit = typeof afterUnit === 'string' ? afterUnit : '%';\n break;\n case 'int': // 数量, 小于1万时,舍弃小数点,仅保留整数\n val = transformShortNum(value, 2, true, true);\n break;\n case 'decimal': // 数量, 小于1万时,保留小数点\n val = transformShortNum(value, 2, true, false);\n break;\n case 'secToTimeHM': // 秒转为 xxhyym\n val = formatTime(value, '{HH}h{mm}m');\n break;\n case 'secToTimeChMS': // 秒转为 xx分yy秒\n val = formatTime(value, '{mm}分{ss}秒');\n break;\n case 'secToTimeMS': // 秒转为 xxmyys\n val = formatTime(value, '{mm}m{ss}s');\n break;\n case 'secToTime': // 秒转为 {DD}d{HH}h{mm}m{ss}s,天数和小时为零时不展示\n val = formatTime(value, '{DD}d{HH}h{mm}m{ss}s', false);\n val = val.replace('00d', '').replace('00h', '');\n break;\n default:\n val = transformShortNum(value);\n }\n val = val !== '-' && isAbs ? val.replace('-', '') : val;\n return val === '-' ? '-' : `${beforeUnit || ''}${val}${afterUnit || ''}`;\n};\n\nconst niceNumShow = (val, spiltPoint = false) => {\n if ((val !== 0 && !val) || val === '-') {\n return [{ type: 'num', text: '-' }];\n }\n const resultList = [];\n const list = val.toString().split('');\n let text = '';\n let type; // 1: 数字 2: . 3: 非数字\n list.forEach((character) => {\n let characterType = (/^[0-9\\\\.]*$/.test(character)) ? 'num' : 'character';\n characterType = ((character === '.' && spiltPoint) || (characterType === 'num' && type === 'suffixNum')) ? 'suffixNum' : characterType;\n if (type !== characterType && type) {\n resultList.push({ type, text });\n text = character;\n }\n else {\n text = `${text}${character}`;\n }\n type = characterType;\n });\n type = type || 'num';\n resultList.push({ type, text });\n return resultList;\n};\n\nconst isChinaMobile = (value) => {\n return /^((\\+86)|(86)|(086))?(13[0-9]|15[0-9]|166|17[0-9]|18[0-9]|14[0-9]|19[0-9])[0-9]{8}$/.test(String(value));\n};\n\nconst isURL = (value) => {\n return /^((?:(?:https?|ftp):|)\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))\\.?)(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test(String(value));\n};\n\nconst YR = {\n email: /\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*/,\n phone: /^1[3|4|5|6|7|8][0-9]{9}$/,\n fixedPhone: /(^0\\d{2,3}-\\d{7,8}$)|(^1[3|4|5|6|7|8][0-9]{9}$)/,\n qq: /[1-9][0-9]{4,}/,\n zipcode: /[1-9]\\d{5}(?!\\d)/,\n IDCard: /^\\d{17}[\\d|X|x]|\\d{15}$/,\n chinese: /^[\\u0391-\\uFFE5]+$/,\n chineseNumberLine: /^[\\u4E00-\\u9FA5A-Za-z0-9_]+$/,\n chineseNumberNoLine: /^[\\u4E00-\\u9FA5A-Za-z0-9]+$/,\n integerZ: /^[1-9]\\d*$/,\n integerF: /^-[1-9]\\d*$/,\n number: /^\\d+(\\.\\d+)?$/,\n numberNoMoreThan1: /^\\-?([0-9](\\d+)?(\\.\\d{1,1})?$)|(^0$)|(^\\d\\.\\d{1,1})$/,\n numberNoMoreThan2: /^\\-?([0-9](\\d+)?(\\.\\d{1,2})?$)|(^0$)|(^\\d\\.\\d{1,2})$/,\n numberNoMoreThan3: /^\\-?([0-9](\\d+)?(\\.\\d{1,3})?$)|(^0$)|(^\\d\\.\\d{1,3})$/,\n numberNoMoreThan4: /^\\-?([0-9](\\d+)?(\\.\\d{1,4})?$)|(^0$)|(^\\d\\.\\d{1,4})$/,\n greaterZero1: /^(0|[1-9]\\d*)(\\.\\d{1,1})?$/,\n greaterZero2: /^(0|[1-9]\\d*)(\\.\\d{1,2})?$/,\n greaterZero3: /^(0|[1-9]\\d*)(\\.\\d{1,3})?$/,\n greaterZero4: /^(0|[1-9]\\d*)(\\.\\d{1,4})?$/,\n zeroTo100: /^((\\d|[1-9]\\d)(\\.\\d{1,2})?$)|(^100|100.0|100.00$)$/,\n zeroTo1000: /^((\\d|[1-9]{1,2}\\d)(\\.\\d{1,2})?$)|(^1000|1000.0|1000.00$)$/, // 零到1000,最多保留两位数字\n};\n\nconst getQueryOfNextPageContext = (ctx) => {\n if (!ctx) {\n return {};\n }\n const { pathname = '', asPath = '', query } = ctx;\n const routes = pipe(split$2('/'), filter$1((item) => /\\[\\w+\\]/.test(item)), map$1((item) => replace$1(']', '', replace$1('[', '', item))))(pathname);\n const path = pipe((split$2('#')), slice$1(0, 1))(asPath) || [];\n const paths = path.length\n ? pipe(split$2('/'), filter$1((item) => item !== ''))(path[0])\n : [];\n const result = routes.map((key, index) => {\n return {\n [`${key}`]: paths[index],\n };\n });\n let newQuery = {};\n if (!routes.length) {\n newQuery.path = paths[0] || 'desktop';\n }\n else {\n newQuery = mergeAll$1(result) || {};\n }\n return Object.assign(Object.assign({}, query), newQuery);\n};\n\nconst getEnv = () => {\n return window.localStorage.getItem('env') || 'prod';\n};\nconst getMock = () => {\n return window.localStorage.getItem('isMock');\n};\n\nconst getHost = (projectId, yapiProjectid, isMock) => {\n const configs = window.configs ? window.configs : {};\n let env = isMock && getMock() ? 'mock' : getEnv();\n const basePath = configs[projectId]\n ? configs[projectId][env].API_BASE_URL +\n `${env === 'mock' ? '/' + yapiProjectid : ''}`\n : '';\n const loginPath = configs['AUTH'] ? configs['AUTH'][env].APPLICATION_URL : '';\n return {\n basePath,\n loginPath,\n };\n};\n\nconst parseParams = (params) => {\n return values$1(params).join('/');\n};\n\nconst reduceParams = (data) => {\n if (!data) {\n return {};\n }\n if (data instanceof FormData) {\n return data;\n }\n const result = filter$1(item => !isNil$1(item) && !isEmpty$1(item))(data) || {};\n return result;\n};\n\nconst parse$1 = (str) => {\n if(!str) {\n return {};\n }\n const result = pipe(\n replace$1('?', ''),\n split$2('&'),\n map$1((item) => split$2('=', decodeURI(item))),\n fromPairs$1,\n )(str);\n return result\n};\n\nconst stringify$2 = (query) => {\n if(isEmpty$1(query)){\n return ''\n }\n const keys = Object.keys(query);\n let result = '';\n keys.map((key) => {\n result += `&${key}=${query[key]}`;\n });\n const params = new URLSearchParams(result);\n return params.toString() || '';\n};\n\nvar querystring = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parse: parse$1,\n stringify: stringify$2\n});\n\n/**\n * 获取地址对应参数\n * @param name\n * @param search\n * @returns\n */\nconst getQuery = (name, search) => {\n const reg = new RegExp(`(\\\\?|&)${name}=([^&]*)(&|$)`, 'i');\n let searchParams = window.location.href;\n const values = reg.exec((search || searchParams));\n if (values != null) {\n return decodeURIComponent(values[2]) || '';\n }\n return '';\n};\n/**\n * 获取地址所有参数\n * @param search\n * @returns\n */\nconst getQueries = (search) => {\n let str = search || window.location.search;\n str = str.replace('?', '');\n let result = parse$1(str);\n return (result || {});\n};\n/**\n * 获取地址对应参数\n * @param name\n * @param urlStr\n * @returns\n */\nconst getQueryName = (name, urlStr) => {\n let url = urlStr || decodeURI(window.location.href);\n url = url.split('?')[1];\n const querys = new Object();\n if (url.indexOf('?') === -1) {\n const strs = url.split('&');\n for (let i = 0; i < strs.length; i++) {\n const oneStr = strs[i];\n const index = oneStr.indexOf('=');\n if (index > 0) {\n querys[oneStr.substr(0, index)] = decodeURI(oneStr.substr(index + 1));\n }\n }\n }\n return querys[name] || '';\n};\n\nconst joinPath = (params) => {\n if (!params || isEmpty$1(params)) {\n return '';\n }\n const keys = Object.keys(params);\n let result = '';\n keys.map((key) => {\n if (params[key] && key !== 'search') {\n result += `/${params[key]}`;\n }\n if (key === 'search') {\n result += params[key];\n }\n });\n return result;\n};\n\nconst slicePath = (path, start = 0, end) => {\n const paths = split('/', path);\n if (!end) {\n end = paths.length - 1;\n }\n const newPaths = paths.slice(start, end);\n return '/' + newPaths.join('/');\n};\n\n/**\n * map 结构转 array\n * @param map\n * @param useAllSelect 全部默认选项\n * @param allSelectLabel 全部项默认lable\n * @param allSelectValue 全部项默认value\n * @returns OptionsItem[]\n */\nconst translateMapToArray = (map, useAllSelect = false, allSelectLabel = '全部', allSelectValue = null) => {\n // 全部项\n const allSelect = { label: allSelectLabel, value: allSelectValue };\n let array = useAllSelect ? [allSelect] : [];\n for (const [key, value] of map.entries()) {\n array.push({\n label: value,\n value: key,\n });\n }\n return array;\n};\n\nconst addQueries = (params) => {\n const arr = [];\n Object.keys(params).forEach((key) => {\n if (!(isEmpty$1(params[key]) || isNil$1(params[key]))) {\n arr.push(`${key}=${params[key]}`);\n }\n });\n return arr.join('&');\n};\n/**\n *\n * @param url 下载地址\n * @param params 参数集合\n */\nconst exportExcel = (url, params = {}) => {\n let token;\n if (typeof window !== 'undefined') {\n token = window.localStorage.getItem('token');\n const data = Object.assign(Object.assign({}, params), { token });\n if (!/^https.*/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.replace('http', 'https');\n }\n const downloadUrl = `${url}?${addQueries(data)}`;\n console.log('YWFE下载地址=>', downloadUrl);\n const id = `alink_${new Date().getTime()}`;\n const aDom = document.createElement('a');\n aDom.setAttribute('href', downloadUrl);\n aDom.setAttribute('target', '_blank');\n aDom.setAttribute('id', id);\n if (!document.getElementById(id)) {\n document.body.appendChild(aDom);\n }\n aDom.click();\n setTimeout(() => {\n document.body.removeChild(aDom);\n }, 0);\n }\n};\n\n/**\n * 同步下载\n * @param data 带转换的arraybuffer数据\n * @param name 文件名\n */\nconst omadownload = (data, name, fileType) => {\n const uint8Msg = new Uint8Array(data);\n try {\n const uint8String = String.fromCharCode.apply(null, uint8Msg);\n if (uint8String.indexOf('success') > -1) {\n // message.error('导出失败');\n return JSON.parse(uint8String);\n }\n }\n catch (error) {\n console.warn(error);\n }\n const url = window.URL.createObjectURL(new Blob([data], { type: fileType || 'application/vnd.ms-excel' }));\n const link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', decodeURIComponent(name));\n document.body.appendChild(link);\n link.click();\n link.remove();\n};\n\n/*\r\n * big.js v5.2.2\r\n * A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.\r\n * Copyright (c) 2018 Michael Mclaughlin <M8ch88l@gmail.com>\r\n * https://github.com/MikeMcl/big.js/LICENCE\r\n */\r\n\r\n\r\n/************************************** EDITABLE DEFAULTS *****************************************/\r\n\r\n\r\n // The default values below must be integers within the stated ranges.\r\n\r\n /*\r\n * The maximum number of decimal places (DP) of the results of operations involving division:\r\n * div and sqrt, and pow with negative exponents.\r\n */\r\nvar DP = 20, // 0 to MAX_DP\r\n\r\n /*\r\n * The rounding mode (RM) used when rounding to the above decimal places.\r\n *\r\n * 0 Towards zero (i.e. truncate, no rounding). (ROUND_DOWN)\r\n * 1 To nearest neighbour. If equidistant, round up. (ROUND_HALF_UP)\r\n * 2 To nearest neighbour. If equidistant, to even. (ROUND_HALF_EVEN)\r\n * 3 Away from zero. (ROUND_UP)\r\n */\r\n RM = 1, // 0, 1, 2 or 3\r\n\r\n // The maximum value of DP and Big.DP.\r\n MAX_DP = 1E6, // 0 to 1000000\r\n\r\n // The maximum magnitude of the exponent argument to the pow method.\r\n MAX_POWER = 1E6, // 1 to 1000000\r\n\r\n /*\r\n * The negative exponent (NE) at and beneath which toString returns exponential notation.\r\n * (JavaScript numbers: -7)\r\n * -1000000 is the minimum recommended exponent value of a Big.\r\n */\r\n NE = -7, // 0 to -1000000\r\n\r\n /*\r\n * The positive exponent (PE) at and above which toString returns exponential notation.\r\n * (JavaScript numbers: 21)\r\n * 1000000 is the maximum recommended exponent value of a Big.\r\n * (This limit is not enforced or checked.)\r\n */\r\n PE = 21, // 0 to 1000000\r\n\r\n\r\n/**************************************************************************************************/\r\n\r\n\r\n // Error messages.\r\n NAME = '[big.js] ',\r\n INVALID = NAME + 'Invalid ',\r\n INVALID_DP = INVALID + 'decimal places',\r\n INVALID_RM = INVALID + 'rounding mode',\r\n DIV_BY_ZERO = NAME + 'Division by zero',\r\n\r\n // The shared prototype object.\r\n P = {},\r\n UNDEFINED = void 0,\r\n NUMERIC = /^-?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i;\r\n\r\n\r\n/*\r\n * Create and return a Big constructor.\r\n *\r\n */\r\nfunction _Big_() {\r\n\r\n /*\r\n * The Big constructor and exported function.\r\n * Create and return a new instance of a Big number object.\r\n *\r\n * n {number|string|Big} A numeric value.\r\n */\r\n function Big(n) {\r\n var x = this;\r\n\r\n // Enable constructor usage without new.\r\n if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n);\r\n\r\n // Duplicate.\r\n if (n instanceof Big) {\r\n x.s = n.s;\r\n x.e = n.e;\r\n x.c = n.c.slice();\r\n } else {\r\n parse(x, n);\r\n }\r\n\r\n /*\r\n * Retain a reference to this Big constructor, and shadow Big.prototype.constructor which\r\n * points to Object.\r\n */\r\n x.constructor = Big;\r\n }\r\n\r\n Big.prototype = P;\r\n Big.DP = DP;\r\n Big.RM = RM;\r\n Big.NE = NE;\r\n Big.PE = PE;\r\n Big.version = '5.2.2';\r\n\r\n return Big;\r\n}\r\n\r\n\r\n/*\r\n * Parse the number or string value passed to a Big constructor.\r\n *\r\n * x {Big} A Big number instance.\r\n * n {number|string} A numeric value.\r\n */\r\nfunction parse(x, n) {\r\n var e, i, nl;\r\n\r\n // Minus zero?\r\n if (n === 0 && 1 / n < 0) n = '-0';\r\n else if (!NUMERIC.test(n += '')) throw Error(INVALID + 'number');\r\n\r\n // Determine sign.\r\n x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1;\r\n\r\n // Decimal point?\r\n if ((e = n.indexOf('.')) > -1) n = n.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = n.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +n.slice(i + 1);\r\n n = n.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = n.length;\r\n }\r\n\r\n nl = n.length;\r\n\r\n // Determine leading zeros.\r\n for (i = 0; i < nl && n.charAt(i) == '0';) ++i;\r\n\r\n if (i == nl) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n\r\n // Determine trailing zeros.\r\n for (; nl > 0 && n.charAt(--nl) == '0';);\r\n x.e = e - i - 1;\r\n x.c = [];\r\n\r\n // Convert string to array of digits without leading/trailing zeros.\r\n for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++);\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Round Big x to a maximum of dp decimal places using rounding mode rm.\r\n * Called by stringify, P.div, P.round and P.sqrt.\r\n *\r\n * x {Big} The Big to round.\r\n * dp {number} Integer, 0 to MAX_DP inclusive.\r\n * rm {number} 0, 1, 2 or 3 (DOWN, HALF_UP, HALF_EVEN, UP)\r\n * [more] {boolean} Whether the result of division was truncated.\r\n */\r\nfunction round$1(x, dp, rm, more) {\r\n var xc = x.c,\r\n i = x.e + dp + 1;\r\n\r\n if (i < xc.length) {\r\n if (rm === 1) {\r\n\r\n // xc[i] is the digit after the digit that may be rounded up.\r\n more = xc[i] >= 5;\r\n } else if (rm === 2) {\r\n more = xc[i] > 5 || xc[i] == 5 &&\r\n (more || i < 0 || xc[i + 1] !== UNDEFINED || xc[i - 1] & 1);\r\n } else if (rm === 3) {\r\n more = more || !!xc[0];\r\n } else {\r\n more = false;\r\n if (rm !== 0) throw Error(INVALID_RM);\r\n }\r\n\r\n if (i < 1) {\r\n xc.length = 1;\r\n\r\n if (more) {\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n x.e = -dp;\r\n xc[0] = 1;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n } else {\r\n\r\n // Remove any digits after the required decimal places.\r\n xc.length = i--;\r\n\r\n // Round up?\r\n if (more) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up.\r\n for (; ++xc[i] > 9;) {\r\n xc[i] = 0;\r\n if (!i--) {\r\n ++x.e;\r\n xc.unshift(1);\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; !xc[--i];) xc.pop();\r\n }\r\n } else if (rm < 0 || rm > 3 || rm !== ~~rm) {\r\n throw Error(INVALID_RM);\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Return a string representing the value of Big x in normal or exponential notation.\r\n * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf.\r\n *\r\n * x {Big}\r\n * id? {number} Caller id.\r\n * 1 toExponential\r\n * 2 toFixed\r\n * 3 toPrecision\r\n * 4 valueOf\r\n * n? {number|undefined} Caller's argument.\r\n * k? {number|undefined}\r\n */\r\nfunction stringify$1(x, id, n, k) {\r\n var e, s,\r\n Big = x.constructor,\r\n z = !x.c[0];\r\n\r\n if (n !== UNDEFINED) {\r\n if (n !== ~~n || n < (id == 3) || n > MAX_DP) {\r\n throw Error(id == 3 ? INVALID + 'precision' : INVALID_DP);\r\n }\r\n\r\n x = new Big(x);\r\n\r\n // The index of the digit that may be rounded up.\r\n n = k - x.e;\r\n\r\n // Round?\r\n if (x.c.length > ++k) round$1(x, n, Big.RM);\r\n\r\n // toFixed: recalculate k as x.e may have changed if value rounded up.\r\n if (id == 2) k = x.e + n + 1;\r\n\r\n // Append zeros?\r\n for (; x.c.length < k;) x.c.push(0);\r\n }\r\n\r\n e = x.e;\r\n s = x.c.join('');\r\n n = s.length;\r\n\r\n // Exponential notation?\r\n if (id != 2 && (id == 1 || id == 3 && k <= e || e <= Big.NE || e >= Big.PE)) {\r\n s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e;\r\n\r\n // Normal notation.\r\n } else if (e < 0) {\r\n for (; ++e;) s = '0' + s;\r\n s = '0.' + s;\r\n } else if (e > 0) {\r\n if (++e > n) for (e -= n; e--;) s += '0';\r\n else if (e < n) s = s.slice(0, e) + '.' + s.slice(e);\r\n } else if (n > 1) {\r\n s = s.charAt(0) + '.' + s.slice(1);\r\n }\r\n\r\n return x.s < 0 && (!z || id == 4) ? '-' + s : s;\r\n}\r\n\r\n\r\n// Prototype/instance methods\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the absolute value of this Big.\r\n */\r\nP.abs = function () {\r\n var x = new this.constructor(this);\r\n x.s = 1;\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return 1 if the value of this Big is greater than the value of Big y,\r\n * -1 if the value of this Big is less than the value of Big y, or\r\n * 0 if they have the same value.\r\n*/\r\nP.cmp = function (y) {\r\n var isneg,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new x.constructor(y)).c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) return !xc[0] ? !yc[0] ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n isneg = i < 0;\r\n\r\n // Compare exponents.\r\n if (k != l) return k > l ^ isneg ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = -1; ++i < j;) {\r\n if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ isneg ? 1 : -1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded,\r\n * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\nP.div = function (y) {\r\n var x = this,\r\n Big = x.constructor,\r\n a = x.c, // dividend\r\n b = (y = new Big(y)).c, // divisor\r\n k = x.s == y.s ? 1 : -1,\r\n dp = Big.DP;\r\n\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) throw Error(INVALID_DP);\r\n\r\n // Divisor is zero?\r\n if (!b[0]) throw Error(DIV_BY_ZERO);\r\n\r\n // Dividend is 0? Return +-0.\r\n if (!a[0]) return new Big(k * 0);\r\n\r\n var bl, bt, n, cmp, ri,\r\n bz = b.slice(),\r\n ai = bl = b.length,\r\n al = a.length,\r\n r = a.slice(0, bl), // remainder\r\n rl = r.length,\r\n q = y, // quotient\r\n qc = q.c = [],\r\n qi = 0,\r\n d = dp + (q.e = x.e - y.e) + 1; // number of digits of the result\r\n\r\n q.s = k;\r\n k = d < 0 ? 0 : d;\r\n\r\n // Create version of divisor with leading zero.\r\n bz.unshift(0);\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; rl++ < bl;) r.push(0);\r\n\r\n do {\r\n\r\n // n is how many times the divisor goes into current remainder.\r\n for (n = 0; n < 10; n++) {\r\n\r\n // Compare divisor and remainder.\r\n if (bl != (rl = r.length)) {\r\n cmp = bl > rl ? 1 : -1;\r\n } else {\r\n for (ri = -1, cmp = 0; ++ri < bl;) {\r\n if (b[ri] != r[ri]) {\r\n cmp = b[ri] > r[ri] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // If divisor < remainder, subtract divisor from remainder.\r\n if (cmp < 0) {\r\n\r\n // Remainder can't be more than 1 digit longer than divisor.\r\n // Equalise lengths using divisor with extra leading zero?\r\n for (bt = rl == bl ? b : bz; rl;) {\r\n if (r[--rl] < bt[rl]) {\r\n ri = rl;\r\n for (; ri && !r[--ri];) r[ri] = 9;\r\n --r[ri];\r\n r[rl] += 10;\r\n }\r\n r[rl] -= bt[rl];\r\n }\r\n\r\n for (; !r[0];) r.shift();\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n // Add the digit n to the result array.\r\n qc[qi++] = cmp ? n : ++n;\r\n\r\n // Update the remainder.\r\n if (r[0] && cmp) r[rl] = a[ai] || 0;\r\n else r = [a[ai]];\r\n\r\n } while ((ai++ < al || r[0] !== UNDEFINED) && k--);\r\n\r\n // Leading zero? Do not remove if result is simply zero (qi == 1).\r\n if (!qc[0] && qi != 1) {\r\n\r\n // There can't be more than one zero.\r\n qc.shift();\r\n q.e--;\r\n }\r\n\r\n // Round?\r\n if (qi > d) round$1(q, dp, Big.RM, r[0] !== UNDEFINED);\r\n\r\n return q;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is equal to the value of Big y, otherwise return false.\r\n */\r\nP.eq = function (y) {\r\n return !this.cmp(y);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is greater than the value of Big y, otherwise return\r\n * false.\r\n */\r\nP.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\nP.gte = function (y) {\r\n return this.cmp(y) > -1;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is less than the value of Big y, otherwise return false.\r\n */\r\nP.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is less than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\nP.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big minus the value of Big y.\r\n */\r\nP.minus = P.sub = function (y) {\r\n var i, j, t, xlty,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xc = x.c.slice(),\r\n xe = x.e,\r\n yc = y.c,\r\n ye = y.e;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // y is non-zero? x is non-zero? Or both are zero.\r\n return yc[0] ? (y.s = -b, y) : new Big(xc[0] ? x : 0);\r\n }\r\n\r\n // Determine which is the bigger number. Prepend zeros to equalise exponents.\r\n if (a = xe - ye) {\r\n\r\n if (xlty = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n for (b = a; b--;) t.push(0);\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = ((xlty = xc.length < yc.length) ? xc : yc).length;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n if (xc[b] != yc[b]) {\r\n xlty = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xlty) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n /*\r\n * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only\r\n * needs to start at yc.length.\r\n */\r\n if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--;) xc[i++] = 0;\r\n\r\n // Subtract yc from xc.\r\n for (b = i; j > a;) {\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i];) xc[i] = 9;\r\n --xc[i];\r\n xc[j] += 10;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--b] === 0;) xc.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] === 0;) {\r\n xc.shift();\r\n --ye;\r\n }\r\n\r\n if (!xc[0]) {\r\n\r\n // n - n = +0\r\n y.s = 1;\r\n\r\n // Result must be zero.\r\n xc = [ye = 0];\r\n }\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big modulo the value of Big y.\r\n */\r\nP.mod = function (y) {\r\n var ygtx,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n if (!y.c[0]) throw Error(DIV_BY_ZERO);\r\n\r\n x.s = y.s = 1;\r\n ygtx = y.cmp(x) == 1;\r\n x.s = a;\r\n y.s = b;\r\n\r\n if (ygtx) return new Big(x);\r\n\r\n a = Big.DP;\r\n b = Big.RM;\r\n Big.DP = Big.RM = 0;\r\n x = x.div(y);\r\n Big.DP = a;\r\n Big.RM = b;\r\n\r\n return this.minus(x.times(y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big plus the value of Big y.\r\n */\r\nP.plus = P.add = function (y) {\r\n var t,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e,\r\n xc = x.c,\r\n ye = y.e,\r\n yc = y.c;\r\n\r\n // Either zero? y is non-zero? x is non-zero? Or both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new Big(xc[0] ? x : a * 0);\r\n\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents.\r\n // Note: reverse faster than unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--;) t.push(0);\r\n t.reverse();\r\n }\r\n\r\n // Point xc to the longer array.\r\n if (xc.length - yc.length < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n }\r\n\r\n a = yc.length;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be left as they are.\r\n for (b = 0; a; xc[a] %= 10) b = (xc[--a] = xc[a] + yc[a] + b) / 10 | 0;\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n\r\n if (b) {\r\n xc.unshift(b);\r\n ++ye;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (a = xc.length; xc[--a] === 0;) xc.pop();\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a Big whose value is the value of this Big raised to the power n.\r\n * If n is negative, round to a maximum of Big.DP decimal places using rounding\r\n * mode Big.RM.\r\n *\r\n * n {number} Integer, -MAX_POWER to MAX_POWER inclusive.\r\n */\r\nP.pow = function (n) {\r\n var x = this,\r\n one = new x.constructor(1),\r\n y = one,\r\n isneg = n < 0;\r\n\r\n if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) throw Error(INVALID + 'exponent');\r\n if (isneg) n = -n;\r\n\r\n for (;;) {\r\n if (n & 1) y = y.times(x);\r\n n >>= 1;\r\n if (!n) break;\r\n x = x.times(x);\r\n }\r\n\r\n return isneg ? one.div(y) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big rounded using rounding mode rm\r\n * to a maximum of dp decimal places, or, if dp is negative, to an integer which is a\r\n * multiple of 10**-dp.\r\n * If dp is not specified, round to 0 decimal places.\r\n * If rm is not specified, use Big.RM.\r\n *\r\n * dp? {number} Integer, -MAX_DP to MAX_DP inclusive.\r\n * rm? 0, 1, 2 or 3 (ROUND_DOWN, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_UP)\r\n */\r\nP.round = function (dp, rm) {\r\n var Big = this.constructor;\r\n if (dp === UNDEFINED) dp = 0;\r\n else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) throw Error(INVALID_DP);\r\n return round$1(new Big(this), dp, rm === UNDEFINED ? Big.RM : rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the square root of the value of this Big, rounded, if\r\n * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\nP.sqrt = function () {\r\n var r, c, t,\r\n x = this,\r\n Big = x.constructor,\r\n s = x.s,\r\n e = x.e,\r\n half = new Big(0.5);\r\n\r\n // Zero?\r\n if (!x.c[0]) return new Big(x);\r\n\r\n // Negative?\r\n if (s < 0) throw Error(NAME + 'No square root');\r\n\r\n // Estimate.\r\n s = Math.sqrt(x + '');\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent.\r\n if (s === 0 || s === 1 / 0) {\r\n c = x.c.join('');\r\n if (!(c.length + e & 1)) c += '0';\r\n s = Math.sqrt(c);\r\n e = ((e + 1) / 2 | 0) - (e < 0 || e & 1);\r\n r = new Big((s == 1 / 0 ? '1e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e);\r\n } else {\r\n r = new Big(s);\r\n }\r\n\r\n e = r.e + (Big.DP += 4);\r\n\r\n // Newton-Raphson iteration.\r\n do {\r\n t = r;\r\n r = half.times(t.plus(x.div(t)));\r\n } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join(''));\r\n\r\n return round$1(r, Big.DP -= 4, Big.RM);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big times the value of Big y.\r\n */\r\nP.times = P.mul = function (y) {\r\n var c,\r\n x = this,\r\n Big = x.constructor,\r\n xc = x.c,\r\n yc = (y = new Big(y)).c,\r\n a = xc.length,\r\n b = yc.length,\r\n i = x.e,\r\n j = y.e;\r\n\r\n // Determine sign of result.\r\n y.s = x.s == y.s ? 1 : -1;\r\n\r\n // Return signed 0 if either 0.\r\n if (!xc[0] || !yc[0]) return new Big(y.s * 0);\r\n\r\n // Initialise exponent of result as x.e + y.e.\r\n y.e = i + j;\r\n\r\n // If array xc has fewer digits than yc, swap xc and yc, and lengths.\r\n if (a < b) {\r\n c = xc;\r\n xc = yc;\r\n yc = c;\r\n j = a;\r\n a = b;\r\n b = j;\r\n }\r\n\r\n // Initialise coefficient array of result with zeros.\r\n for (c = new Array(j = a + b); j--;) c[j] = 0;\r\n\r\n // Multiply.\r\n\r\n // i is initially xc.length.\r\n for (i = b; i--;) {\r\n b = 0;\r\n\r\n // a is yc.length.\r\n for (j = a + i; j > i;) {\r\n\r\n // Current sum of products at this digit position, plus carry.\r\n b = c[j] + yc[i] * xc[j - i - 1] + b;\r\n c[j--] = b % 10;\r\n\r\n // carry\r\n b = b / 10 | 0;\r\n }\r\n\r\n c[j] = (c[j] + b) % 10;\r\n }\r\n\r\n // Increment result exponent if there is a final carry, otherwise remove leading zero.\r\n if (b) ++y.e;\r\n else c.shift();\r\n\r\n // Remove trailing zeros.\r\n for (i = c.length; !c[--i];) c.pop();\r\n y.c = c;\r\n\r\n return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big in exponential notation to dp fixed decimal\r\n * places and rounded using Big.RM.\r\n *\r\n * dp? {number} Integer, 0 to MAX_DP inclusive.\r\n */\r\nP.toExponential = function (dp) {\r\n return stringify$1(this, 1, dp, dp);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big in normal notation to dp fixed decimal\r\n * places and rounded using Big.RM.\r\n *\r\n * dp? {number} Integer, 0 to MAX_DP inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n */\r\nP.toFixed = function (dp) {\r\n return stringify$1(this, 2, dp, this.e + dp);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big rounded to sd significant digits using\r\n * Big.RM. Use exponential notation if sd is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * sd {number} Integer, 1 to MAX_DP inclusive.\r\n */\r\nP.toPrecision = function (sd) {\r\n return stringify$1(this, 3, sd, sd - 1);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Omit the sign for negative zero.\r\n */\r\nP.toString = function () {\r\n return stringify$1(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Include the sign for negative zero.\r\n */\r\nP.valueOf = P.toJSON = function () {\r\n return stringify$1(this, 4);\r\n};\r\n\r\n\r\n// Export\r\n\r\n\r\nvar Big = _Big_();\n\n/**\n * 求一个数保留小数,不四舍五入\n * @param num 数字\n * @param decimal 精度\n */\nconst formatDecimalNoRound = (num, decimal) => {\n num = num.toString();\n const index = num.indexOf('.');\n if (index !== -1) {\n num = num.substring(0, decimal + index + 1);\n }\n else {\n num = num.substring(0);\n }\n return Number(parseFloat(num).toFixed(decimal));\n};\n\n/**\n * 小数字转大数字\n * @param translateUnit\n */\nconst smallToBig = (translateUnit) => {\n return (num, params) => {\n if (isEmpty$1(num) || isNil$1(num))\n return num;\n if (isNaN(Number(num))) {\n return NaN;\n }\n const newNumber = Number(new Big(Number(num)).mul(translateUnit));\n if (isNil$1(params === null || params === void 0 ? void 0 : params.decimalNumber) && isNil$1(params === null || params === void 0 ? void 0 : params.fn)) {\n return newNumber;\n }\n if (!isNil$1(params === null || params === void 0 ? void 0 : params.decimalNumber) && isNil$1(params === null || params === void 0 ? void 0 : params.fn)) {\n return Number(newNumber.toFixed(params === null || params === void 0 ? void 0 : params.decimalNumber));\n }\n if (!isNil$1(params === null || params === void 0 ? void 0 : params.decimalNumber) && !isNil$1(params === null || params === void 0 ? void 0 : params.fn)) {\n if ((params === null || params === void 0 ? void 0 : params.fn) === 'toFixed') {\n return Number(newNumber.toFixed(params === null || params === void 0 ? void 0 : params.decimalNumber));\n }\n else if ((params === null || params === void 0 ? void 0 : params.fn) === 'floor') {\n return formatDecimalNoRound(newNumber, params === null || params === void 0 ? void 0 : params.decimalNumber);\n }\n }\n };\n};\n\n/**\n * 元转分\n * @param num\n * @param decimalNumber\n * @param fn\n */\nconst yuanTofen = (num, params) => {\n return smallToBig(100)(num, params);\n};\n\n/**\n * 大数字转小数字\n * @param translateUnit\n */\nconst bigToSmall = (translateUnit) => {\n return (num, params) => {\n const decimalNumber = (params === null || params === void 0 ? void 0 : params.decimalNumber) || 2;\n const fn = (params === null || params === void 0 ? void 0 : params.fn) || 'toFixed';\n if (isEmpty$1(num) || isNil$1(num))\n return num;\n if (isNaN(Number(num))) {\n return NaN;\n }\n const newNumber = new Big(Number(num)).div(translateUnit);\n if (fn === 'toFixed') {\n return Number(newNumber.toFixed(decimalNumber));\n }\n else if (fn === 'floor') {\n return formatDecimalNoRound(Number(newNumber), decimalNumber);\n }\n return num;\n };\n};\n\n/**\n * 分转元\n * @param num\n * @param decimalNumber 默认保留两位小数\n * @param fn\n */\nconst fenToyuan = (num, params) => {\n return bigToSmall(100)(num, params);\n};\n\n/**\n * 万转元\n * @param num\n * @param decimalNumber\n * @param fn\n */\nconst wanToyuan = (num, params) => {\n return smallToBig(10000)(num, params);\n};\n\n/**\n * 元转万\n * @param num\n * @param decimalNumber\n * @param fn\n */\nconst yuanTowan = (num, params) => {\n return bigToSmall(10000)(num, params);\n};\n\n/**\n * kg转g\n * @param num\n * @param decimalNumber\n * @param fn\n */\nconst kgTog = (num, params) => {\n return smallToBig(1000)(num, params);\n};\n\n/**\n * g转kg\n * @param num\n * @param decimalNumber\n * @param fn\n */\nconst gTokg = (num, pararms) => {\n return bigToSmall(1000)(num, pararms);\n};\n\n/**\n * 从头开始,最大截取多少个字符串\n * @param str\n * @param len 最大截取多少个字符串\n * @param isSpot 是否带 ...\n */\nconst maxSubstrWord = (str, len = 5, isSpot = true) => {\n if (typeof str === 'string') {\n return isSpot ? `${str.substr(0, len)}...` : str.substr(0, len);\n }\n else {\n return str;\n }\n};\n\n/**\n * 判断类型\n * @param params\n */\nconst getClass = (params) => {\n const str = Object.prototype.toString.call(params);\n const matchResult = /^\\[object (.*)\\]$/.exec(str);\n if (matchResult !== null) {\n return matchResult[1].toLowerCase();\n }\n return null;\n};\n\nconst trimParams = (object) => {\n if (typeof object === 'string') {\n return trim$1(object);\n }\n if (getClass(object) === 'array' || getClass(object) === 'object') {\n if (Array.isArray(object)) {\n object.forEach((newParams) => {\n trimParams(newParams);\n });\n }\n if (typeof object !== null) {\n Object.keys(object).map((key) => {\n const newValue = object[key];\n if (typeof newValue === 'string') {\n object[key] = trim$1(newValue);\n }\n if (getClass(newValue) === 'object' || getClass(newValue) === 'array') {\n trimParams(newValue);\n }\n });\n return object;\n }\n }\n return object;\n};\n\n/**\n * 获取字节长度\n * @param str // 需要获取字节长度的字符串\n * 中文+2 英文+1\n */\nconst getBiteLen = (str) => {\n if (typeof str !== 'string')\n return 0;\n let len = 0;\n for (let i = 0; i < str.length; i++) {\n if (str.charCodeAt(i) > 127 || str.charCodeAt(i) === 94) {\n len += 2;\n }\n else {\n len += 1;\n }\n }\n return len;\n};\n\n/**\n * 下划线转换驼峰\n * @param str string\n * @returns string\n */\nfunction lineToHump(str) {\n if (typeof str !== 'string')\n return str;\n return str.replace(/\\_(\\w)/g, function (_all, letter) {\n return letter.toUpperCase();\n });\n}\n\n/**\n * 驼峰转换下划线\n * @param str string\n * @returns srting\n */\nfunction humpToLine(str) {\n if (typeof str !== 'string')\n return str;\n return str.replace(/([A-Z])/g, '_$1').toLowerCase();\n}\n\nconst sum = (params, api) => {\n let resultSum = new Big(0);\n // 内部递归函数\n const _sum = (params, api) => {\n if (getClass(params) === 'array' && Array.isArray(params)) {\n params.forEach((item) => {\n if (!isNaN(item)) {\n resultSum = resultSum.plus(Number(item));\n }\n if (getClass(item) === 'object' && typeof api !== 'undefined' && item[api] !== null) {\n resultSum = resultSum.plus(Number(item[api]));\n }\n if (getClass(item) === 'array' && Array.isArray(item)) {\n _sum(item, api);\n }\n });\n }\n };\n _sum(params, api);\n return Number(resultSum);\n};\n\n/**\n *start 到 end 之间的随机数\n * @param end\n * @param start\n * @returns number\n */\nconst round = (end, start = 0) => Math.round(Math.random() * (end - start) + start);\n\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nfunction rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}\n\nvar REGEX = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nconst uuidv4 = () => {\n return v4();\n};\n\n/**\n * 2021-07-20 zimu\n * https://github.com/emn178/js-md5/blob/master/src/md5.js\n */\nconst ERROR = 'input is invalid type';\nconst HEX_CHARS = '0123456789abcdef'.split('');\nconst EXTRA = [128, 32768, 8388608, -2147483648];\nlet blocks = [], buffer8;\nconst buffer = new ArrayBuffer(68);\nbuffer8 = new Uint8Array(buffer);\nblocks = new Uint32Array(buffer);\n//@ts-ignore\nconst createMethod = () => (message) => new Md5().update(message)['hex']();\nfunction Md5() {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n this.buffer8 = buffer8;\n this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n}\nMd5.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n let notString;\n const type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw ERROR;\n }\n else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n else if (!Array.isArray(message)) {\n if (!ArrayBuffer.isView(message)) {\n throw ERROR;\n }\n }\n }\n else {\n throw ERROR;\n }\n notString = true;\n }\n let code, index = 0, i, length = message.length, blocks = this.blocks;\n let buffer8 = this.buffer8;\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = blocks[16];\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n buffer8[i++] = message[index];\n }\n }\n else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n buffer8[i++] = code;\n }\n else if (code < 0x800) {\n buffer8[i++] = 0xc0 | (code >> 6);\n buffer8[i++] = 0x80 | (code & 0x3f);\n }\n else if (code < 0xd800 || code >= 0xe000) {\n buffer8[i++] = 0xe0 | (code >> 12);\n buffer8[i++] = 0x80 | ((code >> 6) & 0x3f);\n buffer8[i++] = 0x80 | (code & 0x3f);\n }\n else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n buffer8[i++] = 0xf0 | (code >> 18);\n buffer8[i++] = 0x80 | ((code >> 12) & 0x3f);\n buffer8[i++] = 0x80 | ((code >> 6) & 0x3f);\n buffer8[i++] = 0x80 | (code & 0x3f);\n }\n }\n }\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n }\n else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n};\nMd5.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n const blocks = this.blocks, i = this.lastByteIndex;\n blocks[i >> 2] |= EXTRA[i & 3];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = blocks[16];\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.bytes << 3;\n blocks[15] = this.hBytes << 3 | this.bytes >>> 29;\n this.hash();\n};\nMd5.prototype.hash = function () {\n let a, b, c, d, bc, da, blocks = this.blocks;\n if (this.first) {\n a = blocks[0] - 680876937;\n a = (a << 7 | a >>> 25) - 271733879 << 0;\n d = (-1732584194 ^ a & 2004318071) + blocks[1] - 117830708;\n d = (d << 12 | d >>> 20) + a << 0;\n c = (-271733879 ^ (d & (a ^ -271733879))) + blocks[2] - 1126478375;\n c = (c << 17 | c >>> 15) + d << 0;\n b = (a ^ (c & (d ^ a))) + blocks[3] - 1316259209;\n b = (b << 22 | b >>> 10) + c << 0;\n }\n else {\n a = this.h0;\n b = this.h1;\n c = this.h2;\n d = this.h3;\n a += (d ^ (b & (c ^ d))) + blocks[0] - 680876936;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ (a & (b ^ c))) + blocks[1] - 389564586;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ (d & (a ^ b))) + blocks[2] + 606105819;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ (c & (d ^ a))) + blocks[3] - 1044525330;\n b = (b << 22 | b >>> 10) + c << 0;\n }\n a += (d ^ (b & (c ^ d))) + blocks[4] - 176418897;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ (a & (b ^ c))) + blocks[5] + 1200080426;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ (d & (a ^ b))) + blocks[6] - 1473231341;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ (c & (d ^ a))) + blocks[7] - 45705983;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (d ^ (b & (c ^ d))) + blocks[8] + 1770035416;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ (a & (b ^ c))) + blocks[9] - 1958414417;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ (d & (a ^ b))) + blocks[10] - 42063;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ (c & (d ^ a))) + blocks[11] - 1990404162;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (d ^ (b & (c ^ d))) + blocks[12] + 1804603682;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ (a & (b ^ c))) + blocks[13] - 40341101;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ (d & (a ^ b))) + blocks[14] - 1502002290;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ (c & (d ^ a))) + blocks[15] + 1236535329;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (c ^ (d & (b ^ c))) + blocks[1] - 165796510;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ (c & (a ^ b))) + blocks[6] - 1069501632;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ (b & (d ^ a))) + blocks[11] + 643717713;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ (a & (c ^ d))) + blocks[0] - 373897302;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ (d & (b ^ c))) + blocks[5] - 701558691;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ (c & (a ^ b))) + blocks[10] + 38016083;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ (b & (d ^ a))) + blocks[15] - 660478335;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ (a & (c ^ d))) + blocks[4] - 405537848;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ (d & (b ^ c))) + blocks[9] + 568446438;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ (c & (a ^ b))) + blocks[14] - 1019803690;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ (b & (d ^ a))) + blocks[3] - 187363961;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ (a & (c ^ d))) + blocks[8] + 1163531501;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ (d & (b ^ c))) + blocks[13] - 1444681467;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ (c & (a ^ b))) + blocks[2] - 51403784;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ (b & (d ^ a))) + blocks[7] + 1735328473;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ (a & (c ^ d))) + blocks[12] - 1926607734;\n b = (b << 20 | b >>> 12) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[5] - 378558;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[8] - 2022574463;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[11] + 1839030562;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[14] - 35309556;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[1] - 1530992060;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[4] + 1272893353;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[7] - 155497632;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[10] - 1094730640;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[13] + 681279174;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[0] - 358537222;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[3] - 722521979;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[6] + 76029189;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[9] - 640364487;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[12] - 421815835;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[15] + 530742520;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[2] - 995338651;\n b = (b << 23 | b >>> 9) + c << 0;\n a += (c ^ (b | ~d)) + blocks[0] - 198630844;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[7] + 1126891415;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[14] - 1416354905;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[5] - 57434055;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[12] + 1700485571;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[3] - 1894986606;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[10] - 1051523;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[1] - 2054922799;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[8] + 1873313359;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[15] - 30611744;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[6] - 1560198380;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[13] + 1309151649;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[4] - 145523070;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[11] - 1120210379;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[2] + 718787259;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[9] - 343485551;\n b = (b << 21 | b >>> 11) + c << 0;\n if (this.first) {\n this.h0 = a + 1732584193 << 0;\n this.h1 = b - 271733879 << 0;\n this.h2 = c - 1732584194 << 0;\n this.h3 = d + 271733878 << 0;\n this.first = false;\n }\n else {\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n }\n};\nMd5.prototype.hex = function () {\n this.finalize();\n let h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3;\n return HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F];\n};\nvar md5 = createMethod();\n\nconst getMD5 = (md5Key) => {\n if (isEmpty$1(md5Key) || isNil$1(md5Key))\n return md5Key;\n if (is$1(String, md5Key))\n return md5(md5Key);\n return md5Key;\n};\n\n/**\n * 扩大倍数,数字变大\n * @param multiple\n * @param num\n * @param decimalNumber\n * @param fn\n */\nconst expandMultiple = (multiple, num, params) => {\n return smallToBig(multiple)(num, params);\n};\n\n/**\n * 缩小倍数,数字变小\n * @param multiple\n * @param num\n * @param decimalNumber\n * @param fn\n */\nconst reduceMultiple = (multiple, num, params) => {\n return bigToSmall(multiple)(num, params);\n};\n\n/**\n * 数值转化为 千分位 展示\n * @param num\n * @param separator 分隔符,默认 ','\n */\nconst numberToThousand = (num, separator = ',') => {\n if (isEmpty$1(num) || isNil$1(num))\n return num;\n if (isNaN(Number(num))) {\n return NaN;\n }\n return num.toString().replace(/\\d+/, (n) => n.replace(/(\\d)(?=(\\d{3})+$)/g, ($1) => `${$1}${separator}`));\n};\n\n// @ts-nocheck\n/**\n * @param {{ leading: any; trailing: any; }} value\n */\nfunction isObject (value) {\n const type = typeof value;\n return value != null && (type === 'object' || type === 'function')\n}\n\n\n/**\n * @param {{ apply: (arg0: any, arg1: any) => any; }} func\n * @param {number} wait\n * @param {{ leading: any; trailing: any; maxWait: any; }} options\n */\nfunction debounce (func, wait, options) {\n if (typeof window === 'undefined') {\n return;\n }\n let lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime;\n\n let lastInvokeTime = 0;\n let leading = false;\n let maxing = false;\n let trailing = true;\n\n // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.\n const useRAF = (!wait && wait !== 0 && typeof requestAnimationFrame === 'function');\n\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function')\n }\n wait = +wait || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n /**\n * @param {number} time\n */\n function invokeFunc (time) {\n const args = lastArgs;\n const thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result\n }\n\n /**\n * @param {FrameRequestCallback} pendingFunc\n * @param {number} wait\n */\n function startTimer (pendingFunc, wait) {\n if (useRAF) {\n cancelAnimationFrame(timerId);\n return requestAnimationFrame(pendingFunc)\n }\n return setTimeout(pendingFunc, wait)\n }\n\n /**\n * @param {number} id\n */\n function cancelTimer (id) {\n if (useRAF) {\n return cancelAnimationFrame(id)\n }\n clearTimeout(id);\n }\n\n /**\n * @param {number} time\n */\n function leadingEdge (time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = startTimer(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result\n }\n\n /**\n * @param {number} time\n */\n function remainingWait (time) {\n const timeSinceLastCall = time - lastCallTime;\n const timeSinceLastInvoke = time - lastInvokeTime;\n const timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting\n }\n\n /**\n * @param {number} time\n */\n function shouldInvoke (time) {\n const timeSinceLastCall = time - lastCallTime;\n const timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait))\n }\n\n function timerExpired () {\n const time = Date.now();\n if (shouldInvoke(time)) {\n return trailingEdge(time)\n }\n // Restart the timer.\n timerId = startTimer(timerExpired, remainingWait(time));\n }\n\n /**\n * @param {number} time\n */\n function trailingEdge (time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time)\n }\n lastArgs = lastThis = undefined;\n return result\n }\n\n function cancel () {\n if (timerId !== undefined) {\n cancelTimer(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush () {\n return timerId === undefined ? result : trailingEdge(Date.now())\n }\n\n function pending () {\n return timerId !== undefined\n }\n\n /**\n * @param {any[]} args\n */\n function debounced (...args) {\n const time = Date.now();\n const isInvoking = shouldInvoke(time);\n\n lastArgs = args;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime)\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = startTimer(timerExpired, wait);\n return invokeFunc(lastCallTime)\n }\n }\n if (timerId === undefined) {\n timerId = startTimer(timerExpired, wait);\n }\n return result\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n debounced.pending = pending;\n return debounced\n}\n\n/**\n * @param {any} func\n * @param {any} wait\n * @param {{ leading: any; trailing: any; }} options\n */\nfunction throttle (func, wait, options) {\n let leading = true;\n let trailing = true;\n\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function')\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n leading,\n trailing,\n 'maxWait': wait\n })\n}\n\n/**\n * 获取图片地址\n * @param img 原始图片地址\n * @param width 图片宽度\n * @param width 图片高度\n * @param defaultImg 默认图片地址\n * @returns number\n */\nconst defGoodsImg = 'https://cdn.ywwl.com/bps/ywyun/dianhu/assets/def_goods_img.png';\nconst getImgUrl = (img, width = 200, height, defaultImg) => {\n const reg = new RegExp(/resize:(\\d+):(\\d+)/, 'g');\n let retImg = '';\n if (img) {\n retImg = img;\n if (reg.test(retImg)) { // 抖音\n retImg = retImg.replace(reg, `resize:${width}:${height || 0}`);\n }\n else { // 阿里云OSS\n retImg = retImg.indexOf('x-oss-process=image') > -1 || retImg.indexOf('?') > -1 ? retImg\n : `${retImg}?x-oss-process=image/resize,w_${width},limit_0/quality,q_60`;\n }\n }\n else {\n retImg = defaultImg || defGoodsImg;\n }\n return retImg;\n};\n\nvar lib$2 = {};\n\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\n\nieee754.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n};\n\nieee754.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};\n\n(function (exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnsiStringType = exports.StringType = exports.BufferType = exports.Uint8ArrayType = exports.IgnoreType = exports.Float80_LE = exports.Float80_BE = exports.Float64_LE = exports.Float64_BE = exports.Float32_LE = exports.Float32_BE = exports.Float16_LE = exports.Float16_BE = exports.INT64_BE = exports.UINT64_BE = exports.INT64_LE = exports.UINT64_LE = exports.INT32_LE = exports.INT32_BE = exports.INT24_BE = exports.INT24_LE = exports.INT16_LE = exports.INT16_BE = exports.INT8 = exports.UINT32_BE = exports.UINT32_LE = exports.UINT24_BE = exports.UINT24_LE = exports.UINT16_BE = exports.UINT16_LE = exports.UINT8 = void 0;\nconst ieee754$1 = ieee754;\n// Primitive types\nfunction dv(array) {\n return new DataView(array.buffer, array.byteOffset);\n}\n/**\n * 8-bit unsigned integer\n */\nexports.UINT8 = {\n len: 1,\n get(array, offset) {\n return dv(array).getUint8(offset);\n },\n put(array, offset, value) {\n dv(array).setUint8(offset, value);\n return offset + 1;\n }\n};\n/**\n * 16-bit unsigned integer, Little Endian byte order\n */\nexports.UINT16_LE = {\n len: 2,\n get(array, offset) {\n return dv(array).getUint16(offset, true);\n },\n put(array, offset, value) {\n dv(array).setUint16(offset, value, true);\n return offset + 2;\n }\n};\n/**\n * 16-bit unsigned integer, Big Endian byte order\n */\nexports.UINT16_BE = {\n len: 2,\n get(array, offset) {\n return dv(array).getUint16(offset);\n },\n put(array, offset, value) {\n dv(array).setUint16(offset, value);\n return offset + 2;\n }\n};\n/**\n * 24-bit unsigned integer, Little Endian byte order\n */\nexports.UINT24_LE = {\n len: 3,\n get(array, offset) {\n const dataView = dv(array);\n return dataView.getUint8(offset) + (dataView.getUint16(offset + 1, true) << 8);\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint8(offset, value & 0xff);\n dataView.setUint16(offset + 1, value >> 8, true);\n return offset + 3;\n }\n};\n/**\n * 24-bit unsigned integer, Big Endian byte order\n */\nexports.UINT24_BE = {\n len: 3,\n get(array, offset) {\n const dataView = dv(array);\n return (dataView.getUint16(offset) << 8) + dataView.getUint8(offset + 2);\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint16(offset, value >> 8);\n dataView.setUint8(offset + 2, value & 0xff);\n return offset + 3;\n }\n};\n/**\n * 32-bit unsigned integer, Little Endian byte order\n */\nexports.UINT32_LE = {\n len: 4,\n get(array, offset) {\n return dv(array).getUint32(offset, true);\n },\n put(array, offset, value) {\n dv(array).setUint32(offset, value, true);\n return offset + 4;\n }\n};\n/**\n * 32-bit unsigned integer, Big Endian byte order\n */\nexports.UINT32_BE = {\n len: 4,\n get(array, offset) {\n return dv(array).getUint32(offset);\n },\n put(array, offset, value) {\n dv(array).setUint32(offset, value);\n return offset + 4;\n }\n};\n/**\n * 8-bit signed integer\n */\nexports.INT8 = {\n len: 1,\n get(array, offset) {\n return dv(array).getInt8(offset);\n },\n put(array, offset, value) {\n dv(array).setInt8(offset, value);\n return offset + 1;\n }\n};\n/**\n * 16-bit signed integer, Big Endian byte order\n */\nexports.INT16_BE = {\n len: 2,\n get(array, offset) {\n return dv(array).getInt16(offset);\n },\n put(array, offset, value) {\n dv(array).setInt16(offset, value);\n return offset + 2;\n }\n};\n/**\n * 16-bit signed integer, Little Endian byte order\n */\nexports.INT16_LE = {\n len: 2,\n get(array, offset) {\n return dv(array).getInt16(offset, true);\n },\n put(array, offset, value) {\n dv(array).setInt16(offset, value, true);\n return offset + 2;\n }\n};\n/**\n * 24-bit signed integer, Little Endian byte order\n */\nexports.INT24_LE = {\n len: 3,\n get(array, offset) {\n const unsigned = exports.UINT24_LE.get(array, offset);\n return unsigned > 0x7fffff ? unsigned - 0x1000000 : unsigned;\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint8(offset, value & 0xff);\n dataView.setUint16(offset + 1, value >> 8, true);\n return offset + 3;\n }\n};\n/**\n * 24-bit signed integer, Big Endian byte order\n */\nexports.INT24_BE = {\n len: 3,\n get(array, offset) {\n const unsigned = exports.UINT24_BE.get(array, offset);\n return unsigned > 0x7fffff ? unsigned - 0x1000000 : unsigned;\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint16(offset, value >> 8);\n dataView.setUint8(offset + 2, value & 0xff);\n return offset + 3;\n }\n};\n/**\n * 32-bit signed integer, Big Endian byte order\n */\nexports.INT32_BE = {\n len: 4,\n get(array, offset) {\n return dv(array).getInt32(offset);\n },\n put(array, offset, value) {\n dv(array).setInt32(offset, value);\n return offset + 4;\n }\n};\n/**\n * 32-bit signed integer, Big Endian byte order\n */\nexports.INT32_LE = {\n len: 4,\n get(array, offset) {\n return dv(array).getInt32(offset, true);\n },\n put(array, offset, value) {\n dv(array).setInt32(offset, value, true);\n return offset + 4;\n }\n};\n/**\n * 64-bit unsigned integer, Little Endian byte order\n */\nexports.UINT64_LE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigUint64(offset, true);\n },\n put(array, offset, value) {\n dv(array).setBigUint64(offset, value, true);\n return offset + 8;\n }\n};\n/**\n * 64-bit signed integer, Little Endian byte order\n */\nexports.INT64_LE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigInt64(offset, true);\n },\n put(array, offset, value) {\n dv(array).setBigInt64(offset, value, true);\n return offset + 8;\n }\n};\n/**\n * 64-bit unsigned integer, Big Endian byte order\n */\nexports.UINT64_BE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigUint64(offset);\n },\n put(array, offset, value) {\n dv(array).setBigUint64(offset, value);\n return offset + 8;\n }\n};\n/**\n * 64-bit signed integer, Big Endian byte order\n */\nexports.INT64_BE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigInt64(offset);\n },\n put(array, offset, value) {\n dv(array).setBigInt64(offset, value);\n return offset + 8;\n }\n};\n/**\n * IEEE 754 16-bit (half precision) float, big endian\n */\nexports.Float16_BE = {\n len: 2,\n get(dataView, offset) {\n return ieee754$1.read(dataView, offset, false, 10, this.len);\n },\n put(dataView, offset, value) {\n ieee754$1.write(dataView, value, offset, false, 10, this.len);\n return offset + this.len;\n }\n};\n/**\n * IEEE 754 16-bit (half precision) float, little endian\n */\nexports.Float16_LE = {\n len: 2,\n get(array, offset) {\n return ieee754$1.read(array, offset, true, 10, this.len);\n },\n put(array, offset, value) {\n ieee754$1.write(array, value, offset, true, 10, this.len);\n return offset + this.len;\n }\n};\n/**\n * IEEE 754 32-bit (single precision) float, big endian\n */\nexports.Float32_BE = {\n len: 4,\n get(array, offset) {\n return dv(array).getFloat32(offset);\n },\n put(array, offset, value) {\n dv(array).setFloat32(offset, value);\n return offset + 4;\n }\n};\n/**\n * IEEE 754 32-bit (single precision) float, little endian\n */\nexports.Float32_LE = {\n len: 4,\n get(array, offset) {\n return dv(array).getFloat32(offset, true);\n },\n put(array, offset, value) {\n dv(array).setFloat32(offset, value, true);\n return offset + 4;\n }\n};\n/**\n * IEEE 754 64-bit (double precision) float, big endian\n */\nexports.Float64_BE = {\n len: 8,\n get(array, offset) {\n return dv(array).getFloat64(offset);\n },\n put(array, offset, value) {\n dv(array).setFloat64(offset, value);\n return offset + 8;\n }\n};\n/**\n * IEEE 754 64-bit (double precision) float, little endian\n */\nexports.Float64_LE = {\n len: 8,\n get(array, offset) {\n return dv(array).getFloat64(offset, true);\n },\n put(array, offset, value) {\n dv(array).setFloat64(offset, value, true);\n return offset + 8;\n }\n};\n/**\n * IEEE 754 80-bit (extended precision) float, big endian\n */\nexports.Float80_BE = {\n len: 10,\n get(array, offset) {\n return ieee754$1.read(array, offset, false, 63, this.len);\n },\n put(array, offset, value) {\n ieee754$1.write(array, value, offset, false, 63, this.len);\n return offset + this.len;\n }\n};\n/**\n * IEEE 754 80-bit (extended precision) float, little endian\n */\nexports.Float80_LE = {\n len: 10,\n get(array, offset) {\n return ieee754$1.read(array, offset, true, 63, this.len);\n },\n put(array, offset, value) {\n ieee754$1.write(array, value, offset, true, 63, this.len);\n return offset + this.len;\n }\n};\n/**\n * Ignore a given number of bytes\n */\nclass IgnoreType {\n /**\n * @param len number of bytes to ignore\n */\n constructor(len) {\n this.len = len;\n }\n // ToDo: don't read, but skip data\n get(array, off) {\n }\n}\nexports.IgnoreType = IgnoreType;\nclass Uint8ArrayType {\n constructor(len) {\n this.len = len;\n }\n get(array, offset) {\n return array.subarray(offset, offset + this.len);\n }\n}\nexports.Uint8ArrayType = Uint8ArrayType;\nclass BufferType {\n constructor(len) {\n this.len = len;\n }\n get(uint8Array, off) {\n return Buffer.from(uint8Array.subarray(off, off + this.len));\n }\n}\nexports.BufferType = BufferType;\n/**\n * Consume a fixed number of bytes from the stream and return a string with a specified encoding.\n */\nclass StringType {\n constructor(len, encoding) {\n this.len = len;\n this.encoding = encoding;\n }\n get(uint8Array, offset) {\n return Buffer.from(uint8Array).toString(this.encoding, offset, offset + this.len);\n }\n}\nexports.StringType = StringType;\n/**\n * ANSI Latin 1 String\n * Using windows-1252 / ISO 8859-1 decoding\n */\nclass AnsiStringType {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = '';\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 0xFFFF) {\n return String.fromCharCode(cp);\n }\n else {\n cp -= 0x10000;\n return String.fromCharCode((cp >> 10) + 0xD800, (cp & 0x3FF) + 0xDC00);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0x00, 0x7F)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 0x80];\n if (codePoint === null) {\n throw Error('invaliding encoding');\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n}\nexports.AnsiStringType = AnsiStringType;\nAnsiStringType.windows1252 = [8364, 129, 8218, 402, 8222, 8230, 8224, 8225, 710, 8240, 352,\n 8249, 338, 141, 381, 143, 144, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 732,\n 8482, 353, 8250, 339, 157, 382, 376, 160, 161, 162, 163, 164, 165, 166, 167, 168,\n 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,\n 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,\n 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,\n 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,\n 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,\n 248, 249, 250, 251, 252, 253, 254, 255];\n}(lib$2));\n\nvar lib$1 = {};\n\nvar FsPromise = {};\n\n/**\r\n * Module convert fs functions to promise based functions\r\n */\r\nObject.defineProperty(FsPromise, \"__esModule\", { value: true });\r\nFsPromise.readFile = FsPromise.writeFileSync = FsPromise.writeFile = FsPromise.read = FsPromise.open = FsPromise.close = FsPromise.stat = FsPromise.createReadStream = FsPromise.pathExists = void 0;\r\nconst fs$1 = require$$0__default[\"default\"];\r\nFsPromise.pathExists = fs$1.existsSync;\r\nFsPromise.createReadStream = fs$1.createReadStream;\r\nasync function stat(path) {\r\n return new Promise((resolve, reject) => {\r\n fs$1.stat(path, (err, stats) => {\r\n if (err)\r\n reject(err);\r\n else\r\n resolve(stats);\r\n });\r\n });\r\n}\r\nFsPromise.stat = stat;\r\nasync function close(fd) {\r\n return new Promise((resolve, reject) => {\r\n fs$1.close(fd, err => {\r\n if (err)\r\n reject(err);\r\n else\r\n resolve();\r\n });\r\n });\r\n}\r\nFsPromise.close = close;\r\nasync function open(path, mode) {\r\n return new Promise((resolve, reject) => {\r\n fs$1.open(path, mode, (err, fd) => {\r\n if (err)\r\n reject(err);\r\n else\r\n resolve(fd);\r\n });\r\n });\r\n}\r\nFsPromise.open = open;\r\nasync function read(fd, buffer, offset, length, position) {\r\n return new Promise((resolve, reject) => {\r\n fs$1.read(fd, buffer, offset, length, position, (err, bytesRead, _buffer) => {\r\n if (err)\r\n reject(err);\r\n else\r\n resolve({ bytesRead, buffer: _buffer });\r\n });\r\n });\r\n}\r\nFsPromise.read = read;\r\nasync function writeFile(path, data) {\r\n return new Promise((resolve, reject) => {\r\n fs$1.writeFile(path, data, err => {\r\n if (err)\r\n reject(err);\r\n else\r\n resolve();\r\n });\r\n });\r\n}\r\nFsPromise.writeFile = writeFile;\r\nfunction writeFileSync(path, data) {\r\n fs$1.writeFileSync(path, data);\r\n}\r\nFsPromise.writeFileSync = writeFileSync;\r\nasync function readFile(path) {\r\n return new Promise((resolve, reject) => {\r\n fs$1.readFile(path, (err, buffer) => {\r\n if (err)\r\n reject(err);\r\n else\r\n resolve(buffer);\r\n });\r\n });\r\n}\r\nFsPromise.readFile = readFile;\n\nvar core = {};\n\nvar ReadStreamTokenizer$1 = {};\n\nvar AbstractTokenizer$1 = {};\n\nvar lib = {};\n\nvar EndOfFileStream = {};\n\n(function (exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EndOfStreamError = exports.defaultMessages = void 0;\r\nexports.defaultMessages = 'End-Of-Stream';\r\n/**\r\n * Thrown on read operation of the end of file or stream has been reached\r\n */\r\nclass EndOfStreamError extends Error {\r\n constructor() {\r\n super(exports.defaultMessages);\r\n }\r\n}\r\nexports.EndOfStreamError = EndOfStreamError;\n}(EndOfFileStream));\n\nvar StreamReader = {};\n\nvar Deferred$1 = {};\n\nObject.defineProperty(Deferred$1, \"__esModule\", { value: true });\r\nDeferred$1.Deferred = void 0;\r\nclass Deferred {\r\n constructor() {\r\n this.resolve = () => null;\r\n this.reject = () => null;\r\n this.promise = new Promise((resolve, reject) => {\r\n this.reject = reject;\r\n this.resolve = resolve;\r\n });\r\n }\r\n}\r\nDeferred$1.Deferred = Deferred;\n\n(function (exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StreamReader = exports.EndOfStreamError = void 0;\r\nconst EndOfFileStream_1 = EndOfFileStream;\r\nconst Deferred_1 = Deferred$1;\r\nvar EndOfFileStream_2 = EndOfFileStream;\r\nObject.defineProperty(exports, \"EndOfStreamError\", { enumerable: true, get: function () { return EndOfFileStream_2.EndOfStreamError; } });\r\nconst maxStreamReadSize = 1 * 1024 * 1024; // Maximum request length on read-stream operation\r\nclass StreamReader {\r\n constructor(s) {\r\n this.s = s;\r\n /**\r\n * Deferred used for postponed read request (as not data is yet available to read)\r\n */\r\n this.deferred = null;\r\n this.endOfStream = false;\r\n /**\r\n * Store peeked data\r\n * @type {Array}\r\n */\r\n this.peekQueue = [];\r\n if (!s.read || !s.once) {\r\n throw new Error('Expected an instance of stream.Readable');\r\n }\r\n this.s.once('end', () => this.reject(new EndOfFileStream_1.EndOfStreamError()));\r\n this.s.once('error', err => this.reject(err));\r\n this.s.once('close', () => this.reject(new Error('Stream closed')));\r\n }\r\n /**\r\n * Read ahead (peek) from stream. Subsequent read or peeks will return the same data\r\n * @param uint8Array - Uint8Array (or Buffer) to store data read from stream in\r\n * @param offset - Offset target\r\n * @param length - Number of bytes to read\r\n * @returns Number of bytes peeked\r\n */\r\n async peek(uint8Array, offset, length) {\r\n const bytesRead = await this.read(uint8Array, offset, length);\r\n this.peekQueue.push(uint8Array.subarray(offset, offset + bytesRead)); // Put read data back to peek buffer\r\n return bytesRead;\r\n }\r\n /**\r\n * Read chunk from stream\r\n * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in\r\n * @param offset - Offset target\r\n * @param length - Number of bytes to read\r\n * @returns Number of bytes read\r\n */\r\n async read(buffer, offset, length) {\r\n if (length === 0) {\r\n return 0;\r\n }\r\n if (this.peekQueue.length === 0 && this.endOfStream) {\r\n throw new EndOfFileStream_1.EndOfStreamError();\r\n }\r\n let remaining = length;\r\n let bytesRead = 0;\r\n // consume peeked data first\r\n while (this.peekQueue.length > 0 && remaining > 0) {\r\n const peekData = this.peekQueue.pop(); // Front of queue\r\n if (!peekData)\r\n throw new Error('peekData should be defined');\r\n const lenCopy = Math.min(peekData.length, remaining);\r\n buffer.set(peekData.subarray(0, lenCopy), offset + bytesRead);\r\n bytesRead += lenCopy;\r\n remaining -= lenCopy;\r\n if (lenCopy < peekData.length) {\r\n // remainder back to queue\r\n this.peekQueue.push(peekData.subarray(lenCopy));\r\n }\r\n }\r\n // continue reading from stream if required\r\n while (remaining > 0 && !this.endOfStream) {\r\n const reqLen = Math.min(remaining, maxStreamReadSize);\r\n const chunkLen = await this.readFromStream(buffer, offset + bytesRead, reqLen);\r\n bytesRead += chunkLen;\r\n if (chunkLen < reqLen)\r\n break;\r\n remaining -= chunkLen;\r\n }\r\n return bytesRead;\r\n }\r\n /**\r\n * Read chunk from stream\r\n * @param buffer Target Uint8Array (or Buffer) to store data read from stream in\r\n * @param offset Offset target\r\n * @param length Number of bytes to read\r\n * @returns Number of bytes read\r\n */\r\n async readFromStream(buffer, offset, length) {\r\n const readBuffer = this.s.read(length);\r\n if (readBuffer) {\r\n buffer.set(readBuffer, offset);\r\n return readBuffer.length;\r\n }\r\n else {\r\n const request = {\r\n buffer,\r\n offset,\r\n length,\r\n deferred: new Deferred_1.Deferred()\r\n };\r\n this.deferred = request.deferred;\r\n this.s.once('readable', () => {\r\n this.readDeferred(request);\r\n });\r\n return request.deferred.promise;\r\n }\r\n }\r\n /**\r\n * Process deferred read request\r\n * @param request Deferred read request\r\n */\r\n readDeferred(request) {\r\n const readBuffer = this.s.read(request.length);\r\n if (readBuffer) {\r\n request.buffer.set(readBuffer, request.offset);\r\n request.deferred.resolve(readBuffer.length);\r\n this.deferred = null;\r\n }\r\n else {\r\n this.s.once('readable', () => {\r\n this.readDeferred(request);\r\n });\r\n }\r\n }\r\n reject(err) {\r\n this.endOfStream = true;\r\n if (this.deferred) {\r\n this.deferred.reject(err);\r\n this.deferred = null;\r\n }\r\n }\r\n}\r\nexports.StreamReader = StreamReader;\n}(StreamReader));\n\n(function (exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StreamReader = exports.EndOfStreamError = void 0;\r\nvar EndOfFileStream_1 = EndOfFileStream;\r\nObject.defineProperty(exports, \"EndOfStreamError\", { enumerable: true, get: function () { return EndOfFileStream_1.EndOfStreamError; } });\r\nvar StreamReader_1 = StreamReader;\r\nObject.defineProperty(exports, \"StreamReader\", { enumerable: true, get: function () { return StreamReader_1.StreamReader; } });\n}(lib));\n\nObject.defineProperty(AbstractTokenizer$1, \"__esModule\", { value: true });\r\nAbstractTokenizer$1.AbstractTokenizer = void 0;\r\nconst peek_readable_1$3 = lib;\r\n/**\r\n * Core tokenizer\r\n */\r\nclass AbstractTokenizer {\r\n constructor(fileInfo) {\r\n /**\r\n * Tokenizer-stream position\r\n */\r\n this.position = 0;\r\n this.numBuffer = new Uint8Array(8);\r\n this.fileInfo = fileInfo ? fileInfo : {};\r\n }\r\n /**\r\n * Read a token from the tokenizer-stream\r\n * @param token - The token to read\r\n * @param position - If provided, the desired position in the tokenizer-stream\r\n * @returns Promise with token data\r\n */\r\n async readToken(token, position = this.position) {\r\n const uint8Array = Buffer.alloc(token.len);\r\n const len = await this.readBuffer(uint8Array, { position });\r\n if (len < token.len)\r\n throw new peek_readable_1$3.EndOfStreamError();\r\n return token.get(uint8Array, 0);\r\n }\r\n /**\r\n * Peek a token from the tokenizer-stream.\r\n * @param token - Token to peek from the tokenizer-stream.\r\n * @param position - Offset where to begin reading within the file. If position is null, data will be read from the current file position.\r\n * @returns Promise with token data\r\n */\r\n async peekToken(token, position = this.position) {\r\n const uint8Array = Buffer.alloc(token.len);\r\n const len = await this.peekBuffer(uint8Array, { position });\r\n if (len < token.len)\r\n throw new peek_readable_1$3.EndOfStreamError();\r\n return token.get(uint8Array, 0);\r\n }\r\n /**\r\n * Read a numeric token from the stream\r\n * @param token - Numeric token\r\n * @returns Promise with number\r\n */\r\n async readNumber(token) {\r\n const len = await this.readBuffer(this.numBuffer, { length: token.len });\r\n if (len < token.len)\r\n throw new peek_readable_1$3.EndOfStreamError();\r\n return token.get(this.numBuffer, 0);\r\n }\r\n /**\r\n * Read a numeric token from the stream\r\n * @param token - Numeric token\r\n * @returns Promise with number\r\n */\r\n async peekNumber(token) {\r\n const len = await this.peekBuffer(this.numBuffer, { length: token.len });\r\n if (len < token.len)\r\n throw new peek_readable_1$3.EndOfStreamError();\r\n return token.get(this.numBuffer, 0);\r\n }\r\n /**\r\n * Ignore number of bytes, advances the pointer in under tokenizer-stream.\r\n * @param length - Number of bytes to ignore\r\n * @return resolves the number of bytes ignored, equals length if this available, otherwise the number of bytes available\r\n */\r\n async ignore(length) {\r\n if (this.fileInfo.size !== undefined) {\r\n const bytesLeft = this.fileInfo.size - this.position;\r\n if (length > bytesLeft) {\r\n this.position += bytesLeft;\r\n return bytesLeft;\r\n }\r\n }\r\n this.position += length;\r\n return length;\r\n }\r\n async close() {\r\n // empty\r\n }\r\n normalizeOptions(uint8Array, options) {\r\n if (options && options.position !== undefined && options.position < this.position) {\r\n throw new Error('`options.position` must be equal or greater than `tokenizer.position`');\r\n }\r\n if (options) {\r\n return {\r\n mayBeLess: options.mayBeLess === true,\r\n offset: options.offset ? options.offset : 0,\r\n length: options.length ? options.length : (uint8Array.length - (options.offset ? options.offset : 0)),\r\n position: options.position ? options.position : this.position\r\n };\r\n }\r\n return {\r\n mayBeLess: false,\r\n offset: 0,\r\n length: uint8Array.length,\r\n position: this.position\r\n };\r\n }\r\n}\r\nAbstractTokenizer$1.AbstractTokenizer = AbstractTokenizer;\n\nObject.defineProperty(ReadStreamTokenizer$1, \"__esModule\", { value: true });\r\nReadStreamTokenizer$1.ReadStreamTokenizer = void 0;\r\nconst AbstractTokenizer_1$2 = AbstractTokenizer$1;\r\nconst peek_readable_1$2 = lib;\r\nconst maxBufferSize = 256000;\r\nclass ReadStreamTokenizer extends AbstractTokenizer_1$2.AbstractTokenizer {\r\n constructor(stream, fileInfo) {\r\n super(fileInfo);\r\n this.streamReader = new peek_readable_1$2.StreamReader(stream);\r\n }\r\n /**\r\n * Get file information, an HTTP-client may implement this doing a HEAD request\r\n * @return Promise with file information\r\n */\r\n async getFileInfo() {\r\n return this.fileInfo;\r\n }\r\n /**\r\n * Read buffer from tokenizer\r\n * @param uint8Array - Target Uint8Array to fill with data read from the tokenizer-stream\r\n * @param options - Read behaviour options\r\n * @returns Promise with number of bytes read\r\n */\r\n async readBuffer(uint8Array, options) {\r\n const normOptions = this.normalizeOptions(uint8Array, options);\r\n const skipBytes = normOptions.position - this.position;\r\n if (skipBytes > 0) {\r\n await this.ignore(skipBytes);\r\n return this.readBuffer(uint8Array, options);\r\n }\r\n else if (skipBytes < 0) {\r\n throw new Error('`options.position` must be equal or greater than `tokenizer.position`');\r\n }\r\n if (normOptions.length === 0) {\r\n return 0;\r\n }\r\n const bytesRead = await this.streamReader.read(uint8Array, normOptions.offset, normOptions.length);\r\n this.position += bytesRead;\r\n if ((!options || !options.mayBeLess) && bytesRead < normOptions.length) {\r\n throw new peek_readable_1$2.EndOfStreamError();\r\n }\r\n return bytesRead;\r\n }\r\n /**\r\n * Peek (read ahead) buffer from tokenizer\r\n * @param uint8Array - Uint8Array (or Buffer) to write data to\r\n * @param options - Read behaviour options\r\n * @returns Promise with number of bytes peeked\r\n */\r\n async peekBuffer(uint8Array, options) {\r\n const normOptions = this.normalizeOptions(uint8Array, options);\r\n let bytesRead = 0;\r\n if (normOptions.position) {\r\n const skipBytes = normOptions.position - this.position;\r\n if (skipBytes > 0) {\r\n const skipBuffer = new Uint8Array(normOptions.length + skipBytes);\r\n bytesRead = await this.peekBuffer(skipBuffer, { mayBeLess: normOptions.mayBeLess });\r\n uint8Array.set(skipBuffer.subarray(skipBytes), normOptions.offset);\r\n return bytesRead - skipBytes;\r\n }\r\n else if (skipBytes < 0) {\r\n throw new Error('Cannot peek from a negative offset in a stream');\r\n }\r\n }\r\n if (normOptions.length > 0) {\r\n try {\r\n bytesRead = await this.streamReader.peek(uint8Array, normOptions.offset, normOptions.length);\r\n }\r\n catch (err) {\r\n if (options && options.mayBeLess && err instanceof peek_readable_1$2.EndOfStreamError) {\r\n return 0;\r\n }\r\n throw err;\r\n }\r\n if ((!normOptions.mayBeLess) && bytesRead < normOptions.length) {\r\n throw new peek_readable_1$2.EndOfStreamError();\r\n }\r\n }\r\n return bytesRead;\r\n }\r\n async ignore(length) {\r\n // debug(`ignore ${this.position}...${this.position + length - 1}`);\r\n const bufSize = Math.min(maxBufferSize, length);\r\n const buf = new Uint8Array(bufSize);\r\n let totBytesRead = 0;\r\n while (totBytesRead < length) {\r\n const remaining = length - totBytesRead;\r\n const bytesRead = await this.readBuffer(buf, { length: Math.min(bufSize, remaining) });\r\n if (bytesRead < 0) {\r\n return bytesRead;\r\n }\r\n totBytesRead += bytesRead;\r\n }\r\n return totBytesRead;\r\n }\r\n}\r\nReadStreamTokenizer$1.ReadStreamTokenizer = ReadStreamTokenizer;\n\nvar BufferTokenizer$1 = {};\n\nObject.defineProperty(BufferTokenizer$1, \"__esModule\", { value: true });\r\nBufferTokenizer$1.BufferTokenizer = void 0;\r\nconst peek_readable_1$1 = lib;\r\nconst AbstractTokenizer_1$1 = AbstractTokenizer$1;\r\nclass BufferTokenizer extends AbstractTokenizer_1$1.AbstractTokenizer {\r\n /**\r\n * Construct BufferTokenizer\r\n * @param uint8Array - Uint8Array to tokenize\r\n * @param fileInfo - Pass additional file information to the tokenizer\r\n */\r\n constructor(uint8Array, fileInfo) {\r\n super(fileInfo);\r\n this.uint8Array = uint8Array;\r\n this.fileInfo.size = this.fileInfo.size ? this.fileInfo.size : uint8Array.length;\r\n }\r\n /**\r\n * Read buffer from tokenizer\r\n * @param uint8Array - Uint8Array to tokenize\r\n * @param options - Read behaviour options\r\n * @returns {Promise<number>}\r\n */\r\n async readBuffer(uint8Array, options) {\r\n if (options && options.position) {\r\n if (options.position < this.position) {\r\n throw new Error('`options.position` must be equal or greater than `tokenizer.position`');\r\n }\r\n this.position = options.position;\r\n }\r\n const bytesRead = await this.peekBuffer(uint8Array, options);\r\n this.position += bytesRead;\r\n return bytesRead;\r\n }\r\n /**\r\n * Peek (read ahead) buffer from tokenizer\r\n * @param uint8Array\r\n * @param options - Read behaviour options\r\n * @returns {Promise<number>}\r\n */\r\n async peekBuffer(uint8Array, options) {\r\n const normOptions = this.normalizeOptions(uint8Array, options);\r\n const bytes2read = Math.min(this.uint8Array.length - normOptions.position, normOptions.length);\r\n if ((!normOptions.mayBeLess) && bytes2read < normOptions.length) {\r\n throw new peek_readable_1$1.EndOfStreamError();\r\n }\r\n else {\r\n uint8Array.set(this.uint8Array.subarray(normOptions.position, normOptions.position + bytes2read), normOptions.offset);\r\n return bytes2read;\r\n }\r\n }\r\n async close() {\r\n // empty\r\n }\r\n}\r\nBufferTokenizer$1.BufferTokenizer = BufferTokenizer;\n\n(function (exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.fromBuffer = exports.fromStream = exports.EndOfStreamError = void 0;\r\nconst ReadStreamTokenizer_1 = ReadStreamTokenizer$1;\r\nconst BufferTokenizer_1 = BufferTokenizer$1;\r\nvar peek_readable_1 = lib;\r\nObject.defineProperty(exports, \"EndOfStreamError\", { enumerable: true, get: function () { return peek_readable_1.EndOfStreamError; } });\r\n/**\r\n * Construct ReadStreamTokenizer from given Stream.\r\n * Will set fileSize, if provided given Stream has set the .path property/\r\n * @param stream - Read from Node.js Stream.Readable\r\n * @param fileInfo - Pass the file information, like size and MIME-type of the corresponding stream.\r\n * @returns ReadStreamTokenizer\r\n */\r\nfunction fromStream(stream, fileInfo) {\r\n fileInfo = fileInfo ? fileInfo : {};\r\n return new ReadStreamTokenizer_1.ReadStreamTokenizer(stream, fileInfo);\r\n}\r\nexports.fromStream = fromStream;\r\n/**\r\n * Construct ReadStreamTokenizer from given Buffer.\r\n * @param uint8Array - Uint8Array to tokenize\r\n * @param fileInfo - Pass additional file information to the tokenizer\r\n * @returns BufferTokenizer\r\n */\r\nfunction fromBuffer(uint8Array, fileInfo) {\r\n return new BufferTokenizer_1.BufferTokenizer(uint8Array, fileInfo);\r\n}\r\nexports.fromBuffer = fromBuffer;\n}(core));\n\nvar FileTokenizer$1 = {};\n\nObject.defineProperty(FileTokenizer$1, \"__esModule\", { value: true });\r\nFileTokenizer$1.fromFile = FileTokenizer$1.FileTokenizer = void 0;\r\nconst AbstractTokenizer_1 = AbstractTokenizer$1;\r\nconst peek_readable_1 = lib;\r\nconst fs = FsPromise;\r\nclass FileTokenizer extends AbstractTokenizer_1.AbstractTokenizer {\r\n constructor(fd, fileInfo) {\r\n super(fileInfo);\r\n this.fd = fd;\r\n }\r\n /**\r\n * Read buffer from file\r\n * @param uint8Array - Uint8Array to write result to\r\n * @param options - Read behaviour options\r\n * @returns Promise number of bytes read\r\n */\r\n async readBuffer(uint8Array, options) {\r\n const normOptions = this.normalizeOptions(uint8Array, options);\r\n this.position = normOptions.position;\r\n const res = await fs.read(this.fd, uint8Array, normOptions.offset, normOptions.length, normOptions.position);\r\n this.position += res.bytesRead;\r\n if (res.bytesRead < normOptions.length && (!options || !options.mayBeLess)) {\r\n throw new peek_readable_1.EndOfStreamError();\r\n }\r\n return res.bytesRead;\r\n }\r\n /**\r\n * Peek buffer from file\r\n * @param uint8Array - Uint8Array (or Buffer) to write data to\r\n * @param options - Read behaviour options\r\n * @returns Promise number of bytes read\r\n */\r\n async peekBuffer(uint8Array, options) {\r\n const normOptions = this.normalizeOptions(uint8Array, options);\r\n const res = await fs.read(this.fd, uint8Array, normOptions.offset, normOptions.length, normOptions.position);\r\n if ((!normOptions.mayBeLess) && res.bytesRead < normOptions.length) {\r\n throw new peek_readable_1.EndOfStreamError();\r\n }\r\n return res.bytesRead;\r\n }\r\n async close() {\r\n return fs.close(this.fd);\r\n }\r\n}\r\nFileTokenizer$1.FileTokenizer = FileTokenizer;\r\nasync function fromFile(sourceFilePath) {\r\n const stat = await fs.stat(sourceFilePath);\r\n if (!stat.isFile) {\r\n throw new Error(`File not a file: ${sourceFilePath}`);\r\n }\r\n const fd = await fs.open(sourceFilePath, 'r');\r\n return new FileTokenizer(fd, { path: sourceFilePath, size: stat.size });\r\n}\r\nFileTokenizer$1.fromFile = fromFile;\n\n(function (exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.fromStream = exports.fromBuffer = exports.EndOfStreamError = exports.fromFile = void 0;\r\nconst fs = FsPromise;\r\nconst core$1 = core;\r\nvar FileTokenizer_1 = FileTokenizer$1;\r\nObject.defineProperty(exports, \"fromFile\", { enumerable: true, get: function () { return FileTokenizer_1.fromFile; } });\r\nvar core_1 = core;\r\nObject.defineProperty(exports, \"EndOfStreamError\", { enumerable: true, get: function () { return core_1.EndOfStreamError; } });\r\nObject.defineProperty(exports, \"fromBuffer\", { enumerable: true, get: function () { return core_1.fromBuffer; } });\r\n/**\r\n * Construct ReadStreamTokenizer from given Stream.\r\n * Will set fileSize, if provided given Stream has set the .path property.\r\n * @param stream - Node.js Stream.Readable\r\n * @param fileInfo - Pass additional file information to the tokenizer\r\n * @returns Tokenizer\r\n */\r\nasync function fromStream(stream, fileInfo) {\r\n fileInfo = fileInfo ? fileInfo : {};\r\n if (stream.path) {\r\n const stat = await fs.stat(stream.path);\r\n fileInfo.path = stream.path;\r\n fileInfo.size = stat.size;\r\n }\r\n return core$1.fromStream(stream, fileInfo);\r\n}\r\nexports.fromStream = fromStream;\n}(lib$1));\n\nfunction stringToBytes(string) {\n return Object.values(string).map(character => {\n return character.charCodeAt(0);\n });\n}\n/**\nChecks whether the TAR checksum is valid.\n\n@param {Buffer} buffer - The TAR header `[offset ... offset + 512]`.\n@param {number} offset - TAR header offset.\n@returns {boolean} `true` if the TAR checksum is valid, otherwise `false`.\n*/\nfunction tarHeaderChecksumMatches(buffer, offset = 0) {\n const readSum = Number.parseInt(buffer.toString('utf8', 148, 154).replace(/\\0.*$/, '').trim(), 8); // Read sum in header\n if (Number.isNaN(readSum)) {\n return false;\n }\n let sum = 8 * 0x20; // Initialize signed bit sum\n for (let i = offset; i < offset + 148; i++) {\n sum += buffer[i];\n }\n for (let i = offset + 156; i < offset + 512; i++) {\n sum += buffer[i];\n }\n return readSum === sum;\n}\n/**\nID3 UINT32 sync-safe tokenizer token.\n28 bits (representing up to 256MB) integer, the msb is 0 to avoid \"false syncsignals\".\n*/\nconst uint32SyncSafeToken = {\n get: (buffer, offset) => (buffer[offset + 3] & 0x7F) | ((buffer[offset + 2]) << 7) | ((buffer[offset + 1]) << 14) | ((buffer[offset]) << 21),\n len: 4,\n};\n\nconst minimumBytes = 4100; // A fair amount of file-types are detectable within this range.\n// 没有的情况下,均通过\nconst checkFileType = (file, callback) => {\n const reader = new FileReader();\n reader.readAsArrayBuffer(file);\n reader.onload = async (event) => {\n var _a, _b;\n try {\n const buffers = new Uint8Array((_a = event.target) === null || _a === void 0 ? void 0 : _a.result);\n const tokenizer = await lib$1.fromBuffer(buffers);\n const fileType = await fileTypeFromTokenizer(tokenizer);\n const suffix = file.name.indexOf('.') > -1 ? (file.name.split('.').pop() || '').toLocaleLowerCase() : '';\n let check = fileType ? suffix === fileType.ext : true;\n // 兼容处理\n if (suffix.indexOf('xls') > -1 && (((_b = fileType === null || fileType === void 0 ? void 0 : fileType.ext) === null || _b === void 0 ? void 0 : _b.indexOf('xls')) > -1 || (fileType === null || fileType === void 0 ? void 0 : fileType.ext) === 'cfb')) {\n check = true;\n }\n callback(check, fileType);\n }\n catch (error) {\n if (!(error instanceof lib$1.EndOfStreamError)) {\n throw error;\n }\n callback(true, undefined);\n }\n };\n};\nasync function fileTypeFromTokenizer(tokenizer) {\n try {\n return new FileTypeParser().parse(tokenizer);\n }\n catch (error) {\n if (!(error instanceof lib$1.EndOfStreamError)) {\n throw error;\n }\n }\n}\nfunction _check(buffer, headers, options) {\n options = Object.assign({ offset: 0 }, options);\n for (const [index, header] of headers.entries()) {\n // If a bitmask is set\n if (options.mask) {\n // If header doesn't equal `buf` with bits masked off\n if (header !== (options.mask[index] & buffer[index + options.offset])) {\n return false;\n }\n }\n else if (header !== buffer[index + options.offset]) {\n return false;\n }\n }\n return true;\n}\nclass FileTypeParser {\n constructor() {\n this.buffer = Buffer.alloc(minimumBytes);\n }\n check(header, options) {\n return _check(this.buffer, header, options);\n }\n checkString(header, options) {\n return this.check(stringToBytes(header), options);\n }\n async readTiffTag(bigEndian) {\n if (this.tokenizer) {\n const tagId = await this.tokenizer.readToken(bigEndian ? lib$2.UINT16_BE : lib$2.UINT16_LE);\n this.tokenizer.ignore(10);\n switch (tagId) {\n case 50341:\n return {\n ext: 'arw',\n mime: 'image/x-sony-arw',\n };\n case 50706:\n return {\n ext: 'dng',\n mime: 'image/x-adobe-dng',\n };\n }\n }\n }\n async readTiffIFD(bigEndian) {\n if (this.tokenizer) {\n const numberOfTags = await this.tokenizer.readToken(bigEndian ? lib$2.UINT16_BE : lib$2.UINT16_LE);\n for (let n = 0; n < numberOfTags; ++n) {\n const fileType = await this.readTiffTag(bigEndian);\n if (fileType) {\n return fileType;\n }\n }\n }\n }\n async readTiffHeader(bigEndian) {\n const version = (bigEndian ? lib$2.UINT16_BE : lib$2.UINT16_LE).get(this.buffer, 2);\n const ifdOffset = (bigEndian ? lib$2.UINT32_BE : lib$2.UINT32_LE).get(this.buffer, 4);\n if (version === 42) {\n // TIFF file header\n if (ifdOffset >= 6) {\n if (this.checkString('CR', { offset: 8 })) {\n return {\n ext: 'cr2',\n mime: 'image/x-canon-cr2',\n };\n }\n if (ifdOffset >= 8 && (this.check([0x1C, 0x00, 0xFE, 0x00], { offset: 8 }) || this.check([0x1F, 0x00, 0x0B, 0x00], { offset: 8 }))) {\n return {\n ext: 'nef',\n mime: 'image/x-nikon-nef',\n };\n }\n }\n if (this.tokenizer) {\n await this.tokenizer.ignore(ifdOffset);\n const fileType = await this.readTiffIFD(false);\n return fileType ? fileType : {\n ext: 'tif',\n mime: 'image/tiff',\n };\n }\n }\n if (version === 43) { // Big TIFF file header\n return {\n ext: 'tif',\n mime: 'image/tiff',\n };\n }\n }\n async parse(tokenizer) {\n this.buffer = Buffer.alloc(minimumBytes);\n // Keep reading until EOF if the file size is unknown.\n if (tokenizer.fileInfo.size === undefined) {\n tokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER;\n }\n this.tokenizer = tokenizer;\n await tokenizer.peekBuffer(this.buffer, { length: 12, mayBeLess: true });\n // -- 2-byte signatures --\n if (this.check([0x42, 0x4D])) {\n return {\n ext: 'bmp',\n mime: 'image/bmp',\n };\n }\n if (this.check([0x0B, 0x77])) {\n return {\n ext: 'ac3',\n mime: 'audio/vnd.dolby.dd-raw',\n };\n }\n if (this.check([0x78, 0x01])) {\n return {\n ext: 'dmg',\n mime: 'application/x-apple-diskimage',\n };\n }\n if (this.check([0x4D, 0x5A])) {\n return {\n ext: 'exe',\n mime: 'application/x-msdownload',\n };\n }\n if (this.check([0x25, 0x21])) {\n await tokenizer.peekBuffer(this.buffer, { length: 24, mayBeLess: true });\n if (this.checkString('PS-Adobe-', { offset: 2 })\n && this.checkString(' EPSF-', { offset: 14 })) {\n return {\n ext: 'eps',\n mime: 'application/eps',\n };\n }\n return {\n ext: 'ps',\n mime: 'application/postscript',\n };\n }\n if (this.check([0x1F, 0xA0]) || this.check([0x1F, 0x9D])) {\n return {\n ext: 'Z',\n mime: 'application/x-compress',\n };\n }\n // -- 3-byte signatures --\n if (this.check([0x47, 0x49, 0x46])) {\n return {\n ext: 'gif',\n mime: 'image/gif',\n };\n }\n if (this.check([0xFF, 0xD8, 0xFF])) {\n return {\n ext: 'jpg',\n mime: 'image/jpeg',\n };\n }\n if (this.check([0x49, 0x49, 0xBC])) {\n return {\n ext: 'jxr',\n mime: 'image/vnd.ms-photo',\n };\n }\n if (this.check([0x1F, 0x8B, 0x8])) {\n return {\n ext: 'gz',\n mime: 'application/gzip',\n };\n }\n if (this.check([0x42, 0x5A, 0x68])) {\n return {\n ext: 'bz2',\n mime: 'application/x-bzip2',\n };\n }\n if (this.checkString('ID3')) {\n await tokenizer.ignore(6); // Skip ID3 header until the header size\n const id3HeaderLength = await tokenizer.readToken(uint32SyncSafeToken);\n if (tokenizer.position + id3HeaderLength > tokenizer.fileInfo.size) {\n // Guess file type based on ID3 header for backward compatibility\n return {\n ext: 'mp3',\n mime: 'audio/mpeg',\n };\n }\n await tokenizer.ignore(id3HeaderLength);\n return fileTypeFromTokenizer(tokenizer); // Skip ID3 header, recursion\n }\n // Musepack, SV7\n if (this.checkString('MP+')) {\n return {\n ext: 'mpc',\n mime: 'audio/x-musepack',\n };\n }\n if ((this.buffer[0] === 0x43 || this.buffer[0] === 0x46) && this.check([0x57, 0x53], { offset: 1 })) {\n return {\n ext: 'swf',\n mime: 'application/x-shockwave-flash',\n };\n }\n // -- 4-byte signatures --\n if (this.checkString('FLIF')) {\n return {\n ext: 'flif',\n mime: 'image/flif',\n };\n }\n if (this.checkString('8BPS')) {\n return {\n ext: 'psd',\n mime: 'image/vnd.adobe.photoshop',\n };\n }\n if (this.checkString('WEBP', { offset: 8 })) {\n return {\n ext: 'webp',\n mime: 'image/webp',\n };\n }\n // Musepack, SV8\n if (this.checkString('MPCK')) {\n return {\n ext: 'mpc',\n mime: 'audio/x-musepack',\n };\n }\n if (this.checkString('FORM')) {\n return {\n ext: 'aif',\n mime: 'audio/aiff',\n };\n }\n if (this.checkString('icns', { offset: 0 })) {\n return {\n ext: 'icns',\n mime: 'image/icns',\n };\n }\n // Zip-based file formats\n // Need to be before the `zip` check\n if (this.check([0x50, 0x4B, 0x3, 0x4])) { // Local file header signature\n try {\n while (tokenizer.position + 30 < tokenizer.fileInfo.size) {\n await tokenizer.readBuffer(this.buffer, { length: 30 });\n // https://en.wikipedia.org/wiki/Zip_(file_format)#File_headers\n const zipHeader = {\n compressedSize: this.buffer.readUInt32LE(18),\n uncompressedSize: this.buffer.readUInt32LE(22),\n filenameLength: this.buffer.readUInt16LE(26),\n extraFieldLength: this.buffer.readUInt16LE(28),\n };\n zipHeader.filename = await tokenizer.readToken(new lib$2.StringType(zipHeader.filenameLength, 'utf-8'));\n await tokenizer.ignore(zipHeader.extraFieldLength);\n // Assumes signed `.xpi` from addons.mozilla.org\n if (zipHeader.filename === 'META-INF/mozilla.rsa') {\n return {\n ext: 'xpi',\n mime: 'application/x-xpinstall',\n };\n }\n if (zipHeader.filename.endsWith('.rels') || zipHeader.filename.endsWith('.xml')) {\n const type = zipHeader.filename.split('/')[0];\n switch (type) {\n case '_rels':\n break;\n case 'word':\n return {\n ext: 'docx',\n mime: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n };\n case 'ppt':\n return {\n ext: 'pptx',\n mime: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n };\n case 'xl':\n return {\n ext: 'xlsx',\n mime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n };\n default:\n break;\n }\n }\n if (zipHeader.filename.startsWith('xl/')) {\n return {\n ext: 'xlsx',\n mime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n };\n }\n if (zipHeader.filename.startsWith('3D/') && zipHeader.filename.endsWith('.model')) {\n return {\n ext: '3mf',\n mime: 'model/3mf',\n };\n }\n // The docx, xlsx and pptx file types extend the Office Open XML file format:\n // https://en.wikipedia.org/wiki/Office_Open_XML_file_formats\n // We look for:\n // - one entry named '[Content_Types].xml' or '_rels/.rels',\n // - one entry indicating specific type of file.\n // MS Office, OpenOffice and LibreOffice may put the parts in different order, so the check should not rely on it.\n if (zipHeader.filename === 'mimetype' && zipHeader.compressedSize === zipHeader.uncompressedSize) {\n const mimeType = await tokenizer.readToken(new lib$2.StringType(zipHeader.compressedSize, 'utf-8'));\n switch (mimeType) {\n case 'application/epub+zip':\n return {\n ext: 'epub',\n mime: 'application/epub+zip',\n };\n case 'application/vnd.oasis.opendocument.text':\n return {\n ext: 'odt',\n mime: 'application/vnd.oasis.opendocument.text',\n };\n case 'application/vnd.oasis.opendocument.spreadsheet':\n return {\n ext: 'ods',\n mime: 'application/vnd.oasis.opendocument.spreadsheet',\n };\n case 'application/vnd.oasis.opendocument.presentation':\n return {\n ext: 'odp',\n mime: 'application/vnd.oasis.opendocument.presentation',\n };\n default:\n }\n }\n // Try to find next header manually when current one is corrupted\n if (zipHeader.compressedSize === 0) {\n let nextHeaderIndex = -1;\n while (nextHeaderIndex < 0 && (tokenizer.position < tokenizer.fileInfo.size)) {\n await tokenizer.peekBuffer(this.buffer, { mayBeLess: true });\n nextHeaderIndex = this.buffer.indexOf('504B0304', 0, 'hex');\n // Move position to the next header if found, skip the whole buffer otherwise\n await tokenizer.ignore(nextHeaderIndex >= 0 ? nextHeaderIndex : this.buffer.length);\n }\n }\n else {\n await tokenizer.ignore(zipHeader.compressedSize);\n }\n }\n }\n catch (error) {\n if (!(error instanceof lib$1.EndOfStreamError)) {\n throw error;\n }\n }\n return {\n ext: 'zip',\n mime: 'application/zip',\n };\n }\n if (this.checkString('OggS')) {\n // This is an OGG container\n await tokenizer.ignore(28);\n const type = Buffer.alloc(8);\n await tokenizer.readBuffer(type);\n // Needs to be before `ogg` check\n if (_check(type, [0x4F, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64])) {\n return {\n ext: 'opus',\n mime: 'audio/opus',\n };\n }\n // If ' theora' in header.\n if (_check(type, [0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61])) {\n return {\n ext: 'ogv',\n mime: 'video/ogg',\n };\n }\n // If '\\x01video' in header.\n if (_check(type, [0x01, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x00])) {\n return {\n ext: 'ogm',\n mime: 'video/ogg',\n };\n }\n // If ' FLAC' in header https://xiph.org/flac/faq.html\n if (_check(type, [0x7F, 0x46, 0x4C, 0x41, 0x43])) {\n return {\n ext: 'oga',\n mime: 'audio/ogg',\n };\n }\n // 'Speex ' in header https://en.wikipedia.org/wiki/Speex\n if (_check(type, [0x53, 0x70, 0x65, 0x65, 0x78, 0x20, 0x20])) {\n return {\n ext: 'spx',\n mime: 'audio/ogg',\n };\n }\n // If '\\x01vorbis' in header\n if (_check(type, [0x01, 0x76, 0x6F, 0x72, 0x62, 0x69, 0x73])) {\n return {\n ext: 'ogg',\n mime: 'audio/ogg',\n };\n }\n // Default OGG container https://www.iana.org/assignments/media-types/application/ogg\n return {\n ext: 'ogx',\n mime: 'application/ogg',\n };\n }\n if (this.check([0x50, 0x4B])\n && (this.buffer[2] === 0x3 || this.buffer[2] === 0x5 || this.buffer[2] === 0x7)\n && (this.buffer[3] === 0x4 || this.buffer[3] === 0x6 || this.buffer[3] === 0x8)) {\n return {\n ext: 'zip',\n mime: 'application/zip',\n };\n }\n //\n // File Type Box (https://en.wikipedia.org/wiki/ISO_base_media_file_format)\n // It's not required to be first, but it's recommended to be. Almost all ISO base media files start with `ftyp` box.\n // `ftyp` box must contain a brand major identifier, which must consist of ISO 8859-1 printable characters.\n // Here we check for 8859-1 printable characters (for simplicity, it's a mask which also catches one non-printable character).\n if (this.checkString('ftyp', { offset: 4 })\n && (this.buffer[8] & 0x60) !== 0x00 // Brand major, first character ASCII?\n ) {\n // They all can have MIME `video/mp4` except `application/mp4` special-case which is hard to detect.\n // For some cases, we're specific, everything else falls to `video/mp4` with `mp4` extension.\n const brandMajor = this.buffer.toString('binary', 8, 12).replace('\\0', ' ').trim();\n switch (brandMajor) {\n case 'avif':\n case 'avis':\n return { ext: 'avif', mime: 'image/avif' };\n case 'mif1':\n return { ext: 'heic', mime: 'image/heif' };\n case 'msf1':\n return { ext: 'heic', mime: 'image/heif-sequence' };\n case 'heic':\n case 'heix':\n return { ext: 'heic', mime: 'image/heic' };\n case 'hevc':\n case 'hevx':\n return { ext: 'heic', mime: 'image/heic-sequence' };\n case 'qt':\n return { ext: 'mov', mime: 'video/quicktime' };\n case 'M4V':\n case 'M4VH':\n case 'M4VP':\n return { ext: 'm4v', mime: 'video/x-m4v' };\n case 'M4P':\n return { ext: 'm4p', mime: 'video/mp4' };\n case 'M4B':\n return { ext: 'm4b', mime: 'audio/mp4' };\n case 'M4A':\n return { ext: 'm4a', mime: 'audio/x-m4a' };\n case 'F4V':\n return { ext: 'f4v', mime: 'video/mp4' };\n case 'F4P':\n return { ext: 'f4p', mime: 'video/mp4' };\n case 'F4A':\n return { ext: 'f4a', mime: 'audio/mp4' };\n case 'F4B':\n return { ext: 'f4b', mime: 'audio/mp4' };\n case 'crx':\n return { ext: 'cr3', mime: 'image/x-canon-cr3' };\n default:\n if (brandMajor.startsWith('3g')) {\n if (brandMajor.startsWith('3g2')) {\n return { ext: '3g2', mime: 'video/3gpp2' };\n }\n return { ext: '3gp', mime: 'video/3gpp' };\n }\n return { ext: 'mp4', mime: 'video/mp4' };\n }\n }\n if (this.checkString('MThd')) {\n return {\n ext: 'mid',\n mime: 'audio/midi',\n };\n }\n if (this.checkString('wOFF')\n && (this.check([0x00, 0x01, 0x00, 0x00], { offset: 4 })\n || this.checkString('OTTO', { offset: 4 }))) {\n return {\n ext: 'woff',\n mime: 'font/woff',\n };\n }\n if (this.checkString('wOF2')\n && (this.check([0x00, 0x01, 0x00, 0x00], { offset: 4 })\n || this.checkString('OTTO', { offset: 4 }))) {\n return {\n ext: 'woff2',\n mime: 'font/woff2',\n };\n }\n if (this.check([0xD4, 0xC3, 0xB2, 0xA1]) || this.check([0xA1, 0xB2, 0xC3, 0xD4])) {\n return {\n ext: 'pcap',\n mime: 'application/vnd.tcpdump.pcap',\n };\n }\n // Sony DSD Stream File (DSF)\n if (this.checkString('DSD ')) {\n return {\n ext: 'dsf',\n mime: 'audio/x-dsf', // Non-standard\n };\n }\n if (this.checkString('LZIP')) {\n return {\n ext: 'lz',\n mime: 'application/x-lzip',\n };\n }\n if (this.checkString('fLaC')) {\n return {\n ext: 'flac',\n mime: 'audio/flac', // todo: audio/x-flac\n };\n }\n if (this.check([0x42, 0x50, 0x47, 0xFB])) {\n return {\n ext: 'bpg',\n mime: 'image/bpg',\n };\n }\n if (this.checkString('wvpk')) {\n return {\n ext: 'wv',\n mime: 'audio/wavpack',\n };\n }\n if (this.checkString('%PDF')) {\n await tokenizer.ignore(1350);\n const maxBufferSize = 10 * 1024 * 1024;\n const buffer = Buffer.alloc(Math.min(maxBufferSize, tokenizer.fileInfo.size));\n await tokenizer.readBuffer(buffer, { mayBeLess: true });\n // Check if this is an Adobe Illustrator file\n if (buffer.includes(Buffer.from('AIPrivateData'))) {\n return {\n ext: 'ai',\n mime: 'application/postscript',\n };\n }\n // Assume this is just a normal PDF\n return {\n ext: 'pdf',\n mime: 'application/pdf',\n };\n }\n if (this.check([0x00, 0x61, 0x73, 0x6D])) {\n return {\n ext: 'wasm',\n mime: 'application/wasm',\n };\n }\n // TIFF, little-endian type\n if (this.check([0x49, 0x49])) {\n const fileType = await this.readTiffHeader(false);\n if (fileType) {\n return fileType;\n }\n }\n // TIFF, big-endian type\n if (this.check([0x4D, 0x4D])) {\n const fileType = await this.readTiffHeader(true);\n if (fileType) {\n return fileType;\n }\n }\n if (this.checkString('MAC ')) {\n return {\n ext: 'ape',\n mime: 'audio/ape',\n };\n }\n // https://github.com/threatstack/libmagic/blob/master/magic/Magdir/matroska\n if (this.check([0x1A, 0x45, 0xDF, 0xA3])) { // Root element: EBML\n async function readField() {\n const msb = await tokenizer.peekNumber(lib$2.UINT8);\n let mask = 0x80;\n let ic = 0; // 0 = A, 1 = B, 2 = C, 3\n // = D\n while ((msb & mask) === 0) {\n ++ic;\n mask >>= 1;\n }\n const id = Buffer.alloc(ic + 1);\n await tokenizer.readBuffer(id);\n return id;\n }\n async function readElement() {\n const id = await readField();\n const lengthField = await readField();\n lengthField[0] ^= 0x80 >> (lengthField.length - 1);\n const nrLength = Math.min(6, lengthField.length); // JavaScript can max read 6 bytes integer\n return {\n id: id.readUIntBE(0, id.length),\n len: lengthField.readUIntBE(lengthField.length - nrLength, nrLength),\n };\n }\n async function readChildren(_level, children) {\n while (children > 0) {\n const element = await readElement();\n if (element.id === 17026) {\n const rawValue = await tokenizer.readToken(new lib$2.StringType(element.len, 'utf-8'));\n return rawValue.replace(/\\00.*$/g, ''); // Return DocType\n }\n await tokenizer.ignore(element.len); // ignore payload\n --children;\n }\n }\n const re = await readElement();\n const docType = await readChildren(1, re.len);\n switch (docType) {\n case 'webm':\n return {\n ext: 'webm',\n mime: 'video/webm',\n };\n case 'matroska':\n return {\n ext: 'mkv',\n mime: 'video/x-matroska',\n };\n default:\n return;\n }\n }\n // RIFF file format which might be AVI, WAV, QCP, etc\n if (this.check([0x52, 0x49, 0x46, 0x46])) {\n if (this.check([0x41, 0x56, 0x49], { offset: 8 })) {\n return {\n ext: 'avi',\n mime: 'video/vnd.avi',\n };\n }\n if (this.check([0x57, 0x41, 0x56, 0x45], { offset: 8 })) {\n return {\n ext: 'wav',\n mime: 'audio/vnd.wave',\n };\n }\n // QLCM, QCP file\n if (this.check([0x51, 0x4C, 0x43, 0x4D], { offset: 8 })) {\n return {\n ext: 'qcp',\n mime: 'audio/qcelp',\n };\n }\n }\n if (this.checkString('SQLi')) {\n return {\n ext: 'sqlite',\n mime: 'application/x-sqlite3',\n };\n }\n if (this.check([0x4E, 0x45, 0x53, 0x1A])) {\n return {\n ext: 'nes',\n mime: 'application/x-nintendo-nes-rom',\n };\n }\n if (this.checkString('Cr24')) {\n return {\n ext: 'crx',\n mime: 'application/x-google-chrome-extension',\n };\n }\n if (this.checkString('MSCF')\n || this.checkString('ISc(')) {\n return {\n ext: 'cab',\n mime: 'application/vnd.ms-cab-compressed',\n };\n }\n if (this.check([0xED, 0xAB, 0xEE, 0xDB])) {\n return {\n ext: 'rpm',\n mime: 'application/x-rpm',\n };\n }\n if (this.check([0xC5, 0xD0, 0xD3, 0xC6])) {\n return {\n ext: 'eps',\n mime: 'application/eps',\n };\n }\n if (this.check([0x28, 0xB5, 0x2F, 0xFD])) {\n return {\n ext: 'zst',\n mime: 'application/zstd',\n };\n }\n if (this.check([0x7F, 0x45, 0x4C, 0x46])) {\n return {\n ext: 'elf',\n mime: 'application/x-elf',\n };\n }\n // -- 5-byte signatures --\n if (this.check([0x4F, 0x54, 0x54, 0x4F, 0x00])) {\n return {\n ext: 'otf',\n mime: 'font/otf',\n };\n }\n if (this.checkString('#!AMR')) {\n return {\n ext: 'amr',\n mime: 'audio/amr',\n };\n }\n if (this.checkString('{\\\\rtf')) {\n return {\n ext: 'rtf',\n mime: 'application/rtf',\n };\n }\n if (this.check([0x46, 0x4C, 0x56, 0x01])) {\n return {\n ext: 'flv',\n mime: 'video/x-flv',\n };\n }\n if (this.checkString('IMPM')) {\n return {\n ext: 'it',\n mime: 'audio/x-it',\n };\n }\n if (this.checkString('-lh0-', { offset: 2 })\n || this.checkString('-lh1-', { offset: 2 })\n || this.checkString('-lh2-', { offset: 2 })\n || this.checkString('-lh3-', { offset: 2 })\n || this.checkString('-lh4-', { offset: 2 })\n || this.checkString('-lh5-', { offset: 2 })\n || this.checkString('-lh6-', { offset: 2 })\n || this.checkString('-lh7-', { offset: 2 })\n || this.checkString('-lzs-', { offset: 2 })\n || this.checkString('-lz4-', { offset: 2 })\n || this.checkString('-lz5-', { offset: 2 })\n || this.checkString('-lhd-', { offset: 2 })) {\n return {\n ext: 'lzh',\n mime: 'application/x-lzh-compressed',\n };\n }\n // MPEG program stream (PS or MPEG-PS)\n if (this.check([0x00, 0x00, 0x01, 0xBA])) {\n // MPEG-PS, MPEG-1 Part 1\n if (this.check([0x21], { offset: 4, mask: [0xF1] })) {\n return {\n ext: 'mpg',\n mime: 'video/MP1S',\n };\n }\n // MPEG-PS, MPEG-2 Part 1\n if (this.check([0x44], { offset: 4, mask: [0xC4] })) {\n return {\n ext: 'mpg',\n mime: 'video/MP2P',\n };\n }\n }\n if (this.checkString('ITSF')) {\n return {\n ext: 'chm',\n mime: 'application/vnd.ms-htmlhelp',\n };\n }\n // -- 6-byte signatures --\n if (this.check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) {\n return {\n ext: 'xz',\n mime: 'application/x-xz',\n };\n }\n if (this.checkString('<?xml ')) {\n return {\n ext: 'xml',\n mime: 'application/xml',\n };\n }\n if (this.check([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) {\n return {\n ext: '7z',\n mime: 'application/x-7z-compressed',\n };\n }\n if (this.check([0x52, 0x61, 0x72, 0x21, 0x1A, 0x7])\n && (this.buffer[6] === 0x0 || this.buffer[6] === 0x1)) {\n return {\n ext: 'rar',\n mime: 'application/x-rar-compressed',\n };\n }\n if (this.checkString('solid ')) {\n return {\n ext: 'stl',\n mime: 'model/stl',\n };\n }\n // -- 7-byte signatures --\n if (this.checkString('BLENDER')) {\n return {\n ext: 'blend',\n mime: 'application/x-blender',\n };\n }\n if (this.checkString('!<arch>')) {\n await tokenizer.ignore(8);\n const string = await tokenizer.readToken(new lib$2.StringType(13, 'ascii'));\n if (string === 'debian-binary') {\n return {\n ext: 'deb',\n mime: 'application/x-deb',\n };\n }\n return {\n ext: 'ar',\n mime: 'application/x-unix-archive',\n };\n }\n // -- 8-byte signatures --\n if (this.check([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) {\n // APNG format (https://wiki.mozilla.org/APNG_Specification)\n // 1. Find the first IDAT (image data) chunk (49 44 41 54)\n // 2. Check if there is an \"acTL\" chunk before the IDAT one (61 63 54 4C)\n // Offset calculated as follows:\n // - 8 bytes: PNG signature\n // - 4 (length) + 4 (chunk type) + 13 (chunk data) + 4 (CRC): IHDR chunk\n await tokenizer.ignore(8); // ignore PNG signature\n async function readChunkHeader() {\n return {\n length: await tokenizer.readToken(lib$2.INT32_BE),\n type: await tokenizer.readToken(new lib$2.StringType(4, 'binary')),\n };\n }\n do {\n const chunk = await readChunkHeader();\n if (chunk.length < 0) {\n return; // Invalid chunk length\n }\n switch (chunk.type) {\n case 'IDAT':\n return {\n ext: 'png',\n mime: 'image/png',\n };\n case 'acTL':\n return {\n ext: 'apng',\n mime: 'image/apng',\n };\n default:\n await tokenizer.ignore(chunk.length + 4); // Ignore chunk-data + CRC\n }\n } while (tokenizer.position + 8 < tokenizer.fileInfo.size);\n return {\n ext: 'png',\n mime: 'image/png',\n };\n }\n if (this.check([0x41, 0x52, 0x52, 0x4F, 0x57, 0x31, 0x00, 0x00])) {\n return {\n ext: 'arrow',\n mime: 'application/x-apache-arrow',\n };\n }\n if (this.check([0x67, 0x6C, 0x54, 0x46, 0x02, 0x00, 0x00, 0x00])) {\n return {\n ext: 'glb',\n mime: 'model/gltf-binary',\n };\n }\n // `mov` format variants\n if (this.check([0x66, 0x72, 0x65, 0x65], { offset: 4 }) // `free`\n || this.check([0x6D, 0x64, 0x61, 0x74], { offset: 4 }) // `mdat` MJPEG\n || this.check([0x6D, 0x6F, 0x6F, 0x76], { offset: 4 }) // `moov`\n || this.check([0x77, 0x69, 0x64, 0x65], { offset: 4 }) // `wide`\n ) {\n return {\n ext: 'mov',\n mime: 'video/quicktime',\n };\n }\n if (this.check([0xEF, 0xBB, 0xBF]) && this.checkString('<?xml', { offset: 3 })) { // UTF-8-BOM\n return {\n ext: 'xml',\n mime: 'application/xml',\n };\n }\n // -- 9-byte signatures --\n if (this.check([0x49, 0x49, 0x52, 0x4F, 0x08, 0x00, 0x00, 0x00, 0x18])) {\n return {\n ext: 'orf',\n mime: 'image/x-olympus-orf',\n };\n }\n if (this.checkString('gimp xcf ')) {\n return {\n ext: 'xcf',\n mime: 'image/x-xcf',\n };\n }\n // -- 12-byte signatures --\n if (this.check([0x49, 0x49, 0x55, 0x00, 0x18, 0x00, 0x00, 0x00, 0x88, 0xE7, 0x74, 0xD8])) {\n return {\n ext: 'rw2',\n mime: 'image/x-panasonic-rw2',\n };\n }\n // ASF_Header_Object first 80 bytes\n if (this.check([0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9])) {\n async function readHeader() {\n const guid = Buffer.alloc(16);\n await tokenizer.readBuffer(guid);\n return {\n id: guid,\n size: Number(await tokenizer.readToken(lib$2.UINT64_LE)),\n };\n }\n await tokenizer.ignore(30);\n // Search for header should be in first 1KB of file.\n while (tokenizer.position + 24 < tokenizer.fileInfo.size) {\n const header = await readHeader();\n let payload = header.size - 24;\n if (_check(header.id, [0x91, 0x07, 0xDC, 0xB7, 0xB7, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65])) {\n // Sync on Stream-Properties-Object (B7DC0791-A9B7-11CF-8EE6-00C00C205365)\n const typeId = Buffer.alloc(16);\n payload -= await tokenizer.readBuffer(typeId);\n if (_check(typeId, [0x40, 0x9E, 0x69, 0xF8, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n // Found audio:\n return {\n ext: 'asf',\n mime: 'audio/x-ms-asf',\n };\n }\n if (_check(typeId, [0xC0, 0xEF, 0x19, 0xBC, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n // Found video:\n return {\n ext: 'asf',\n mime: 'video/x-ms-asf',\n };\n }\n break;\n }\n await tokenizer.ignore(payload);\n }\n // Default to ASF generic extension\n return {\n ext: 'asf',\n mime: 'application/vnd.ms-asf',\n };\n }\n if (this.check([0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A])) {\n return {\n ext: 'ktx',\n mime: 'image/ktx',\n };\n }\n if ((this.check([0x7E, 0x10, 0x04]) || this.check([0x7E, 0x18, 0x04])) && this.check([0x30, 0x4D, 0x49, 0x45], { offset: 4 })) {\n return {\n ext: 'mie',\n mime: 'application/x-mie',\n };\n }\n if (this.check([0x27, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], { offset: 2 })) {\n return {\n ext: 'shp',\n mime: 'application/x-esri-shape',\n };\n }\n if (this.check([0x00, 0x00, 0x00, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) {\n // JPEG-2000 family\n await tokenizer.ignore(20);\n const type = await tokenizer.readToken(new lib$2.StringType(4, 'ascii'));\n switch (type) {\n case 'jp2 ':\n return {\n ext: 'jp2',\n mime: 'image/jp2',\n };\n case 'jpx ':\n return {\n ext: 'jpx',\n mime: 'image/jpx',\n };\n case 'jpm ':\n return {\n ext: 'jpm',\n mime: 'image/jpm',\n };\n case 'mjp2':\n return {\n ext: 'mj2',\n mime: 'image/mj2',\n };\n default:\n return;\n }\n }\n if (this.check([0xFF, 0x0A])\n || this.check([0x00, 0x00, 0x00, 0x0C, 0x4A, 0x58, 0x4C, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) {\n return {\n ext: 'jxl',\n mime: 'image/jxl',\n };\n }\n if (this.check([0xFE, 0xFF, 0, 60, 0, 63, 0, 120, 0, 109, 0, 108]) // UTF-16-BOM-LE\n || this.check([0xFF, 0xFE, 60, 0, 63, 0, 120, 0, 109, 0, 108, 0]) // UTF-16-BOM-LE\n ) {\n return {\n ext: 'xml',\n mime: 'application/xml',\n };\n }\n // -- Unsafe signatures --\n if (this.check([0x0, 0x0, 0x1, 0xBA])\n || this.check([0x0, 0x0, 0x1, 0xB3])) {\n return {\n ext: 'mpg',\n mime: 'video/mpeg',\n };\n }\n if (this.check([0x00, 0x01, 0x00, 0x00, 0x00])) {\n return {\n ext: 'ttf',\n mime: 'font/ttf',\n };\n }\n if (this.check([0x00, 0x00, 0x01, 0x00])) {\n return {\n ext: 'ico',\n mime: 'image/x-icon',\n };\n }\n if (this.check([0x00, 0x00, 0x02, 0x00])) {\n return {\n ext: 'cur',\n mime: 'image/x-icon',\n };\n }\n if (this.check([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])) {\n // Detected Microsoft Compound File Binary File (MS-CFB) Format.\n return {\n ext: 'cfb',\n mime: 'application/x-cfb',\n };\n }\n // Increase sample size from 12 to 256.\n await tokenizer.peekBuffer(this.buffer, { length: Math.min(256, tokenizer.fileInfo.size), mayBeLess: true });\n // -- 15-byte signatures --\n if (this.checkString('BEGIN:')) {\n if (this.checkString('VCARD', { offset: 6 })) {\n return {\n ext: 'vcf',\n mime: 'text/vcard',\n };\n }\n if (this.checkString('VCALENDAR', { offset: 6 })) {\n return {\n ext: 'ics',\n mime: 'text/calendar',\n };\n }\n }\n // `raf` is here just to keep all the raw image detectors together.\n if (this.checkString('FUJIFILMCCD-RAW')) {\n return {\n ext: 'raf',\n mime: 'image/x-fujifilm-raf',\n };\n }\n if (this.checkString('Extended Module:')) {\n return {\n ext: 'xm',\n mime: 'audio/x-xm',\n };\n }\n if (this.checkString('Creative Voice File')) {\n return {\n ext: 'voc',\n mime: 'audio/x-voc',\n };\n }\n if (this.check([0x04, 0x00, 0x00, 0x00]) && this.buffer.length >= 16) { // Rough & quick check Pickle/ASAR\n const jsonSize = this.buffer.readUInt32LE(12);\n if (jsonSize > 12 && this.buffer.length >= jsonSize + 16) {\n try {\n const header = this.buffer.slice(16, jsonSize + 16).toString();\n const json = JSON.parse(header);\n // Check if Pickle is ASAR\n if (json.files) { // Final check, assuring Pickle/ASAR format\n return {\n ext: 'asar',\n mime: 'application/x-asar',\n };\n }\n }\n catch (_a) { }\n }\n }\n if (this.check([0x06, 0x0E, 0x2B, 0x34, 0x02, 0x05, 0x01, 0x01, 0x0D, 0x01, 0x02, 0x01, 0x01, 0x02])) {\n return {\n ext: 'mxf',\n mime: 'application/mxf',\n };\n }\n if (this.checkString('SCRM', { offset: 44 })) {\n return {\n ext: 's3m',\n mime: 'audio/x-s3m',\n };\n }\n // Raw MPEG-2 transport stream (188-byte packets)\n if (this.check([0x47]) && this.check([0x47], { offset: 188 })) {\n return {\n ext: 'mts',\n mime: 'video/mp2t',\n };\n }\n // Blu-ray Disc Audio-Video (BDAV) MPEG-2 transport stream has 4-byte TP_extra_header before each 188-byte packet\n if (this.check([0x47], { offset: 4 }) && this.check([0x47], { offset: 196 })) {\n return {\n ext: 'mts',\n mime: 'video/mp2t',\n };\n }\n if (this.check([0x42, 0x4F, 0x4F, 0x4B, 0x4D, 0x4F, 0x42, 0x49], { offset: 60 })) {\n return {\n ext: 'mobi',\n mime: 'application/x-mobipocket-ebook',\n };\n }\n if (this.check([0x44, 0x49, 0x43, 0x4D], { offset: 128 })) {\n return {\n ext: 'dcm',\n mime: 'application/dicom',\n };\n }\n if (this.check([0x4C, 0x00, 0x00, 0x00, 0x01, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46])) {\n return {\n ext: 'lnk',\n mime: 'application/x.ms.shortcut', // Invented by us\n };\n }\n if (this.check([0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00])) {\n return {\n ext: 'alias',\n mime: 'application/x.apple.alias', // Invented by us\n };\n }\n if (this.check([0x4C, 0x50], { offset: 34 })\n && (this.check([0x00, 0x00, 0x01], { offset: 8 })\n || this.check([0x01, 0x00, 0x02], { offset: 8 })\n || this.check([0x02, 0x00, 0x02], { offset: 8 }))) {\n return {\n ext: 'eot',\n mime: 'application/vnd.ms-fontobject',\n };\n }\n if (this.check([0x06, 0x06, 0xED, 0xF5, 0xD8, 0x1D, 0x46, 0xE5, 0xBD, 0x31, 0xEF, 0xE7, 0xFE, 0x74, 0xB7, 0x1D])) {\n return {\n ext: 'indd',\n mime: 'application/x-indesign',\n };\n }\n // Increase sample size from 256 to 512\n await tokenizer.peekBuffer(this.buffer, { length: Math.min(512, tokenizer.fileInfo.size), mayBeLess: true });\n // Requires a buffer size of 512 bytes\n if (tarHeaderChecksumMatches(this.buffer)) {\n return {\n ext: 'tar',\n mime: 'application/x-tar',\n };\n }\n if (this.check([0xFF, 0xFE, 0xFF, 0x0E, 0x53, 0x00, 0x6B, 0x00, 0x65, 0x00, 0x74, 0x00, 0x63, 0x00, 0x68, 0x00, 0x55, 0x00, 0x70, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6C, 0x00])) {\n return {\n ext: 'skp',\n mime: 'application/vnd.sketchup.skp',\n };\n }\n if (this.checkString('-----BEGIN PGP MESSAGE-----')) {\n return {\n ext: 'pgp',\n mime: 'application/pgp-encrypted',\n };\n }\n // Check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE)\n if (this.buffer.length >= 2 && this.check([0xFF, 0xE0], { offset: 0, mask: [0xFF, 0xE0] })) {\n if (this.check([0x10], { offset: 1, mask: [0x16] })) {\n // Check for (ADTS) MPEG-2\n if (this.check([0x08], { offset: 1, mask: [0x08] })) {\n return {\n ext: 'aac',\n mime: 'audio/aac',\n };\n }\n // Must be (ADTS) MPEG-4\n return {\n ext: 'aac',\n mime: 'audio/aac',\n };\n }\n // MPEG 1 or 2 Layer 3 header\n // Check for MPEG layer 3\n if (this.check([0x02], { offset: 1, mask: [0x06] })) {\n return {\n ext: 'mp3',\n mime: 'audio/mpeg',\n };\n }\n // Check for MPEG layer 2\n if (this.check([0x04], { offset: 1, mask: [0x06] })) {\n return {\n ext: 'mp2',\n mime: 'audio/mpeg',\n };\n }\n // Check for MPEG layer 1\n if (this.check([0x06], { offset: 1, mask: [0x06] })) {\n return {\n ext: 'mp1',\n mime: 'audio/mpeg',\n };\n }\n }\n }\n}\n\nexports.YC = YC;\nexports.YL = YL;\nexports.YR = YR;\nexports.YS = YS;\nexports.calTimeLen = calTimeLen;\nexports.checkFileType = checkFileType;\nexports.dateFormat = dateFormat;\nexports.debounce = debounce;\nexports.expandMultiple = expandMultiple;\nexports.exportExcel = exportExcel;\nexports.fenToyuan = fenToyuan;\nexports.fileTypeFromTokenizer = fileTypeFromTokenizer;\nexports.formatData = formatData;\nexports.formatTime = formatTime;\nexports.gTokg = gTokg;\nexports.getBiteLen = getBiteLen;\nexports.getDate = getDate;\nexports.getEnv = getEnv;\nexports.getHost = getHost;\nexports.getImgUrl = getImgUrl;\nexports.getMD5 = getMD5;\nexports.getMock = getMock;\nexports.getQueries = getQueries;\nexports.getQuery = getQuery;\nexports.getQueryName = getQueryName;\nexports.getQueryOfNextPageContext = getQueryOfNextPageContext;\nexports.getRoutes = getRoutes;\nexports.humpToLine = humpToLine;\nexports.isChinaMobile = isChinaMobile;\nexports.isDate = isDate;\nexports.isURL = isURL;\nexports.joinPath = joinPath;\nexports.kgTog = kgTog;\nexports.lineToHump = lineToHump;\nexports.loadScript = loadScript;\nexports.maxSubstrWord = maxSubstrWord;\nexports.niceNumShow = niceNumShow;\nexports.numberToThousand = numberToThousand;\nexports.omadownload = omadownload;\nexports.parseParams = parseParams;\nexports.pickAll = pickAll;\nexports.querystring = querystring;\nexports.reduceMultiple = reduceMultiple;\nexports.reduceParams = reduceParams;\nexports.remove = remove;\nexports.round = round;\nexports.slicePath = slicePath;\nexports.split = split;\nexports.strPad = strPad;\nexports.sum = sum;\nexports.throttle = throttle;\nexports.timeFlow = timeFlow;\nexports.toDate = toDate;\nexports.transformShortNum = transformShortNum;\nexports.translateMapToArray = translateMapToArray;\nexports.treeFind = treeFind;\nexports.treePaths = treePaths;\nexports.treeReduce = treeReduce;\nexports.trimAll = trimAll;\nexports.trimParams = trimParams;\nexports.unLoadScript = unLoadScript;\nexports.uuidv4 = uuidv4;\nexports.wanToyuan = wanToyuan;\nexports.yuanTofen = yuanTofen;\nexports.yuanTowan = yuanTowan;\n//# sourceMappingURL=ywfe-utils.esm.js.map\n",null,null,null],"names":["querystring"],"mappings":"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CAAC,CAAC,CAAC;AACnC,EAAC,CAAC,CAAC;AACH;CACA,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,IAAI,IAAI;;AAER,CAAA,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE;GAC5B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1B,EAAC,CAAC,CAAC;AACH;CACA,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,IAAI,MAAM;;CAEV,OAAO,CAAC,OAAO,CAAC,CAAC;AACjB;CACA,IAAI,QAAQ,GAAG,MAAM,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,IAAI,EAAE;;AAEN,CAAA,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE;AACpC,GAAE,OAAO,OAAO,MAAM,CAAC,iBAAiB,CAAC,KAAK,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,EAAE,KAAK,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,GAAG,UAAU,CAAC,EAAE;KAC7L,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACh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","x_google_ignoreList":[0]}
|