@lntvow/utils 5.0.0 → 5.0.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,3 +1,3 @@
1
- /* @ts-self-types="./utils.esm-bundler.d.ts" */
1
+ /* @ts-self-types="./utils.d.ts" */
2
2
  function P(e){let t=typeof e;return e!==null&&(t==="object"||t==="function")}function _(e){return e!==null&&typeof e=="object"}var ge=Object.prototype.toString,x=e=>ge.call(e),We=e=>x(e).slice(8,-1),T=e=>typeof e=="string",u=e=>typeof e=="number",_e=e=>typeof e=="number"&&Number.isFinite(e),V=e=>typeof e=="boolean",Be=e=>e===null,I=e=>e===void 0,v=e=>typeof e=="symbol",y=Array.isArray,B=e=>typeof e=="function",z=e=>x(e)==="[object Map]",G=e=>x(e)==="[object Set]",X=e=>x(e)==="[object WeakMap]",q=e=>x(e)==="[object WeakSet]",H=e=>x(e)==="[object Date]",Q=e=>x(e)==="[object RegExp]",J=e=>x(e)==="[object Arguments]",Z=e=>_(e)&&B(e?.then)&&B(e?.catch),ee=e=>e==null,Le=e=>e!=null,Ye=(e,t)=>e!==t;function h(e){return x(e)==="[object Object]"}function j(e){return y(e)?e:[e]}function it(e){let t=[],r,o="";for(;e>0;)r=Math.floor(e%2),t.push(r),e=Math.floor(e/2);for(;t.length>0;)o+=t.pop().toString();return o}var te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function at(e){let t="",r="";for(let m=0;m<e.length;m++)r+=e[m].charCodeAt(0).toString(2).padStart(8,"0");for(let m=0;m<r.length;m+=6)t+=te[Number.parseInt(r.slice(m,m+6).padEnd(6,"0"),2)];let o=t.length%4;return o!==0&&(t+="=".repeat(4-o)),t}function st(e){let t="",r="";for(let o=0;o<e.length&&e[o]!=="=";o++)r+=te.indexOf(e[o]).toString(2).padStart(6,"0");for(let o=0;o<r.length;o+=8){let m=Number.parseInt(r.slice(o,o+8),2);m&&(t+=String.fromCharCode(m))}return t}function ft(...e){return e.reduce((t,r)=>function(...o){return r(t(...o))})}function pt(...e){return e.reduce((t,r)=>function(...o){return t(r(...o))})}function dt(e,t=500){let r=null;return function(...o){r&&clearTimeout(r),r=setTimeout(()=>{e.apply(this,o)},t)}}function E(e){let t=new WeakMap,r=[{predicate:H,handler:l},{predicate:Q,handler:S},{predicate:z,handler:le},{predicate:G,handler:de},{predicate:Z,handler:d},{predicate:X,handler:M},{predicate:q,handler:O},{predicate:n=>n instanceof Boolean||n instanceof Number||n instanceof String,handler:D},{predicate:n=>n instanceof Error,handler:R},{predicate:n=>typeof Node<"u"&&n instanceof Node,handler:A},{predicate:J,handler:W},{predicate:n=>typeof Buffer<"u"&&Buffer.isBuffer(n),handler:Y},{predicate:n=>n instanceof ArrayBuffer,handler:fe},{predicate:n=>n instanceof DataView,handler:pe},{predicate:n=>ArrayBuffer.isView(n),handler:ue}];function o(n){if(!_(n))return n;if(t.has(n))return t.get(n);for(let p of r)if(p.predicate(n))return p.handler(n);let i=y(n)?Object.setPrototypeOf([],Object.getPrototypeOf(n)):Object.create(Object.getPrototypeOf(n));return t.set(n,i),f(n,i),i}function m(n,i){let p=Object.getOwnPropertyDescriptors(n);for(let k of Reflect.ownKeys(p)){let N=p[k];N.get||N.set?Object.defineProperty(i,k,N):Object.defineProperty(i,k,{...N,value:o(N.value)})}}function f(n,i){m(n,i),be(n,i)}function l(n){let i=new Date(n);return t.set(n,i),f(n,i),i}function S(n){let i=new RegExp(n.source,n.flags);return i.lastIndex=n.lastIndex,t.set(n,i),f(n,i),i}function d(n){return n}function M(){return new WeakMap}function O(){return new WeakSet}function D(n){let i=n.valueOf(),p=new Object(i);return t.set(n,p),m(n,p),p}function R(n){let i=new n.constructor(n.message);return t.set(n,i),m(n,i),i}function A(n){return{}}function W(n){let i=Object.create(Object.getPrototypeOf(n));return t.set(n,i),f(n,i),i}function Y(n){if(n.constructor.allocUnsafe){let p=n.constructor.allocUnsafe(n.length);return n.copy(p),t.set(n,p),p}let i=new n.constructor(n);return t.set(n,i),i}function fe(n){let i=new n.constructor(n.byteLength);return new Uint8Array(i).set(new Uint8Array(n)),t.set(n,i),i}function pe(n){let i=o(n.buffer),p=new DataView(i,n.byteOffset,n.byteLength);return t.set(n,p),p}function ue(n){let i=new n.constructor(n);return t.set(n,i),i}function le(n){let i=new Map;return t.set(n,i),n.forEach((p,k)=>i.set(o(k),o(p))),f(n,i),i}function de(n){let i=new Set;return t.set(n,i),n.forEach(p=>i.add(o(p))),f(n,i),i}return o(e)}function be(e,t){Object.isFrozen(e)?Object.freeze(t):Object.isSealed(e)?Object.seal(t):Object.isExtensible(e)||Object.preventExtensions(t)}function At(e,t,r={}){return ne(re(e,r),re(t,r),r)}function ne(e,t,r){return y(e)?xe(e,t,r):ye(e,t,r)}function ye(e,t,r){if(!h(t))return t;let o=Object.getOwnPropertyDescriptors(t);return Reflect.ownKeys(t).forEach(m=>{(h(e[m])||y(e[m]))&&(h(t[m])||y(t[m]))?e[m]=ne(e[m],t[m],r):Object.defineProperty(e,m,o[m])}),e}function xe(e,t,r){let{mergeStrategy:o="replace"}=r;if(y(t))switch(o){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?E(e):e}var L=class extends Error{constructor(t,r="Utils"){super(t),this.name=r}};function c(e,t){throw new L(`[${e}] ${t}`)}function Tt(e,t){let r=T(e)?new L(`[${e}] ${t}`,"UtilsWarn"):e;console.warn(r)}var $=(e,t,...r)=>{if(!t)return;let o=r.length===0?"":r.length===1?r[0]:r;console[e](`[Log] ${t}${r.length===0?"":":"}`,o)},C=(e,...t)=>{$("info",e,...t)};C.info=(e,...t)=>{$("info",e,...t)};C.warn=(e,...t)=>{$("warn",e,...t)};C.error=(e,...t)=>{$("error",e,...t)};typeof globalThis<"u"&&(globalThis.lntvowSetLogImpl=e=>$=e);var he={stringify:e=>(P(e)||c("stringify","Input must be an object"),new URLSearchParams(e).toString()),parse:e=>(T(e)||c("parse","Input must be a string"),Object.fromEntries(new URLSearchParams(e).entries())),appendQueryString:(e,t)=>{let r=he.stringify(t);return e.includes("?")?e.endsWith("?")||e.endsWith("&")?`${e}${r}`:`${e}&${r}`:`${e}?${r}`}};function Ft(e,t=500){let r=null;return function(...o){if(ee(r))return r=Date.now(),e.apply(this,o);let m=Date.now();if(m-r>=t)return r=m,e.apply(this,o)}}function vt(e){we(e);let{fn:t,maxAttempts:r=3,retryDelay:o=1e3,enableExponentialBackoff:m=!1,signal:f}=e,l,S=f?new Promise((M,O)=>{let D=()=>O(oe());f.addEventListener("abort",D),l=()=>f.removeEventListener("abort",D)}):null;return new Promise((M,O)=>{(async()=>{for(let R=1;R<=r;R++){if(f?.aborted)return O(oe());try{let A=await Promise.race(S?[t(),S]:[t()]);return M(A)}catch(A){let W=m?o*2**(R-1):o;if(C("withRetry",`Attempt ${R}/${r} failed. Retrying in ${W}ms...`),A instanceof Error&&A.name==="AbortError"||R===r)return O(A);await new Promise(Y=>setTimeout(Y,W))}}})()}).finally(()=>l?.())}function we(e){h(e)||c("withRetry",'"Options" must be an object'),typeof e.fn!="function"&&c("withRetry",'"fn" must be a function that returns a Promise'),!I(e.maxAttempts)&&(!Number.isInteger(e.maxAttempts)||e.maxAttempts<1)&&c("withRetry",'"maxAttempts" must be a positive integer'),!I(e.retryDelay)&&(!u(e.retryDelay)||e.retryDelay<0)&&c("withRetry",'"retryDelay" must be a non-negative number'),!I(e.enableExponentialBackoff)&&!V(e.enableExponentialBackoff)&&c("withRetry",'"enableExponentialBackoff" must be a boolean'),!I(e.signal)&&typeof e.signal!="object"&&c("withRetry",'"signal" must be an AbortSignal')}var Oe="The operation was aborted";function oe(e=Oe){let t=new Error(e);return t.name="AbortError",t}function cr(e){P(e)||c("hasCircularReference",'"obj" must be a object');let t=new Set;function r(o){if(P(o)){if(t.has(o))return!0;t.add(o);for(let m of Object.keys(o))if(r(o[m]))return!0;t.delete(o)}return!1}return r(e)}function gr(e,t){if(!h(e))return{};let r=E(e),o=j(t);for(let m of o)Reflect.deleteProperty(r,m);return r}function Or(e,t,r={}){let{includeProto:o=!1,includeSymbols:m=!0,includeNonEnum:f=!1}=r,l={};return h(e)&&j(t).forEach(d=>{v(d)&&!m||!(o?d in e:Object.hasOwn(e,d))||!f&&(o?Ae(e,d):Object.getOwnPropertyDescriptor(e,d))?.enumerable===!1||(l[d]=E(e[d]))}),l}function Ae(e,t){let r=e;for(;r!==null;){let o=Object.getOwnPropertyDescriptor(r,t);if(o)return o;r=Object.getPrototypeOf(r)}}function kr(e){return/^-?(?:0|[1-9]\d*)\.\d+$/.test(e)}function Nr(e){return/^(?:0\.0*[1-9]\d*|[1-9]\d*\.\d+)$/.test(e)}function Pr(e){return/^(?:0|[1-9]\d*)\.\d+$/.test(e)}function Ir(e){return/^-(?:0\.0*[1-9]\d*|[1-9]\d*\.\d+)$/.test(e)}function $r(e){return/^-(?:0|[1-9]\d*)\.\d+$/.test(e)}function Wr(e){return/^-?(?:0|[1-9]\d*)$/.test(e)}function _r(e){return/^[1-9]\d*$/.test(e)}function ie(e){return/^(?:0|[1-9]\d*)$/.test(e)&&!Object.is(e,-0)}function Br(e){return/^-[1-9]\d*$/.test(e)}function Lr(e){return/^-(?:0|[1-9]\d*)$/.test(e)||Object.is(e,-0)}import Se from"dayjs";function ae(e,t="YYYY-MM-DD HH:mm:ss"){return Se(e,t,!0).isValid()}function zr(e){return/^[^\s@]+@[^\s@][^\s.@]*\.[^\s@]+$/.test(e)}function qr(e){return e===""}import se from"dayjs";function en(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 ae(r,"YYYYMMDD")&&se(r,"YYYYMMDD").isBefore(se())}function nn(e){return/^1[3-9]\d{9}$/.test(e)}var mn=e=>{if(!T(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 Dn(e,t){return(!u(e)||!ie(e.toString()))&&c("generateRandomArray","num must be greater than 0"),B(t)||c("generateRandomArray","cb must be a function"),Array.from({length:e},()=>t())}function Pn(){return`#${Math.floor(Math.random()*16777215).toString(16).padStart(6,"0")}`}import F from"dayjs";import Te from"dayjs/plugin/customParseFormat.js";function g(e){return e[Math.floor(Math.random()*e.length)]}function b(e={}){u(e)&&(e={max:e});let{min:t=1,max:r=g(je())}=e;Re(t,r);let o=Math.ceil(t),m=Math.floor(r);return Math.floor(Math.random()*(m-o+1)+o)}function Re(e,t){let r=Math.ceil(e),o=Math.floor(t);Number.isSafeInteger(r)||c("getRandomInt",`The minimum value Math.ceil(${e}) should be a safe integer`),Number.isSafeInteger(o)||c("getRandomInt",`The maximum value Math.floor(${t}) should be a safe integer`),o<r&&(t>=e&&c("getRandomInt",`No integer value found between ${e} and ${t}`),c("getRandomInt",`The maximum value ${t} should be greater than the minimum value ${e}`))}function je(){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)})}F.extend(Te);function ce(e={}){let{start:t="1800-01-01 00:00:00",end:r=F().format(me),format:o=me}=e,m=F(t),f=F(r);(!m.isValid()||!f.isValid())&&c("generateRandomDate","start and end parameters must be valid date format"),m.isAfter(f)&&c("generateRandomDate","start date must be before end date");let l=m.valueOf(),S=f.valueOf(),d=b({min:l,max:S});return F(d).format(o)}var me="YYYY-MM-DD HH:mm:ss";function w(e={}){let t=Me(e),r=De(t);ke(r);let{length:o}=t;Ne(o.min,o.max);let m=b(o),f=t.prefix||"";for(let l=0;l<m;l++)f+=r.charAt(Math.floor(Math.random()*r.length));return f+(t.suffix||"")}var Ee=16,U=1;function Me(e){let t=u(e);return{lowerCase:!0,upperCase:!0,number:!0,...t?{}:e,length:t?{max:e,min:e}:u(e.length)?{max:e.length,min:e.length}:{max:Ee,min:U,...e.length},extra:t?[]:[...new Set(j(e.extra||[]))]}}function De(e){let t="";return e.lowerCase&&(t+="abcdefghijklmnopqrstuvwxyz"),e.upperCase&&(t+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),e.number&&(t+="0123456789"),t+=j(e.extra).join(""),t}function ke(e){e.length===0&&c("getRandomString","At least one character set (lowercase, uppercase, number) must be enabled or extra characters provided")}function Ne(e,t){Number.isInteger(e)||c("getRandomString","min must be an integer"),Number.isInteger(t)||c("getRandomString","max must be an integer"),e<U&&c("getRandomString",`Minimum length cannot be less than ${U}`),t<e&&c("getRandomString","Maximum length cannot be less than minimum length")}function no(){let e=["gmail.com","outlook.com","yahoo.com","qq.com","163.com","hotmail.com"],t=b({min:5,max:10}),r=w({length:t,lowerCase:!0,upperCase:!1,number:!0}),o=g(e);return`${r}@${o}`}function mo(e={}){u(e)&&(e={max:e});let{min:t=0,max:r=1,fractionDigits:o=2}=e;if((!u(t)||!u(r))&&c("generateRandomFloat",'"min" and "max" must be numbers'),(!Number.isInteger(o)||o<0)&&c("generateRandomFloat",'"fractionDigits" must be a non-negative integer'),t===r)return Number(t.toFixed(o));t>r&&c("generateRandomFloat",`"max" (${r}) must be greater than "min" (${t})`);let m=Math.random()*(r-t)+t;return Number(m.toFixed(o))}function K(e,t){(!u(e)||e<=0)&&c("generateRandomStringFromSource",'"num" must be greater than 0'),(!y(t)||t.length===0)&&c("generateRandomStringFromSource",'"source" must be a non-empty array');let r="";for(let o=0;o<e;o++)r+=g(t);return r}function wo(){let e=b({min:1e5,max:999999}),t=[0,1,2,3,4,5,6,7,8,9];return[e,ce({format:"YYYYMMDD"}),K(3,t),K(1,[...t,"X","x"])].join("")}function jo(){return g(["13","14","15","16","17","18","19"])+b(999999999).toString().padEnd(9,"0")}function No(){let e=["http://","https://"],t=[".com",".net",".org",".cn",".top"],r=[`?name=${w({length:{min:4,max:8}})}`,`?id=${b()}`,`?page=${w({length:{min:2,max:4}})}`,`?query=${w({length:{min:5,max:6}})}`,`?search=${w({length:{min:1,max:4}})}`,`?token=${w({length:{min:16,max:16}})}`];return`${g(e)}${w({length:{min:5,max:25}})}${g(t)}${g(r)}`}export{L as UtilsError,st as base64Decode,at as base64Encode,j as castArray,ft as compose,pt as composeRight,dt as debounce,Tt as debugWarn,it as decimalToBinary,E as deepClone,At as deepMerge,Dn as generateRandomArray,Pn as generateRandomColor,ce as generateRandomDate,no as generateRandomEmail,mo as generateRandomFloat,wo as generateRandomIdCard,jo as generateRandomMobilePhone,K as generateRandomStringFromSource,b as getRandomInt,g as getRandomItem,w as getRandomString,No as getRandomUrl,Ye as hasChanged,cr as hasCircularReference,J as isArguments,y as isArray,V as isBoolean,H as isDate,ae as isDateString,Le as isDef,zr as isEmail,qr as isEmptyString,_e as isFiniteNumber,kr as isFloat,B as isFunction,en as isIdCard,Wr as isInteger,z as isMap,nn as isMobilePhone,Ir as isNegativeFloat,Br as isNegativeInteger,ee as isNil,Pr as isNonNegativeFloat,ie as isNonNegativeInteger,$r as isNonPositiveFloat,Lr as isNonPositiveInteger,Be as isNull,u as isNumber,P as isObject,_ as isObjectLike,h as isPlainObject,Nr as isPositiveFloat,_r as isPositiveInteger,Z as isPromise,Q as isRegExp,G as isSet,T as isString,mn as isStringNumber,v as isSymbol,pn as isURL,I as isUndef,X as isWeakMap,q as isWeakSet,C as log,ge as objectToString,gr as omit,Or as pick,he as qs,Ft as throttle,c as throwError,x as toTypeString,We as toTypeValue,vt as withRetry};
3
3
  /* v8 ignore if -- @preserve */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lntvow/utils",
3
- "version": "5.0.0",
3
+ "version": "5.0.2",
4
4
  "type": "module",
5
5
  "description": "TypeScript utilities",
6
6
  "keywords": [
@@ -14,13 +14,14 @@
14
14
  "files": [
15
15
  "dist"
16
16
  ],
17
- "types": "dist/utils.esm-bundler.d.ts",
18
- "main": "dist/utils.esm-bundler.js",
19
- "unpkg": "dist/utils.global.js",
17
+ "types": "dist/index.d.ts",
18
+ "main": "dist/index.js",
19
+ "unpkg": "dist/index.global.js",
20
20
  "exports": {
21
21
  ".": {
22
- "types": "./dist/utils.esm-bundler.d.ts",
23
- "import": "./dist/utils.esm-bundler.js"
22
+ "types": "./dist/index.d.ts",
23
+ "import": "./dist/index.js",
24
+ "default": "./dist/index.js"
24
25
  }
25
26
  },
26
27
  "dependencies": {
File without changes
File without changes