@lntvow/utils 4.4.1 → 4.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* @ts-self-types="./esm-bundler.d.ts" */
|
|
1
|
+
/* @ts-self-types="./utils.esm-bundler.d.ts" */
|
|
2
2
|
function $(e){let t=typeof e;return e!==null&&(t==="object"||t==="function")}function Y(e){return e!==null&&typeof e=="object"}var pe=Object.prototype.toString,N=e=>pe.call(e),ke=e=>N(e).slice(8,-1),D=e=>typeof e=="string",d=e=>typeof e=="number"&&Number.isFinite(e),x=e=>typeof e=="boolean",W=e=>e===null,u=e=>e===void 0,z=e=>typeof e=="symbol",y=Array.isArray,U=e=>typeof e=="function",q=e=>N(e)==="[object Map]",Q=e=>N(e)==="[object Set]",X=e=>N(e)==="[object Date]",J=e=>N(e)==="[object RegExp]",Z=e=>Y(e)&&U(e?.then)&&U(e?.catch),ee=e=>e==null,Fe=e=>e!=null,Ce=(e,t)=>e!==t;function h(e){return N(e)==="[object Object]"}function M(e){return y(e)?e:[e]}function et(e){let t=[],r,n="";for(;e>0;)r=Math.floor(e%2),t.push(r),e=Math.floor(e/2);for(;t.length>0;)n+=t.pop().toString();return n}var te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function tt(e){let t="",r="";for(let o=0;o<e.length;o++)r+=e[o].charCodeAt(0).toString(2).padStart(8,"0");for(let o=0;o<r.length;o+=6)t+=te[Number.parseInt(r.slice(o,o+6).padEnd(6,"0"),2)];let n=t.length%4;return n!==0&&(t+="=".repeat(4-n)),t}function rt(e){let t="",r="";for(let n=0;n<e.length&&e[n]!=="=";n++)r+=te.indexOf(e[n]).toString(2).padStart(6,"0");for(let n=0;n<r.length;n+=8){let o=Number.parseInt(r.slice(n,n+8),2);o&&(t+=String.fromCharCode(o))}return t}function it(...e){return e.reduce((t,r)=>function(...n){return r(t(...n))})}function at(...e){return e.reduce((t,r)=>function(...n){return t(r(...n))})}function ft(e,t=500){let r=null;return function(...n){r&&clearTimeout(r),r=setTimeout(()=>{e.apply(this,n)},t)}}function I(e){let t=new WeakMap;function r(n){if(!Y(n))return n;if(X(n))return new Date(n);if(J(n))return new RegExp(n);if(Z(n))return n;if(t.has(n))return t.get(n);if(q(n)){let m=new Map;return t.set(n,m),n.forEach((p,g)=>m.set(r(g),r(p))),m}if(Q(n)){let m=new Set;return t.set(n,m),n.forEach(p=>m.add(r(p))),m}let o=y(n)?Object.setPrototypeOf([],Object.getPrototypeOf(n)):Object.create(Object.getPrototypeOf(n));t.set(n,o);let f=Object.getOwnPropertyDescriptors(n);for(let m of Reflect.ownKeys(f)){let p=f[m];p.get||p.set?Object.defineProperty(o,m,p):Object.defineProperty(o,m,{...p,value:r(p.value)})}return o}return r(e)}function yt(e,t,r={}){return ne(re(e,r),re(t,r),r)}function ne(e,t,r){return y(e)?ge(e,t,r):le(e,t,r)}function le(e,t,r){if(!h(t))return t;let n=Object.getOwnPropertyDescriptors(t);return Reflect.ownKeys(t).forEach(o=>{(h(e[o])||y(e[o]))&&(h(t[o])||y(t[o]))?e[o]=ne(e[o],t[o],r):Object.defineProperty(e,o,n[o])}),e}function ge(e,t,r){let{mergeStrategy:n="replace"}=r;if(y(t))switch(n){case"merge":return e.concat(t);case"replace":return t;default:return t}return t}function re(e,t){let{deepClone:r=!0}=t;return r?I(e):e}var B=class extends Error{constructor(t,r="Utils"){super(t),this.name=r}};function s(e,t){throw new B(`[${e}] ${t}`)}function wt(e,t){let r=D(e)?new B(`[${e}] ${t}`,"UtilsWarn"):e;console.warn(r)}var V=(e,t,...r)=>{if(!t)return;let n=r.length===0?"":r.length===1?r[0]:r;console[e](`[Log] ${t}:`,n)},k=(e,...t)=>{V("info",e,...t)};k.info=(e,...t)=>{V("info",e,...t)};k.error=(e,...t)=>{V("error",e,...t)};k.warn=(e,...t)=>{V("warn",e,...t)};typeof globalThis<"u"&&(globalThis.lntvowLogger=k);function Dt(e,t={}){de(t);let{encode:r=!0,encodeValuesOnly:n=!1,arrayFormat:o="indices",encodeDotInKeys:f=!1,skipNulls:m=!1,strictNullHandling:p=!1,commaRoundTrip:g=!1,allowEmptyArrays:F=!1,addQueryPrefix:T=!1,delimiter:C="&"}=t,S=t.allowDots??!1;f&&u(t.allowDots)&&(S=!0);let b=[],R=c=>r&&!n?encodeURIComponent(c):c,_=c=>r?encodeURIComponent(c):c;function K(c,l){if(!u(l)){if(W(l)){if(m)return;b.push(`${R(c)}${p?"":"="}`);return}if(y(l)){if(l.length===0){F&&b.push(`${R(c)}[]`);return}if(o==="comma"){let j=n?l.map(_).join(","):_(l.join(","));if(l.length===1&&W(l[0])){if(m)return;b.push(`${R(c)}${g?"[]":""}${p?"":"="}`)}else l.length===1?b.push(`${R(c)}${g?"[]":""}=${j}`):b.push(`${R(c)}=${j}`);return}l.forEach((j,P)=>{let E=c;o==="indices"?E=`${c}[${P}]`:o==="brackets"&&(E=`${c}[]`),K(E,j)});return}if($(l)){Object.keys(l).forEach(j=>{let P=c;f&&(P=P.replace(/\./g,"%2E"));let E=j;S?(f&&(E=E.replace(/\./g,"%2E")),K(`${P}.${E}`,l[j])):K(`${P}[${E}]`,l[j])});return}b.push(`${R(c)}=${_(l)}`)}}if(!$(e))return"";oe(e)&&s("stringify","Input object contains circular references, cannot stringify"),y(e)?e.forEach((c,l)=>K(`${l}`,c)):Object.keys(e).forEach(c=>K(c,e[c]));let H=b.join(C);return T&&H?`?${H}`:H}function de(e={}){h(e)||s("stringify",'"options" must be a plain object'),!u(e.encode)&&!x(e.encode)&&s("stringify",'"encode" must be a boolean'),!u(e.encodeValuesOnly)&&!x(e.encodeValuesOnly)&&s("stringify",'"encodeValuesOnly" must be a boolean'),!u(e.arrayFormat)&&!["indices","brackets","repeat","comma"].includes(e.arrayFormat)&&s("stringify",'"arrayFormat" must be one of: "indices", "brackets", "repeat", "comma"'),!u(e.allowDots)&&!x(e.allowDots)&&s("stringify",'"allowDots" must be a boolean'),!u(e.skipNulls)&&!x(e.skipNulls)&&s("stringify",'"skipNulls" must be a boolean'),!u(e.strictNullHandling)&&!x(e.strictNullHandling)&&s("stringify",'"strictNullHandling" must be a boolean'),!u(e.addQueryPrefix)&&!x(e.addQueryPrefix)&&s("stringify",'"addQueryPrefix" must be a boolean'),!u(e.delimiter)&&!D(e.delimiter)&&s("stringify",'"delimiter" must be a string'),!u(e.encodeDotInKeys)&&!x(e.encodeDotInKeys)&&s("stringify",'"encodeDotInKeys" must be a boolean'),!u(e.commaRoundTrip)&&!x(e.commaRoundTrip)&&s("stringify",'"commaRoundTrip" must be a boolean'),!u(e.allowEmptyArrays)&&!x(e.allowEmptyArrays)&&s("stringify",'"allowEmptyArrays" must be a boolean')}var be={stringify:e=>($(e)||s("stringify","Input must be an object"),new URLSearchParams(e).toString()),parse:e=>(D(e)||s("parse","Input must be a string"),Object.fromEntries(new URLSearchParams(e).entries())),appendQueryString:(e,t)=>{let r=be.stringify(t);return e.includes("?")?e.endsWith("?")||e.endsWith("&")?`${e}${r}`:`${e}&${r}`:`${e}?${r}`}};function _t(e,t=500){let r=null;return function(...n){if(ee(r))return r=Date.now(),e.apply(this,n);let o=Date.now();if(o-r>=t)return r=o,e.apply(this,n)}}function vt(e){ye(e);let{fn:t,maxAttempts:r=3,retryDelay:n=1e3,enableExponentialBackoff:o=!1,signal:f}=e,m,p=f?new Promise((F,T)=>{let C=()=>T(ie());f.addEventListener("abort",C),m=()=>f.removeEventListener("abort",C)}):null;return new Promise((F,T)=>{(async()=>{for(let S=1;S<=r;S++){if(f?.aborted)return T(ie());try{let b=await Promise.race(p?[t(),p]:[t()]);return F(b)}catch(b){let R=o?n*2**(S-1):n;if(k("withRetry",`Attempt ${S}/${r} failed. Retrying in ${R}ms...`),b instanceof Error&&b.name==="AbortError"||S===r)return T(b);await new Promise(_=>setTimeout(_,R))}}})()}).finally(()=>m?.())}function ye(e){h(e)||s("withRetry",'"Options" must be an object'),typeof e.fn!="function"&&s("withRetry",'"fn" must be a function that returns a Promise'),!u(e.maxAttempts)&&(!Number.isInteger(e.maxAttempts)||e.maxAttempts<1)&&s("withRetry",'"maxAttempts" must be a positive integer'),!u(e.retryDelay)&&(!d(e.retryDelay)||e.retryDelay<0)&&s("withRetry",'"retryDelay" must be a non-negative number'),!u(e.enableExponentialBackoff)&&!x(e.enableExponentialBackoff)&&s("withRetry",'"enableExponentialBackoff" must be a boolean'),!u(e.signal)&&typeof e.signal!="object"&&s("withRetry",'"signal" must be an AbortSignal')}var xe="The operation was aborted";function ie(e=xe){let t=new Error(e);return t.name="AbortError",t}function oe(e){$(e)||s("hasCircularReference",'"obj" must be a object');let t=new Set;function r(n){if($(n)){if(t.has(n))return!0;t.add(n);for(let o of Object.keys(n))if(r(n[o]))return!0;t.delete(n)}return!1}return r(e)}function ae(e,t,r={}){let{includeProto:n=!1,includeSymbols:o=!0,includeNonEnum:f=!1}=r,m={};return h(e)&&M(t).forEach(g=>{z(g)&&!o||!(n?g in e:Object.hasOwn(e,g))||!f&&(n?he(e,g):Object.getOwnPropertyDescriptor(e,g))?.enumerable===!1||(m[g]=I(e[g]))}),m}function he(e,t){let r=e;for(;r!==null;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function Rr(e,t){if(!h(e))return{};let r=I(e),n=M(t),o=Object.keys(r).filter(f=>!n.includes(f));return ae(r,o)}function Mr(e){return/^-?(?:0|[1-9]\d*)\.\d+$/.test(e)}function Pr(e){return/^(?:0\.0*[1-9]\d*|[1-9]\d*\.\d+)$/.test(e)}function Ir(e){return/^(?:0|[1-9]\d*)\.\d+$/.test(e)}function kr(e){return/^-(?:0\.0*[1-9]\d*|[1-9]\d*\.\d+)$/.test(e)}function Fr(e){return/^-(?:0|[1-9]\d*)\.\d+$/.test(e)}function Kr(e){return/^-?(?:0|[1-9]\d*)$/.test(e)}function Lr(e){return/^[1-9]\d*$/.test(e)}function se(e){return/^(?:0|[1-9]\d*)$/.test(e)&&!Object.is(e,-0)}function Yr(e){return/^-[1-9]\d*$/.test(e)}function Ur(e){return/^-(?:0|[1-9]\d*)$/.test(e)||Object.is(e,-0)}import Oe from"dayjs";function me(e,t="YYYY-MM-DD HH:mm:ss"){return Oe(e,t,!0).isValid()}function Gr(e){return/^[^\s@]+@[^\s@][^\s.@]*\.[^\s@]+$/.test(e)}function Qr(e){return e===""}import fe from"dayjs";function tn(e){if(!/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dX]$/i.test(e))return!1;let r=e.slice(6,14);return me(r,"YYYYMMDD")&&fe(r,"YYYYMMDD").isBefore(fe())}function on(e){return/^1[3-9]\d{9}$/.test(e)}var fn=e=>{if(!D(e)||!/^-?\d+(?:\.\d+)?$/.test(e))return!1;let r=Number(e);return!(r>Number.MAX_SAFE_INTEGER||r<Number.MIN_SAFE_INTEGER)};function pn(e){return/^https?:\/\/\S+$/i.test(e)}function Nn(e,t){return(!d(e)||!se(e.toString()))&&s("generateRandomArray","num must be greater than 0"),U(t)||s("generateRandomArray","cb must be a function"),Array.from({length:e},()=>t())}function In(){return`#${Math.floor(Math.random()*16777215).toString(16).padStart(6,"0")}`}import L from"dayjs";import Ae from"dayjs/plugin/customParseFormat.js";function O(e){return e[Math.floor(Math.random()*e.length)]}function w(e={}){d(e)&&(e={max:e});let{min:t=1,max:r=O(Re())}=e;we(t,r);let n=Math.ceil(t),o=Math.floor(r);return Math.floor(Math.random()*(o-n+1)+n)}function we(e,t){let r=Math.ceil(e),n=Math.floor(t);Number.isSafeInteger(r)||s("getRandomInt",`The minimum value Math.ceil(${e}) should be a safe integer`),Number.isSafeInteger(n)||s("getRandomInt",`The maximum value Math.floor(${t}) should be a safe integer`),n<r&&(t>=e&&s("getRandomInt",`No integer value found between ${e} and ${t}`),s("getRandomInt",`The maximum value ${t} should be greater than the minimum value ${e}`))}function Re(){return Array.from({length:Number.MAX_SAFE_INTEGER.toString().length}).map((e,t)=>{let r=Number.MAX_SAFE_INTEGER.toString().slice(0,t+1);return Number(r)})}L.extend(Ae);function ue(e={}){let{start:t="1800-01-01 00:00:00",end:r=L().format(ce),format:n=ce}=e,o=L(t),f=L(r);(!o.isValid()||!f.isValid())&&s("generateRandomDate","start and end parameters must be valid date format"),o.isAfter(f)&&s("generateRandomDate","start date must be before end date");let m=o.valueOf(),p=f.valueOf(),g=w({min:m,max:p});return L(g).format(n)}var ce="YYYY-MM-DD HH:mm:ss";function A(e={}){let t=Se(e),r=je(t);Ee(r);let{length:n}=t;$e(n.min,n.max);let o=w(n),f=t.prefix||"";for(let m=0;m<o;m++)f+=r.charAt(Math.floor(Math.random()*r.length));return f+(t.suffix||"")}var Te=16,v=1;function Se(e){let t=d(e);return{lowerCase:!0,upperCase:!0,number:!0,...t?{}:e,length:t?{max:e,min:e}:d(e.length)?{max:e.length,min:e.length}:{max:Te,min:v,...e.length},extra:t?[]:[...new Set(M(e.extra||[]))]}}function je(e){let t="";return e.lowerCase&&(t+="abcdefghijklmnopqrstuvwxyz"),e.upperCase&&(t+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),e.number&&(t+="0123456789"),t+=M(e.extra).join(""),t}function Ee(e){e.length===0&&s("getRandomString","At least one character set (lowercase, uppercase, number) must be enabled or extra characters provided")}function $e(e,t){Number.isInteger(e)||s("getRandomString","min must be an integer"),Number.isInteger(t)||s("getRandomString","max must be an integer"),e<v&&s("getRandomString",`Minimum length cannot be less than ${v}`),t<e&&s("getRandomString","Maximum length cannot be less than minimum length")}function oo(){let e=["gmail.com","outlook.com","yahoo.com","qq.com","163.com","hotmail.com"],t=w({min:5,max:10}),r=A({length:t,lowerCase:!0,upperCase:!1,number:!0}),n=O(e);return`${r}@${n}`}function fo(e={}){d(e)&&(e={max:e});let{min:t=0,max:r=1,fractionDigits:n=2}=e;if((!d(t)||!d(r))&&s("generateRandomFloat",'"min" and "max" must be numbers'),(!Number.isInteger(n)||n<0)&&s("generateRandomFloat",'"fractionDigits" must be a non-negative integer'),t===r)return Number(t.toFixed(n));t>r&&s("generateRandomFloat",`"max" (${r}) must be greater than "min" (${t})`);let o=Math.random()*(r-t)+t;return Number(o.toFixed(n))}function G(e,t){(!d(e)||e<=0)&&s("generateRandomStringFromSource",'"num" must be greater than 0'),(!y(t)||t.length===0)&&s("generateRandomStringFromSource",'"source" must be a non-empty array');let r="";for(let n=0;n<e;n++)r+=O(t);return r}function wo(){let e=w({min:1e5,max:999999}),t=[0,1,2,3,4,5,6,7,8,9];return[e,ue({format:"YYYYMMDD"}),G(3,t),G(1,[...t,"X","x"])].join("")}function jo(){return O(["13","14","15","16","17","18","19"])+w(999999999).toString().padEnd(9,"0")}function Po(){let e=["http://","https://"],t=[".com",".net",".org",".cn",".top"],r=[`?name=${A({length:{min:4,max:8}})}`,`?id=${w()}`,`?page=${A({length:{min:2,max:4}})}`,`?query=${A({length:{min:5,max:6}})}`,`?search=${A({length:{min:1,max:4}})}`,`?token=${A({length:{min:16,max:16}})}`];return`${O(e)}${A({length:{min:5,max:25}})}${O(t)}${O(r)}`}export{B as UtilsError,rt as base64Decode,tt as base64Encode,M as castArray,it as compose,at as composeRight,ft as debounce,wt as debugWarn,et as decimalToBinary,I as deepClone,yt as deepMerge,Nn as generateRandomArray,In as generateRandomColor,ue as generateRandomDate,oo as generateRandomEmail,fo as generateRandomFloat,wo as generateRandomIdCard,jo as generateRandomMobilePhone,G as generateRandomStringFromSource,w as getRandomInt,O as getRandomItem,A as getRandomString,Po as getRandomUrl,Ce as hasChanged,oe as hasCircularReference,y as isArray,x as isBoolean,X as isDate,me as isDateString,Fe as isDef,Gr as isEmail,Qr as isEmptyString,Mr as isFloat,U as isFunction,tn as isIdCard,Kr as isInteger,q as isMap,on as isMobilePhone,kr as isNegativeFloat,Yr as isNegativeInteger,ee as isNil,Ir as isNonNegativeFloat,se as isNonNegativeInteger,Fr as isNonPositiveFloat,Ur as isNonPositiveInteger,W as isNull,d as isNumber,$ as isObject,Y as isObjectLike,h as isPlainObject,Pr as isPositiveFloat,Lr as isPositiveInteger,Z as isPromise,J as isRegExp,Q as isSet,D as isString,fn as isStringNumber,z as isSymbol,pn as isURL,u as isUndef,k as logger,pe as objectToString,Rr as omit,ae as pick,be as qs,Dt as qsStringify,_t as throttle,s as throwError,N as toTypeString,ke as toTypeValue,vt as withRetry};
|