Socket
Socket
Sign inDemoInstall

es-toolkit

Package Overview
Dependencies
Maintainers
2
Versions
722
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

es-toolkit - npm Package Compare versions

Comparing version 1.19.0 to 1.20.0-dev.623

dist/_chunk/rest-pUyjvl.js

8

CHANGELOG.md
# es-toolkit Changelog
## Version v1.20.0
Released on September 20th, 2024.
- Added support for function invocation on leading and trailing edges for [debounce](https://es-toolkit.slash.page/reference/function/debounce.html) and [throttle](https://es-toolkit.slash.page/reference/function/throttle.html).
- Added compatibility functions for [debounce](https://es-toolkit.slash.page/reference/function/debounce.html), [throttle](https://es-toolkit.slash.page/reference/function/throttle.html), [curry](https://es-toolkit.slash.page/reference/function/curry.html), [isNumber](https://es-toolkit.slash.page/reference/compat/predicate/isNumber.html), and [isNaN](https://es-toolkit.slash.page/reference/compat/predicate/isNaN.html).
- Improved performance for [at](https://es-toolkit.slash.page/reference/array/at.html), [zip](https://es-toolkit.slash.page/reference/array/zip.html), [zipWith](https://es-toolkit.slash.page/reference/array/zipWith.html), and [drop](https://es-toolkit.slash.page/reference/array/drop.html).
## Version v1.19.0

@@ -4,0 +12,0 @@

9

dist/array/index.js

@@ -5,4 +5,9 @@ 'use strict';

const zipWith = require('../_chunk/zipWith-B-5AMf.js');
const zipWith = require('../_chunk/zipWith-CDtN9Y.js');
function drop(arr, itemsCount) {
itemsCount = Math.max(itemsCount, 0);
return arr.slice(itemsCount);
}
function compareValues(a, b, order) {

@@ -47,3 +52,2 @@ if (a < b) {

exports.differenceWith = zipWith.differenceWith;
exports.drop = zipWith.drop;
exports.dropRight = zipWith.dropRight;

@@ -95,3 +99,4 @@ exports.dropRightWhile = zipWith.dropRightWhile;

exports.zipWith = zipWith.zipWith;
exports.drop = drop;
exports.orderBy = orderBy;
exports.sortBy = sortBy;
/**
* Returns an empty array when the input is a tuple containing exactly one element.
*
* @template T The type of the single element.
* @param {[T]} arr - A tuple containing exactly one element.
* @returns {[]} An empty array since there is only one element.
*
* @example
* const array = [100] as const;
* const result = initial(array);
* // result will be []
*/
declare function initial<T>(arr: readonly [T]): [];
/**
* Returns an empty array when the input array is empty.
*
* @returns {[]} Always returns an empty array for an empty input.
*
* @example
* const array = [] as const;
* const result = initial(array);
* // result will be []
*/
declare function initial(arr: readonly []): [];
/**
* Returns a new array containing all elements except the last one from a tuple with multiple elements.
*
* @template T The types of the initial elements.
* @template U The type of the last element in the tuple.
* @param {[...T[], U]} arr - A tuple with one or more elements.
* @returns {T[]} A new array containing all but the last element of the tuple.
*
* @example
* const array = ['apple', 'banana', 'cherry'] as const;
* const result = initial(array);
* // result will be ['apple', 'banana']
*/
declare function initial<T, U>(arr: readonly [...T[], U]): T[];
/**
* Returns a new array containing all elements except the last one from the input array.

@@ -6,3 +44,3 @@ * If the input array is empty or has only one element, the function returns an empty array.

* @template T The type of elements in the array.
* @param {T[]} arr - The input array to query.
* @param {T[]} arr - The input array.
* @returns {T[]} A new array containing all but the last element of the input array.

@@ -12,14 +50,4 @@ *

* const arr = [1, 2, 3, 4];
* const newArr = initial(arr);
* // newArr will be [1, 2, 3]
*
* @example
* const emptyArr: number[] = [];
* const newEmptyArr = initial(emptyArr);
* // newEmptyArr will be []
*
* @example
* const singleElementArr = ['only one'];
* const newSingleElementArr = initial(singleElementArr);
* // newSingleElementArr will be []
* const result = initial(arr);
* // result will be [1, 2, 3]
*/

@@ -26,0 +54,0 @@ declare function initial<T>(arr: readonly T[]): T[];

@@ -1,2 +0,2 @@

var _=function(t){"use strict";function at(t,e){const n=[];for(let r=0;r<e.length;r++){const o=e[r];n.push(t.at(o))}return n}function difference$1(t,e){const n=new Set(e);return t.filter((t=>!n.has(t)))}function differenceBy(t,e,n){const r=new Set(e.map((t=>n(t))));return t.filter((t=>!r.has(n(t))))}function differenceWith(t,e,n){return t.filter((t=>e.every((e=>!n(t,e)))))}function flatten$1(t,e=1){const n=[],r=Math.floor(e),recursive=(t,e)=>{for(const o of t)Array.isArray(o)&&e<r?recursive(o,e+1):n.push(o)};recursive(t,0);return n}function head(t){return t[0]}function intersection(t,e){const n=new Set(e);return t.filter((t=>n.has(t)))}function intersectionBy(t,e,n){const r=new Set(e.map(n));return t.filter((t=>r.has(n(t))))}function intersectionWith(t,e,n){return t.filter((t=>e.some((e=>n(t,e)))))}function random(t,e){if(null==e){e=t;t=0}if(t>=e)throw new Error("Invalid input: The maximum value must be greater than the minimum value.");return Math.random()*(e-t)+t}function randomInt(t,e){return Math.floor(random(t,e))}function uniq(t){return Array.from(new Set(t))}function union(t,e){return uniq(t.concat(e))}function unionBy(t,e,n){const r=new Map;for(const o of[...t,...e]){const t=n(o);r.has(t)||r.set(t,o)}return Array.from(r.values())}function uniqWith(t,e){const n=[];for(const r of t){n.every((t=>!e(t,r)))&&n.push(r)}return n}function unionWith(t,e,n){return uniqWith(t.concat(e),n)}function zip(...t){const e=[],n=Math.max(...t.map((t=>t.length)));for(let r=0;r<n;r++){const n=[];for(const e of t)n.push(e[r]);e.push(n)}return e}class AbortError extends Error{constructor(t="The operation was aborted"){super(t);this.name="AbortError"}}class TimeoutError extends Error{constructor(t="The operation was timed out"){super(t);this.name="TimeoutError"}}function noop(){}function ary$1(t,e){return function(...n){return t.apply(this,n.slice(0,e))}}function partial(t,...e){return function(...n){const r=[];let o=0;for(let t=0;t<e.length;t++){const i=e[t];i===partial.placeholder?r.push(n[o++]):r.push(i)}for(let t=o;t<n.length;t++)r.push(n[t]);return t.apply(this,r)}}const e=Symbol("partial.placeholder");partial.placeholder=e;function partialRight(t,...e){return function(...r){const o=e.filter((t=>t===n)).length,i=Math.max(r.length-o,0),c=[];let u=0;for(let t=0;t<i;t++)c.push(r[u++]);for(let t=0;t<e.length;t++){const n=e[t];n===partialRight.placeholder?c.push(r[u++]):c.push(n)}return t.apply(this,c)}}const n=Symbol("partialRight.placeholder");partialRight.placeholder=n;function makeCurry(t,e,n){if(n.length===e)return t(...n);return function(r){return makeCurry(t,e,[...n,r])}}function sum(t){let e=0;for(let n=0;n<t.length;n++)e+=t[n];return e}function mean(t){return sum(t)/t.length}function isTypedArray$1(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function isPrimitive(t){return null==t||"object"!=typeof t&&"function"!=typeof t}function clone(t){if(isPrimitive(t))return t;if(Array.isArray(t)||isTypedArray$1(t)||t instanceof ArrayBuffer||t instanceof SharedArrayBuffer)return t.slice(0);const e=Object.getPrototypeOf(t),n=e.constructor;if(t instanceof Date||t instanceof Map||t instanceof Set)return new n(t);if(t instanceof RegExp){const e=new n(t);e.lastIndex=t.lastIndex;return e}if(t instanceof DataView)return new n(t.buffer.slice(0));if(t instanceof Error){const e=new n(t.message);e.stack=t.stack;e.name=t.name;e.cause=t.cause;return e}if("undefined"!=typeof File&&t instanceof File){return new n([t],t.name,{type:t.type,lastModified:t.lastModified})}if("object"==typeof t){const n=Object.create(e);return Object.assign(n,t)}return t}function isPlainObject$1(t){if("object"!=typeof t)return!1;if(null==t)return!1;if(null===Object.getPrototypeOf(t))return!0;if("[object Object]"!==t.toString())return!1;let e=t;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function flattenObjectImpl(t,e=""){const n={},r=Object.keys(t);for(let o=0;o<r.length;o++){const i=r[o],c=t[i],u=e?`${e}.${i}`:i;if(isPlainObject$1(c)&&Object.keys(c).length>0)Object.assign(n,flattenObjectImpl(c,u));else if(Array.isArray(c))for(let t=0;t<c.length;t++)n[`${u}.${t}`]=c[t];else n[u]=c}return n}function mapKeys$1(t,e){const n={},r=Object.keys(t);for(let o=0;o<r.length;o++){const i=r[o],c=t[i];n[e(c,i,t)]=c}return n}function mapValues$1(t,e){const n={},r=Object.keys(t);for(let o=0;o<r.length;o++){const i=r[o],c=t[i];n[i]=e(c,i,t)}return n}function cloneDeep$1(t){return cloneDeepImpl(t)}function cloneDeepImpl(t,e=new Map){if(isPrimitive(t))return t;if(e.has(t))return e.get(t);if(Array.isArray(t)){const n=new Array(t.length);e.set(t,n);for(let r=0;r<t.length;r++)n[r]=cloneDeepImpl(t[r],e);Object.prototype.hasOwnProperty.call(t,"index")&&(n.index=t.index);Object.prototype.hasOwnProperty.call(t,"input")&&(n.input=t.input);return n}if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp){const e=new RegExp(t.source,t.flags);e.lastIndex=t.lastIndex;return e}if(t instanceof Map){const n=new Map;e.set(t,n);for(const[r,o]of t.entries())n.set(r,cloneDeepImpl(o,e));return n}if(t instanceof Set){const n=new Set;e.set(t,n);for(const r of t.values())n.add(cloneDeepImpl(r,e));return n}if("undefined"!=typeof Buffer&&Buffer.isBuffer(t))return t.subarray();if(isTypedArray$1(t)){const n=new(Object.getPrototypeOf(t).constructor)(t.length);e.set(t,n);for(let r=0;r<t.length;r++)n[r]=cloneDeepImpl(t[r],e);return n}if(t instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&t instanceof SharedArrayBuffer)return t.slice(0);if(t instanceof DataView){const n=new DataView(t.buffer.slice(0));e.set(t,n);copyProperties(n,t,e);return n}if("undefined"!=typeof File&&t instanceof File){const n=new File([t],t.name,{type:t.type});e.set(t,n);copyProperties(n,t,e);return n}if(t instanceof Blob){const n=new Blob([t],{type:t.type});e.set(t,n);copyProperties(n,t,e);return n}if(t instanceof Error){const n=new t.constructor;e.set(t,n);n.message=t.message;n.name=t.name;n.stack=t.stack;n.cause=t.cause;copyProperties(n,t,e);return n}if("object"==typeof t&&null!==t){const n={};e.set(t,n);copyProperties(n,t,e);return n}return t}function copyProperties(t,e,n){const r=Object.keys(e);for(let o=0;o<r.length;o++){const i=r[o],c=Object.getOwnPropertyDescriptor(e,i);(c?.writable||c?.set)&&(t[i]=cloneDeepImpl(e[i],n))}}function isObjectLike(t){return"object"==typeof t&&null!==t}function merge$1(t,e){const n=Object.keys(e);for(let r=0;r<n.length;r++){const o=n[r],i=e[o],c=t[o];Array.isArray(i)?t[o]=merge$1(c??[],i):isObjectLike(c)&&isObjectLike(i)?t[o]=merge$1(c??{},i):void 0!==c&&void 0===i||(t[o]=i)}return t}const r="[object RegExp]",o="[object String]",i="[object Number]",c="[object Boolean]",u="[object Arguments]",s="[object Symbol]",a="[object Date]",f="[object Map]",l="[object Set]",p="[object Array]",y="[object Function]",h="[object ArrayBuffer]",g="[object Object]",m="[object Error]",b="[object DataView]",d="[object Uint8Array]",j="[object Uint8ClampedArray]",A="[object Uint16Array]",O="[object Uint32Array]",w="[object BigUint64Array]",S="[object Int8Array]",$="[object Int16Array]",M="[object Int32Array]",k="[object BigInt64Array]",E="[object Float32Array]",B="[object Float64Array]";function getSymbols(t){return Object.getOwnPropertySymbols(t).filter((e=>Object.prototype.propertyIsEnumerable.call(t,e)))}function getTag(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}function areObjectsEqual(t,e,n){if(Object.is(t,e))return!0;let P=getTag(t),v=getTag(e);P===u&&(P=g);v===u&&(v=g);if(P!==v)return!1;switch(P){case o:return t.toString()===e.toString();case i:{const n=t.valueOf(),r=e.valueOf();return n===r||Number.isNaN(n)&&Number.isNaN(r)}case c:case a:case s:return Object.is(t.valueOf(),e.valueOf());case r:return t.source===e.source&&t.flags===e.flags;case y:return t===e}const x=(n=n??new Map).get(t),W=n.get(e);if(null!=x&&null!=W)return x===e;n.set(t,e);n.set(e,t);try{switch(P){case f:if(t.size!==e.size)return!1;for(const[r,o]of t.entries())if(!e.has(r)||!areObjectsEqual(o,e.get(r),n))return!1;return!0;case l:{if(t.size!==e.size)return!1;const r=Array.from(t.values()),o=Array.from(e.values());for(let t=0;t<r.length;t++){const e=r[t],i=o.findIndex((t=>areObjectsEqual(e,t,n)));if(-1===i)return!1;o.splice(i,1)}return!0}case p:case d:case j:case A:case O:case w:case S:case $:case M:case k:case E:case B:if("undefined"!=typeof Buffer&&Buffer.isBuffer(t)!==Buffer.isBuffer(e))return!1;if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(!areObjectsEqual(t[r],e[r],n))return!1;return!0;case h:return t.byteLength===e.byteLength&&areObjectsEqual(new Uint8Array(t),new Uint8Array(e),n);case b:return t.byteLength===e.byteLength&&t.byteOffset===e.byteOffset&&areObjectsEqual(t.buffer,e.buffer,n);case m:return t.name===e.name&&t.message===e.message;case g:{if(!(areObjectsEqual(t.constructor,e.constructor,n)||isPlainObject$1(t)&&isPlainObject$1(e)))return!1;const r=[...Object.keys(t),...getSymbols(t)],o=[...Object.keys(e),...getSymbols(e)];if(r.length!==o.length)return!1;for(let o=0;o<r.length;o++){const i=r[o],c=t[i];if(!Object.prototype.hasOwnProperty.call(e,i))return!1;if(!areObjectsEqual(c,e[i],n))return!1}return!0}default:return!1}}finally{n.delete(t);n.delete(e)}}function isNil$1(t){return null==t}function isLength(t){return Number.isSafeInteger(t)&&t>=0}function delay(t,{signal:e}={}){return new Promise(((n,r)=>{const abortError=()=>{r(new AbortError)},abortHandler=()=>{clearTimeout(o);abortError()};if(e?.aborted)return abortError();const o=setTimeout((()=>{e?.removeEventListener("abort",abortHandler);n()}),t);e?.addEventListener("abort",abortHandler,{once:!0})}))}async function timeout(t){await delay(t);throw new TimeoutError}function capitalize(t){return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}const P=/[A-Z]?[a-z]+|[0-9]+|[A-Z]+(?![a-z])/g;function getWords(t){return Array.from(t.match(P)??[])}function trimStart$1(t,e){if(void 0===e)return t.trimStart();let n=0;switch(typeof e){case"string":for(;n<t.length&&t[n]===e;)n++;break;case"object":for(;n<t.length&&e.includes(t[n]);)n++}return t.substring(n)}function trimEnd$1(t,e){if(void 0===e)return t.trimEnd();let n=t.length;switch(typeof e){case"string":for(;n>0&&t[n-1]===e;)n--;break;case"object":for(;n>0&&e.includes(t[n-1]);)n--}return t.substring(0,n)}function trim$1(t,e){return void 0===e?t.trim():trimStart$1(trimEnd$1(t,e),e)}const v=new Map(Object.entries({Æ:"Ae",Ð:"D",Ø:"O",Þ:"Th",ß:"ss",æ:"ae",ð:"d",ø:"o",þ:"th",Đ:"D",đ:"d",Ħ:"H",ħ:"h",ı:"i",IJ:"IJ",ij:"ij",ĸ:"k",Ŀ:"L",ŀ:"l",Ł:"L",ł:"l",ʼn:"'n",Ŋ:"N",ŋ:"n",Œ:"Oe",œ:"oe",Ŧ:"T",ŧ:"t",ſ:"s"}));const x={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};const W={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"};function isDeepKey(t){switch(typeof t){case"number":case"symbol":return!1;case"string":return t.includes(".")||t.includes("[")||t.includes("]")}}function toKey(t){return Object.is(t,-0)?"-0":t.toString()}const I=/^[\w.]+$/g,N=/\\(\\)?/g,D=RegExp("[^.[\\]]+|\\[(?:([^\"'][^[]*)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))","g");function toPath(t){if(I.test(t))return t.split(".");const e=[];"."===t[0]&&e.push("");const n=t.matchAll(D);for(const t of n){let n=t[0];const r=t[1],o=t[2],i=t[3];o?n=i.replace(N,"$1"):r&&(n=r);e.push(n)}return e}function get(t,e,n){if(null==t)return n;switch(typeof e){case"string":{const r=t[e];return void 0===r?isDeepKey(e)?get(t,toPath(e),n):n:r}case"number":case"symbol":{"number"==typeof e&&(e=toKey(e));const r=t[e];return void 0===r?n:r}default:{if(Array.isArray(e))return function getWithPath(t,e,n){if(0===e.length)return n;let r=t;for(let t=0;t<e.length;t++){if(null==r)return n;r=r[e[t]]}if(void 0===r)return n;return r}(t,e,n);const r=t[e=Object.is(e?.valueOf(),-0)?"-0":String(e)];return void 0===r?n:r}}}function property(t){return function(e){return get(e,t)}}function isMatch(t,e){if(e===t)return!0;switch(typeof e){case"object":{if(null==e)return!0;const n=Object.keys(e);if(null==t)return 0===n.length;if(Array.isArray(e))return isArrayMatch(t,e);if(e instanceof Map)return function isMapMatch(t,e){if(0===e.size)return!0;if(!(t instanceof Map))return!1;for(const[n,r]of e.entries())if(!isMatch(t.get(n),r))return!1;return!0}(t,e);if(e instanceof Set)return function isSetMatch(t,e){if(0===e.size)return!0;if(!(t instanceof Set))return!1;return isArrayMatch([...t],[...e])}(t,e);for(let r=0;r<n.length;r++){const o=n[r];if(!isPrimitive(t)&&!(o in t))return!1;if(void 0===e[o]&&void 0!==t[o])return!1;if(!isMatch(t[o],e[o]))return!1}return!0}case"function":return Object.keys(e).length>0&&isMatch(t,{...e});default:return!e}}function isArrayMatch(t,e){if(0===e.length)return!0;if(!Array.isArray(t))return!1;const n=new Set;for(let r=0;r<e.length;r++){const o=e[r],i=t.findIndex(((t,e)=>isMatch(t,o)&&!n.has(e)));if(-1===i)return!1;n.add(i)}return!0}function matches(t){t=cloneDeep$1(t);return e=>isMatch(e,t)}function cloneDeep(t){if("object"!=typeof t)return cloneDeep$1(t);switch(Object.prototype.toString.call(t)){case i:case o:case c:{const e=new t.constructor(t?.valueOf());copyProperties(e,t);return e}case u:{const e={};copyProperties(e,t);e.length=t.length;e[Symbol.iterator]=t[Symbol.iterator];return e}default:return cloneDeep$1(t)}}const z=/^(?:0|[1-9]\d*)$/;function isIndex(t){switch(typeof t){case"number":return Number.isInteger(t)&&t>=0&&t<Number.MAX_SAFE_INTEGER;case"symbol":return!1;case"string":return z.test(t)}}function isArguments(t){return null!==t&&"object"==typeof t&&"[object Arguments]"===getTag(t)}function has(t,e){let n;n=Array.isArray(e)?e:"string"==typeof e&&isDeepKey(e)&&null==t?.[e]?toPath(e):[e];if(0===n.length)return!1;let r=t;for(let t=0;t<n.length;t++){const e=n[t];if(null==r||!Object.prototype.hasOwnProperty.call(r,e)){if(!((Array.isArray(r)||isArguments(r))&&isIndex(e)&&e<r.length))return!1}r=r[e]}return!0}function matchesProperty(t,e){switch(typeof t){case"object":Object.is(t?.valueOf(),-0)&&(t="-0");break;case"number":t=toKey(t)}e=cloneDeep(e);return function(n){const r=get(n,t);return void 0===r?has(n,t):void 0===e?void 0===r:isMatch(r,e)}}function flatten(t,e=1){const n=[],r=Math.floor(e);if(!Array.isArray(t))return n;const recursive=(t,e)=>{for(const o of t)e<r&&(Array.isArray(o)||Boolean(o?.[Symbol.isConcatSpreadable])||null!==o&&"object"==typeof o&&"[object Arguments]"===Object.prototype.toString.call(o))?Array.isArray(o)?recursive(o,e+1):recursive(Array.from(o),e+1):n.push(o)};recursive(t,0);return n}function getPriority(t){return"symbol"==typeof t?1:null===t?2:void 0===t?3:t!=t?4:0}const compareValues=(t,e,n)=>{if(t!==e){if("string"==typeof t&&"string"==typeof e)return"desc"===n?e.localeCompare(t):t.localeCompare(e);const r=getPriority(t),o=getPriority(e);if(r===o&&0===r){if(t<e)return"desc"===n?1:-1;if(t>e)return"desc"===n?-1:1}return"desc"===n?o-r:r-o}return 0};function isSymbol(t){return"symbol"==typeof t||null!=t&&t instanceof Symbol}const C=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,T=/^\w*$/;function orderBy(t,e,n){if(null==t||"number"==typeof t)return[];"object"!=typeof t||Array.isArray(t)||(t=Object.values(t));Array.isArray(e)||(e=null==e?[null]:[e]);Array.isArray(n)||(n=null==n?[]:[n]);n=n.map((t=>String(t)));const getValueByNestedPath=(t,e)=>{let n=t;for(let t=0;t<e.length&&null!=n;++t)n=n[e[t]];return n},r=e.map((t=>{Array.isArray(t)&&1===t.length&&(t=t[0]);return null==t||"function"==typeof t||Array.isArray(t)||function isKey(t,e){return!Array.isArray(t)&&(!("number"!=typeof t&&"boolean"!=typeof t&&null!=t&&!isSymbol(t))||"string"==typeof t&&(T.test(t)||!C.test(t))||null!=e)}(t)?t:{key:t,path:toPath(t)}}));return t.map((t=>({original:t,criteria:r.map((e=>((t,e)=>null==e||null==t?e:"object"==typeof t&&"key"in t?Object.hasOwn(e,t.key)?e[t.key]:getValueByNestedPath(e,t.path):"function"==typeof t?t(e):Array.isArray(t)?getValueByNestedPath(e,t):"object"==typeof e?e[t]:e)(e,t)))}))).slice().sort(((t,e)=>{for(let o=0;o<r.length;o++){const r=compareValues(t.criteria[o],e.criteria[o],n[o]);if(0!==r)return r}return 0})).map((t=>t.original))}function identity(t){return t}function set(t,e,n){const r=Array.isArray(e)?e:"string"==typeof e?toPath(e):[e];let o=t;for(let t=0;t<r.length-1;t++){const e=r[t],n=r[t+1];null==o[e]&&(o[e]=isIndex(n)?[]:{});o=o[e]}o[r[r.length-1]]=n;return t}function bind(t,e,...n){const bound=function(...r){const o=[];let i=0;for(let t=0;t<n.length;t++){const e=n[t];e===bind.placeholder?o.push(r[i++]):o.push(e)}for(let t=i;t<r.length;t++)o.push(r[t]);return this instanceof bound?new t(...o):t.apply(e,o)};return bound}const L=Symbol("bind.placeholder");bind.placeholder=L;function bindKey(t,e,...n){const bound=function(...r){const o=[];let i=0;for(let t=0;t<n.length;t++){const e=n[t];e===bindKey.placeholder?o.push(r[i++]):o.push(e)}for(let t=i;t<r.length;t++)o.push(r[t]);return this instanceof bound?new t[e](...o):t[e].apply(t,o)};return bound}const R=Symbol("bindKey.placeholder");bindKey.placeholder=R;function unset(t,e){if(null==t)return!0;switch(typeof e){case"symbol":case"number":case"object":if(Array.isArray(e))return unsetWithPath(t,e);"number"==typeof e?e=toKey(e):"object"==typeof e&&(e=Object.is(e?.valueOf(),-0)?"-0":String(e));if(void 0===t?.[e])return!0;try{delete t[e];return!0}catch{return!1}case"string":if(void 0===t?.[e]&&isDeepKey(e))return unsetWithPath(t,toPath(e));try{delete t[e];return!0}catch{return!1}}}function unsetWithPath(t,e){const n=get(t,e.slice(0,-1),t),r=e[e.length-1];if(void 0===n?.[r])return!0;try{delete n[r];return!0}catch{return!1}}function isPlainObject(t){if("object"!=typeof t)return!1;if(null==t)return!1;if(null===Object.getPrototypeOf(t))return!0;if("[object Object]"!==Object.prototype.toString.call(t)){const e=t[Symbol.toStringTag];if(null==e)return!1;return!!Object.getOwnPropertyDescriptor(t,Symbol.toStringTag)?.writable&&t.toString()===`[object ${e}]`}let e=t;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function isTypedArray(t){return isTypedArray$1(t)}function mergeWith(t,...e){const n=e.slice(0,-1),r=e[e.length-1];let o=t;for(let e=0;e<n.length;e++){o=mergeWithDeep(t,n[e],r,new Map)}return o}function mergeWithDeep(t,e,n,r){if(null==e||"object"!=typeof e)return t;if(r.has(e))return clone(r.get(e));r.set(e,t);if(Array.isArray(e)){e=e.slice();for(let t=0;t<e.length;t++)e[t]=e[t]??void 0}const o=[...Object.keys(e),...getSymbols(e)];for(let i=0;i<o.length;i++){const c=o[i];let u=e[c],s=t[c];isArguments(u)&&(u={...u});isArguments(s)&&(s={...s});"undefined"!=typeof Buffer&&Buffer.isBuffer(u)&&(u=cloneDeep(u));if(Array.isArray(u))if("object"==typeof s){const t=[],e=Reflect.ownKeys(s);for(let n=0;n<e.length;n++){const r=e[n];t[r]=s[r]}s=t}else s=[];const a=n(s,u,c,t,e,r);null!=a?t[c]=a:Array.isArray(u)||isObjectLike(s)&&isObjectLike(u)?t[c]=mergeWithDeep(s,u,n,r):null==s&&isPlainObject(u)?t[c]=mergeWithDeep({},u,n,r):null==s&&isTypedArray(u)?t[c]=cloneDeep(u):void 0!==s&&void 0===u||(t[c]=u)}return t}function isArrayLike(t){return null!=t&&"function"!=typeof t&&isLength(t.length)}function conformsTo(t,e){if(null==e)return!0;if(null==t)return 0===Object.keys(e).length;for(const n of Object.keys(e)){const r=e[n],o=t[n];if(void 0===o&&!(n in t)||!r(o))return!1}return!0}function toString(t){if(null==t)return"";if(Array.isArray(t))return t.map(toString).join(",");const e=String(t);return"0"===e&&Object.is(Number(t),-0)?"-0":e}function normalizeForCase(t){"string"!=typeof t&&(t=toString(t));return t.replace(/['\u2019]/g,"")}function decimalAdjust(t,e,n=0){e=Number(e);Object.is(e,-0)&&(e="-0");if(n=Math.min(Number.parseInt(n,10),292)){const[r,o=0]=e.toString().split("e");let i=Math[t](Number(`${r}e${Number(o)+n}`));Object.is(i,-0)&&(i="-0");const[c,u=0]=i.toString().split("e");return Number(`${c}e${Number(u)-n}`)}return Math[t](Number(e))}t.AbortError=AbortError;t.TimeoutError=TimeoutError;t.after=function after(t,e){if(!Number.isInteger(t)||t<0)throw new Error("n must be a non-negative integer.");let n=0;return(...r)=>{if(++n>=t)return e(...r)}};t.ary=function ary(t,e=t.length,n){n&&(e=t.length);(Number.isNaN(e)||e<0)&&(e=0);return ary$1(t,e)};t.at=at;t.attempt=function attempt(t,...e){try{return t(...e)}catch(t){return t instanceof Error?t:new Error(t)}};t.before=function before(t,e){if(!Number.isInteger(t)||t<0)throw new Error("n must be a non-negative integer.");let n=0;return(...r)=>{if(++n<t)return e(...r)}};t.bind=bind;t.bindKey=bindKey;t.camelCase=function camelCase(t){return function camelCase$1(t){const e=getWords(t);if(0===e.length)return"";const[n,...r]=e;return`${n.toLowerCase()}${r.map((t=>capitalize(t))).join("")}`}(normalizeForCase(t))};t.capitalize=capitalize;t.castArray=function castArray(t){return 0===arguments.length?[]:Array.isArray(t)?t:[t]};t.ceil=function ceil(t,e=0){return decimalAdjust("ceil",t,e)};t.chunk=function chunk(t,e=1){return 0===(e=Math.max(Math.floor(e),0))?[]:function chunk$1(t,e){if(!Number.isInteger(e)||e<=0)throw new Error("Size must be an integer greater than zero.");const n=Math.ceil(t.length/e),r=Array(n);for(let o=0;o<n;o++){const n=o*e,i=n+e;r[o]=t.slice(n,i)}return r}(t,e)};t.clamp=function clamp(t,e,n){return null==n?Math.min(t,e):Math.min(Math.max(t,e),n)};t.clone=clone;t.cloneDeep=cloneDeep$1;t.compact=function compact(t){const e=[];for(const n of t)n&&e.push(n);return e};t.concat=function concat(...t){return flatten$1(t)};t.conforms=function conforms(t){t=cloneDeep$1(t);return function(e){return conformsTo(e,t)}};t.conformsTo=conformsTo;t.countBy=function countBy(t,e){const n={};for(const r of t){const t=e(r);n[t]=(n[t]??0)+1}return n};t.curry=function curry(t){return 0===t.length||1===t.length?t:function(e){return makeCurry(t,t.length,[e])}};t.debounce=function debounce(t,e,{signal:n}={}){let r=null;const debounced=function(...o){null!==r&&clearTimeout(r);n?.aborted||(r=setTimeout((()=>{t(...o);r=null}),e))};debounced.cancel=function(){if(null!==r){clearTimeout(r);r=null}};n?.addEventListener("abort",(function(){debounced.cancel()}),{once:!0});return debounced};t.deburr=function deburr(t){t=t.normalize("NFD");let e="";for(let n=0;n<t.length;n++){const r=t[n];r>="̀"&&r<="ͯ"||r>="︠"&&r<="︣"||(e+=v.get(r)??r)}return e};t.delay=delay;t.difference=function difference(t,...e){return difference$1(t,flatten$1(e))};t.differenceBy=differenceBy;t.differenceWith=differenceWith;t.drop=function drop(t,e){e=Math.max(e,0);return t.slice(e)};t.dropRight=function dropRight(t,e){return 0===(e=Math.min(-e,0))?t.slice():t.slice(0,e)};t.dropRightWhile=function dropRightWhile(t,e){for(let n=t.length-1;n>=0;n--)if(!e(t[n]))return t.slice(0,n+1);return[]};t.dropWhile=function dropWhile(t,e){const n=t.findIndex((t=>!e(t)));return-1===n?[]:t.slice(n)};t.endsWith=function endsWith(t,e,n=t.length){return t.endsWith(e,n)};t.escape=function escape(t){return t.replace(/[&<>"']/g,(t=>x[t]))};t.escapeRegExp=function escapeRegExp(t){return t.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")};t.fill=function fill(t,e,n=0,r=t.length){(n=Math.floor(n))||(n=0);(r=Math.floor(r))||(r=0);return function fill$1(t,e,n=0,r=t.length){const o=t.length,i=Math.max(n>=0?n:o+n,0),c=Math.min(r>=0?r:o+r,o);for(let n=i;n<c;n++)t[n]=e;return t}(t,e,n,r)};t.find=function find(t,e){let n=t;Array.isArray(t)||(n=Object.values(t));switch(typeof e){case"function":if(!Array.isArray(t)){const n=Object.entries(t);for(let r=0;r<n.length;r++){const o=n[r],i=o[0],c=o[1];if(e(c,i,t))return c}return}return n.find(e);case"object":if(Array.isArray(e)&&2===e.length){const t=e[0],r=e[1];return n.find(matchesProperty(t,r))}return n.find(matches(e));case"string":return n.find(property(e))}};t.findIndex=function findIndex(t,e){switch(typeof e){case"function":return t.findIndex(e);case"object":if(Array.isArray(e)&&2===e.length){const n=e[0],r=e[1];return t.findIndex(matchesProperty(n,r))}return t.findIndex(matches(e));case"string":return t.findIndex(property(e))}};t.findLastIndex=function findLastIndex(t,e,n=t.length-1){n=n<0?Math.max(t.length+n,0):Math.min(n,t.length-1);t=t.slice(0,n+1);switch(typeof e){case"function":return t.findLastIndex(e);case"object":if(Array.isArray(e)&&2===e.length){const n=e[0],r=e[1];return t.findLastIndex(matchesProperty(n,r))}return t.findLastIndex(matches(e));case"string":return t.findLastIndex(property(e))}};t.first=head;t.flatMap=function flatMap(t,e,n=1){return flatten$1(t.map((t=>e(t))),n)};t.flatMapDeep=function flatMapDeep(t,e){return function flattenDeep$1(t){return flatten$1(t,1/0)}(t.map((t=>e(t))))};t.flatten=flatten;t.flattenDeep=function flattenDeep(t){return flatten(t,1/0)};t.flattenDepth=function flattenDepth(t,e=1){return flatten(t,e)};t.flattenObject=function flattenObject(t){return flattenObjectImpl(t)};t.floor=function floor(t,e=0){return decimalAdjust("floor",t,e)};t.forEachRight=function forEachRight(t,e){for(let n=t.length-1;n>=0;n--){e(t[n],n,t)}};t.fromPairs=function fromPairs(t){if(!(isArrayLike(t)||t instanceof Map))return{};const e={};for(const[n,r]of t)e[n]=r;return e};t.get=get;t.groupBy=function groupBy(t,e){const n=Object.create(null);for(const r of t){const t=e(r);null==n[t]&&(n[t]=[]);n[t].push(r)}return n};t.has=has;t.head=head;t.inRange=function inRange(t,e,n){if(null==n){n=e;e=0}if(e>=n)throw new Error("The maximum value must be greater than the minimum value.");return e<=t&&t<n};t.indexOf=function indexOf(t,e,n){if(null==t)return-1;if(Number.isNaN(e)){(n=n??0)<0&&(n=Math.max(0,t.length+n));for(let e=n;e<t.length;e++)if(Number.isNaN(t[e]))return e;return-1}return t.indexOf(e,n)};t.initial=function initial(t){return t.slice(0,-1)};t.intersection=intersection;t.intersectionBy=intersectionBy;t.intersectionWith=intersectionWith;t.invert=function invert(t){const e={},n=Object.keys(t);for(let r=0;r<n.length;r++){const o=n[r];e[t[o]]=o}return e};t.isArguments=isArguments;t.isArray=function isArray(t){return Array.isArray(t)};t.isArrayLike=isArrayLike;t.isBoolean=function isBoolean(t){return!0===t||!1===t||"object"==typeof t&&null!=t&&"[object Boolean]"===getTag(t)};t.isDate=function isDate(t){return t instanceof Date};t.isEqual=function isEqual(t,e){if(typeof t==typeof e)switch(typeof t){case"bigint":case"string":case"boolean":case"symbol":case"undefined":case"function":return t===e;case"number":return t===e||Object.is(t,e);case"object":return areObjectsEqual(t,e)}return areObjectsEqual(t,e)};t.isFunction=function isFunction(t){return"function"==typeof t};t.isInteger=function isInteger(t){return Number.isInteger(t)};t.isLength=isLength;t.isMatch=isMatch;t.isNil=isNil$1;t.isNotNil=function isNotNil(t){return null!=t};t.isNull=function isNull(t){return null===t};t.isObject=function isObject(t){return null!==t&&("object"==typeof t||"function"==typeof t)};t.isObjectLike=isObjectLike;t.isPlainObject=isPlainObject;t.isPrimitive=isPrimitive;t.isRegExp=function isRegExp(t){return"[object RegExp]"===getTag(t)};t.isSafeInteger=function isSafeInteger(t){return Number.isSafeInteger(t)};t.isString=function isString(t){return"string"==typeof t||"object"==typeof t&&null!=t&&"[object String]"===getTag(t)};t.isSubset=function isSubset(t,e){return 0===difference$1(e,t).length};t.isSymbol=isSymbol;t.isTypedArray=isTypedArray;t.isUndefined=function isUndefined(t){return void 0===t};t.isWeakMap=function isWeakMap(t){return function isWeakMap$1(t){return t instanceof WeakMap}(t)};t.isWeakSet=function isWeakSet(t){return function isWeakSet$1(t){return t instanceof WeakSet}(t)};t.join=function join(t,e=","){return t.join(e)};t.kebabCase=function kebabCase(t){return function kebabCase$1(t){return getWords(t).map((t=>t.toLowerCase())).join("-")}(normalizeForCase(t))};t.keyBy=function keyBy(t,e){const n={};for(const r of t){n[e(r)]=r}return n};t.last=function last(t){return t[t.length-1]};t.lowerCase=function lowerCase(t){return function lowerCase$1(t){return getWords(t).map((t=>t.toLowerCase())).join(" ")}(normalizeForCase(t))};t.lowerFirst=function lowerFirst(t){return t.substring(0,1).toLowerCase()+t.substring(1)};t.mapKeys=function mapKeys(t,e){switch(typeof(e=e??identity)){case"string":case"symbol":case"number":case"object":return mapKeys$1(t,property(e));case"function":return mapKeys$1(t,e)}};t.mapValues=function mapValues(t,e){switch(typeof(e=e??identity)){case"string":case"symbol":case"number":case"object":return mapValues$1(t,property(e));case"function":return mapValues$1(t,e)}};t.matches=matches;t.matchesProperty=matchesProperty;t.max=function max(t=[]){let e,n=t[0];for(const r of t)if(null==e||r>e){e=r;n=r}return n};t.maxBy=function maxBy(t,e){let n=t[0],r=-1/0;for(const o of t){const t=e(o);if(t>r){r=t;n=o}}return n};t.mean=mean;t.meanBy=function meanBy(t,e){return mean(t.map((t=>e(t))))};t.memoize=function memoize(t,e={}){const{cache:n=new Map,getCacheKey:r}=e,memoizedFn=function(e){const o=r?r(e):e;if(n.has(o))return n.get(o);const i=t.call(this,e);n.set(o,i);return i};memoizedFn.cache=n;return memoizedFn};t.merge=function merge(t,...e){return mergeWith(t,...e,noop)};t.mergeWith=mergeWith;t.min=function min(t=[]){let e,n=t[0];for(const r of t)if(null==e||r<e){e=r;n=r}return n};t.minBy=function minBy(t,e){let n=t[0],r=1/0;for(const o of t){const t=e(o);if(t<r){r=t;n=o}}return n};t.negate=function negate(t){return(...e)=>!t(...e)};t.noop=noop;t.omit=function omit(t,...e){if(null==t)return{};const n=cloneDeep$1(t);for(let t=0;t<e.length;t++){let r=e[t];switch(typeof r){case"object":Array.isArray(r)||(r=Array.from(r));for(let t=0;t<r.length;t++){unset(n,r[t])}break;case"string":case"symbol":case"number":unset(n,r)}}return n};t.omitBy=function omitBy(t,e){const n={};for(const[r,o]of Object.entries(t))e(o,r)||(n[r]=o);return n};t.once=function once(t){let e,n=!1;return function(){if(n)return e;const r=t();n=!0;e=r;return r}};t.orderBy=orderBy;t.pad=function pad(t,e,n=" "){return t.padStart(Math.floor((e-t.length)/2)+t.length,n).padEnd(e,n)};t.padEnd=function padEnd(t,e=0,n=" "){return t.padEnd(e,n)};t.padStart=function padStart(t,e=0,n=" "){return t.padStart(e,n)};t.parseInt=function parseInt(t,e=0,n){n&&(e=0);return Number.parseInt(t,e)};t.partial=partial;t.partialRight=partialRight;t.partition=function partition(t,e){const n=[],r=[];for(const o of t)e(o)?n.push(o):r.push(o);return[n,r]};t.pascalCase=function pascalCase(t){return getWords(t).map((t=>capitalize(t))).join("")};t.pick=function pick(t,...e){if(function isNil(t){return null==t}(t))return{};const n={};for(let r of e){switch(typeof r){case"object":Array.isArray(r)||(r=Array.from(r));break;case"string":case"symbol":case"number":r=[r]}for(const e of r){const r=get(t,e);"string"==typeof e&&Object.prototype.hasOwnProperty.call(t,e)?n[e]=r:set(n,e,r)}}return n};t.pickBy=function pickBy(t,e){const n={};for(const[r,o]of Object.entries(t))e(o,r)&&(n[r]=o);return n};t.property=property;t.pullAt=function pullAt(t,e){const n=at(t,e),r=new Set(e.slice().sort(((t,e)=>e-t)));for(const e of r)t.splice(e,1);return n};t.random=random;t.randomInt=randomInt;t.range=function range(t,e,n){if(null==e){e=t;t=0}null==n&&(n=1);if(!Number.isInteger(n)||0===n)throw new Error("The step value must be a non-zero integer.");const r=Math.max(Math.ceil((e-t)/n),0),o=new Array(r);for(let e=0;e<r;e++)o[e]=t+e*n;return o};t.rearg=function rearg(t,...e){const n=flatten(e);return function(...e){const r=n.map((t=>e[t])).slice(0,e.length);for(let t=r.length;t<e.length;t++)r.push(e[t]);return t.apply(this,r)}};t.repeat=function repeat(t,e){return t.repeat(e)};t.rest=function rest(t,e=t.length-1){e=Number.parseInt(e,10);(Number.isNaN(e)||e<0)&&(e=t.length-1);return function rest$1(t,e=t.length-1){return function(...n){const r=n.slice(e),o=n.slice(0,e);for(;o.length<e;)o.push(void 0);return t.apply(this,[...o,r])}}(t,e)};t.round=function round(t,e=0){return decimalAdjust("round",t,e)};t.sample=function sample(t){return t[Math.floor(Math.random()*t.length)]};t.sampleSize=function sampleSize(t,e){if(e>t.length)throw new Error("Size must be less than or equal to the length of array.");const n=new Array(e),r=new Set;for(let o=t.length-e,i=0;o<t.length;o++,i++){let e=randomInt(0,o+1);r.has(e)&&(e=o);r.add(e);n[i]=t[e]}return n};t.set=set;t.shuffle=function shuffle(t){const e=t.slice();for(let t=e.length-1;t>=1;t--){const n=Math.floor(Math.random()*(t+1));[e[t],e[n]]=[e[n],e[t]]}return e};t.size=function size(t){return isNil$1(t)?0:t instanceof Map||t instanceof Set?t.size:Object.keys(t).length};t.snakeCase=function snakeCase(t){return function snakeCase$1(t){return getWords(t).map((t=>t.toLowerCase())).join("_")}(normalizeForCase(t))};t.some=function some(t,e,n){null!=n&&(e=void 0);e||(e=identity);if(!Array.isArray(t))return!1;switch(typeof e){case"function":return t.some(e);case"object":if(Array.isArray(e)&&2===e.length){const n=e[0],r=e[1];return t.some(matchesProperty(n,r))}return t.some(matches(e));case"string":return t.some(property(e))}};t.sortBy=function sortBy(t,e){return orderBy(t,e,["asc"])};t.spread=function spread(t,e=0){e=Number.parseInt(e,10);(Number.isNaN(e)||e<0)&&(e=0);return function(...n){const r=n[e],o=n.slice(0,e);r&&o.push(...r);return t.apply(this,o)}};t.startCase=function startCase(t){return function startCase$1(t){const e=getWords(t.trim());let n="";for(const t of e){n&&(n+=" ");t===t.toUpperCase()?n+=t:n+=t[0].toUpperCase()+t.slice(1).toLowerCase()}return n}(normalizeForCase(t))};t.startsWith=function startsWith(t,e,n=0){return t.startsWith(e,n)};t.sum=sum;t.sumBy=function sumBy(t,e){return sum(t.map((t=>e(t))))};t.tail=function tail(t){return t.slice(1)};t.take=function take(t,e){return t.slice(0,e)};t.takeRight=function takeRight(t,e=1){return e<=0?[]:t.slice(-e)};t.takeRightWhile=function takeRightWhile(t,e){for(let n=t.length-1;n>=0;n--)if(!e(t[n]))return t.slice(n+1);return t.slice()};t.takeWhile=function takeWhile(t,e){const n=[];for(const r of t){if(!e(r))break;n.push(r)}return n};t.throttle=function throttle(t,e){let n;return function(...r){const o=Date.now();if(null==n||o-n>=e){n=o;t(...r)}}};t.timeout=timeout;t.toFilled=function toFilled(t,e,n=0,r=t.length){const o=t.length,i=Math.max(n>=0?n:o+n,0),c=Math.min(r>=0?r:o+r,o),u=t.slice();for(let t=i;t<c;t++)u[t]=e;return u};t.toMerged=function toMerged(t,e){return merge$1(cloneDeep$1(t),e)};t.toPath=toPath;t.toString=toString;t.trim=function trim(t,e,n){if(null==t)return"";if(null!=n||null==e)return t.toString().trim();switch(typeof e){case"string":return trim$1(t,e.toString().split(""));case"object":return Array.isArray(e)?trim$1(t,e.map((t=>t.toString()))):trim$1(t,e.toString().split(""))}};t.trimEnd=function trimEnd(t,e,n){if(null==t)return"";if(null!=n||null==e)return t.toString().trimEnd();switch(typeof e){case"string":return trimEnd$1(t,e.toString().split(""));case"object":return Array.isArray(e)?trimEnd$1(t,e.map((t=>t.toString()))):trimEnd$1(t,e.toString().split(""))}};t.trimStart=function trimStart(t,e,n){if(null==t)return"";if(null!=n||null==e)return t.toString().trimStart();switch(typeof e){case"string":return trimStart$1(t,e.toString().split(""));case"object":return Array.isArray(e)?trimStart$1(t,e.map((t=>t.toString()))):trimStart$1(t,e.toString().split(""))}};t.unary=function unary(t){return ary$1(t,1)};t.unescape=function unescape(t){return t.replace(/&(?:amp|lt|gt|quot|#(0+)?39);/g,(t=>W[t]||"'"))};t.union=union;t.unionBy=unionBy;t.unionWith=unionWith;t.uniq=uniq;t.uniqBy=function uniqBy(t,e){const n=new Map;for(const r of t){const t=e(r);n.has(t)||n.set(t,r)}return Array.from(n.values())};t.uniqWith=uniqWith;t.unset=unset;t.unzip=function unzip(t){let e=0;for(let n=0;n<t.length;n++)t[n].length>e&&(e=t[n].length);const n=new Array(e);for(let r=0;r<e;r++){n[r]=new Array(t.length);for(let e=0;e<t.length;e++)n[r][e]=t[e][r]}return n};t.unzipWith=function unzipWith(t,e){const n=Math.max(...t.map((t=>t.length))),r=new Array(n);for(let o=0;o<n;o++){const n=new Array(t.length);for(let e=0;e<t.length;e++)n[e]=t[e][o];r[o]=e(...n)}return r};t.upperCase=function upperCase(t){const e=getWords(t);let n="";for(let t=0;t<e.length;t++){n+=e[t].toUpperCase();t<e.length-1&&(n+=" ")}return n};t.upperFirst=function upperFirst(t){return t.substring(0,1).toUpperCase()+t.substring(1)};t.withTimeout=async function withTimeout(t,e){return Promise.race([t(),timeout(e)])};t.without=function without(t,...e){const n=new Set(e);return t.filter((t=>!n.has(t)))};t.xor=function xor(t,e){return difference$1(union(t,e),intersection(t,e))};t.xorBy=function xorBy(t,e,n){return differenceBy(unionBy(t,e,n),intersectionBy(t,e,n),n)};t.xorWith=function xorWith(t,e,n){return differenceWith(unionWith(t,e,n),intersectionWith(t,e,n),n)};t.zip=zip;t.zipObject=function zipObject(t,e){const n={};for(let r=0;r<t.length;r++)n[t[r]]=e[r];return n};t.zipObjectDeep=function zipObjectDeep(t,e){const n={},r=zip(t,e);for(let t=0;t<r.length;t++){const[e,o]=r[t];null!=e&&set(n,e,o)}return n};t.zipWith=function zipWith(t,...e){const n=[t,...e.slice(0,-1)],r=e[e.length-1],o=[],i=Math.max(...n.map((t=>t.length)));for(let t=0;t<i;t++){const e=n.map((e=>e[t]));o.push(r(...e))}return o};Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});return t}({});
var _=function(t){"use strict";function at(t,e){const n=[];for(let r=0;r<e.length;r++){const o=e[r];n[r]=t.at(o)}return n}function difference$1(t,e){const n=new Set(e);return t.filter((t=>!n.has(t)))}function differenceBy(t,e,n){const r=new Set(e.map((t=>n(t))));return t.filter((t=>!r.has(n(t))))}function differenceWith(t,e,n){return t.filter((t=>e.every((e=>!n(t,e)))))}function flatten$1(t,e=1){const n=[],r=Math.floor(e),recursive=(t,e)=>{for(const o of t)Array.isArray(o)&&e<r?recursive(o,e+1):n.push(o)};recursive(t,0);return n}function head(t){return t[0]}function intersection(t,e){const n=new Set(e);return t.filter((t=>n.has(t)))}function intersectionBy(t,e,n){const r=new Set(e.map(n));return t.filter((t=>r.has(n(t))))}function intersectionWith(t,e,n){return t.filter((t=>e.some((e=>n(t,e)))))}function random(t,e){if(null==e){e=t;t=0}if(t>=e)throw new Error("Invalid input: The maximum value must be greater than the minimum value.");return Math.random()*(e-t)+t}function randomInt(t,e){return Math.floor(random(t,e))}function uniq(t){return Array.from(new Set(t))}function union(t,e){return uniq(t.concat(e))}function unionBy(t,e,n){const r=new Map;for(const o of[...t,...e]){const t=n(o);r.has(t)||r.set(t,o)}return Array.from(r.values())}function uniqWith(t,e){const n=[];for(const r of t){n.every((t=>!e(t,r)))&&n.push(r)}return n}function unionWith(t,e,n){return uniqWith(t.concat(e),n)}function zip(...t){const e=Math.max(...t.map((t=>t.length))),n=t.length,r=Array(e);for(let o=0;o<e;++o){const e=Array(n);for(let r=0;r<n;++r)e[r]=t[r][o];r[o]=e}return r}class AbortError extends Error{constructor(t="The operation was aborted"){super(t);this.name="AbortError"}}class TimeoutError extends Error{constructor(t="The operation was timed out"){super(t);this.name="TimeoutError"}}function debounce$1(t,e,{signal:n,edges:r}={}){let o,i=null;const c=null!=r&&r.includes("leading"),u=null==r||r.includes("trailing"),invoke=()=>{if(null!==i){t.apply(o,i);o=void 0;i=null}};let s=null;const schedule=()=>{null!=s&&clearTimeout(s);s=setTimeout((()=>{s=null;(()=>{u&&invoke();cancel()})()}),e)},cancelTimer=()=>{if(null!==s){clearTimeout(s);s=null}},cancel=()=>{cancelTimer();o=void 0;i=null},debounced=function(...t){if(n?.aborted)return;o=this;i=t;const e=null==s;schedule();c&&e&&invoke()};debounced.schedule=schedule;debounced.cancel=cancel;debounced.flush=()=>{cancelTimer();invoke()};n?.addEventListener("abort",cancel,{once:!0});return debounced}function noop(){}function ary$1(t,e){return function(...n){return t.apply(this,n.slice(0,e))}}function partial(t,...e){return function(...n){const r=[];let o=0;for(let t=0;t<e.length;t++){const i=e[t];i===partial.placeholder?r.push(n[o++]):r.push(i)}for(let t=o;t<n.length;t++)r.push(n[t]);return t.apply(this,r)}}const e=Symbol("partial.placeholder");partial.placeholder=e;function partialRight(t,...e){return function(...r){const o=e.filter((t=>t===n)).length,i=Math.max(r.length-o,0),c=[];let u=0;for(let t=0;t<i;t++)c.push(r[u++]);for(let t=0;t<e.length;t++){const n=e[t];n===partialRight.placeholder?c.push(r[u++]):c.push(n)}return t.apply(this,c)}}const n=Symbol("partialRight.placeholder");partialRight.placeholder=n;function sum(t){let e=0;for(let n=0;n<t.length;n++)e+=t[n];return e}function mean(t){return sum(t)/t.length}function isTypedArray$1(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function isPrimitive(t){return null==t||"object"!=typeof t&&"function"!=typeof t}function clone(t){if(isPrimitive(t))return t;if(Array.isArray(t)||isTypedArray$1(t)||t instanceof ArrayBuffer||t instanceof SharedArrayBuffer)return t.slice(0);const e=Object.getPrototypeOf(t),n=e.constructor;if(t instanceof Date||t instanceof Map||t instanceof Set)return new n(t);if(t instanceof RegExp){const e=new n(t);e.lastIndex=t.lastIndex;return e}if(t instanceof DataView)return new n(t.buffer.slice(0));if(t instanceof Error){const e=new n(t.message);e.stack=t.stack;e.name=t.name;e.cause=t.cause;return e}if("undefined"!=typeof File&&t instanceof File){return new n([t],t.name,{type:t.type,lastModified:t.lastModified})}if("object"==typeof t){const n=Object.create(e);return Object.assign(n,t)}return t}function isPlainObject$1(t){if("object"!=typeof t)return!1;if(null==t)return!1;if(null===Object.getPrototypeOf(t))return!0;if("[object Object]"!==t.toString())return!1;let e=t;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function flattenObjectImpl(t,e=""){const n={},r=Object.keys(t);for(let o=0;o<r.length;o++){const i=r[o],c=t[i],u=e?`${e}.${i}`:i;if(isPlainObject$1(c)&&Object.keys(c).length>0)Object.assign(n,flattenObjectImpl(c,u));else if(Array.isArray(c))for(let t=0;t<c.length;t++)n[`${u}.${t}`]=c[t];else n[u]=c}return n}function mapKeys$1(t,e){const n={},r=Object.keys(t);for(let o=0;o<r.length;o++){const i=r[o],c=t[i];n[e(c,i,t)]=c}return n}function mapValues$1(t,e){const n={},r=Object.keys(t);for(let o=0;o<r.length;o++){const i=r[o],c=t[i];n[i]=e(c,i,t)}return n}function cloneDeep$1(t){return cloneDeepImpl(t)}function cloneDeepImpl(t,e=new Map){if(isPrimitive(t))return t;if(e.has(t))return e.get(t);if(Array.isArray(t)){const n=new Array(t.length);e.set(t,n);for(let r=0;r<t.length;r++)n[r]=cloneDeepImpl(t[r],e);Object.prototype.hasOwnProperty.call(t,"index")&&(n.index=t.index);Object.prototype.hasOwnProperty.call(t,"input")&&(n.input=t.input);return n}if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp){const e=new RegExp(t.source,t.flags);e.lastIndex=t.lastIndex;return e}if(t instanceof Map){const n=new Map;e.set(t,n);for(const[r,o]of t.entries())n.set(r,cloneDeepImpl(o,e));return n}if(t instanceof Set){const n=new Set;e.set(t,n);for(const r of t.values())n.add(cloneDeepImpl(r,e));return n}if("undefined"!=typeof Buffer&&Buffer.isBuffer(t))return t.subarray();if(isTypedArray$1(t)){const n=new(Object.getPrototypeOf(t).constructor)(t.length);e.set(t,n);for(let r=0;r<t.length;r++)n[r]=cloneDeepImpl(t[r],e);return n}if(t instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&t instanceof SharedArrayBuffer)return t.slice(0);if(t instanceof DataView){const n=new DataView(t.buffer.slice(0));e.set(t,n);copyProperties(n,t,e);return n}if("undefined"!=typeof File&&t instanceof File){const n=new File([t],t.name,{type:t.type});e.set(t,n);copyProperties(n,t,e);return n}if(t instanceof Blob){const n=new Blob([t],{type:t.type});e.set(t,n);copyProperties(n,t,e);return n}if(t instanceof Error){const n=new t.constructor;e.set(t,n);n.message=t.message;n.name=t.name;n.stack=t.stack;n.cause=t.cause;copyProperties(n,t,e);return n}if("object"==typeof t&&null!==t){const n={};e.set(t,n);copyProperties(n,t,e);return n}return t}function copyProperties(t,e,n){const r=Object.keys(e);for(let o=0;o<r.length;o++){const i=r[o],c=Object.getOwnPropertyDescriptor(e,i);(c?.writable||c?.set)&&(t[i]=cloneDeepImpl(e[i],n))}}function isObjectLike(t){return"object"==typeof t&&null!==t}function merge$1(t,e){const n=Object.keys(e);for(let r=0;r<n.length;r++){const o=n[r],i=e[o],c=t[o];Array.isArray(i)?t[o]=merge$1(c??[],i):isObjectLike(c)&&isObjectLike(i)?t[o]=merge$1(c??{},i):void 0!==c&&void 0===i||(t[o]=i)}return t}const r="[object RegExp]",o="[object String]",i="[object Number]",c="[object Boolean]",u="[object Arguments]",s="[object Symbol]",a="[object Date]",l="[object Map]",f="[object Set]",p="[object Array]",y="[object Function]",h="[object ArrayBuffer]",g="[object Object]",m="[object Error]",b="[object DataView]",d="[object Uint8Array]",j="[object Uint8ClampedArray]",A="[object Uint16Array]",O="[object Uint32Array]",w="[object BigUint64Array]",S="[object Int8Array]",$="[object Int16Array]",M="[object Int32Array]",N="[object BigInt64Array]",k="[object Float32Array]",E="[object Float64Array]";function getSymbols(t){return Object.getOwnPropertySymbols(t).filter((e=>Object.prototype.propertyIsEnumerable.call(t,e)))}function getTag(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}function areObjectsEqual(t,e,n){if(Object.is(t,e))return!0;let v=getTag(t),x=getTag(e);v===u&&(v=g);x===u&&(x=g);if(v!==x)return!1;switch(v){case o:return t.toString()===e.toString();case i:{const n=t.valueOf(),r=e.valueOf();return n===r||Number.isNaN(n)&&Number.isNaN(r)}case c:case a:case s:return Object.is(t.valueOf(),e.valueOf());case r:return t.source===e.source&&t.flags===e.flags;case y:return t===e}const B=(n=n??new Map).get(t),P=n.get(e);if(null!=B&&null!=P)return B===e;n.set(t,e);n.set(e,t);try{switch(v){case l:if(t.size!==e.size)return!1;for(const[r,o]of t.entries())if(!e.has(r)||!areObjectsEqual(o,e.get(r),n))return!1;return!0;case f:{if(t.size!==e.size)return!1;const r=Array.from(t.values()),o=Array.from(e.values());for(let t=0;t<r.length;t++){const e=r[t],i=o.findIndex((t=>areObjectsEqual(e,t,n)));if(-1===i)return!1;o.splice(i,1)}return!0}case p:case d:case j:case A:case O:case w:case S:case $:case M:case N:case k:case E:if("undefined"!=typeof Buffer&&Buffer.isBuffer(t)!==Buffer.isBuffer(e))return!1;if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(!areObjectsEqual(t[r],e[r],n))return!1;return!0;case h:return t.byteLength===e.byteLength&&areObjectsEqual(new Uint8Array(t),new Uint8Array(e),n);case b:return t.byteLength===e.byteLength&&t.byteOffset===e.byteOffset&&areObjectsEqual(t.buffer,e.buffer,n);case m:return t.name===e.name&&t.message===e.message;case g:{if(!(areObjectsEqual(t.constructor,e.constructor,n)||isPlainObject$1(t)&&isPlainObject$1(e)))return!1;const r=[...Object.keys(t),...getSymbols(t)],o=[...Object.keys(e),...getSymbols(e)];if(r.length!==o.length)return!1;for(let o=0;o<r.length;o++){const i=r[o],c=t[i];if(!Object.prototype.hasOwnProperty.call(e,i))return!1;if(!areObjectsEqual(c,e[i],n))return!1}return!0}default:return!1}}finally{n.delete(t);n.delete(e)}}function isNil$1(t){return null==t}function isLength(t){return Number.isSafeInteger(t)&&t>=0}function delay(t,{signal:e}={}){return new Promise(((n,r)=>{const abortError=()=>{r(new AbortError)},abortHandler=()=>{clearTimeout(o);abortError()};if(e?.aborted)return abortError();const o=setTimeout((()=>{e?.removeEventListener("abort",abortHandler);n()}),t);e?.addEventListener("abort",abortHandler,{once:!0})}))}async function timeout(t){await delay(t);throw new TimeoutError}function capitalize(t){return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}const v=/[A-Z]?[a-z]+|[0-9]+|[A-Z]+(?![a-z])/g;function getWords(t){return Array.from(t.match(v)??[])}function trimStart$1(t,e){if(void 0===e)return t.trimStart();let n=0;switch(typeof e){case"string":for(;n<t.length&&t[n]===e;)n++;break;case"object":for(;n<t.length&&e.includes(t[n]);)n++}return t.substring(n)}function trimEnd$1(t,e){if(void 0===e)return t.trimEnd();let n=t.length;switch(typeof e){case"string":for(;n>0&&t[n-1]===e;)n--;break;case"object":for(;n>0&&e.includes(t[n-1]);)n--}return t.substring(0,n)}function trim$1(t,e){return void 0===e?t.trim():trimStart$1(trimEnd$1(t,e),e)}const x=new Map(Object.entries({Æ:"Ae",Ð:"D",Ø:"O",Þ:"Th",ß:"ss",æ:"ae",ð:"d",ø:"o",þ:"th",Đ:"D",đ:"d",Ħ:"H",ħ:"h",ı:"i",IJ:"IJ",ij:"ij",ĸ:"k",Ŀ:"L",ŀ:"l",Ł:"L",ł:"l",ʼn:"'n",Ŋ:"N",ŋ:"n",Œ:"Oe",œ:"oe",Ŧ:"T",ŧ:"t",ſ:"s"}));const B={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};const P={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"};function isDeepKey(t){switch(typeof t){case"number":case"symbol":return!1;case"string":return t.includes(".")||t.includes("[")||t.includes("]")}}function toKey(t){return Object.is(t,-0)?"-0":t.toString()}const W=/^[\w.]+$/g,I=/\\(\\)?/g,D=RegExp("[^.[\\]]+|\\[(?:([^\"'][^[]*)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))","g");function toPath(t){if(W.test(t))return t.split(".");const e=[];"."===t[0]&&e.push("");const n=t.matchAll(D);for(const t of n){let n=t[0];const r=t[1],o=t[2],i=t[3];o?n=i.replace(I,"$1"):r&&(n=r);e.push(n)}return e}function get(t,e,n){if(null==t)return n;switch(typeof e){case"string":{const r=t[e];return void 0===r?isDeepKey(e)?get(t,toPath(e),n):n:r}case"number":case"symbol":{"number"==typeof e&&(e=toKey(e));const r=t[e];return void 0===r?n:r}default:{if(Array.isArray(e))return function getWithPath(t,e,n){if(0===e.length)return n;let r=t;for(let t=0;t<e.length;t++){if(null==r)return n;r=r[e[t]]}if(void 0===r)return n;return r}(t,e,n);const r=t[e=Object.is(e?.valueOf(),-0)?"-0":String(e)];return void 0===r?n:r}}}function property(t){return function(e){return get(e,t)}}function isMatch(t,e){if(e===t)return!0;switch(typeof e){case"object":{if(null==e)return!0;const n=Object.keys(e);if(null==t)return 0===n.length;if(Array.isArray(e))return isArrayMatch(t,e);if(e instanceof Map)return function isMapMatch(t,e){if(0===e.size)return!0;if(!(t instanceof Map))return!1;for(const[n,r]of e.entries())if(!isMatch(t.get(n),r))return!1;return!0}(t,e);if(e instanceof Set)return function isSetMatch(t,e){if(0===e.size)return!0;if(!(t instanceof Set))return!1;return isArrayMatch([...t],[...e])}(t,e);for(let r=0;r<n.length;r++){const o=n[r];if(!isPrimitive(t)&&!(o in t))return!1;if(void 0===e[o]&&void 0!==t[o])return!1;if(!isMatch(t[o],e[o]))return!1}return!0}case"function":return Object.keys(e).length>0&&isMatch(t,{...e});default:return!e}}function isArrayMatch(t,e){if(0===e.length)return!0;if(!Array.isArray(t))return!1;const n=new Set;for(let r=0;r<e.length;r++){const o=e[r],i=t.findIndex(((t,e)=>isMatch(t,o)&&!n.has(e)));if(-1===i)return!1;n.add(i)}return!0}function matches(t){t=cloneDeep$1(t);return e=>isMatch(e,t)}function cloneDeep(t){if("object"!=typeof t)return cloneDeep$1(t);switch(Object.prototype.toString.call(t)){case i:case o:case c:{const e=new t.constructor(t?.valueOf());copyProperties(e,t);return e}case u:{const e={};copyProperties(e,t);e.length=t.length;e[Symbol.iterator]=t[Symbol.iterator];return e}default:return cloneDeep$1(t)}}const C=/^(?:0|[1-9]\d*)$/;function isIndex(t){switch(typeof t){case"number":return Number.isInteger(t)&&t>=0&&t<Number.MAX_SAFE_INTEGER;case"symbol":return!1;case"string":return C.test(t)}}function isArguments(t){return null!==t&&"object"==typeof t&&"[object Arguments]"===getTag(t)}function has(t,e){let n;n=Array.isArray(e)?e:"string"==typeof e&&isDeepKey(e)&&null==t?.[e]?toPath(e):[e];if(0===n.length)return!1;let r=t;for(let t=0;t<n.length;t++){const e=n[t];if(null==r||!Object.prototype.hasOwnProperty.call(r,e)){if(!((Array.isArray(r)||isArguments(r))&&isIndex(e)&&e<r.length))return!1}r=r[e]}return!0}function matchesProperty(t,e){switch(typeof t){case"object":Object.is(t?.valueOf(),-0)&&(t="-0");break;case"number":t=toKey(t)}e=cloneDeep(e);return function(n){const r=get(n,t);return void 0===r?has(n,t):void 0===e?void 0===r:isMatch(r,e)}}function flatten(t,e=1){const n=[],r=Math.floor(e);if(!Array.isArray(t))return n;const recursive=(t,e)=>{for(const o of t)e<r&&(Array.isArray(o)||Boolean(o?.[Symbol.isConcatSpreadable])||null!==o&&"object"==typeof o&&"[object Arguments]"===Object.prototype.toString.call(o))?Array.isArray(o)?recursive(o,e+1):recursive(Array.from(o),e+1):n.push(o)};recursive(t,0);return n}function getPriority(t){return"symbol"==typeof t?1:null===t?2:void 0===t?3:t!=t?4:0}const compareValues=(t,e,n)=>{if(t!==e){if("string"==typeof t&&"string"==typeof e)return"desc"===n?e.localeCompare(t):t.localeCompare(e);const r=getPriority(t),o=getPriority(e);if(r===o&&0===r){if(t<e)return"desc"===n?1:-1;if(t>e)return"desc"===n?-1:1}return"desc"===n?o-r:r-o}return 0};function isSymbol(t){return"symbol"==typeof t||null!=t&&t instanceof Symbol}const z=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,T=/^\w*$/;function orderBy(t,e,n){if(null==t||"number"==typeof t)return[];"object"!=typeof t||Array.isArray(t)||(t=Object.values(t));Array.isArray(e)||(e=null==e?[null]:[e]);Array.isArray(n)||(n=null==n?[]:[n]);n=n.map((t=>String(t)));const getValueByNestedPath=(t,e)=>{let n=t;for(let t=0;t<e.length&&null!=n;++t)n=n[e[t]];return n},r=e.map((t=>{Array.isArray(t)&&1===t.length&&(t=t[0]);return null==t||"function"==typeof t||Array.isArray(t)||function isKey(t,e){return!Array.isArray(t)&&(!("number"!=typeof t&&"boolean"!=typeof t&&null!=t&&!isSymbol(t))||"string"==typeof t&&(T.test(t)||!z.test(t))||null!=e)}(t)?t:{key:t,path:toPath(t)}}));return t.map((t=>({original:t,criteria:r.map((e=>((t,e)=>null==e||null==t?e:"object"==typeof t&&"key"in t?Object.hasOwn(e,t.key)?e[t.key]:getValueByNestedPath(e,t.path):"function"==typeof t?t(e):Array.isArray(t)?getValueByNestedPath(e,t):"object"==typeof e?e[t]:e)(e,t)))}))).slice().sort(((t,e)=>{for(let o=0;o<r.length;o++){const r=compareValues(t.criteria[o],e.criteria[o],n[o]);if(0!==r)return r}return 0})).map((t=>t.original))}function identity(t){return t}function set(t,e,n){const r=Array.isArray(e)?e:"string"==typeof e?toPath(e):[e];let o=t;for(let t=0;t<r.length-1;t++){const e=r[t],n=r[t+1];null==o[e]&&(o[e]=isIndex(n)?[]:{});o=o[e]}o[r[r.length-1]]=n;return t}function bind(t,e,...n){const bound=function(...r){const o=[];let i=0;for(let t=0;t<n.length;t++){const e=n[t];e===bind.placeholder?o.push(r[i++]):o.push(e)}for(let t=i;t<r.length;t++)o.push(r[t]);return this instanceof bound?new t(...o):t.apply(e,o)};return bound}const L=Symbol("bind.placeholder");bind.placeholder=L;function bindKey(t,e,...n){const bound=function(...r){const o=[];let i=0;for(let t=0;t<n.length;t++){const e=n[t];e===bindKey.placeholder?o.push(r[i++]):o.push(e)}for(let t=i;t<r.length;t++)o.push(r[t]);return this instanceof bound?new t[e](...o):t[e].apply(t,o)};return bound}const R=Symbol("bindKey.placeholder");bindKey.placeholder=R;function curry(t,e=t.length,n){e=n?t.length:e;e=Number.parseInt(e,10);(Number.isNaN(e)||e<1)&&(e=0);const wrapper=function(...n){const r=replaceHolders(n),o=n.length-r.length;return o<e?makeCurry(t,r,e-o,n):this instanceof wrapper?new t(...n):t.apply(this,n)};wrapper.placeholder=q;return wrapper}function makeCurry(t,e,n,r){function wrapper(...o){const i=o.filter((t=>t===curry.placeholder)).length,c=o.length-i;o=function composeArgs(t,e,n){const r=[...e],o=t.length,i=n.length;let c=-1,u=e.length,s=Math.max(o-i,0);for(;++c<i;)c<o&&(r[n[c]]=t[c]);for(;s--;)r[u++]=t[c++];return r}(o,r,e);if(c<n){const e=replaceHolders(o);return makeCurry(t,e,n-c,o)}return this instanceof wrapper?new t(...o):t.apply(this,o)}wrapper.placeholder=q;return wrapper}function replaceHolders(t){const e=[];for(let n=0;n<t.length;n++)t[n]===curry.placeholder&&e.push(n);return e}const q=Symbol("curry.placeholder");curry.placeholder=q;function debounce(t,e=0,n={}){"object"!=typeof n&&(n={});const{signal:r,leading:o=!1,trailing:i=!0,maxWait:c}=n,u=Array(2);o&&(u[0]="leading");i&&(u[1]="trailing");let s,a=null;const l=debounce$1((function(...e){s=t.apply(this,e);a=null}),e,{signal:r,edges:u}),debounced=function(...e){if(null!=c)if(null===a)a=Date.now();else if(Date.now()-a>=c){s=t.apply(this,e);a=Date.now();l.cancel();l.schedule();return s}l.apply(this,e);return s};debounced.cancel=l.cancel;debounced.flush=()=>{l.flush();return s};return debounced}function unset(t,e){if(null==t)return!0;switch(typeof e){case"symbol":case"number":case"object":if(Array.isArray(e))return unsetWithPath(t,e);"number"==typeof e?e=toKey(e):"object"==typeof e&&(e=Object.is(e?.valueOf(),-0)?"-0":String(e));if(void 0===t?.[e])return!0;try{delete t[e];return!0}catch{return!1}case"string":if(void 0===t?.[e]&&isDeepKey(e))return unsetWithPath(t,toPath(e));try{delete t[e];return!0}catch{return!1}}}function unsetWithPath(t,e){const n=get(t,e.slice(0,-1),t),r=e[e.length-1];if(void 0===n?.[r])return!0;try{delete n[r];return!0}catch{return!1}}function isPlainObject(t){if("object"!=typeof t)return!1;if(null==t)return!1;if(null===Object.getPrototypeOf(t))return!0;if("[object Object]"!==Object.prototype.toString.call(t)){const e=t[Symbol.toStringTag];if(null==e)return!1;return!!Object.getOwnPropertyDescriptor(t,Symbol.toStringTag)?.writable&&t.toString()===`[object ${e}]`}let e=t;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function isTypedArray(t){return isTypedArray$1(t)}function mergeWith(t,...e){const n=e.slice(0,-1),r=e[e.length-1];let o=t;for(let e=0;e<n.length;e++){o=mergeWithDeep(t,n[e],r,new Map)}return o}function mergeWithDeep(t,e,n,r){if(null==e||"object"!=typeof e)return t;if(r.has(e))return clone(r.get(e));r.set(e,t);if(Array.isArray(e)){e=e.slice();for(let t=0;t<e.length;t++)e[t]=e[t]??void 0}const o=[...Object.keys(e),...getSymbols(e)];for(let i=0;i<o.length;i++){const c=o[i];let u=e[c],s=t[c];isArguments(u)&&(u={...u});isArguments(s)&&(s={...s});"undefined"!=typeof Buffer&&Buffer.isBuffer(u)&&(u=cloneDeep(u));if(Array.isArray(u))if("object"==typeof s){const t=[],e=Reflect.ownKeys(s);for(let n=0;n<e.length;n++){const r=e[n];t[r]=s[r]}s=t}else s=[];const a=n(s,u,c,t,e,r);null!=a?t[c]=a:Array.isArray(u)||isObjectLike(s)&&isObjectLike(u)?t[c]=mergeWithDeep(s,u,n,r):null==s&&isPlainObject(u)?t[c]=mergeWithDeep({},u,n,r):null==s&&isTypedArray(u)?t[c]=cloneDeep(u):void 0!==s&&void 0===u||(t[c]=u)}return t}function isArrayLike(t){return null!=t&&"function"!=typeof t&&isLength(t.length)}function conformsTo(t,e){if(null==e)return!0;if(null==t)return 0===Object.keys(e).length;for(const n of Object.keys(e)){const r=e[n],o=t[n];if(void 0===o&&!(n in t)||!r(o))return!1}return!0}function toString(t){if(null==t)return"";if(Array.isArray(t))return t.map(toString).join(",");const e=String(t);return"0"===e&&Object.is(Number(t),-0)?"-0":e}function normalizeForCase(t){"string"!=typeof t&&(t=toString(t));return t.replace(/['\u2019]/g,"")}function decimalAdjust(t,e,n=0){e=Number(e);Object.is(e,-0)&&(e="-0");if(n=Math.min(Number.parseInt(n,10),292)){const[r,o=0]=e.toString().split("e");let i=Math[t](Number(`${r}e${Number(o)+n}`));Object.is(i,-0)&&(i="-0");const[c,u=0]=i.toString().split("e");return Number(`${c}e${Number(u)-n}`)}return Math[t](Number(e))}t.AbortError=AbortError;t.TimeoutError=TimeoutError;t.after=function after(t,e){if(!Number.isInteger(t)||t<0)throw new Error("n must be a non-negative integer.");let n=0;return(...r)=>{if(++n>=t)return e(...r)}};t.ary=function ary(t,e=t.length,n){n&&(e=t.length);(Number.isNaN(e)||e<0)&&(e=0);return ary$1(t,e)};t.at=at;t.attempt=function attempt(t,...e){try{return t(...e)}catch(t){return t instanceof Error?t:new Error(t)}};t.before=function before(t,e){if(!Number.isInteger(t)||t<0)throw new Error("n must be a non-negative integer.");let n=0;return(...r)=>{if(++n<t)return e(...r)}};t.bind=bind;t.bindKey=bindKey;t.camelCase=function camelCase(t){return function camelCase$1(t){const e=getWords(t);if(0===e.length)return"";const[n,...r]=e;return`${n.toLowerCase()}${r.map((t=>capitalize(t))).join("")}`}(normalizeForCase(t))};t.capitalize=capitalize;t.castArray=function castArray(t){return 0===arguments.length?[]:Array.isArray(t)?t:[t]};t.ceil=function ceil(t,e=0){return decimalAdjust("ceil",t,e)};t.chunk=function chunk(t,e=1){return 0===(e=Math.max(Math.floor(e),0))?[]:function chunk$1(t,e){if(!Number.isInteger(e)||e<=0)throw new Error("Size must be an integer greater than zero.");const n=Math.ceil(t.length/e),r=Array(n);for(let o=0;o<n;o++){const n=o*e,i=n+e;r[o]=t.slice(n,i)}return r}(t,e)};t.clamp=function clamp(t,e,n){Number.isNaN(e)&&(e=0);Number.isNaN(n)&&(n=0);return function clamp$1(t,e,n){return null==n?Math.min(t,e):Math.min(Math.max(t,e),n)}(t,e,n)};t.clone=clone;t.cloneDeep=cloneDeep$1;t.compact=function compact(t){const e=[];for(const n of t)n&&e.push(n);return e};t.concat=function concat(...t){return flatten$1(t)};t.conforms=function conforms(t){t=cloneDeep$1(t);return function(e){return conformsTo(e,t)}};t.conformsTo=conformsTo;t.countBy=function countBy(t,e){const n={};for(const r of t){const t=e(r);n[t]=(n[t]??0)+1}return n};t.curry=curry;t.debounce=debounce;t.deburr=function deburr(t){t=t.normalize("NFD");let e="";for(let n=0;n<t.length;n++){const r=t[n];r>="̀"&&r<="ͯ"||r>="︠"&&r<="︣"||(e+=x.get(r)??r)}return e};t.delay=delay;t.difference=function difference(t,...e){return difference$1(t,flatten$1(e))};t.differenceBy=differenceBy;t.differenceWith=differenceWith;t.drop=function drop(t,e){if(null==t)return[];e=Math.max(e,0);return t.slice(e)};t.dropRight=function dropRight(t,e){return 0===(e=Math.min(-e,0))?t.slice():t.slice(0,e)};t.dropRightWhile=function dropRightWhile(t,e){for(let n=t.length-1;n>=0;n--)if(!e(t[n]))return t.slice(0,n+1);return[]};t.dropWhile=function dropWhile(t,e){const n=t.findIndex((t=>!e(t)));return-1===n?[]:t.slice(n)};t.endsWith=function endsWith(t,e,n=t.length){return t.endsWith(e,n)};t.escape=function escape(t){return t.replace(/[&<>"']/g,(t=>B[t]))};t.escapeRegExp=function escapeRegExp(t){return t.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")};t.fill=function fill(t,e,n=0,r=t.length){(n=Math.floor(n))||(n=0);(r=Math.floor(r))||(r=0);return function fill$1(t,e,n=0,r=t.length){const o=t.length,i=Math.max(n>=0?n:o+n,0),c=Math.min(r>=0?r:o+r,o);for(let n=i;n<c;n++)t[n]=e;return t}(t,e,n,r)};t.find=function find(t,e){let n=t;Array.isArray(t)||(n=Object.values(t));switch(typeof e){case"function":if(!Array.isArray(t)){const n=Object.entries(t);for(let r=0;r<n.length;r++){const o=n[r],i=o[0],c=o[1];if(e(c,i,t))return c}return}return n.find(e);case"object":if(Array.isArray(e)&&2===e.length){const t=e[0],r=e[1];return n.find(matchesProperty(t,r))}return n.find(matches(e));case"string":return n.find(property(e))}};t.findIndex=function findIndex(t,e){switch(typeof e){case"function":return t.findIndex(e);case"object":if(Array.isArray(e)&&2===e.length){const n=e[0],r=e[1];return t.findIndex(matchesProperty(n,r))}return t.findIndex(matches(e));case"string":return t.findIndex(property(e))}};t.findLastIndex=function findLastIndex(t,e,n=t.length-1){n=n<0?Math.max(t.length+n,0):Math.min(n,t.length-1);t=t.slice(0,n+1);switch(typeof e){case"function":return t.findLastIndex(e);case"object":if(Array.isArray(e)&&2===e.length){const n=e[0],r=e[1];return t.findLastIndex(matchesProperty(n,r))}return t.findLastIndex(matches(e));case"string":return t.findLastIndex(property(e))}};t.first=head;t.flatMap=function flatMap(t,e,n=1){return flatten$1(t.map((t=>e(t))),n)};t.flatMapDeep=function flatMapDeep(t,e){return function flattenDeep$1(t){return flatten$1(t,1/0)}(t.map((t=>e(t))))};t.flatten=flatten;t.flattenDeep=function flattenDeep(t){return flatten(t,1/0)};t.flattenDepth=function flattenDepth(t,e=1){return flatten(t,e)};t.flattenObject=function flattenObject(t){return flattenObjectImpl(t)};t.floor=function floor(t,e=0){return decimalAdjust("floor",t,e)};t.forEachRight=function forEachRight(t,e){for(let n=t.length-1;n>=0;n--){e(t[n],n,t)}};t.fromPairs=function fromPairs(t){if(!(isArrayLike(t)||t instanceof Map))return{};const e={};for(const[n,r]of t)e[n]=r;return e};t.get=get;t.groupBy=function groupBy(t,e){const n=Object.create(null);for(const r of t){const t=e(r);null==n[t]&&(n[t]=[]);n[t].push(r)}return n};t.has=has;t.head=head;t.inRange=function inRange(t,e,n){if(null==n){n=e;e=0}if(e>=n)throw new Error("The maximum value must be greater than the minimum value.");return e<=t&&t<n};t.indexOf=function indexOf(t,e,n){if(null==t)return-1;if(Number.isNaN(e)){(n=n??0)<0&&(n=Math.max(0,t.length+n));for(let e=n;e<t.length;e++)if(Number.isNaN(t[e]))return e;return-1}return t.indexOf(e,n)};t.initial=function initial(t){return t.slice(0,-1)};t.intersection=intersection;t.intersectionBy=intersectionBy;t.intersectionWith=intersectionWith;t.invert=function invert(t){const e={},n=Object.keys(t);for(let r=0;r<n.length;r++){const o=n[r];e[t[o]]=o}return e};t.isArguments=isArguments;t.isArray=function isArray(t){return Array.isArray(t)};t.isArrayLike=isArrayLike;t.isBoolean=function isBoolean(t){return!0===t||!1===t||"object"==typeof t&&null!=t&&"[object Boolean]"===getTag(t)};t.isDate=function isDate(t){return t instanceof Date};t.isEqual=function isEqual(t,e){if(typeof t==typeof e)switch(typeof t){case"bigint":case"string":case"boolean":case"symbol":case"undefined":case"function":return t===e;case"number":return t===e||Object.is(t,e);case"object":return areObjectsEqual(t,e)}return areObjectsEqual(t,e)};t.isFunction=function isFunction(t){return"function"==typeof t};t.isInteger=function isInteger(t){return Number.isInteger(t)};t.isLength=isLength;t.isMatch=isMatch;t.isNaN=function isNaN(t){return Number.isNaN(t)};t.isNil=isNil$1;t.isNotNil=function isNotNil(t){return null!=t};t.isNull=function isNull(t){return null===t};t.isNumber=function isNumber(t){return"object"==typeof t&&null!=t&&"[object Number]"===getTag(t)||"number"==typeof t};t.isObject=function isObject(t){return null!==t&&("object"==typeof t||"function"==typeof t)};t.isObjectLike=isObjectLike;t.isPlainObject=isPlainObject;t.isPrimitive=isPrimitive;t.isRegExp=function isRegExp(t){return"[object RegExp]"===getTag(t)};t.isSafeInteger=function isSafeInteger(t){return Number.isSafeInteger(t)};t.isString=function isString(t){return"string"==typeof t||"object"==typeof t&&null!=t&&"[object String]"===getTag(t)};t.isSubset=function isSubset(t,e){return 0===difference$1(e,t).length};t.isSymbol=isSymbol;t.isTypedArray=isTypedArray;t.isUndefined=function isUndefined(t){return void 0===t};t.isWeakMap=function isWeakMap(t){return function isWeakMap$1(t){return t instanceof WeakMap}(t)};t.isWeakSet=function isWeakSet(t){return function isWeakSet$1(t){return t instanceof WeakSet}(t)};t.join=function join(t,e=","){return t.join(e)};t.kebabCase=function kebabCase(t){return function kebabCase$1(t){return getWords(t).map((t=>t.toLowerCase())).join("-")}(normalizeForCase(t))};t.keyBy=function keyBy(t,e){const n={};for(const r of t){n[e(r)]=r}return n};t.last=function last(t){return t[t.length-1]};t.lowerCase=function lowerCase(t){return function lowerCase$1(t){return getWords(t).map((t=>t.toLowerCase())).join(" ")}(normalizeForCase(t))};t.lowerFirst=function lowerFirst(t){return t.substring(0,1).toLowerCase()+t.substring(1)};t.mapKeys=function mapKeys(t,e){switch(typeof(e=e??identity)){case"string":case"symbol":case"number":case"object":return mapKeys$1(t,property(e));case"function":return mapKeys$1(t,e)}};t.mapValues=function mapValues(t,e){switch(typeof(e=e??identity)){case"string":case"symbol":case"number":case"object":return mapValues$1(t,property(e));case"function":return mapValues$1(t,e)}};t.matches=matches;t.matchesProperty=matchesProperty;t.max=function max(t=[]){let e,n=t[0];for(const r of t)if(null==e||r>e){e=r;n=r}return n};t.maxBy=function maxBy(t,e){let n=t[0],r=-1/0;for(const o of t){const t=e(o);if(t>r){r=t;n=o}}return n};t.mean=mean;t.meanBy=function meanBy(t,e){return mean(t.map((t=>e(t))))};t.memoize=function memoize(t,e={}){const{cache:n=new Map,getCacheKey:r}=e,memoizedFn=function(e){const o=r?r(e):e;if(n.has(o))return n.get(o);const i=t.call(this,e);n.set(o,i);return i};memoizedFn.cache=n;return memoizedFn};t.merge=function merge(t,...e){return mergeWith(t,...e,noop)};t.mergeWith=mergeWith;t.min=function min(t=[]){let e,n=t[0];for(const r of t)if(null==e||r<e){e=r;n=r}return n};t.minBy=function minBy(t,e){let n=t[0],r=1/0;for(const o of t){const t=e(o);if(t<r){r=t;n=o}}return n};t.negate=function negate(t){return(...e)=>!t(...e)};t.noop=noop;t.omit=function omit(t,...e){if(null==t)return{};const n=cloneDeep$1(t);for(let t=0;t<e.length;t++){let r=e[t];switch(typeof r){case"object":Array.isArray(r)||(r=Array.from(r));for(let t=0;t<r.length;t++){unset(n,r[t])}break;case"string":case"symbol":case"number":unset(n,r)}}return n};t.omitBy=function omitBy(t,e){const n={};for(const[r,o]of Object.entries(t))e(o,r)||(n[r]=o);return n};t.once=function once(t){let e,n=!1;return function(){if(n)return e;const r=t();n=!0;e=r;return r}};t.orderBy=orderBy;t.pad=function pad(t,e,n=" "){return t.padStart(Math.floor((e-t.length)/2)+t.length,n).padEnd(e,n)};t.padEnd=function padEnd(t,e=0,n=" "){return t.padEnd(e,n)};t.padStart=function padStart(t,e=0,n=" "){return t.padStart(e,n)};t.parseInt=function parseInt(t,e=0,n){n&&(e=0);return Number.parseInt(t,e)};t.partial=partial;t.partialRight=partialRight;t.partition=function partition(t,e){const n=[],r=[];for(const o of t)e(o)?n.push(o):r.push(o);return[n,r]};t.pascalCase=function pascalCase(t){return getWords(t).map((t=>capitalize(t))).join("")};t.pick=function pick(t,...e){if(function isNil(t){return null==t}(t))return{};const n={};for(let r of e){switch(typeof r){case"object":Array.isArray(r)||(r=Array.from(r));break;case"string":case"symbol":case"number":r=[r]}for(const e of r){const r=get(t,e);"string"==typeof e&&Object.prototype.hasOwnProperty.call(t,e)?n[e]=r:set(n,e,r)}}return n};t.pickBy=function pickBy(t,e){const n={};for(const[r,o]of Object.entries(t))e(o,r)&&(n[r]=o);return n};t.property=property;t.pullAt=function pullAt(t,e){const n=at(t,e),r=new Set(e.slice().sort(((t,e)=>e-t)));for(const e of r)t.splice(e,1);return n};t.random=random;t.randomInt=randomInt;t.range=function range(t,e,n){if(null==e){e=t;t=0}null==n&&(n=1);if(!Number.isInteger(n)||0===n)throw new Error("The step value must be a non-zero integer.");const r=Math.max(Math.ceil((e-t)/n),0),o=new Array(r);for(let e=0;e<r;e++)o[e]=t+e*n;return o};t.rearg=function rearg(t,...e){const n=flatten(e);return function(...e){const r=n.map((t=>e[t])).slice(0,e.length);for(let t=r.length;t<e.length;t++)r.push(e[t]);return t.apply(this,r)}};t.repeat=function repeat(t,e){return t.repeat(e)};t.rest=function rest(t,e=t.length-1){e=Number.parseInt(e,10);(Number.isNaN(e)||e<0)&&(e=t.length-1);return function rest$1(t,e=t.length-1){return function(...n){const r=n.slice(e),o=n.slice(0,e);for(;o.length<e;)o.push(void 0);return t.apply(this,[...o,r])}}(t,e)};t.round=function round(t,e=0){return decimalAdjust("round",t,e)};t.sample=function sample(t){return t[Math.floor(Math.random()*t.length)]};t.sampleSize=function sampleSize(t,e){if(e>t.length)throw new Error("Size must be less than or equal to the length of array.");const n=new Array(e),r=new Set;for(let o=t.length-e,i=0;o<t.length;o++,i++){let e=randomInt(0,o+1);r.has(e)&&(e=o);r.add(e);n[i]=t[e]}return n};t.set=set;t.shuffle=function shuffle(t){const e=t.slice();for(let t=e.length-1;t>=1;t--){const n=Math.floor(Math.random()*(t+1));[e[t],e[n]]=[e[n],e[t]]}return e};t.size=function size(t){return isNil$1(t)?0:t instanceof Map||t instanceof Set?t.size:Object.keys(t).length};t.snakeCase=function snakeCase(t){return function snakeCase$1(t){return getWords(t).map((t=>t.toLowerCase())).join("_")}(normalizeForCase(t))};t.some=function some(t,e,n){null!=n&&(e=void 0);e||(e=identity);if(!Array.isArray(t))return!1;switch(typeof e){case"function":return t.some(e);case"object":if(Array.isArray(e)&&2===e.length){const n=e[0],r=e[1];return t.some(matchesProperty(n,r))}return t.some(matches(e));case"string":return t.some(property(e))}};t.sortBy=function sortBy(t,e){return orderBy(t,e,["asc"])};t.spread=function spread(t,e=0){e=Number.parseInt(e,10);(Number.isNaN(e)||e<0)&&(e=0);return function(...n){const r=n[e],o=n.slice(0,e);r&&o.push(...r);return t.apply(this,o)}};t.startCase=function startCase(t){return function startCase$1(t){const e=getWords(t.trim());let n="";for(const t of e){n&&(n+=" ");t===t.toUpperCase()?n+=t:n+=t[0].toUpperCase()+t.slice(1).toLowerCase()}return n}(normalizeForCase(t))};t.startsWith=function startsWith(t,e,n=0){return t.startsWith(e,n)};t.sum=sum;t.sumBy=function sumBy(t,e){return sum(t.map((t=>e(t))))};t.tail=function tail(t){return t.slice(1)};t.take=function take(t,e){return t.slice(0,e)};t.takeRight=function takeRight(t,e=1){return e<=0?[]:t.slice(-e)};t.takeRightWhile=function takeRightWhile(t,e){for(let n=t.length-1;n>=0;n--)if(!e(t[n]))return t.slice(n+1);return t.slice()};t.takeWhile=function takeWhile(t,e){const n=[];for(const r of t){if(!e(r))break;n.push(r)}return n};t.throttle=function throttle(t,e=0,n={}){"object"!=typeof n&&(n={});const{leading:r=!0,trailing:o=!0,signal:i}=n;return debounce(t,e,{leading:r,trailing:o,signal:i,maxWait:e})};t.timeout=timeout;t.toFilled=function toFilled(t,e,n=0,r=t.length){const o=t.length,i=Math.max(n>=0?n:o+n,0),c=Math.min(r>=0?r:o+r,o),u=t.slice();for(let t=i;t<c;t++)u[t]=e;return u};t.toMerged=function toMerged(t,e){return merge$1(cloneDeep$1(t),e)};t.toPath=toPath;t.toString=toString;t.trim=function trim(t,e,n){if(null==t)return"";if(null!=n||null==e)return t.toString().trim();switch(typeof e){case"string":return trim$1(t,e.toString().split(""));case"object":return Array.isArray(e)?trim$1(t,e.map((t=>t.toString()))):trim$1(t,e.toString().split(""))}};t.trimEnd=function trimEnd(t,e,n){if(null==t)return"";if(null!=n||null==e)return t.toString().trimEnd();switch(typeof e){case"string":return trimEnd$1(t,e.toString().split(""));case"object":return Array.isArray(e)?trimEnd$1(t,e.map((t=>t.toString()))):trimEnd$1(t,e.toString().split(""))}};t.trimStart=function trimStart(t,e,n){if(null==t)return"";if(null!=n||null==e)return t.toString().trimStart();switch(typeof e){case"string":return trimStart$1(t,e.toString().split(""));case"object":return Array.isArray(e)?trimStart$1(t,e.map((t=>t.toString()))):trimStart$1(t,e.toString().split(""))}};t.unary=function unary(t){return ary$1(t,1)};t.unescape=function unescape(t){return t.replace(/&(?:amp|lt|gt|quot|#(0+)?39);/g,(t=>P[t]||"'"))};t.union=union;t.unionBy=unionBy;t.unionWith=unionWith;t.uniq=uniq;t.uniqBy=function uniqBy(t,e){const n=new Map;for(const r of t){const t=e(r);n.has(t)||n.set(t,r)}return Array.from(n.values())};t.uniqWith=uniqWith;t.unset=unset;t.unzip=function unzip(t){let e=0;for(let n=0;n<t.length;n++)t[n].length>e&&(e=t[n].length);const n=new Array(e);for(let r=0;r<e;r++){n[r]=new Array(t.length);for(let e=0;e<t.length;e++)n[r][e]=t[e][r]}return n};t.unzipWith=function unzipWith(t,e){const n=Math.max(...t.map((t=>t.length))),r=new Array(n);for(let o=0;o<n;o++){const n=new Array(t.length);for(let e=0;e<t.length;e++)n[e]=t[e][o];r[o]=e(...n)}return r};t.upperCase=function upperCase(t){return function upperCase$1(t){const e=getWords(t);let n="";for(let t=0;t<e.length;t++){n+=e[t].toUpperCase();t<e.length-1&&(n+=" ")}return n}(normalizeForCase(t))};t.upperFirst=function upperFirst(t){return t.substring(0,1).toUpperCase()+t.substring(1)};t.withTimeout=async function withTimeout(t,e){return Promise.race([t(),timeout(e)])};t.without=function without(t,...e){const n=new Set(e);return t.filter((t=>!n.has(t)))};t.xor=function xor(t,e){return difference$1(union(t,e),intersection(t,e))};t.xorBy=function xorBy(t,e,n){return differenceBy(unionBy(t,e,n),intersectionBy(t,e,n),n)};t.xorWith=function xorWith(t,e,n){return differenceWith(unionWith(t,e,n),intersectionWith(t,e,n),n)};t.zip=zip;t.zipObject=function zipObject(t,e){const n={};for(let r=0;r<t.length;r++)n[t[r]]=e[r];return n};t.zipObjectDeep=function zipObjectDeep(t,e){const n={},r=zip(t,e);for(let t=0;t<r.length;t++){const[e,o]=r[t];null!=e&&set(n,e,o)}return n};t.zipWith=function zipWith(t,...e){const n=[t,...e.slice(0,-1)],r=e[e.length-1],o=Math.max(...n.map((t=>t.length))),i=Array(o);for(let t=0;t<o;t++){const e=n.map((e=>e[t]));i[t]=r(...e)}return i};Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});return t}({});
//# sourceMappingURL=browser.global.js.map

@@ -68,3 +68,2 @@ /**

* If a property name or an object is provided it will be used to create a predicate function.
* @param guard
* @returns {boolean} Returns `true` if any element passes the predicate check, else `false`.

@@ -71,0 +70,0 @@ *

@@ -6,3 +6,2 @@ export { at } from '../array/at.js';

export { differenceWith } from '../array/differenceWith.js';
export { drop } from '../array/drop.js';
export { dropRight } from '../array/dropRight.js';

@@ -55,6 +54,4 @@ export { dropRightWhile } from '../array/dropRightWhile.js';

export { after } from '../function/after.js';
export { debounce } from '../function/debounce.js';
export { noop } from '../function/noop.js';
export { once } from '../function/once.js';
export { throttle } from '../function/throttle.js';
export { negate } from '../function/negate.js';

@@ -65,4 +62,2 @@ export { MemoizeCache, memoize } from '../function/memoize.js';

export { partialRight } from '../function/partialRight.js';
export { curry } from '../function/curry.js';
export { clamp } from '../math/clamp.js';
export { inRange } from '../math/inRange.js';

@@ -95,3 +90,2 @@ export { mean } from '../math/mean.js';

export { timeout } from '../promise/timeout.js';
export { upperCase } from '../string/upperCase.js';
export { capitalize } from '../string/capitalize.js';

@@ -110,2 +104,3 @@ export { pascalCase } from '../string/pascalCase.js';

export { difference } from './array/difference.js';
export { drop } from './array/drop.js';
export { fill } from './array/fill.js';

@@ -132,2 +127,5 @@ export { find } from './array/find.js';

export { rearg } from './function/rearg.js';
export { curry } from './function/curry.js';
export { debounce } from './function/debounce.js';
export { throttle } from './function/throttle.js';
export { get } from './object/get.js';

@@ -165,2 +163,4 @@ export { set } from './object/set.js';

export { isSafeInteger } from './predicate/isSafeInteger.js';
export { isNumber } from './predicate/isNumber.js';
export { isNaN } from './predicate/isNaN.js';
export { camelCase } from './string/camelCase.js';

@@ -171,2 +171,3 @@ export { kebabCase } from './string/kebabCase.js';

export { lowerCase } from './string/lowerCase.js';
export { upperCase } from './string/upperCase.js';
export { startsWith } from './string/startsWith.js';

@@ -180,2 +181,3 @@ export { endsWith } from './string/endsWith.js';

export { trimEnd } from './string/trimEnd.js';
export { clamp } from './math/clamp.js';
export { max } from './math/max.js';

@@ -182,0 +184,0 @@ export { min } from './math/min.js';

@@ -5,5 +5,5 @@ 'use strict';

const zipWith = require('../_chunk/zipWith-B-5AMf.js');
const zipWith = require('../_chunk/zipWith-CDtN9Y.js');
const promise_index = require('../_chunk/index-BGZDR9.js');
const curry = require('../_chunk/curry-BmwJrK.js');
const rest$1 = require('../_chunk/rest-pUyjvl.js');
const range = require('../_chunk/range-BXlMmn.js');

@@ -41,2 +41,10 @@ const randomInt = require('../_chunk/randomInt-CF7bZK.js');

function drop(collection, itemsCount) {
if (collection === null || collection === undefined) {
return [];
}
itemsCount = Math.max(itemsCount, 0);
return collection.slice(itemsCount);
}
function fill(array, value, start = 0, end = array.length) {

@@ -435,13 +443,13 @@ start = Math.floor(start);

function findLastIndex(source, doesMatch, fromIndex = source.length - 1) {
function findLastIndex(arr, doesMatch, fromIndex = arr.length - 1) {
if (fromIndex < 0) {
fromIndex = Math.max(source.length + fromIndex, 0);
fromIndex = Math.max(arr.length + fromIndex, 0);
}
else {
fromIndex = Math.min(fromIndex, source.length - 1);
fromIndex = Math.min(fromIndex, arr.length - 1);
}
source = source.slice(0, fromIndex + 1);
arr = arr.slice(0, fromIndex + 1);
switch (typeof doesMatch) {
case 'function': {
return source.findLastIndex(doesMatch);
return arr.findLastIndex(doesMatch);
}

@@ -452,10 +460,10 @@ case 'object': {

const value = doesMatch[1];
return source.findLastIndex(matchesProperty(key, value));
return arr.findLastIndex(matchesProperty(key, value));
}
else {
return source.findLastIndex(matches(doesMatch));
return arr.findLastIndex(matches(doesMatch));
}
}
case 'string': {
return source.findLastIndex(property(doesMatch));
return arr.findLastIndex(property(doesMatch));
}

@@ -728,3 +736,3 @@ }

}
return curry.ary(func, n);
return rest$1.ary(func, n);
}

@@ -789,3 +797,3 @@

}
return curry.rest(func, start);
return rest$1.rest(func, start);
}

@@ -828,2 +836,119 @@

function curry(func, arity = func.length, guard) {
arity = guard ? func.length : arity;
arity = Number.parseInt(arity, 10);
if (Number.isNaN(arity) || arity < 1) {
arity = 0;
}
const wrapper = function (...partials) {
const holders = replaceHolders(partials);
const length = partials.length - holders.length;
if (length < arity) {
return makeCurry(func, holders, arity - length, partials);
}
if (this instanceof wrapper) {
return new func(...partials);
}
return func.apply(this, partials);
};
wrapper.placeholder = curryPlaceholder;
return wrapper;
}
function makeCurry(func, holders, arity, partials) {
function wrapper(...args) {
const holdersCount = args.filter(item => item === curry.placeholder).length;
const length = args.length - holdersCount;
args = composeArgs(args, partials, holders);
if (length < arity) {
const newHolders = replaceHolders(args);
return makeCurry(func, newHolders, arity - length, args);
}
if (this instanceof wrapper) {
return new func(...args);
}
return func.apply(this, args);
}
wrapper.placeholder = curryPlaceholder;
return wrapper;
}
function replaceHolders(args) {
const result = [];
for (let i = 0; i < args.length; i++) {
if (args[i] === curry.placeholder) {
result.push(i);
}
}
return result;
}
function composeArgs(args, partials, holders) {
const result = [...partials];
const argsLength = args.length;
const holdersLength = holders.length;
let argsIndex = -1, leftIndex = partials.length, rangeLength = Math.max(argsLength - holdersLength, 0);
while (++argsIndex < holdersLength) {
if (argsIndex < argsLength) {
result[holders[argsIndex]] = args[argsIndex];
}
}
while (rangeLength--) {
result[leftIndex++] = args[argsIndex++];
}
return result;
}
const curryPlaceholder = Symbol('curry.placeholder');
curry.placeholder = curryPlaceholder;
function debounce(func, debounceMs = 0, options = {}) {
if (typeof options !== 'object') {
options = {};
}
const { signal, leading = false, trailing = true, maxWait } = options;
const edges = Array(2);
if (leading) {
edges[0] = 'leading';
}
if (trailing) {
edges[1] = 'trailing';
}
let result = undefined;
let pendingAt = null;
const _debounced = rest$1.debounce(function (...args) {
result = func.apply(this, args);
pendingAt = null;
}, debounceMs, { signal, edges });
const debounced = function (...args) {
if (maxWait != null) {
if (pendingAt === null) {
pendingAt = Date.now();
}
else {
if (Date.now() - pendingAt >= maxWait) {
result = func.apply(this, args);
pendingAt = Date.now();
_debounced.cancel();
_debounced.schedule();
return result;
}
}
}
_debounced.apply(this, args);
return result;
};
const flush = () => {
_debounced.flush();
return result;
};
debounced.cancel = _debounced.cancel;
debounced.flush = flush;
return debounced;
}
function throttle(func, throttleMs = 0, options = {}) {
if (typeof options !== 'object') {
options = {};
}
const { leading = true, trailing = true, signal } = options;
return debounce(func, throttleMs, { leading, trailing, signal, maxWait: throttleMs });
}
function isNil(x) {

@@ -1095,3 +1220,3 @@ return x == null;

function merge(object, ...sources) {
return mergeWith(object, ...sources, curry.noop);
return mergeWith(object, ...sources, rest$1.noop);
}

@@ -1186,2 +1311,13 @@

function isNumber(value) {
if (typeof value === 'object' && value != null && isWeakSet$1.getTag(value) === '[object Number]') {
return true;
}
return typeof value === 'number';
}
function isNaN(value) {
return Number.isNaN(value);
}
function toString(value) {

@@ -1228,2 +1364,6 @@ if (value == null) {

function upperCase(str) {
return string_index.upperCase(normalizeForCase(str));
}
function startsWith(str, target, position = 0) {

@@ -1315,2 +1455,12 @@ return str.startsWith(target, position);

function clamp(value, bound1, bound2) {
if (Number.isNaN(bound1)) {
bound1 = 0;
}
if (Number.isNaN(bound2)) {
bound2 = 0;
}
return range.clamp(value, bound1, bound2);
}
function max(items = []) {

@@ -1382,3 +1532,2 @@ let maxElement = items[0];

exports.differenceWith = zipWith.differenceWith;
exports.drop = zipWith.drop;
exports.dropRight = zipWith.dropRight;

@@ -1433,15 +1582,11 @@ exports.dropRightWhile = zipWith.dropRightWhile;

exports.withTimeout = promise_index.withTimeout;
exports.after = curry.after;
exports.before = curry.before;
exports.curry = curry.curry;
exports.debounce = curry.debounce;
exports.memoize = curry.memoize;
exports.negate = curry.negate;
exports.noop = curry.noop;
exports.once = curry.once;
exports.partial = curry.partial;
exports.partialRight = curry.partialRight;
exports.throttle = curry.throttle;
exports.unary = curry.unary;
exports.clamp = range.clamp;
exports.after = rest$1.after;
exports.before = rest$1.before;
exports.memoize = rest$1.memoize;
exports.negate = rest$1.negate;
exports.noop = rest$1.noop;
exports.once = rest$1.once;
exports.partial = rest$1.partial;
exports.partialRight = rest$1.partialRight;
exports.unary = rest$1.unary;
exports.inRange = range.inRange;

@@ -1480,3 +1625,2 @@ exports.mean = range.mean;

exports.unescape = string_index.unescape;
exports.upperCase = string_index.upperCase;
exports.upperFirst = string_index.upperFirst;

@@ -1491,6 +1635,10 @@ exports.ary = ary;

exports.chunk = chunk;
exports.clamp = clamp;
exports.concat = concat;
exports.conforms = conforms;
exports.conformsTo = conformsTo;
exports.curry = curry;
exports.debounce = debounce;
exports.difference = difference;
exports.drop = drop;
exports.endsWith = endsWith;

@@ -1515,2 +1663,4 @@ exports.fill = fill;

exports.isMatch = isMatch;
exports.isNaN = isNaN;
exports.isNumber = isNumber;
exports.isObject = isObject;

@@ -1555,2 +1705,3 @@ exports.isPlainObject = isPlainObject;

exports.startsWith = startsWith;
exports.throttle = throttle;
exports.toPath = toPath;

@@ -1562,2 +1713,3 @@ exports.toString = toString;

exports.unset = unset;
exports.upperCase = upperCase;
exports.zipObjectDeep = zipObjectDeep;

@@ -16,4 +16,4 @@ /**

*/
declare function camelCase(str: string | object): string;
declare function camelCase(str?: string | object): string;
export { camelCase };

@@ -6,3 +6,3 @@ /**

*
* @param {string} str - The string that is to be changed to kebab case.
* @param {string | object} str - The string that is to be changed to kebab case.
* @returns {string} - The converted string to kebab case.

@@ -16,4 +16,4 @@ *

*/
declare function kebabCase(str: string | object): string;
declare function kebabCase(str?: string | object): string;
export { kebabCase };

@@ -6,3 +6,3 @@ /**

*
* @param {string} str - The string that is to be changed to lower case.
* @param {string | object} str - The string that is to be changed to lower case.
* @returns {string} - The converted string to lower case.

@@ -16,4 +16,4 @@ *

*/
declare function lowerCase(str: string | object): string;
declare function lowerCase(str?: string | object): string;
export { lowerCase };

@@ -6,3 +6,3 @@ /**

*
* @param {string} str - The string that is to be changed to snake case.
* @param {string | object} str - The string that is to be changed to snake case.
* @returns {string} - The converted string to snake case.

@@ -16,4 +16,4 @@ *

*/
declare function snakeCase(str: string | object): string;
declare function snakeCase(str?: string | object): string;
export { snakeCase };

@@ -5,3 +5,3 @@ /**

* Start case is the naming convention in which each word is written with an initial capital letter.
* @param {string} str - The string to convert.
* @param {string | object} str - The string to convert.
* @returns {string} The converted string.

@@ -15,4 +15,4 @@ *

*/
declare function startCase(str: string | object): string;
declare function startCase(str?: string | object): string;
export { startCase };

@@ -6,3 +6,2 @@ /**

* @param {string | string[]} chars - The character(s) to remove from the end of the string. Defaults to `" "`.
* @param guard
* @returns {string} - The resulting string after the specified leading and trailing characters have been removed.

@@ -9,0 +8,0 @@ *

@@ -6,3 +6,2 @@ /**

* @param {string | string[]} chars - The character(s) to remove from the end of the string. Defaults to `" "`.
* @param guard
* @returns {string} - The resulting string after the specified trailing character has been removed.

@@ -9,0 +8,0 @@ *

@@ -6,3 +6,2 @@ /**

* @param {string | string[]} chars - The character(s) to remove from the end of the string. Defaults to `" "`.
* @param guard
* @returns {string} - The resulting string after the specified leading character has been removed.

@@ -9,0 +8,0 @@ *

interface DebounceOptions {
/**
* An optional AbortSignal to cancel the debounced function.
*/
signal?: AbortSignal;
/**
* An optional array specifying whether the function should be invoked on the leading edge, trailing edge, or both.
* If `edges` includes "leading", the function will be invoked at the start of the delay period.
* If `edges` includes "trailing", the function will be invoked at the end of the delay period.
* If both "leading" and "trailing" are included, the function will be invoked at both the start and end of the delay period.
* @default ["trailing"]
*/
edges?: Array<'leading' | 'trailing'>;
}

@@ -39,6 +50,24 @@ /**

*/
declare function debounce<F extends (...args: any[]) => void>(func: F, debounceMs: number, { signal }?: DebounceOptions): ((...args: Parameters<F>) => void) & {
declare function debounce<F extends (...args: any[]) => void>(func: F, debounceMs: number, { signal, edges }?: DebounceOptions): ((...args: Parameters<F>) => void) & {
/**
* Schedules the execution of the debounced function after the specified debounce delay.
* This method resets any existing timer, ensuring that the function is only invoked
* after the delay has elapsed since the last call to the debounced function.
* It is typically called internally whenever the debounced function is invoked.
*
* @returns {void}
*/
schedule: () => void;
/**
* Cancels any pending execution of the debounced function.
* This method clears the active timer and resets any stored context or arguments.
*/
cancel: () => void;
/**
* Immediately invokes the debounced function if there is a pending execution.
* This method also cancels the current timer, ensuring that the function executes right away.
*/
flush: () => void;
};
export { debounce };

@@ -5,4 +5,44 @@ 'use strict';

const curry = require('../_chunk/curry-BmwJrK.js');
const rest = require('../_chunk/rest-pUyjvl.js');
function throttle(func, throttleMs, { signal, edges = ['leading', 'trailing'] } = {}) {
let pendingAt = null;
const debounced = rest.debounce(func, throttleMs, { signal, edges });
const throttled = function (...args) {
if (pendingAt == null) {
pendingAt = Date.now();
}
else {
if (Date.now() - pendingAt >= throttleMs) {
debounced.cancel();
debounced(...args);
}
}
debounced(...args);
};
throttled.cancel = debounced.cancel;
throttled.flush = debounced.flush;
return throttled;
}
function curry(func) {
if (func.length === 0 || func.length === 1) {
return func;
}
return function (arg) {
return makeCurry(func, func.length, [arg]);
};
}
function makeCurry(origin, argsLength, args) {
if (args.length === argsLength) {
return origin(...args);
}
else {
const next = function (arg) {
return makeCurry(origin, argsLength, [...args, arg]);
};
return next;
}
}
function spread(func) {

@@ -14,16 +54,16 @@ return function (argsArr) {

exports.after = curry.after;
exports.ary = curry.ary;
exports.before = curry.before;
exports.curry = curry.curry;
exports.debounce = curry.debounce;
exports.memoize = curry.memoize;
exports.negate = curry.negate;
exports.noop = curry.noop;
exports.once = curry.once;
exports.partial = curry.partial;
exports.partialRight = curry.partialRight;
exports.rest = curry.rest;
exports.throttle = curry.throttle;
exports.unary = curry.unary;
exports.after = rest.after;
exports.ary = rest.ary;
exports.before = rest.before;
exports.debounce = rest.debounce;
exports.memoize = rest.memoize;
exports.negate = rest.negate;
exports.noop = rest.noop;
exports.once = rest.once;
exports.partial = rest.partial;
exports.partialRight = rest.partialRight;
exports.rest = rest.rest;
exports.unary = rest.unary;
exports.curry = curry;
exports.spread = spread;
exports.throttle = throttle;

@@ -0,1 +1,15 @@

interface ThrottleOptions {
/**
* An optional AbortSignal to cancel the debounced function.
*/
signal?: AbortSignal;
/**
* An optional array specifying whether the function should be invoked on the leading edge, trailing edge, or both.
* If `edges` includes "leading", the function will be invoked at the start of the delay period.
* If `edges` includes "trailing", the function will be invoked at the end of the delay period.
* If both "leading" and "trailing" are included, the function will be invoked at both the start and end of the delay period.
* @default ["leading", "trailing"]
*/
edges?: Array<'leading' | 'trailing'>;
}
/**

@@ -27,4 +41,7 @@ * Creates a throttled function that only invokes the provided function at most once

*/
declare function throttle<F extends (...args: any[]) => void>(func: F, throttleMs: number): (...args: Parameters<F>) => void;
declare function throttle<F extends (...args: any[]) => void>(func: F, throttleMs: number, { signal, edges }?: ThrottleOptions): ((...args: Parameters<F>) => void) & {
cancel: () => void;
flush: () => void;
};
export { throttle };

@@ -5,6 +5,6 @@ 'use strict';

const zipWith = require('./_chunk/zipWith-B-5AMf.js');
const zipWith = require('./_chunk/zipWith-CDtN9Y.js');
const array_index = require('./array/index.js');
const promise_index = require('./_chunk/index-BGZDR9.js');
const curry = require('./_chunk/curry-BmwJrK.js');
const rest = require('./_chunk/rest-pUyjvl.js');
const function_index = require('./function/index.js');

@@ -30,3 +30,2 @@ const range = require('./_chunk/range-BXlMmn.js');

exports.differenceWith = zipWith.differenceWith;
exports.drop = zipWith.drop;
exports.dropRight = zipWith.dropRight;

@@ -78,2 +77,3 @@ exports.dropRightWhile = zipWith.dropRightWhile;

exports.zipWith = zipWith.zipWith;
exports.drop = array_index.drop;
exports.orderBy = array_index.orderBy;

@@ -86,17 +86,17 @@ exports.sortBy = array_index.sortBy;

exports.withTimeout = promise_index.withTimeout;
exports.after = curry.after;
exports.ary = curry.ary;
exports.before = curry.before;
exports.curry = curry.curry;
exports.debounce = curry.debounce;
exports.memoize = curry.memoize;
exports.negate = curry.negate;
exports.noop = curry.noop;
exports.once = curry.once;
exports.partial = curry.partial;
exports.partialRight = curry.partialRight;
exports.rest = curry.rest;
exports.throttle = curry.throttle;
exports.unary = curry.unary;
exports.after = rest.after;
exports.ary = rest.ary;
exports.before = rest.before;
exports.debounce = rest.debounce;
exports.memoize = rest.memoize;
exports.negate = rest.negate;
exports.noop = rest.noop;
exports.once = rest.once;
exports.partial = rest.partial;
exports.partialRight = rest.partialRight;
exports.rest = rest.rest;
exports.unary = rest.unary;
exports.curry = function_index.curry;
exports.spread = function_index.spread;
exports.throttle = function_index.throttle;
exports.clamp = range.clamp;

@@ -103,0 +103,0 @@ exports.inRange = range.inRange;

@@ -0,4 +1,27 @@

/**
* Checks if the value is less than the maximum.
*
* @param {number} value The value to check.
* @param {number} maximum The upper bound of the range (exclusive).
* @returns {boolean} `true` if the value is less than the maximum, otherwise `false`.
*
* @example
* const result = inRange(3, 5); // result will be true.
* const result2 = inRange(5, 5); // result2 will be false.
*/
declare function inRange(value: number, maximum: number): boolean;
/**
* Checks if the value is within the range defined by minimum (inclusive) and maximum (exclusive).
*
* @param {number} value The value to check.
* @param {number} minimum The lower bound of the range (inclusive).
* @param {number} maximum The upper bound of the range (exclusive).
* @returns {boolean} `true` if the value is within the specified range, otherwise `false`.
*
* @example
* const result = inRange(3, 2, 5); // result will be true.
* const result2 = inRange(1, 2, 5); // result2 will be false.
*/
declare function inRange(value: number, minimum: number, maximum: number): boolean;
export { inRange };
{
"name": "es-toolkit",
"description": "A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.",
"version": "1.19.0",
"version": "1.20.0-dev.623+300d1074",
"homepage": "https://es-toolkit.slash.page",

@@ -6,0 +6,0 @@ "bugs": "https://github.com/toss/es-toolkit/issues",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc