New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@keg-hub/jsutils

Package Overview
Dependencies
Maintainers
4
Versions
48
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@keg-hub/jsutils - npm Package Compare versions

Comparing version 8.2.0 to 8.3.0

build/cjs/getWordEndingAt-7a822dfa.js

5

build/cjs/array.js

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

var isArr = require('./isArr-39234014.js');
var uniqArr = require('./uniqArr-f93aa5ea.js');
var uniqArr = require('./uniqArr-21d1c272.js');
require('./isObj-6b3aa807.js');
require('./isFunc-f93803cb.js');
require('./deepFreeze-d73ccc57.js');
require('./match-11af2741.js');
require('./match-937d87ee.js');
require('./exists-c79204b1.js');

@@ -18,2 +18,3 @@ require('./isStr-8a57710e.js');

require('./isBool-aa6af74e.js');
require('./identity-c14fb27a.js');
require('./typeOf-51fe5771.js');

@@ -20,0 +21,0 @@

79

build/cjs/index.js

@@ -7,11 +7,11 @@ 'use strict';

var isArr = require('./isArr-39234014.js');
var uniqArr = require('./uniqArr-f93aa5ea.js');
var uniqArr = require('./uniqArr-21d1c272.js');
var isObj = require('./isObj-6b3aa807.js');
var isFunc = require('./isFunc-f93803cb.js');
var deepFreeze = require('./deepFreeze-d73ccc57.js');
var match = require('./match-11af2741.js');
var match = require('./match-937d87ee.js');
var exists = require('./exists-c79204b1.js');
var hasOwn = require('./hasOwn-7999ca65.js');
var parseErrorMessage = require('./parseErrorMessage-3e09cf44.js');
var template = require('./template-28cf926a.js');
var parseErrorMessage = require('./parseErrorMessage-c2c587c2.js');
var getWordEndingAt = require('./getWordEndingAt-7a822dfa.js');
var isStr = require('./isStr-8a57710e.js');

@@ -29,2 +29,3 @@ var toStr = require('./toStr-8e499966.js');

var toNum = require('./toNum-9d04f919.js');
var identity = require('./identity-c14fb27a.js');
var deepClone = require('./deepClone-9108ba8c.js');

@@ -41,2 +42,3 @@ var typeOf = require('./typeOf-51fe5771.js');

var wait = require('./wait-8ca88995.js');
var joinRegex = require('./joinRegex-5a38eb30.js');
var getURLParam = require('./getURLParam-20231dc6.js');

@@ -68,5 +70,2 @@

exports.deepFreeze = deepFreeze.deepFreeze;
exports.compareTo = match.compareTo;
exports.identity = match.identity;
exports.isOrderable = match.isOrderable;
exports.match = match.match;

@@ -95,29 +94,35 @@ exports.noOp = match.noOp;

exports.uuid = parseErrorMessage.uuid;
exports.buildPath = template.buildPath;
exports.camelCase = template.camelCase;
exports.camelCasePath = template.camelCasePath;
exports.capitalize = template.capitalize;
exports.cleanStr = template.cleanStr;
exports.containsStr = template.containsStr;
exports.delimitString = template.delimitString;
exports.eitherStr = template.eitherStr;
exports.hashString = template.hashString;
exports.hyphenator = template.hyphenator;
exports.isEmail = template.isEmail;
exports.isLowerCase = template.isLowerCase;
exports.isPhone = template.isPhone;
exports.isUpperCase = template.isUpperCase;
exports.isUrl = template.isUrl;
exports.isUuid = template.isUuid;
exports.mapString = template.mapString;
exports.parseJSON = template.parseJSON;
exports.plural = template.plural;
exports.removeDot = template.removeDot;
exports.singular = template.singular;
exports.snakeCase = template.snakeCase;
exports.spaceJoin = template.spaceJoin;
exports.styleCase = template.styleCase;
exports.template = template.template;
exports.trainCase = template.trainCase;
exports.wordCaps = template.wordCaps;
exports.buildPath = getWordEndingAt.buildPath;
exports.camelCase = getWordEndingAt.camelCase;
exports.camelCasePath = getWordEndingAt.camelCasePath;
exports.capitalize = getWordEndingAt.capitalize;
exports.cleanStr = getWordEndingAt.cleanStr;
exports.containsStr = getWordEndingAt.containsStr;
exports.delimitString = getWordEndingAt.delimitString;
exports.eitherStr = getWordEndingAt.eitherStr;
exports.getNearestDelimiterIndex = getWordEndingAt.getNearestDelimiterIndex;
exports.getWordEndingAt = getWordEndingAt.getWordEndingAt;
exports.getWordStartingAt = getWordEndingAt.getWordStartingAt;
exports.hashString = getWordEndingAt.hashString;
exports.hyphenator = getWordEndingAt.hyphenator;
exports.isEmail = getWordEndingAt.isEmail;
exports.isLowerCase = getWordEndingAt.isLowerCase;
exports.isPhone = getWordEndingAt.isPhone;
exports.isQuoted = getWordEndingAt.isQuoted;
exports.isUpperCase = getWordEndingAt.isUpperCase;
exports.isUrl = getWordEndingAt.isUrl;
exports.isUuid = getWordEndingAt.isUuid;
exports.mapString = getWordEndingAt.mapString;
exports.parseJSON = getWordEndingAt.parseJSON;
exports.plural = getWordEndingAt.plural;
exports.removeDot = getWordEndingAt.removeDot;
exports.reverseStr = getWordEndingAt.reverseStr;
exports.singular = getWordEndingAt.singular;
exports.snakeCase = getWordEndingAt.snakeCase;
exports.spaceJoin = getWordEndingAt.spaceJoin;
exports.styleCase = getWordEndingAt.styleCase;
exports.template = getWordEndingAt.template;
exports.trainCase = getWordEndingAt.trainCase;
exports.validFilename = getWordEndingAt.validFilename;
exports.wordCaps = getWordEndingAt.wordCaps;
exports.isStr = isStr.isStr;

@@ -145,2 +150,5 @@ exports.toStr = toStr.toStr;

exports.toNum = toNum.toNum;
exports.compareTo = identity.compareTo;
exports.identity = identity.identity;
exports.isOrderable = identity.isOrderable;
exports.cloneFunc = deepClone.cloneFunc;

@@ -191,2 +199,5 @@ exports.cloneObjWithPrototypeAndProperties = deepClone.cloneObjWithPrototypeAndProperties;

exports.wait = wait.wait;
exports.getRegexSource = joinRegex.getRegexSource;
exports.isRegex = joinRegex.isRegex;
exports.joinRegex = joinRegex.joinRegex;
exports.getURLParam = getURLParam.getURLParam;

@@ -193,0 +204,0 @@ exports.isValidUrl = getURLParam.isValidUrl;

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

require('./deepFreeze-d73ccc57.js');
var match = require('./match-11af2741.js');
var match = require('./match-937d87ee.js');
var hasOwn = require('./hasOwn-7999ca65.js');
var parseErrorMessage = require('./parseErrorMessage-3e09cf44.js');
var parseErrorMessage = require('./parseErrorMessage-c2c587c2.js');
require('./isStr-8a57710e.js');

@@ -19,2 +19,3 @@ require('./isNum-c7164b50.js');

require('./isBool-aa6af74e.js');
var identity = require('./identity-c14fb27a.js');
var deepClone = require('./deepClone-9108ba8c.js');

@@ -27,5 +28,2 @@ require('./typeOf-51fe5771.js');

exports.isFunc = isFunc.isFunc;
exports.compareTo = match.compareTo;
exports.identity = match.identity;
exports.isOrderable = match.isOrderable;
exports.match = match.match;

@@ -52,3 +50,6 @@ exports.noOp = match.noOp;

exports.uuid = parseErrorMessage.uuid;
exports.compareTo = identity.compareTo;
exports.identity = identity.identity;
exports.isOrderable = identity.isOrderable;
exports.cloneFunc = deepClone.cloneFunc;
//# sourceMappingURL=method.js.map

@@ -7,3 +7,3 @@ 'use strict';

require('./isFunc-f93803cb.js');
var template = require('./template-28cf926a.js');
var getWordEndingAt = require('./getWordEndingAt-7a822dfa.js');
var isStr = require('./isStr-8a57710e.js');

@@ -19,29 +19,35 @@ var toStr$1 = require('./toStr-8e499966.js');

exports.buildPath = template.buildPath;
exports.camelCase = template.camelCase;
exports.camelCasePath = template.camelCasePath;
exports.capitalize = template.capitalize;
exports.cleanStr = template.cleanStr;
exports.containsStr = template.containsStr;
exports.delimitString = template.delimitString;
exports.eitherStr = template.eitherStr;
exports.hashString = template.hashString;
exports.hyphenator = template.hyphenator;
exports.isEmail = template.isEmail;
exports.isLowerCase = template.isLowerCase;
exports.isPhone = template.isPhone;
exports.isUpperCase = template.isUpperCase;
exports.isUrl = template.isUrl;
exports.isUuid = template.isUuid;
exports.mapString = template.mapString;
exports.parseJSON = template.parseJSON;
exports.plural = template.plural;
exports.removeDot = template.removeDot;
exports.singular = template.singular;
exports.snakeCase = template.snakeCase;
exports.spaceJoin = template.spaceJoin;
exports.styleCase = template.styleCase;
exports.template = template.template;
exports.trainCase = template.trainCase;
exports.wordCaps = template.wordCaps;
exports.buildPath = getWordEndingAt.buildPath;
exports.camelCase = getWordEndingAt.camelCase;
exports.camelCasePath = getWordEndingAt.camelCasePath;
exports.capitalize = getWordEndingAt.capitalize;
exports.cleanStr = getWordEndingAt.cleanStr;
exports.containsStr = getWordEndingAt.containsStr;
exports.delimitString = getWordEndingAt.delimitString;
exports.eitherStr = getWordEndingAt.eitherStr;
exports.getNearestDelimiterIndex = getWordEndingAt.getNearestDelimiterIndex;
exports.getWordEndingAt = getWordEndingAt.getWordEndingAt;
exports.getWordStartingAt = getWordEndingAt.getWordStartingAt;
exports.hashString = getWordEndingAt.hashString;
exports.hyphenator = getWordEndingAt.hyphenator;
exports.isEmail = getWordEndingAt.isEmail;
exports.isLowerCase = getWordEndingAt.isLowerCase;
exports.isPhone = getWordEndingAt.isPhone;
exports.isQuoted = getWordEndingAt.isQuoted;
exports.isUpperCase = getWordEndingAt.isUpperCase;
exports.isUrl = getWordEndingAt.isUrl;
exports.isUuid = getWordEndingAt.isUuid;
exports.mapString = getWordEndingAt.mapString;
exports.parseJSON = getWordEndingAt.parseJSON;
exports.plural = getWordEndingAt.plural;
exports.removeDot = getWordEndingAt.removeDot;
exports.reverseStr = getWordEndingAt.reverseStr;
exports.singular = getWordEndingAt.singular;
exports.snakeCase = getWordEndingAt.snakeCase;
exports.spaceJoin = getWordEndingAt.spaceJoin;
exports.styleCase = getWordEndingAt.styleCase;
exports.template = getWordEndingAt.template;
exports.trainCase = getWordEndingAt.trainCase;
exports.validFilename = getWordEndingAt.validFilename;
exports.wordCaps = getWordEndingAt.wordCaps;
exports.isStr = isStr.isStr;

@@ -48,0 +54,0 @@ exports.toStr = toStr$1.toStr;

import './validate-0eec5ac6.js';
export { i as isArr } from './isArr-a4420764.js';
export { a as areCountMapsEqual, c as areFrequencyEqual, d as areSetEqual, b as buildElementCountMap, e as cloneArr, f as eitherArr, g as ensureArr, j as findExtrema, k as findMax, l as findMin, h as flatArr, i as flatMap, o as omitRange, r as randomArr, m as randomizeArr, n as uniqArr, u as uniqArrByReference } from './uniqArr-1e5387ed.js';
export { a as areCountMapsEqual, c as areFrequencyEqual, d as areSetEqual, b as buildElementCountMap, e as cloneArr, f as eitherArr, g as ensureArr, j as findExtrema, k as findMax, l as findMin, h as flatArr, i as flatMap, o as omitRange, r as randomArr, m as randomizeArr, n as uniqArr, u as uniqArrByReference } from './uniqArr-d83b2468.js';
import './isObj-2a71d1af.js';
import './isFunc-40ceeef8.js';
import './deepFreeze-0437aacd.js';
import './match-312736a1.js';
import './match-61fbd7dc.js';
import './exists-bf542cb8.js';

@@ -13,3 +13,4 @@ import './isStr-481ce69b.js';

import './isBool-4d844d9e.js';
import './identity-aa1ca9c0.js';
import './typeOf-8c86a991.js';
//# sourceMappingURL=array.js.map
export { v as validate } from './validate-0eec5ac6.js';
export { i as isArr } from './isArr-a4420764.js';
export { a as areCountMapsEqual, c as areFrequencyEqual, d as areSetEqual, b as buildElementCountMap, e as cloneArr, f as eitherArr, g as ensureArr, j as findExtrema, k as findMax, l as findMin, h as flatArr, i as flatMap, o as omitRange, r as randomArr, m as randomizeArr, n as uniqArr, u as uniqArrByReference } from './uniqArr-1e5387ed.js';
export { a as areCountMapsEqual, c as areFrequencyEqual, d as areSetEqual, b as buildElementCountMap, e as cloneArr, f as eitherArr, g as ensureArr, j as findExtrema, k as findMax, l as findMin, h as flatArr, i as flatMap, o as omitRange, r as randomArr, m as randomizeArr, n as uniqArr, u as uniqArrByReference } from './uniqArr-d83b2468.js';
export { i as isObj } from './isObj-2a71d1af.js';
export { i as isFunc } from './isFunc-40ceeef8.js';
export { d as deepFreeze } from './deepFreeze-0437aacd.js';
export { c as compareTo, a as identity, i as isOrderable, m as match, n as noOp, b as noOpObj, e as noPropArr, d as noPropObj } from './match-312736a1.js';
export { m as match, n as noOp, a as noOpObj, c as noPropArr, b as noPropObj } from './match-61fbd7dc.js';
export { e as exists } from './exists-bf542cb8.js';
export { a as applyToFunc, h as hasOwn, p as pipeline } from './hasOwn-deb5bbb8.js';
export { c as checkCall, a as complement, d as debounce, b as doIt, e as eitherFunc, h as hasDomAccess, l as limbo, m as memorize, p as parseErrorMessage, r as runSeq, f as throttle, g as throttleLast, t as timedRun, u as uuid } from './parseErrorMessage-9d3f4c9d.js';
export { b as buildPath, c as camelCase, f as camelCasePath, e as capitalize, a as cleanStr, g as containsStr, d as delimitString, h as eitherStr, j as hashString, i as hyphenator, k as isEmail, y as isLowerCase, l as isPhone, x as isUpperCase, n as isUrl, o as isUuid, m as mapString, p as parseJSON, q as plural, r as removeDot, t as singular, s as snakeCase, z as spaceJoin, u as styleCase, A as template, v as trainCase, w as wordCaps } from './template-c368c37b.js';
export { c as checkCall, a as complement, d as debounce, b as doIt, e as eitherFunc, h as hasDomAccess, l as limbo, m as memorize, p as parseErrorMessage, r as runSeq, f as throttle, g as throttleLast, t as timedRun, u as uuid } from './parseErrorMessage-0a52f8cc.js';
export { b as buildPath, c as camelCase, f as camelCasePath, e as capitalize, a as cleanStr, g as containsStr, d as delimitString, h as eitherStr, F as getNearestDelimiterIndex, E as getWordEndingAt, G as getWordStartingAt, j as hashString, i as hyphenator, k as isEmail, y as isLowerCase, l as isPhone, C as isQuoted, x as isUpperCase, n as isUrl, o as isUuid, m as mapString, p as parseJSON, q as plural, r as removeDot, D as reverseStr, t as singular, s as snakeCase, z as spaceJoin, u as styleCase, A as template, v as trainCase, B as validFilename, w as wordCaps } from './getWordEndingAt-6d1f9d3c.js';
export { i as isStr } from './isStr-481ce69b.js';

@@ -24,2 +24,3 @@ export { t as toStr } from './toStr-0e5fe94c.js';

export { g as getNums, t as toNum } from './toNum-db57d125.js';
export { c as compareTo, a as identity, i as isOrderable } from './identity-aa1ca9c0.js';
export { a as cloneFunc, c as cloneObjWithPrototypeAndProperties, d as deepClone } from './deepClone-8a68e415.js';

@@ -36,3 +37,4 @@ export { t as typeOf } from './typeOf-8c86a991.js';

export { p as promisify, a as promisifyAll, w as wait } from './wait-26c5e7c6.js';
export { g as getRegexSource, i as isRegex, j as joinRegex } from './joinRegex-b645166a.js';
export { g as getURLParam, i as isValidUrl, o as objToQuery, q as queryToObj } from './getURLParam-ba57cf43.js';
//# sourceMappingURL=index.js.map

@@ -6,5 +6,5 @@ import './validate-0eec5ac6.js';

import './deepFreeze-0437aacd.js';
export { c as compareTo, a as identity, i as isOrderable, m as match, n as noOp, b as noOpObj, e as noPropArr, d as noPropObj } from './match-312736a1.js';
export { m as match, n as noOp, a as noOpObj, c as noPropArr, b as noPropObj } from './match-61fbd7dc.js';
export { a as applyToFunc, p as pipeline } from './hasOwn-deb5bbb8.js';
export { c as checkCall, a as complement, d as debounce, b as doIt, e as eitherFunc, h as hasDomAccess, l as limbo, m as memorize, p as parseErrorMessage, r as runSeq, f as throttle, g as throttleLast, t as timedRun, u as uuid } from './parseErrorMessage-9d3f4c9d.js';
export { c as checkCall, a as complement, d as debounce, b as doIt, e as eitherFunc, h as hasDomAccess, l as limbo, m as memorize, p as parseErrorMessage, r as runSeq, f as throttle, g as throttleLast, t as timedRun, u as uuid } from './parseErrorMessage-0a52f8cc.js';
import './isStr-481ce69b.js';

@@ -15,2 +15,3 @@ import './isNum-cc6ad9ca.js';

import './isBool-4d844d9e.js';
export { c as compareTo, a as identity, i as isOrderable } from './identity-aa1ca9c0.js';
export { a as cloneFunc } from './deepClone-8a68e415.js';

@@ -17,0 +18,0 @@ import './typeOf-8c86a991.js';

import './isArr-a4420764.js';
import './isFunc-40ceeef8.js';
export { b as buildPath, c as camelCase, f as camelCasePath, e as capitalize, a as cleanStr, g as containsStr, d as delimitString, h as eitherStr, j as hashString, i as hyphenator, k as isEmail, y as isLowerCase, l as isPhone, x as isUpperCase, n as isUrl, o as isUuid, m as mapString, p as parseJSON, q as plural, r as removeDot, t as singular, s as snakeCase, z as spaceJoin, u as styleCase, A as template, v as trainCase, w as wordCaps } from './template-c368c37b.js';
export { b as buildPath, c as camelCase, f as camelCasePath, e as capitalize, a as cleanStr, g as containsStr, d as delimitString, h as eitherStr, F as getNearestDelimiterIndex, E as getWordEndingAt, G as getWordStartingAt, j as hashString, i as hyphenator, k as isEmail, y as isLowerCase, l as isPhone, C as isQuoted, x as isUpperCase, n as isUrl, o as isUuid, m as mapString, p as parseJSON, q as plural, r as removeDot, D as reverseStr, t as singular, s as snakeCase, z as spaceJoin, u as styleCase, A as template, v as trainCase, B as validFilename, w as wordCaps } from './getWordEndingAt-6d1f9d3c.js';
export { i as isStr } from './isStr-481ce69b.js';

@@ -5,0 +5,0 @@ export { t as toStr } from './toStr-0e5fe94c.js';

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

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).jsutils={})}(this,(function(e){"use strict";const t={SHOULD_LOG:!0,SHOULD_THROW:!1,LOG_PREFIX:null},r=(e,r={},{logs:s=t.SHOULD_LOG,throws:i=t.SHOULD_THROW,prefix:u=t.LOG_PREFIX}={})=>{const c=Object.entries(e),a=()=>!0,l=c.map((([e,t])=>n(e,t,r[e]||r.$default||a))),{success:f,cases:p}=l.reduce(((e,t)=>o(e,t,{logs:s,throws:i,prefix:u})),{success:!0,cases:{}});return[f,p]};r.setOptions=({logs:e,throws:r,prefix:n})=>{void 0!==e&&(t.SHOULD_LOG=e),void 0!==r&&(t.SHOULD_THROW=r),void 0!==n&&(t.LOG_PREFIX=n)},r.resetOptions=()=>{t.SHOULD_LOG=!0,t.SHOULD_THROW=!1,t.LOG_PREFIX=null};const n=(e,t,r)=>{const n=r(t),o=!r.name||r.name===e||"$default"===r.name?r.toString():r.name;return{success:n,key:e,value:t,validator:r,reason:n?null:[`Argument "${e}" with value `,t,` failed validator: ${o}.`]}},o=(e,t,{logs:r,throws:n,prefix:o})=>(!t.success&&s(t,r,n,o),{success:e.success&&t.success,cases:{...e.cases,[t.key]:t}}),s=(e,t,r,n)=>{const o=n?[n,...e.reason]:e.reason;if(r)throw new Error(o.join());t&&console.error(...o)},i=e=>Array.isArray(e),u=e=>{const t=new Map;for(let n=0;n<e.length;n++){var r;const o=e[n],s=null!==(r=t.get(o))&&void 0!==r?r:0;t.set(o,s+1)}return t},c=(e,t)=>{if(e.size!==t.size)return!1;for(let[r,n]of e){if(t.get(r)!==n)return!1}return!0},a=e=>"object"==typeof e&&!Array.isArray(e)&&null!==e,l=e=>"function"==typeof e,f=e=>(Object.freeze(e),Object.getOwnPropertyNames(e).map((t=>{e.hasOwnProperty(t)&&null!==e[t]&&("object"==typeof e[t]||l(e[t]))&&!Object.isFrozen(e[t])&&f(e[t])})),e),p=Object.freeze({}),d=f({content:{}}),m=f([]),g=e=>e==e&&null!=e,y=(e,t,r)=>{for(let n=0;n<e.length;n++){const o=e[n];i(o)?y(o,t,r):r.exists&&!g(o)||r.truthy&&!o||t.push(o)}return r.mutate?(Object.assign(e,t).splice(t.length),e):t},h=(e,t)=>{if(i(t)){const[r,...n]=t;return r(e,...n)}return l(t)?t(e):(console.error("Pipeline expected either a function or an array (for function expressions). Found "+typeof t),e)},O=(e,...t)=>t.reduce(((e,t)=>h(e,t)),e),b=e=>"string"==typeof e,j=(e,t)=>{if(!b(e))return e;if(!l(t))return e;let r="";for(const n of e)r+=t(n);return r},w=e=>e===e.toLowerCase(),S=e=>e===e.toUpperCase(),A=(e,t,r=["-","_"," "])=>{if(!b(e))return e;const n=e=>r.some((t=>t===e));let o="_";return j(e,(e=>n(e)?(o=t,t):S(e)&&w(o)&&!n(o)?(o=e,t+e):(o=e,e)))},_=(e,t=!0)=>{if(!b(e)||!e[0])return e;const r=t?e.slice(1).toLowerCase():e.slice(1);return`${e[0].toUpperCase()}${r}`},C=e=>{const t=0===e.indexOf(".")?e.slice(1):e;return t.indexOf(".")===t.length-1?t.slice(0,-1):t},$=e=>e&&C(e).replace(/[-_]/gm," ")||e,v=(e,t)=>e&&$(e).split(/[\s_-]/gm).reduce(((e,r,n)=>r?e+=(n>0||t)&&_(r)||r.toLowerCase():e),"")||e,E=e=>null==e?"":b(e)?e:JSON.stringify(e),F=/[A-Z]/g,P=/^ms-/,x={},L=e=>"-"+e.toLowerCase(),T=e=>"number"==typeof e&&e!=e,I=e=>"number"==typeof e&&!T(e),R=e=>I(e)&&e>=0,N=e=>b(e)&&e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")||e,U=e=>"object"==typeof e&&null!==e,D=(e,t,r,n)=>{const o=e;if(!U(e)||!e||!t)return"set"!==r&&n||void 0;const s=i(t)?Array.from(t):t.split("."),u=s.pop();let c,a;for(;c=s.shift();){const t=e[c];if(U(t)||l(t)?e=t:("set"===r?e[c]={}:a=!0,e=e[c]),a)return n}return"get"===r?u in e?e[u]:n:"unset"===r?delete e[u]:(e[u]=n)&&o||o},k=(e,t,r)=>D(e,t,"get",r),M=(e,t,r="")=>{t=U(t)&&t||{};const n=M.regex||/\${(.*?)\}/g;return b(e)?e.replace(n,((e,n)=>{const o=(n||e.substr(2,e.length-3)).trim(),s=k(t,o,r);return l(s)?s(t,o,r):s})):console.error("template requires a string as the first argument")||e},q=e=>"boolean"==typeof e,z=e=>"false"===e||"true"===e,J=e=>q(e)?E(e):e&&"false"!==e&&"0"!==e?"true":"false",H=e=>Boolean(e||""===e||0===e),B=e=>z(e)?"true"===e:"true"===J(e),G=e=>E(e).replace(/([^.\d])/gm,""),W=e=>I(e)?e:e&&!T(e)&&Number(G(e))||0,K=e=>b(e)||I(e)||q(e),X=(e,t)=>{const[n]=r({x:e,y:t},{$default:K});return n?b(e)?e.localeCompare(t):e-t:null},V=e=>e,Z=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Q=e=>{const t=function(...r){return e instanceof t||k(e.prototype,"constructor.name")?new e(...r):e.apply(e,r)};for(let r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return Object.defineProperty(t,"name",{value:e.name,configurable:!0}),t.toString=()=>e.toString(),t},Y=(e,t=new WeakMap)=>{if(Object(e)!==e)return e;if(e instanceof Set)return new Set(e);if(t.has(e))return t.get(e);if(i(e))return e.map((e=>Y(e)));if(l(e))return Q(e);const r=e instanceof Date?new Date(e):e instanceof RegExp?new RegExp(e.source,e.flags):e.constructor?null:Object.create(null);return null===r?ee(e):(t.set(e,r),e instanceof Map?Array.from(e,(([e,n])=>r.set(e,Y(n,t)))):Object.assign(r,...Object.keys(e).map((r=>({[r]:Y(e[r],t)})))))},ee=e=>{if(!e)return e;const t=Object.getPrototypeOf(e),r=Object.getOwnPropertyDescriptors(e);for(const[e,t]of Object.entries(r))t.value&&(r[e].value=Y(t.value));const n=Object.create(t,r);return Object.isFrozen(e)&&Object.freeze(n),Object.isSealed(e)&&Object.seal(n),n},te=e=>e?(e^16*Math.random()>>e/4).toString(16):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,te),re=e=>Object.prototype.toString.call(e).slice(8,-1),ne=(e,...t)=>{if(!t.length)return null;for(let r of t){if(!i(r)){console.error(`Matching case must be an entry (a 2-element array). Found: ${re(r)}`,r);break}const[t,n]=r;if(l(t)&&t(e))return n;if(t===e)return n}return null};ne.default=()=>!0;const oe=e=>a(e)?0===Object.keys(e).length:i(e)?0===e.length:b(e)?0===e.trim().length:!!I(e)&&e<1,se=(e,t)=>{const[n]=r({arr:e,comparator:t},{arr:i,$default:l});return n&&e.length?e.reduce(((e,r)=>t(e,r)>0?e:r)):null},ie=e=>i(e)?e.filter(((e,t,r)=>r.indexOf(e)==t)):e,ue=(e,t=!0)=>U(e)?Object.keys(e).reduce(((r,n)=>{const o=e[n];return null==o||(r[n]=t&&U(o)?ue(o):o),r}),a(e)&&{}||[]):console.error("cleanColl requires a collection as the first argument")||e,ce=(e,t,r)=>D(e,t,"set",r),ae=Array.isArray,le=Object.keys,fe=Object.prototype.hasOwnProperty,pe=(e,t)=>{if(e===t)return!0;if(!e||!t||"object"!=typeof e||"object"!=typeof t)return e!=e&&t!=t;const r=ae(e),n=ae(t);let o,s,i;if(r&&n){if(s=e.length,s!=t.length)return!1;for(o=s;0!=o--;)if(!pe(e[o],t[o]))return!1;return!0}if(r!=n)return!1;const u=e instanceof Date,c=t instanceof Date;if(u!=c)return!1;if(u&&c)return e.getTime()==t.getTime();const a=e instanceof RegExp,l=t instanceof RegExp;if(a!=l)return!1;if(a&&l)return e.toString()==t.toString();const f=le(e);if(s=f.length,s!==le(t).length)return!1;for(o=s;0!=o--;)if(!fe.call(t,f[o]))return!1;for(o=s;0!=o--;)if(i=f[o],!pe(e[i],t[i]))return!1;return!0},de=e=>e&&b(e)?z(e)?B(e):I(e)?W(e):(()=>{try{return JSON.parse(e)}catch(t){return e}})():e;let me,ge="dir",ye="type";const he=["error","info","log","dir","warn"],Oe=(...e)=>{if(!e.length)return;let t=1===e.length?ge:e.pop();(me||"error"===t)&&("string"==typeof e[0]&&("type"===ye?e[0]=`[ ${t.toUpperCase()} ] ${e[0]}`:ye&&(e[0]=`${ye} ${e[0]}`)),-1!==he.indexOf(t)?console[t](...e):console[ge](...e,t))},be=(e,t)=>{e&&Object.entries(e).map((([r,n])=>{t&&-1!==t.indexOf(r)||("object"==typeof n&&be(n),e[r]=void 0,delete e[r])}))},je=(...e)=>e.reduce(((e,t)=>{const r=Y(t);return i(r)?[...i(e)&&e||[],...r]:a(r)?Object.entries(r).reduce(((e,[t,r])=>({...e,[t]:l(r)?Q(r):U(r)&&t in e?je(e[t],r):Y(r)})),e):e}),i(e[0])&&[]||{}),we=e=>i(e)&&2===e.length&&(I(e[0])||b(e[0])),Se=(e,t)=>{if(!i(e)&&!a(e))return console.error(e,"Expected array or object for obj. Found "+typeof e),e;if(!l(t))return console.error("Expected function for cb. Found "+typeof t),e;const r=Object.entries(e),n=i(e)?[]:{};return r.reduce(((e,[r,n])=>{const o=t(r,n);return we(o)?ce(e,o[0],o[1]):(console.error(`Callback function must return entry. Found: ${o}. Using current entry instead.`),ce(e,r,n))}),n)},Ae=(e,t,r={})=>a(e)&&l(t)&&Object.entries(e).reduce(((e,[r,n])=>t(r,n,e)),r)||r,_e=e=>{if(!l(e))throw"Argument must be a function";return(...t)=>new Promise(((r,n)=>l(t[t.length-1])?(t.pop(),t.push(((...e)=>e&&e[0]?n(...e):r(...e))),e(...t)):r(e(...t))))},Ce=Array.from(["caller","callee","arguments","apply","bind","call","toString","__proto__","__defineGetter__","__defineSetter__","hasOwnProperty","__lookupGetter__","__lookupSetter__","isPrototypeOf","propertyIsEnumerable","valueOf","toLocaleString"]).concat(Object.getOwnPropertyNames(Object.prototype)).reduce(((e,t)=>(e[t]=!0,e)),{}),$e=e=>{if(!e.__IS_PROMISIFIED__){for(const t of Object.getOwnPropertyNames(e)){if(!(-1!==t.indexOf("Async")||e[`${t}Async`])&&!Ce[t])if(l(e[t]))e[`${t}Async`]=_e(e[t]);else{const r=Object.getOwnPropertyDescriptor(e,t).get;l(r)&&(e[`${t}Async`]=_e(r))}}e.__IS_PROMISIFIED__=!0}return e},ve=e=>{const t={},r=e.split("?"),n=r[r.length-1];if(!n)return t;const o=n.split("&");return o.length&&o.map((e=>{const r=e.split("=");if(r.length<=1)return t;const n=[r.shift(),r.join("=")];if(2===n.length){const e=decodeURIComponent(n[1]).split(",");if(e&&e.length>1)t[n[0]]=e;else if(n[0]in t){const e=t[n[0]];t[n[0]]=i(e)?e.push(decodeURIComponent(n[1])):[e,decodeURIComponent(n[1])]}else t[n[0]]=decodeURIComponent(n[1])}})),t};e.applyToCloneOf=(e,t)=>{let r;if(e||(r="object (Argument 1) in applyToCloneOf, must be defined!"),a(e)||(r="object (Argument 1) in applyToCloneOf, must be an object!"),t||(r="mutator (Argument 2) in applyToCloneOf, must be defined!"),l(t)||(r="mutator (Argument 2) arg in applyToCloneOf, must be a function!"),r)return console.warn(r)||e;const n=Y(e);return t(n),n},e.applyToFunc=h,e.areCountMapsEqual=c,e.areFrequencyEqual=(e,t)=>{const[n]=r({arr:e,otherArr:t},{$default:i});if(!n)return null;if(e===t)return!0;if(e.length!==t.length)return!1;const o=u(e),s=u(t);return c(o,s)},e.areSetEqual=(e,t)=>{const[n]=r({arr:e,otherArr:t},{$default:i});if(!n)return null;if(e===t)return!0;const[o,s]=e.length>t.length?[e,t]:[t,e],u=new Set(s);for(let e=0;e<o.length;e++){const t=o[e];if(!u.has(t))return!1}return!0},e.buildElementCountMap=u,e.buildPath=(...e)=>e.reduce(((e,t)=>{let r=toStr(t);return`${e}${r&&"/"+r||""}`}),"").replace(/([^:\/]|^)\/{2,}/g,"$1/"),e.camelCase=v,e.camelCasePath=e=>{const t=e.split(".").map(((e,t)=>t>0?_(e,!1):e));return t.length>1?t.join(""):e},e.capitalize=_,e.checkCall=(e,...t)=>l(e)&&e(...t)||void 0,e.cleanColl=ue,e.cleanStr=$,e.clearObj=be,e.cloneArr=e=>Array.from([...i(e)&&e||a(e)&&Object.entries(e)||[]]),e.cloneFunc=Q,e.cloneJson=e=>{try{return JSON.parse(JSON.stringify(e))}catch(e){return Oe(e.message,"error"),null}},e.cloneObjWithPrototypeAndProperties=ee,e.compareTo=X,e.complement=e=>{const[t]=r({predicate:e},{predicate:l});return t?(...t)=>!e(...t):null},e.containsStr=(e,t,r)=>(e=!b(e)&&E(e)||e,t=!b(t)&&E(t)||t,-1!==e.indexOf(t,r)),e.convertToStrBool=J,e.debounce=(e,t=250,r=!1)=>{let n;return function(...o){if(!l(e))return null;const s=this,i=r&&!n;return clearTimeout(n),n=setTimeout((()=>{n=null,!r&&e.apply(s,o)}),t),i?l(e)&&e.apply(s,o):void 0}},e.deepClone=Y,e.deepEqual=pe,e.deepFreeze=f,e.deepMerge=je,e.delimitString=A,e.doIt=(...e)=>{const t=e.slice(),r=t.shift(),n=t.shift(),o=t.pop();if(!I(r)||!l(o))return[];const s=new Array(r),i=[];for(let e=0;e<s.length;e++){const r=o.call(n,e,...t);if(!1===r)break;i.push(r)}return i},e.either=(e,t,r)=>l(r)?r(e,t)&&e||t:H(e)&&e||t,e.eitherArr=(e,t)=>i(e)?e:t,e.eitherFunc=(e,t)=>l(e)&&e||t,e.eitherObj=(e,t)=>a(e)&&e||t,e.eitherStr=(e,t)=>b(e)&&e||t,e.ensureArr=e=>i(e)?e:[e],e.equalsNaN=T,e.everyEntry=(e,t)=>e?a(e)?l(t)?O(e,Object.entries,(e=>e.every((([e,r])=>t(e,r))))):(console.error(`Argument 'predicate' passed into everyEntry must a function. Found: ${t}`),!1):(console.error(`Argument obj ${e} must be an object.`),!1):(console.error(`everyEntry expects argument obj [${e}] to be defined.`),!1),e.exists=g,e.filterObj=(e,t)=>e?a(e)?l(t)?Ae(e,((e,r,n)=>(t(e,r)&&(n[e]=r),n)),{}):(console.error(`Argument 'predicate' passed into filterObject must a function. Found: ${t}`),e):(console.error(`Object ${e} was not an object. It must be for filterObject`),e):e,e.findExtrema=se,e.findMax=(e=[],t=V)=>se(e,((e,r)=>X(t(e),t(r)))),e.findMin=(e=[],t=V)=>se(e,((e,r)=>X(t(r),t(e)))),e.flatArr=(e,t)=>y(e,[],a(t)?t:p),e.flatMap=(e,t)=>{const[n]=r({arr:e,mapFn:t},{arr:i,mapFn:l});return n?e.reduce(((e,r)=>{const n=t(r);return i(n)?n.map((t=>e.push(t))):e.push(n),e}),[]):e},e.get=k,e.getNums=G,e.getURLParam=e=>{var t,n,o;const[s]=r({paramKey:e},{paramKey:b});if(!s)return null;const i="undefined"!=typeof document?document:null,u=null==i||null===(t=i.location)||void 0===t?void 0:t.search;return b(u)&&null!==(n=null===(o=ve(u))||void 0===o?void 0:o[e])&&void 0!==n?n:null},e.hasDomAccess=()=>{try{return!("undefined"==typeof window||!window.document||!window.document.createElement)}catch(e){return!1}},e.hasOwn=Z,e.hashString=(e,t)=>{if(!b(e)||0==e.length)return 0;e=e.split("").reverse().join("");let r=0;for(let t=0;t<e.length;t++){r=(r<<5)-r+e.charCodeAt(t),r=`${Math.abs(r&r)}`}return R(t)?r.slice(0,t):r},e.hyphenator=e=>{if(x.hasOwnProperty(e))return x[e];const t=e.replace(F,L);return x[e]=P.test(t)?"-"+t:t},e.identity=V,e.isArr=i,e.isArrMap=e=>{if(!a(e))return!1;const t=Object.values(e);return B(t.length&&t.every(i))},e.isBool=q,e.isColl=U,e.isEmail=e=>{if(!e||!b(e))return!1;return Boolean(/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(e))},e.isEmpty=oe,e.isEmptyColl=e=>i(e)?0===e.length:U(e)&&0===Object.getOwnPropertyNames(e).length,e.isEntry=we,e.isFloat=e=>I(e)&&e%1!=0,e.isFunc=l,e.isInt=e=>I(e)&&e%1==0,e.isLowerCase=w,e.isNegative=e=>I(e)&&e<0,e.isNonNegative=R,e.isNum=I,e.isObj=a,e.isOrderable=K,e.isPhone=e=>{if(!e||!b(e))return!1;return Boolean(/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/im.test(e))&&e.replace(/\D/g,"").length<11},e.isPositive=e=>I(e)&&e>0,e.isSame=(e,t)=>e===t?0!==e||1/e==1/t:e!=e&&t!=t,e.isStr=b,e.isStrBool=z,e.isUpperCase=S,e.isUrl=e=>Boolean(/^(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/.test(e)),e.isUuid=e=>{if(!e||!b(e))return!1;return Boolean(/^[0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i.test(e))},e.isValidDate=e=>!isNaN((e instanceof Date&&e||new Date(e)).getTime()),e.isValidUrl=e=>/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-/]))?/.test(e),e.jsonEqual=(e,t)=>{try{return JSON.stringify(e)===JSON.stringify(t)}catch(e){return!1}},e.keyMap=(e,t)=>i(e)&&e.reduce(((e,r)=>{if(!b(r))return e;const n=t&&r.toUpperCase()||r;return e[n]=n,e}),{})||{},e.limbo=e=>e&&l(e.then)?e.then((e=>[null,e])).catch((e=>[e,void 0])):[new Error("A promise or thenable is required as the first argument!"),null],e.logData=Oe,e.mapColl=(e,t)=>l(t)&&U(e)?Object.keys(e).map((r=>t(r,e[r],e))):i(e)?[]:{},e.mapEntries=Se,e.mapKeys=(e,t)=>a(e)&&l(t)?Se(e,((e,r)=>[t(e),r])):e,e.mapObj=(e,t)=>a(e)&&l(t)&&Object.entries(e).map((([e,r])=>t(e,r)))||e,e.mapString=j,e.match=ne,e.memorize=(e,t,r=1)=>{if(!l(e)||t&&!l(t))return console.error("Error: Expected a function",e,t);let n=function(){const o=n.cache,s=t?t.apply(this,arguments):arguments[0];if(Z(o,s))return o[s];const i=e.apply(this,arguments);return I(r)&&Object.keys(o).length<r?o[s]=i:n.cache={[s]:i},i};return n.cache={},n.destroy=()=>{t=void 0,n.cache=void 0,n.destroy=void 0,n=void 0},n},e.noOp=()=>{},e.noOpObj=p,e.noPropArr=m,e.noPropObj=d,e.nth=e=>{if(!I(e)){if(!(e=G(e)))return"";if(e=W(e),T(e))return""}const t=e%100;if(t>=10&&t<=20)return"th";switch(e%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},e.objToQuery=e=>{let t;return Ae(e,((e,r,n)=>{if(!r)return n;const o=b(r)||I(r)||q(r)?r:U(r)?i(r)?r.join(","):JSON.stringify(r):null;return o?(n=t?`${n}&${encodeURIComponent(e)}=${encodeURIComponent(o)}`:`?${encodeURIComponent(e)}=${encodeURIComponent(o)}`,t=!0,n):n}),"")},e.omitKeys=(e={},t=[])=>a(e)&&Ae(e,((r,n,o)=>(-1===t.indexOf(r)&&(o[r]=e[r]),o)),{})||{},e.omitRange=(e,t,n)=>{const[o]=r({arr:e,startIndex:t,count:n},{arr:i,$default:R});if(!o)return e;const s=[...e];return s.splice(t,n),s},e.parseErrorMessage=e=>b(e)&&!oe(e)?e:a(e)?e.message:null,e.parseJSON=e=>{try{return JSON.parse(e)}catch(e){return console.error(e.message),null}},e.pickKeys=(e={},t=[])=>a(e)&&t.reduce(((t,r)=>(r in e&&(t[r]=e[r]),t)),{})||{},e.pipeline=O,e.plural=e=>e&&e.length&&"s"!==e[e.length-1]?e+"s":e,e.promisify=_e,e.promisifyAll=e=>{if(!a(e))return e;$e(e);const t=Object.getPrototypeOf(e);return t&&null!==Object.getPrototypeOf(t)&&$e(t),e},e.queryToObj=ve,e.randomArr=(e,t)=>{if(!i(e))return e;const r=t||1,n=[];for(let t=0;t<r;t++)n.push(e[Math.floor(Math.random()*e.length)]);return t?n:n[0]},e.randomizeArr=e=>!i(e)&&e||e.sort((()=>.5-Math.random())),e.reduceColl=(e,t,r)=>l(t)&&U(e)?Object.keys(e).reduce(((r,n)=>t(n,e[n],e,r)),r):i(e)?[]:{},e.reduceObj=Ae,e.removeDot=C,e.repeat=(e,t,r=!1)=>{if(!t||t<=0)return[];if(!I(t))return console.error("Times argument must be a number"),[];const n=[];for(let o=0;o<t;o++){const t=l(e)?e():r?Y(e):e;n.push(t)}return n},e.resetLogs=()=>{me=void 0,ge="log",ye="type"},e.runSeq=async(e=[],t={})=>{const[n]=r({asyncFns:e},{asyncFns:i});if(!n)return[];const{cloneResults:o=!1,returnOriginal:s=!0}=t,u=[];for(const t of e){const e=l(t)?await t(u.length,o?Y(u):u):s?t:void 0;u.push(e)}return u},e.sanitize=N,e.sanitizeCopy=e=>JSON.parse(N(JSON.stringify(e))),e.set=ce,e.setLogs=(e,t,r)=>{me=e,ge=t||ge||"log",ye=r||ye||"type"},e.shallowEqual=(e,t,r)=>{if(r&&(i(r)||b(r))&&(e=k(e,r),t=k(t,r)),e===t)return!0;if(!(e&&U(e)&&t&&U(t)))return!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(e[r]!==t[r])return!1;return!0},e.singular=e=>e&&e.length&&"s"===e[e.length-1]?e.slice(0,e.length-1):e,e.snakeCase=e=>A(e,"_").toLowerCase(),e.softFalsy=H,e.someEntry=(e,t)=>e?a(e)?l(t)?O(e,Object.entries,(e=>e.some((([e,r])=>t(e,r))))):(console.error(`Argument 'predicate' passed into someEntry must a function. Found: ${t}`),!1):(console.error(`Argument obj ${e} must be an object.`),!1):(console.error(`someEntry expects argument obj [${e}] to be defined.`),!1),e.spaceJoin=(e,t)=>(t=i(t)?t:[t]).reduce(((e,t)=>b(t)?`${e?e+" ":""}${t}`.trim():e),b(e)?e:""),e.strToType=de,e.styleCase=e=>{if(!b(e))return e;const t=v(e);return`${t[0].toLowerCase()}${t.slice(1)}`},e.template=M,e.throttle=(e,t=100)=>{let r=!1;return function(...n){if(!r)return r=!0,e.apply(this,n),setTimeout((()=>{r=!1}),t)}},e.throttleLast=(e,t,r=100)=>{let n;return function(...o){n&&clearTimeout(n),n=setTimeout((()=>{e.apply(this,o),clearTimeout(n)}),r),"function"==typeof t&&t()}},e.timedRun=async(e,...t)=>{const[n]=r({fn:e},{fn:l});if(!n)return[void 0,-1];const o=new Date;return[await e(...t),new Date-o]},e.toBool=B,e.toFloat=e=>e&&!T(e)&&parseFloat(I(e)&&e||G(e))||0,e.toInt=e=>e&&!T(e)&&parseInt(I(e)&&e||G(e))||0,e.toNum=W,e.toObj=(e,t,r)=>i(e)?Object.keys(e).reduce(((t,r)=>(t[r]=e[r],t)),{}):b(str)?(t=t||"=",r=r||"&",str.split(r).reduce(((e,r)=>{const n=r.split(t);return e[n[0].trim()]=de(n[1].trim()),e}),{})):{},e.toStr=E,e.trainCase=e=>b(e)&&e.split(/(?=[A-Z])|[\s_-]/gm).join("-").toLowerCase()||e,e.trimStringFields=e=>Object.entries(e).reduce(((e,[t,r])=>(e[t]=b(r)?r.trim():r,e)),e),e.typeOf=re,e.uniqArr=(e,t)=>{if(!t)return ie(e);const{unique:r}=e.reduce(((e,r)=>{const n=t(r);return!e.set.has(n)&&e.unique.push(r),e.set.add(n),e}),{unique:[],set:new Set});return r},e.uniqArrByReference=ie,e.unset=(e,t)=>D(e,t,"unset"),e.uuid=te,e.validate=r,e.wait=e=>new Promise((t=>setTimeout((()=>t(!0)),e))),e.wordCaps=e=>{if(!b(e))return e;return $(e).split(" ").map((e=>e&&_(e)||"")).join(" ")}}));
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).jsutils={})}(this,(function(e){"use strict";const t={SHOULD_LOG:!0,SHOULD_THROW:!1,LOG_PREFIX:null},r=(e,r={},{logs:s=t.SHOULD_LOG,throws:i=t.SHOULD_THROW,prefix:u=t.LOG_PREFIX}={})=>{const c=Object.entries(e),l=()=>!0,a=c.map((([e,t])=>n(e,t,r[e]||r.$default||l))),{success:f,cases:p}=a.reduce(((e,t)=>o(e,t,{logs:s,throws:i,prefix:u})),{success:!0,cases:{}});return[f,p]};r.setOptions=({logs:e,throws:r,prefix:n})=>{void 0!==e&&(t.SHOULD_LOG=e),void 0!==r&&(t.SHOULD_THROW=r),void 0!==n&&(t.LOG_PREFIX=n)},r.resetOptions=()=>{t.SHOULD_LOG=!0,t.SHOULD_THROW=!1,t.LOG_PREFIX=null};const n=(e,t,r)=>{const n=r(t),o=!r.name||r.name===e||"$default"===r.name?r.toString():r.name;return{success:n,key:e,value:t,validator:r,reason:n?null:[`Argument "${e}" with value `,t,` failed validator: ${o}.`]}},o=(e,t,{logs:r,throws:n,prefix:o})=>(!t.success&&s(t,r,n,o),{success:e.success&&t.success,cases:{...e.cases,[t.key]:t}}),s=(e,t,r,n)=>{const o=n?[n,...e.reason]:e.reason;if(r)throw new Error(o.join());t&&console.error(...o)},i=e=>Array.isArray(e),u=e=>{const t=new Map;for(let n=0;n<e.length;n++){var r;const o=e[n],s=null!==(r=t.get(o))&&void 0!==r?r:0;t.set(o,s+1)}return t},c=(e,t)=>{if(e.size!==t.size)return!1;for(let[r,n]of e){if(t.get(r)!==n)return!1}return!0},l=e=>"object"==typeof e&&!Array.isArray(e)&&null!==e,a=e=>"function"==typeof e,f=e=>(Object.freeze(e),Object.getOwnPropertyNames(e).map((t=>{e.hasOwnProperty(t)&&null!==e[t]&&("object"==typeof e[t]||a(e[t]))&&!Object.isFrozen(e[t])&&f(e[t])})),e),p=Object.freeze({}),d=f({content:{}}),g=f([]),m=e=>e==e&&null!=e,y=(e,t,r)=>{for(let n=0;n<e.length;n++){const o=e[n];i(o)?y(o,t,r):r.exists&&!m(o)||r.truthy&&!o||t.push(o)}return r.mutate?(Object.assign(e,t).splice(t.length),e):t},h=(e,t)=>{if(i(t)){const[r,...n]=t;return r(e,...n)}return a(t)?t(e):(console.error("Pipeline expected either a function or an array (for function expressions). Found "+typeof t),e)},O=(e,...t)=>t.reduce(((e,t)=>h(e,t)),e),b=e=>"string"==typeof e,j=(e,t)=>{if(!b(e))return e;if(!a(t))return e;let r="";for(const n of e)r+=t(n);return r},w=e=>e===e.toLowerCase(),S=e=>e===e.toUpperCase(),A=(e,t,r=["-","_"," "])=>{if(!b(e))return e;const n=e=>r.some((t=>t===e));let o="_";return j(e,(e=>n(e)?(o=t,t):S(e)&&w(o)&&!n(o)?(o=e,t+e):(o=e,e)))},$=(e,t=!0)=>{if(!b(e)||!e[0])return e;const r=t?e.slice(1).toLowerCase():e.slice(1);return`${e[0].toUpperCase()}${r}`},v=e=>{const t=0===e.indexOf(".")?e.slice(1):e;return t.indexOf(".")===t.length-1?t.slice(0,-1):t},_=e=>e&&v(e).replace(/[-_]/gm," ")||e,C=(e,t)=>e&&_(e).split(/[\s_-]/gm).reduce(((e,r,n)=>r?e+=(n>0||t)&&$(r)||r.toLowerCase():e),"")||e,x=e=>null==e?"":b(e)?e:JSON.stringify(e),E=/[A-Z]/g,F=/^ms-/,P={},R=e=>"-"+e.toLowerCase(),L=e=>"number"==typeof e&&e!=e,T=e=>"number"==typeof e&&!L(e),I=e=>T(e)&&e>=0,N=e=>b(e)&&e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")||e,D=e=>"object"==typeof e&&null!==e,U=(e,t,r,n)=>{const o=e;if(!D(e)||!e||!t)return"set"!==r&&n||void 0;const s=i(t)?Array.from(t):t.split("."),u=s.pop();let c,l;for(;c=s.shift();){const t=e[c];if(D(t)||a(t)?e=t:("set"===r?e[c]={}:l=!0,e=e[c]),l)return n}return"get"===r?u in e?e[u]:n:"unset"===r?delete e[u]:(e[u]=n)&&o||o},k=(e,t,r)=>U(e,t,"get",r),M=(e,t,r="")=>{t=D(t)&&t||{};const n=M.regex||/\${(.*?)\}/g;return b(e)?e.replace(n,((e,n)=>{const o=(n||e.substr(2,e.length-3)).trim(),s=k(t,o,r);return a(s)?s(t,o,r):s})):console.error("template requires a string as the first argument")||e},q=['"',"'"],z=e=>{if(!b(e))return;let t="";for(let r of e)t=r+t;return t},J=(e,t,r)=>r.map((r=>e.indexOf(r,t))).sort().find((e=>e>=0)),B=(e,t,r=[" "])=>{const n=J(e,t,r);return e.substring(t,-1===n?e.length:n)},H=e=>"boolean"==typeof e,G=e=>"false"===e||"true"===e,W=e=>H(e)?x(e):e&&"false"!==e&&"0"!==e?"true":"false",K=e=>Boolean(e||""===e||0===e),X=e=>G(e)?"true"===e:"true"===W(e),Q=e=>x(e).replace(/([^.\d])/gm,""),V=e=>T(e)?e:e&&!L(e)&&Number(Q(e))||0,Z=e=>b(e)||T(e)||H(e),Y=(e,t)=>{const[n]=r({x:e,y:t},{$default:Z});return n?b(e)?e.localeCompare(t):e-t:null},ee=e=>e,te=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),re=e=>{const t=function(...r){return e instanceof t||k(e.prototype,"constructor.name")?new e(...r):e.apply(e,r)};for(let r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return Object.defineProperty(t,"name",{value:e.name,configurable:!0}),t.toString=()=>e.toString(),t},ne=(e,t=new WeakMap)=>{if(Object(e)!==e)return e;if(e instanceof Set)return new Set(e);if(t.has(e))return t.get(e);if(i(e))return e.map((e=>ne(e)));if(a(e))return re(e);const r=e instanceof Date?new Date(e):e instanceof RegExp?new RegExp(e.source,e.flags):e.constructor?null:Object.create(null);return null===r?oe(e):(t.set(e,r),e instanceof Map?Array.from(e,(([e,n])=>r.set(e,ne(n,t)))):Object.assign(r,...Object.keys(e).map((r=>({[r]:ne(e[r],t)})))))},oe=e=>{if(!e)return e;const t=Object.getPrototypeOf(e),r=Object.getOwnPropertyDescriptors(e);for(const[e,t]of Object.entries(r))t.value&&(r[e].value=ne(t.value));const n=Object.create(t,r);return Object.isFrozen(e)&&Object.freeze(n),Object.isSealed(e)&&Object.seal(n),n},se=e=>e?(e^16*Math.random()>>e/4).toString(16):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,se),ie=e=>Object.prototype.toString.call(e).slice(8,-1),ue=(e,...t)=>{if(!t.length)return null;for(let r of t){if(!i(r)){console.error(`Matching case must be an entry (a 2-element array). Found: ${ie(r)}`,r);break}const[t,n]=r;if(a(t)&&t(e))return n;if(t===e)return n}return null};ue.default=()=>!0;const ce=e=>l(e)?0===Object.keys(e).length:i(e)?0===e.length:b(e)?0===e.trim().length:!!T(e)&&e<1,le=(e,t)=>{const[n]=r({arr:e,comparator:t},{arr:i,$default:a});return n&&e.length?e.reduce(((e,r)=>t(e,r)>0?e:r)):null},ae=e=>i(e)?e.filter(((e,t,r)=>r.indexOf(e)==t)):e,fe=(e,t=!0)=>D(e)?Object.keys(e).reduce(((r,n)=>{const o=e[n];return null==o||(r[n]=t&&D(o)?fe(o):o),r}),l(e)&&{}||[]):console.error("cleanColl requires a collection as the first argument")||e,pe=(e,t,r)=>U(e,t,"set",r),de=Array.isArray,ge=Object.keys,me=Object.prototype.hasOwnProperty,ye=(e,t)=>{if(e===t)return!0;if(!e||!t||"object"!=typeof e||"object"!=typeof t)return e!=e&&t!=t;const r=de(e),n=de(t);let o,s,i;if(r&&n){if(s=e.length,s!=t.length)return!1;for(o=s;0!=o--;)if(!ye(e[o],t[o]))return!1;return!0}if(r!=n)return!1;const u=e instanceof Date,c=t instanceof Date;if(u!=c)return!1;if(u&&c)return e.getTime()==t.getTime();const l=e instanceof RegExp,a=t instanceof RegExp;if(l!=a)return!1;if(l&&a)return e.toString()==t.toString();const f=ge(e);if(s=f.length,s!==ge(t).length)return!1;for(o=s;0!=o--;)if(!me.call(t,f[o]))return!1;for(o=s;0!=o--;)if(i=f[o],!ye(e[i],t[i]))return!1;return!0},he=e=>e&&b(e)?G(e)?X(e):T(e)?V(e):(()=>{try{return JSON.parse(e)}catch(t){return e}})():e;let Oe,be="dir",je="type";const we=["error","info","log","dir","warn"],Se=(...e)=>{if(!e.length)return;let t=1===e.length?be:e.pop();(Oe||"error"===t)&&("string"==typeof e[0]&&("type"===je?e[0]=`[ ${t.toUpperCase()} ] ${e[0]}`:je&&(e[0]=`${je} ${e[0]}`)),-1!==we.indexOf(t)?console[t](...e):console[be](...e,t))},Ae=(e,t)=>{e&&Object.entries(e).map((([r,n])=>{t&&-1!==t.indexOf(r)||("object"==typeof n&&Ae(n),e[r]=void 0,delete e[r])}))},$e=(...e)=>e.reduce(((e,t)=>{const r=ne(t);return i(r)?[...i(e)&&e||[],...r]:l(r)?Object.entries(r).reduce(((e,[t,r])=>({...e,[t]:a(r)?re(r):D(r)&&t in e?$e(e[t],r):ne(r)})),e):e}),i(e[0])&&[]||{}),ve=e=>i(e)&&2===e.length&&(T(e[0])||b(e[0])),_e=(e,t)=>{if(!i(e)&&!l(e))return console.error(e,"Expected array or object for obj. Found "+typeof e),e;if(!a(t))return console.error("Expected function for cb. Found "+typeof t),e;const r=Object.entries(e),n=i(e)?[]:{};return r.reduce(((e,[r,n])=>{const o=t(r,n);return ve(o)?pe(e,o[0],o[1]):(console.error(`Callback function must return entry. Found: ${o}. Using current entry instead.`),pe(e,r,n))}),n)},Ce=(e,t,r={})=>l(e)&&a(t)&&Object.entries(e).reduce(((e,[r,n])=>t(r,n,e)),r)||r,xe=e=>{if(!a(e))throw"Argument must be a function";return(...t)=>new Promise(((r,n)=>a(t[t.length-1])?(t.pop(),t.push(((...e)=>e&&e[0]?n(...e):r(...e))),e(...t)):r(e(...t))))},Ee=Array.from(["caller","callee","arguments","apply","bind","call","toString","__proto__","__defineGetter__","__defineSetter__","hasOwnProperty","__lookupGetter__","__lookupSetter__","isPrototypeOf","propertyIsEnumerable","valueOf","toLocaleString"]).concat(Object.getOwnPropertyNames(Object.prototype)).reduce(((e,t)=>(e[t]=!0,e)),{}),Fe=e=>{if(!e.__IS_PROMISIFIED__){for(const t of Object.getOwnPropertyNames(e)){if(!(-1!==t.indexOf("Async")||e[`${t}Async`])&&!Ee[t])if(a(e[t]))e[`${t}Async`]=xe(e[t]);else{const r=Object.getOwnPropertyDescriptor(e,t).get;a(r)&&(e[`${t}Async`]=xe(r))}}e.__IS_PROMISIFIED__=!0}return e},Pe=e=>Boolean(e&&e instanceof RegExp),Re=e=>Pe(e)?e.source:b(e)?e:null,Le=e=>{const t={},r=e.split("?"),n=r[r.length-1];if(!n)return t;const o=n.split("&");return o.length&&o.map((e=>{const r=e.split("=");if(r.length<=1)return t;const n=[r.shift(),r.join("=")];if(2===n.length){const e=decodeURIComponent(n[1]).split(",");if(e&&e.length>1)t[n[0]]=e;else if(n[0]in t){const e=t[n[0]];t[n[0]]=i(e)?e.push(decodeURIComponent(n[1])):[e,decodeURIComponent(n[1])]}else t[n[0]]=decodeURIComponent(n[1])}})),t};e.applyToCloneOf=(e,t)=>{let r;if(e||(r="object (Argument 1) in applyToCloneOf, must be defined!"),l(e)||(r="object (Argument 1) in applyToCloneOf, must be an object!"),t||(r="mutator (Argument 2) in applyToCloneOf, must be defined!"),a(t)||(r="mutator (Argument 2) arg in applyToCloneOf, must be a function!"),r)return console.warn(r)||e;const n=ne(e);return t(n),n},e.applyToFunc=h,e.areCountMapsEqual=c,e.areFrequencyEqual=(e,t)=>{const[n]=r({arr:e,otherArr:t},{$default:i});if(!n)return null;if(e===t)return!0;if(e.length!==t.length)return!1;const o=u(e),s=u(t);return c(o,s)},e.areSetEqual=(e,t)=>{const[n]=r({arr:e,otherArr:t},{$default:i});if(!n)return null;if(e===t)return!0;const[o,s]=e.length>t.length?[e,t]:[t,e],u=new Set(s);for(let e=0;e<o.length;e++){const t=o[e];if(!u.has(t))return!1}return!0},e.buildElementCountMap=u,e.buildPath=(...e)=>e.reduce(((e,t)=>{let r=toStr(t);return`${e}${r&&"/"+r||""}`}),"").replace(/([^:\/]|^)\/{2,}/g,"$1/"),e.camelCase=C,e.camelCasePath=e=>{const t=e.split(".").map(((e,t)=>t>0?$(e,!1):e));return t.length>1?t.join(""):e},e.capitalize=$,e.checkCall=(e,...t)=>a(e)?e(...t):void 0,e.cleanColl=fe,e.cleanStr=_,e.clearObj=Ae,e.cloneArr=e=>Array.from([...i(e)&&e||l(e)&&Object.entries(e)||[]]),e.cloneFunc=re,e.cloneJson=e=>{try{return JSON.parse(JSON.stringify(e))}catch(e){return Se(e.message,"error"),null}},e.cloneObjWithPrototypeAndProperties=oe,e.compareTo=Y,e.complement=e=>{const[t]=r({predicate:e},{predicate:a});return t?(...t)=>!e(...t):null},e.containsStr=(e,t,r)=>(e=!b(e)&&x(e)||e,t=!b(t)&&x(t)||t,-1!==e.indexOf(t,r)),e.convertToStrBool=W,e.debounce=(e,t=250,r=!1)=>{let n;return function(...o){if(!a(e))return null;const s=this,i=r&&!n;return clearTimeout(n),n=setTimeout((()=>{n=null,!r&&e.apply(s,o)}),t),i?a(e)&&e.apply(s,o):void 0}},e.deepClone=ne,e.deepEqual=ye,e.deepFreeze=f,e.deepMerge=$e,e.delimitString=A,e.doIt=(...e)=>{const t=e.slice(),r=t.shift(),n=t.shift(),o=t.pop();if(!T(r)||!a(o))return[];const s=new Array(r),i=[];for(let e=0;e<s.length;e++){const r=o.call(n,e,...t);if(!1===r)break;i.push(r)}return i},e.either=(e,t,r)=>a(r)?r(e,t)&&e||t:K(e)&&e||t,e.eitherArr=(e,t)=>i(e)?e:t,e.eitherFunc=(e,t)=>a(e)&&e||t,e.eitherObj=(e,t)=>l(e)&&e||t,e.eitherStr=(e,t)=>b(e)&&e||t,e.ensureArr=e=>i(e)?e:[e],e.equalsNaN=L,e.everyEntry=(e,t)=>e?l(e)?a(t)?O(e,Object.entries,(e=>e.every((([e,r])=>t(e,r))))):(console.error(`Argument 'predicate' passed into everyEntry must a function. Found: ${t}`),!1):(console.error(`Argument obj ${e} must be an object.`),!1):(console.error(`everyEntry expects argument obj [${e}] to be defined.`),!1),e.exists=m,e.filterObj=(e,t)=>e?l(e)?a(t)?Ce(e,((e,r,n)=>(t(e,r)&&(n[e]=r),n)),{}):(console.error(`Argument 'predicate' passed into filterObject must a function. Found: ${t}`),e):(console.error(`Object ${e} was not an object. It must be for filterObject`),e):e,e.findExtrema=le,e.findMax=(e=[],t=ee)=>le(e,((e,r)=>Y(t(e),t(r)))),e.findMin=(e=[],t=ee)=>le(e,((e,r)=>Y(t(r),t(e)))),e.flatArr=(e,t)=>y(e,[],l(t)?t:p),e.flatMap=(e,t)=>{const[n]=r({arr:e,mapFn:t},{arr:i,mapFn:a});return n?e.reduce(((e,r)=>{const n=t(r);return i(n)?n.map((t=>e.push(t))):e.push(n),e}),[]):e},e.get=k,e.getNearestDelimiterIndex=J,e.getNums=Q,e.getRegexSource=Re,e.getURLParam=e=>{var t,n,o;const[s]=r({paramKey:e},{paramKey:b});if(!s)return null;const i="undefined"!=typeof document?document:null,u=null==i||null===(t=i.location)||void 0===t?void 0:t.search;return b(u)&&null!==(n=null===(o=Le(u))||void 0===o?void 0:o[e])&&void 0!==n?n:null},e.getWordEndingAt=(e,t,r=[" "])=>{const n=z(e),o=e.length-t;return z(B(n,o,r))},e.getWordStartingAt=B,e.hasDomAccess=()=>{try{return!("undefined"==typeof window||!window.document||!window.document.createElement)}catch(e){return!1}},e.hasOwn=te,e.hashString=(e,t)=>{if(!b(e)||0==e.length)return 0;e=e.split("").reverse().join("");let r=0;for(let t=0;t<e.length;t++){r=(r<<5)-r+e.charCodeAt(t),r=`${Math.abs(r&r)}`}return I(t)?r.slice(0,t):r},e.hyphenator=e=>{if(P.hasOwnProperty(e))return P[e];const t=e.replace(E,R);return P[e]=F.test(t)?"-"+t:t},e.identity=ee,e.isArr=i,e.isArrMap=e=>{if(!l(e))return!1;const t=Object.values(e);return X(t.length&&t.every(i))},e.isBool=H,e.isColl=D,e.isEmail=e=>{if(!e||!b(e))return!1;return Boolean(/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(e))},e.isEmpty=ce,e.isEmptyColl=e=>i(e)?0===e.length:D(e)&&0===Object.getOwnPropertyNames(e).length,e.isEntry=ve,e.isFloat=e=>T(e)&&e%1!=0,e.isFunc=a,e.isInt=e=>T(e)&&e%1==0,e.isLowerCase=w,e.isNegative=e=>T(e)&&e<0,e.isNonNegative=I,e.isNum=T,e.isObj=l,e.isOrderable=Z,e.isPhone=e=>{if(!e||!b(e))return!1;return Boolean(/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/im.test(e))&&e.replace(/\D/g,"").length<11},e.isPositive=e=>T(e)&&e>0,e.isQuoted=(e,t=q)=>b(e)&&t.some((t=>e.startsWith(t)&&e.endsWith(t))),e.isRegex=Pe,e.isSame=(e,t)=>e===t?0!==e||1/e==1/t:e!=e&&t!=t,e.isStr=b,e.isStrBool=G,e.isUpperCase=S,e.isUrl=e=>Boolean(/^(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/.test(e)),e.isUuid=e=>{if(!e||!b(e))return!1;return Boolean(/^[0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i.test(e))},e.isValidDate=e=>!isNaN((e instanceof Date&&e||new Date(e)).getTime()),e.isValidUrl=e=>/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-/]))?/.test(e),e.joinRegex=(...e)=>{const[t,r]=(e=>{if(i(e[0]))return[e[0],e[1]];const t=e[e.length-1],r=b(t)?t:void 0;return[r?e.splice(0,e.length-1):e,r]})(e),n=t.reduce(((e,t)=>{const r=Re(t);return r?""===e?r:`${e}|${r}`:e}),"");return new RegExp(`(${n})`,r)},e.jsonEqual=(e,t)=>{try{return JSON.stringify(e)===JSON.stringify(t)}catch(e){return!1}},e.keyMap=(e,t)=>i(e)&&e.reduce(((e,r)=>{if(!b(r))return e;const n=t&&r.toUpperCase()||r;return e[n]=n,e}),{})||{},e.limbo=e=>e&&a(e.then)?e.then((e=>[null,e])).catch((e=>[e,void 0])):[new Error("A promise or thenable is required as the first argument!"),null],e.logData=Se,e.mapColl=(e,t)=>a(t)&&D(e)?Object.keys(e).map((r=>t(r,e[r],e))):i(e)?[]:{},e.mapEntries=_e,e.mapKeys=(e,t)=>l(e)&&a(t)?_e(e,((e,r)=>[t(e),r])):e,e.mapObj=(e,t)=>l(e)&&a(t)&&Object.entries(e).map((([e,r])=>t(e,r)))||e,e.mapString=j,e.match=ue,e.memorize=(e,t,r=1)=>{if(!a(e)||t&&!a(t))return console.error("Error: Expected a function",e,t);let n=function(){const o=n.cache,s=t?t.apply(this,arguments):arguments[0];if(te(o,s))return o[s];const i=e.apply(this,arguments);return T(r)&&Object.keys(o).length<r?o[s]=i:n.cache={[s]:i},i};return n.cache={},n.destroy=()=>{t=void 0,n.cache=void 0,n.destroy=void 0,n=void 0},n},e.noOp=()=>{},e.noOpObj=p,e.noPropArr=g,e.noPropObj=d,e.nth=e=>{if(!T(e)){if(!(e=Q(e)))return"";if(e=V(e),L(e))return""}const t=e%100;if(t>=10&&t<=20)return"th";switch(e%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},e.objToQuery=e=>{let t;return Ce(e,((e,r,n)=>{if(!r)return n;const o=b(r)||T(r)||H(r)?r:D(r)?i(r)?r.join(","):JSON.stringify(r):null;return o?(n=t?`${n}&${encodeURIComponent(e)}=${encodeURIComponent(o)}`:`?${encodeURIComponent(e)}=${encodeURIComponent(o)}`,t=!0,n):n}),"")},e.omitKeys=(e={},t=[])=>l(e)&&Ce(e,((r,n,o)=>(-1===t.indexOf(r)&&(o[r]=e[r]),o)),{})||{},e.omitRange=(e,t,n)=>{const[o]=r({arr:e,startIndex:t,count:n},{arr:i,$default:I});if(!o)return e;const s=[...e];return s.splice(t,n),s},e.parseErrorMessage=e=>b(e)&&!ce(e)?e:l(e)?e.message:null,e.parseJSON=e=>{try{return JSON.parse(e)}catch(e){return console.error(e.message),null}},e.pickKeys=(e={},t=[])=>l(e)&&t.reduce(((t,r)=>(r in e&&(t[r]=e[r]),t)),{})||{},e.pipeline=O,e.plural=e=>e&&e.length&&"s"!==e[e.length-1]?e+"s":e,e.promisify=xe,e.promisifyAll=e=>{if(!l(e))return e;Fe(e);const t=Object.getPrototypeOf(e);return t&&null!==Object.getPrototypeOf(t)&&Fe(t),e},e.queryToObj=Le,e.randomArr=(e,t)=>{if(!i(e))return e;const r=t||1,n=[];for(let t=0;t<r;t++)n.push(e[Math.floor(Math.random()*e.length)]);return t?n:n[0]},e.randomizeArr=e=>!i(e)&&e||e.sort((()=>.5-Math.random())),e.reduceColl=(e,t,r)=>a(t)&&D(e)?Object.keys(e).reduce(((r,n)=>t(n,e[n],e,r)),r):i(e)?[]:{},e.reduceObj=Ce,e.removeDot=v,e.repeat=(e,t,r=!1)=>{if(!t||t<=0)return[];if(!T(t))return console.error("Times argument must be a number"),[];const n=[];for(let o=0;o<t;o++){const t=a(e)?e():r?ne(e):e;n.push(t)}return n},e.resetLogs=()=>{Oe=void 0,be="log",je="type"},e.reverseStr=z,e.runSeq=async(e=[],t={})=>{const[n]=r({asyncFns:e},{asyncFns:i});if(!n)return[];const{cloneResults:o=!1,returnOriginal:s=!0}=t,u=[];for(const t of e){const e=a(t)?await t(u.length,o?ne(u):u):s?t:void 0;u.push(e)}return u},e.sanitize=N,e.sanitizeCopy=e=>JSON.parse(N(JSON.stringify(e))),e.set=pe,e.setLogs=(e,t,r)=>{Oe=e,be=t||be||"log",je=r||je||"type"},e.shallowEqual=(e,t,r)=>{if(r&&(i(r)||b(r))&&(e=k(e,r),t=k(t,r)),e===t)return!0;if(!(e&&D(e)&&t&&D(t)))return!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(e[r]!==t[r])return!1;return!0},e.singular=e=>e&&e.length&&"s"===e[e.length-1]?e.slice(0,e.length-1):e,e.snakeCase=e=>A(e,"_").toLowerCase(),e.softFalsy=K,e.someEntry=(e,t)=>e?l(e)?a(t)?O(e,Object.entries,(e=>e.some((([e,r])=>t(e,r))))):(console.error(`Argument 'predicate' passed into someEntry must a function. Found: ${t}`),!1):(console.error(`Argument obj ${e} must be an object.`),!1):(console.error(`someEntry expects argument obj [${e}] to be defined.`),!1),e.spaceJoin=(e,t)=>(t=i(t)?t:[t]).reduce(((e,t)=>b(t)?`${e?e+" ":""}${t}`.trim():e),b(e)?e:""),e.strToType=he,e.styleCase=e=>{if(!b(e))return e;const t=C(e);return`${t[0].toLowerCase()}${t.slice(1)}`},e.template=M,e.throttle=(e,t=100)=>{let r=!1;return function(...n){if(!r)return r=!0,e.apply(this,n),setTimeout((()=>{r=!1}),t)}},e.throttleLast=(e,t,r=100)=>{let n;return function(...o){n&&clearTimeout(n),n=setTimeout((()=>{e.apply(this,o),clearTimeout(n)}),r),"function"==typeof t&&t()}},e.timedRun=async(e,...t)=>{const[n]=r({fn:e},{fn:a});if(!n)return[void 0,-1];const o=new Date;return[await e(...t),new Date-o]},e.toBool=X,e.toFloat=e=>e&&!L(e)&&parseFloat(T(e)&&e||Q(e))||0,e.toInt=e=>e&&!L(e)&&parseInt(T(e)&&e||Q(e))||0,e.toNum=V,e.toObj=(e,t,r)=>i(e)?Object.keys(e).reduce(((t,r)=>(t[r]=e[r],t)),{}):b(str)?(t=t||"=",r=r||"&",str.split(r).reduce(((e,r)=>{const n=r.split(t);return e[n[0].trim()]=he(n[1].trim()),e}),{})):{},e.toStr=x,e.trainCase=e=>b(e)&&e.split(/(?=[A-Z])|[\s_-]/gm).join("-").toLowerCase()||e,e.trimStringFields=e=>Object.entries(e).reduce(((e,[t,r])=>(e[t]=b(r)?r.trim():r,e)),e),e.typeOf=ie,e.uniqArr=(e,t)=>{if(!t)return ae(e);const{unique:r}=e.reduce(((e,r)=>{const n=t(r);return!e.set.has(n)&&e.unique.push(r),e.set.add(n),e}),{unique:[],set:new Set});return r},e.uniqArrByReference=ae,e.unset=(e,t)=>U(e,t,"unset"),e.uuid=se,e.validFilename=e=>{if(!e)return!1;return!(/[<>:"/\\|?*\u0000-\u001F]/g.test(e)||/^(con|prn|aux|nul|com\d|lpt\d)$/i.test(e)||/^\.\.?$/.test(e))},e.validate=r,e.wait=e=>new Promise((t=>setTimeout((()=>t(!0)),e))),e.wordCaps=e=>{if(!b(e))return e;return _(e).split(" ").map((e=>e&&$(e)||"")).join(" ")}}));
//# sourceMappingURL=index.js.map
{
"name": "@keg-hub/jsutils",
"version": "8.2.0",
"version": "8.3.0",
"description": "Keg common javascript utils",

@@ -18,3 +18,4 @@ "main": "build/umd/index.js",

"files": [
"build"
"build",
"src/node"
],

@@ -21,0 +22,0 @@ "publishConfig": {

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