@lntvow/utils 3.2.6 → 4.0.0

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.
@@ -0,0 +1,2 @@
1
+ /* @ts-self-types="./utils.esm-bundler.d.ts" */
2
+ function Ae(e){let t=typeof e;return e!==null&&(t==="object"||t==="function")}function E(e){return e!==null&&typeof e=="object"}var te=Object.prototype.toString,x=e=>te.call(e),T=e=>x(e).slice(8,-1),F=e=>typeof e=="string",l=e=>typeof e=="number"&&Number.isFinite(e),Ie=e=>typeof e=="boolean",Re=e=>e===null,Me=e=>e===void 0,Y=e=>typeof e=="symbol",f=Array.isArray,v=e=>typeof e=="function",L=e=>x(e)==="[object Map]",K=e=>x(e)==="[object Set]",_=e=>x(e)==="[object Date]",U=e=>x(e)==="[object RegExp]",V=e=>E(e)&&v(e?.then)&&v(e?.catch),O=e=>e==null,Te=e=>e!=null,Ne=(e,t)=>e!==t;function d(e){return x(e)==="[object Object]"}function y(e){return f(e)?e:[e]}function Ze(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 z="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function We(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+=z[parseInt(r.slice(o,o+6).padEnd(6,"0"),2)];let n=t.length%4;return n!==0&&(t+="=".repeat(4-n)),t}function Be(e){let t="",r="";for(let n=0;n<e.length&&e[n]!=="=";n++)r+=z.indexOf(e[n]).toString(2).padStart(6,"0");for(let n=0;n<r.length;n+=8){let o=parseInt(r.slice(n,n+8),2);o&&(t+=String.fromCharCode(o))}return t}function Ge(...e){return e.reduce((t,r)=>function(...n){return r(t(...n))})}function qe(...e){return e.reduce((t,r)=>function(...n){return t(r(...n))})}function Qe(e,t=500){let r=null;return function(...n){r&&clearTimeout(r),r=setTimeout(()=>{e.apply(this,n)},t)}}function $(e){let t=new WeakMap;function r(n){if(!E(n))return n;if(_(n))return new Date(n);if(U(n))return new RegExp(n);if(V(n))return n;if(t.has(n))return t.get(n);if(L(n)){let s=new Map;return t.set(n,s),n.forEach((u,c)=>s.set(r(c),r(u))),s}if(K(n)){let s=new Set;return t.set(n,s),n.forEach(u=>s.add(r(u))),s}let o=f(n)?Object.setPrototypeOf([],Object.getPrototypeOf(n)):Object.create(Object.getPrototypeOf(n));t.set(n,o);let m=Object.getOwnPropertyDescriptors(n);for(let s of Reflect.ownKeys(m)){let u=m[s];u.get||u.set?Object.defineProperty(o,s,u):Object.defineProperty(o,s,{...u,value:r(u.value)})}return o}return r(e)}function W(e,t,r={}){return B(Z(e,r),Z(t,r),r)}function B(e,t,r){return f(e)?ne(e,t,r):re(e,t,r)}function re(e,t,r){if(!d(t))return t;let n=Object.getOwnPropertyDescriptors(t);return Reflect.ownKeys(t).forEach(o=>{(d(e[o])||f(e[o]))&&(d(t[o])||f(t[o]))?e[o]=B(e[o],t[o],r):Object.defineProperty(e,o,n[o])}),e}function ne(e,t,r){let{mergeStrategy:n="replace"}=r;if(f(t))switch(n){case"merge":return e.concat(t);case"replace":return t;default:return t}return t}function Z(e,t){let{deepClone:r=!0}=t;return r?$(e):e}var I=class extends Error{constructor(t,r="Utils"){super(t),this.name=r}};function a(e,t){throw new I(`[${e}] ${t}`)}function H(e,t){let r=F(e)?new I(`[${e}] ${t}`,"UtilsWarn"):e;console.warn(r)}var G=({from:e,replacement:t,version:r,type:n="API"})=>{H(`${n}`,`${e} is about to be deprecated in version ${r}, please use ${t} instead.`)};function st(e,t,r,n){let o=`Invalid params: type check failed for params "${t}". Expected ${r}, got ${T(n)} with value ${n}.`;a(e,o)}function at(e,t,r,n){let o=`Invalid params: type check failed for params "${t}". Expected ${r}, got ${T(n)} with value ${n}.`;H(e,o)}var R=(e,t,...r)=>{if(!t)return;let n=r.length===0?"":r.length===1?r[0]:r;console[e](`[Log] ${t}:`,n)},N=(e,...t)=>{R("info",e,...t)};N.info=(e,...t)=>{R("info",e,...t)};N.error=(e,...t)=>{R("error",e,...t)};N.warn=(e,...t)=>{R("warn",e,...t)};function oe(e,t){let{decode:r=!0}=t||{},n={};e.startsWith("?")&&(e=e.slice(1)),e.includes("?")&&(e=e.slice(e.indexOf("?")+1));let o=e.split("&").filter(Boolean);for(let m of o){let[s,u]=m.split("=");n[s]=r?decodeURIComponent(u):u}return n}function q(e,t){let{encode:r=!0}=t||{},n=[];for(let o in e){let m=e[o];n.push(`${o}=${r?encodeURIComponent(m):m}`)}return n.join("&")}function ie(e,t,r){let n=W({encode:!0},{...r}),o=q(t,n);return e.includes("?")?e.endsWith("?")||e.endsWith("&")?`${e}${o}`:`${e}&${o}`:`${e}?${o}`}var pt={parse:oe,stringify:q,appendQueryString:ie};function gt(e,t=500){let r=null;return function(...n){if(O(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 yt(e){return!O(e)&&/^[\dA-Z\u4E00-\u9FA5]+$/i.test(e)}function ht(e){return!O(e)&&/^[A-Z\u4E00-\u9FA5]+$/i.test(e)}function Ot(e){return!O(e)&&/^[\d!"#$%&'()*+,./:;<=>?@A-Z[\\\]^_`{|}~]+$/.test(e)}function $t(e){return/^[\dA-Z_]+$/.test(e)}function wt(e){return G({from:"validatorEmail",replacement:"isEmail",version:"2.4.0"}),/^([\w-])+@([\w-])+(\.[\w-])+/.test(e)}function M(e,t,r={}){let{includeProto:n=!1,includeSymbols:o=!0,includeNonEnum:m=!1}=r,s={};return d(e)&&y(t).forEach(c=>{Y(c)&&!o||!(n?c in e:Object.hasOwn(e,c))||!m&&(n?se(e,c):Object.getOwnPropertyDescriptor(e,c))?.enumerable===!1||(s[c]=$(e[c]))}),s}function se(e,t){let r=e;for(;r!==null;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function X(e,t){if(!d(e))return{};let r=$(e),n=y(t),o=Object.keys(r).filter(m=>!n.includes(m));return M(r,o)}function Gt(e,t){return(!l(e)||e<=0)&&a("generateRandomArray","num \u5FC5\u987B\u5927\u4E8E0"),v(t)||a("generateRandomArray","cb \u5FC5\u987B\u662F\u51FD\u6570"),Array.from({length:e}).fill(0).map((r,n)=>t(r,n))}function Xt(){return`#${Math.random().toString(16).slice(2,8).padEnd(6,"0")}`}import b,{extend as ue}from"dayjs";import ce from"dayjs/plugin/customParseFormat";function p(e){return e[Math.floor(Math.random()*e.length)]}function i(e={}){l(e)&&(e={max:e});let{min:t=1,max:r=p(me())}=e;ae(t,r);let n=Math.ceil(t),o=Math.floor(r);return Math.floor(Math.random()*(o-n+1)+n)}function ae(e,t){let r=Math.ceil(e),n=Math.floor(t);Number.isSafeInteger(r)||a("getRandomInt",`The minimum value Math.ceil(${e}) should be a safe integer`),Number.isSafeInteger(n)||a("getRandomInt",`The maximum value Math.floor(${t}) should be a safe integer`),n<r&&(t>=e&&a("getRandomInt",`No integer value found between ${e} and ${t}`),a("getRandomInt",`The maximum value ${t} should be greater than the minimum value ${e}`))}function me(){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)})}ue(ce);function k(e={}){let{start:t="1800-01-01 00:00:00",end:r=b().format("YYYY-MM-DD HH:mm:ss"),format:n="YYYY-MM-DD HH:mm:ss"}=e;(!b(t).isValid()||!b(r).isValid())&&a("generateRandomDate","start end \u53C2\u6570\u5FC5\u987B\u662F\u5408\u6CD5\u7684\u65F6\u95F4\u683C\u5F0F");let o=b(t).year(),m=b(r).year(),s=i({min:o,max:m}),u=i({min:1,max:12}),c=i({min:1,max:31}),S=i(23),A=i(59),j=i(59),h=b(`${s}-${u}-${c} ${S}:${A}:${j}`);return h.isBefore(b(t))||h.isAfter(b(r))?k(e):h.format(n)}function g(e={}){let t=le(e),r=fe(t);ge(r);let{length:n}=t;de(n.min,n.max);let o=i(n),m=t.prefix||"";for(let s=0;s<o;s++)m+=r.charAt(Math.floor(Math.random()*r.length));return m+(t.suffix||"")}var pe=16,P=1;function le(e){let t=l(e);return{lowerCase:!0,upperCase:!0,number:!0,...t?{}:e,length:t?{max:e,min:e}:l(e.length)?{max:e.length,min:e.length}:{max:pe,min:P,...e.length},extra:t?[]:[...new Set(y(e.extra||[]))]}}function fe(e){let t="";return e.lowerCase&&(t+="abcdefghijklmnopqrstuvwxyz"),e.upperCase&&(t+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),e.number&&(t+="0123456789"),t+=y(e.extra).join(""),t}function ge(e){e.length===0&&a("getRandomString","At least one character set (lowercase, uppercase, number) must be enabled or extra characters provided")}function de(e,t){Number.isInteger(e)||a("getRandomString","min must be an integer"),Number.isInteger(t)||a("getRandomString","max must be an integer"),e<P&&a("getRandomString",`Minimum length cannot be less than ${P}`),t<e&&a("getRandomString","Maximum length cannot be less than minimum length")}function be(){let e=["gmail.com","outlook.com.cn","example.com","qq.com","163.com","test.com.cn"],t=`${g(1)}${g({length:i({max:30,min:1})})}${g(1)}@${p(e)}`;return/\.{2,}/.test(t)?be():t}function w(e={}){l(e)&&(e={max:e});let{min:t=0,max:r=1,fractionDigits:n=2}=e;if(t===r)return t;if(t>r)throw new Error(`\u6700\u5927\u503C ${r} \u5E94\u5927\u4E8E\u6700\u5C0F\u503C ${t}`);return Math.random()*(r-t)+t}function D(e,t){(!l(e)||e<=0)&&a("generateRandomStringFromSource","num \u5FC5\u987B\u5927\u4E8E0"),(!f(t)||t.length===0)&&a("generateRandomStringFromSource","source \u4E0D\u80FD\u4E3A\u7A7A\u6570\u7EC4");let r="";for(let n=0;n<e;n++)r+=p(t);return r}function vr(){let e=i({min:1e5,max:999999}),t=[0,1,2,3,4,5,6,7,8,9];return[e,k({format:"YYYYMMDD"}),D(3,t),D(1,[...t,"X","x"])].join("")}function Tr(){return p(["13","14","15","16","17","18","19"])+i(999999999).toString().padEnd(9,"0")}function Cr(){let e=["http://","https://"],t=[".com",".net",".org",".cn",".top"],r=[`?name=${g({length:{min:4,max:8}})}`,`?id=${i()}`,`?page=${g({length:{min:2,max:4}})}`,`?query=${g({length:{min:5,max:6}})}`,`?search=${g({length:{min:1,max:4}})}`,`?token=${g({length:{min:16,max:16}})}`];return`${p(e)}${g({length:{min:5,max:25}})}${p(t)}${p(r)}`}var Qr=[""," ",null,"null",void 0,"undefined",!0,"true",!1,"false",Number.POSITIVE_INFINITY,"Infinity",Number.NEGATIVE_INFINITY,"-Infinity",Number.NaN,"NaN"];var Jr=[65785,"920478",i(),`${i()}`],en=[-312,"-824",-i(),`-${i()}`],tn=[`0${i()}`,"00",`0000${i()}`,`-0${i()}`,"-00",`-0000${i()}`,"+0",`+${i()}`];var rn=[5.23321001,"5.00321001",w(),`${w()}`],nn=[-7.3211,"-5.01321001",-w(),`-${w()}`],on=["00.0","0000.0","-00.0","-000..0","+0.01",`+${w()}`];function Q(){let e={protoProp:"parentValue"};Object.defineProperty(e,"hiddenProtoProp",{value:"hidden",enumerable:!1});let t=Symbol("symbolKey"),r=Symbol("nonEnumSymbol"),n=new Date("2023-01-01"),o=/test/gi,m=new Error("test error"),s=Promise.resolve("test promise"),u=()=>"test function",c=[1,2,3],S=[,"filled",,],A=new Map([["key","value"]]),j=new Set([1,2,3]),h=BigInt(9007199254740991),C=Symbol("specialSymbol");return{testObj:Object.create(e,{strKey:{value:"normal",enumerable:!0},number:{value:42,enumerable:!0},string:{value:"test",enumerable:!0},boolean:{value:!0,enumerable:!0},nullValue:{value:null,enumerable:!0},undefinedValue:{value:void 0,enumerable:!0},bigInt:{value:h,enumerable:!0},symbol:{value:C,enumerable:!0},nan:{value:NaN,enumerable:!0},infinity:{value:1/0,enumerable:!0},negativeZero:{value:-0,enumerable:!0},[t]:{value:"symbolValue",enumerable:!0},nonEnumKey:{value:"nonEnumValue",enumerable:!1},[r]:{value:"nonEnumSymbol",enumerable:!1},date:{value:n,enumerable:!0},regex:{value:o,enumerable:!0},error:{value:m,enumerable:!0},promise:{value:s,enumerable:!0},func:{value:u,enumerable:!0},array:{value:c,enumerable:!0},sparseArray:{value:S,enumerable:!0},map:{value:A,enumerable:!0},set:{value:j,enumerable:!0},mixed:{value:{func:()=>42,nested:{key:"value",deepArray:[1,2,{nestedKey:"nestedValue"}]}},enumerable:!0},accessorProp:{get(){return this._secret||"default"},set(ee){this._secret=ee},enumerable:!0,configurable:!0},explicitWritable:{value:"canChange",writable:!0,enumerable:!0},nonExtensibleObj:{value:Object.preventExtensions({locked:!0}),enumerable:!0}}),symbolKey:t,nonEnumSymbol:r,specialDate:n,specialRegex:o,specialError:m,specialPromise:s,specialFunc:u,specialArray:c,sparseArray:S,specialMap:A,specialSet:j,specialBigInt:h,specialSymbol:C}}var{testObj:xe,symbolKey:un,nonEnumSymbol:cn,specialBigInt:pn,specialSymbol:ln,specialDate:fn,specialRegex:gn,specialError:dn,specialFunc:bn,specialPromise:xn,sparseArray:yn,specialArray:hn,specialMap:On,specialSet:$n}=Q();console.log("testObj: ",xe);var J={a:1,b:3,name:"string"},wn=M(J,["a"]),ye=X(J,["b","a"]);console.log("b: ",ye);function An(e){return/^\d+$/.test(e)}function jn(e){return/^[A-Z]+$/i.test(e)}function En(e){return/^[A-Z]+$/.test(e)}function vn(e){return/^[\dA-Z]+$/.test(e)}function In(e){return/^[\dA-Z\u4E00-\u9FA5]+$/.test(e)}function Rn(e){return/^[a-z]+$/.test(e)}function Mn(e){return/^[\da-z]+$/.test(e)}function Tn(e){return/^[\da-z\u4E00-\u9FA5]+$/.test(e)}function Nn(e){return/^[\u4E00-\u9FA5]+$/.test(e)}function Pn(e){return/^-?(?:0|[1-9]\d*)\.\d+$/.test(e)}function Dn(e){return/^(?:0\.0*[1-9]\d*|[1-9]\d*\.\d+)$/.test(e)}function Cn(e){return/^(?:0|[1-9]\d*)\.\d+$/.test(e)}function Fn(e){return/^-(?:0\.0*[1-9]\d*|[1-9]\d*\.\d+)$/.test(e)}function Yn(e){return/^-(?:0|[1-9]\d*)\.\d+$/.test(e)}function Kn(e){return/^-?(?:0|[1-9]\d*)$/.test(e)}function _n(e){return/^[1-9]\d*$/.test(e)}function Un(e){return/^(?:0|[1-9]\d*)$/.test(e)&&!Object.is(e,-0)}function Vn(e){return/^-[1-9]\d*$/.test(e)}function zn(e){return/^-(?:0|[1-9]\d*)$/.test(e)||Object.is(e,-0)}import he,{extend as Oe}from"dayjs";import $e from"dayjs/plugin/customParseFormat";function Hn(e){return/^1[3-9]\d{9}$/.test(e)}function Gn(e){return/^https?:\/\/\S+$/i.test(e)}function qn(e){return/^[^\s@]+@[^\s@][^\s.@]*\.[^\s@]+$/.test(e)}function we(e,t="YYYY-MM-DD HH:mm:ss"){return Oe($e),he(e,t,!0).isValid()}function Xn(e){return/^[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)&&we(e.slice(6,14),"YYYYMMDD")}export{Be as base64Decode,We as base64Encode,y as castArray,Ge as compose,qe as composeRight,Qe as debounce,H as debugWarn,at as debugWarnInvalidTypeMessage,Ze as decimalToBinary,$ as deepClone,W as deepMerge,G as deprecated,Gt as generateRandomArray,Xt as generateRandomColor,k as generateRandomDate,be as generateRandomEmail,w as generateRandomFloat,vr as generateRandomIdCard,Tr as generateRandomMobilePhone,D as generateRandomStringFromSource,i as getRandomInt,p as getRandomItem,g as getRandomString,Cr as getRandomUrl,Ne as hasChanged,f as isArray,Ie as isBoolean,Nn as isChineseString,_ as isDate,we as isDateString,Te as isDef,qn as isEmail,jn as isEnglishAphabet,Pn as isFloat,v as isFunction,Xn as isIdCard,Kn as isInteger,Rn as isLowerCase,Mn as isLowerCaseAndNumber,Tn as isLowerCaseAndNumberAndChinese,L as isMap,Hn as isMobilePhone,Fn as isNegativeFloat,Vn as isNegativeInteger,Cn as isNonNegativeFloat,Un as isNonNegativeInteger,Yn as isNonPositiveFloat,zn as isNonPositiveInteger,Re as isNull,l as isNumber,An as isNumberOrNumberString,Ae as isObject,E as isObjectLike,d as isPlainObject,Dn as isPositiveFloat,_n as isPositiveInteger,V as isPromise,U as isRegExp,K as isSet,F as isString,Y as isSymbol,O as isUndef,Me as isUndefined,En as isUpperCase,vn as isUpperCaseAndNumber,In as isUpperCaseAndNumberAndChinese,Gn as isUrl,N as log,te as objectToString,X as omit,M as pick,pt as qs,gt as throttle,a as throwError,st as throwErrorInvalidTypeMessage,x as toTypeString,T as toTypeValue,ht as validatorChineseOrEnglish,yt as validatorChineseOrEnglishOrNumber,wt as validatorEmail,Ot as validatorUppercaseOrNumbersOrSpecial,$t as validatorUppercaseOrNumbersOrUnderline};
@@ -0,0 +1 @@
1
+ "use strict";var lntvowUtils=(()=>{var nt=Object.create;var le=Object.defineProperty;var rt=Object.getOwnPropertyDescriptor;var ot=Object.getOwnPropertyNames;var it=Object.getPrototypeOf,st=Object.prototype.hasOwnProperty;var Ze=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),at=(e,t)=>{for(var n in t)le(e,n,{get:t[n],enumerable:!0})},Ke=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ot(t))!st.call(e,o)&&o!==n&&le(e,o,{get:()=>t[o],enumerable:!(r=rt(t,o))||r.enumerable});return e};var pe=(e,t,n)=>(n=e!=null?nt(it(e)):{},Ke(t||!e||!e.__esModule?le(n,"default",{value:e,enumerable:!0}):n,e)),ut=e=>Ke(le({},"__esModule",{value:!0}),e);var Le=Ze((Pe,Ce)=>{"use strict";(function(e,t){typeof Pe=="object"&&typeof Ce<"u"?Ce.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs=t()})(Pe,function(){"use strict";var e=1e3,t=6e4,n=36e5,r="millisecond",o="second",b="minute",p="hour",x="day",h="week",A="month",_="quarter",k="year",I="date",ne="Invalid Date",l=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,O={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(c){var s=["th","st","nd","rd"],i=c%100;return"["+c+(s[(i-20)%10]||s[i]||s[0])+"]"}},w=function(c,s,i){var u=String(c);return!u||u.length>=s?c:""+Array(s+1-u.length).join(i)+c},W={s:w,z:function(c){var s=-c.utcOffset(),i=Math.abs(s),u=Math.floor(i/60),a=i%60;return(s<=0?"+":"-")+w(u,2,"0")+":"+w(a,2,"0")},m:function c(s,i){if(s.date()<i.date())return-c(i,s);var u=12*(i.year()-s.year())+(i.month()-s.month()),a=s.clone().add(u,A),f=i-a<0,m=s.clone().add(u+(f?-1:1),A);return+(-(u+(i-a)/(f?a-m:m-a))||0)},a:function(c){return c<0?Math.ceil(c)||0:Math.floor(c)},p:function(c){return{M:A,y:k,w:h,d:x,D:I,h:p,m:b,s:o,ms:r,Q:_}[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(c){return c===void 0}},E="en",C={};C[E]=O;var V="$isDayjsObject",L=function(c){return c instanceof Y||!(!c||!c[V])},R=function c(s,i,u){var a;if(!s)return E;if(typeof s=="string"){var f=s.toLowerCase();C[f]&&(a=f),i&&(C[f]=i,a=f);var m=s.split("-");if(!a&&m.length>1)return c(m[0])}else{var d=s.name;C[d]=s,a=d}return!u&&a&&(E=a),a||!u&&E},M=function(c,s){if(L(c))return c.clone();var i=typeof s=="object"?s:{};return i.date=c,i.args=arguments,new Y(i)},g=W;g.l=R,g.i=L,g.w=function(c,s){return M(c,{locale:s.$L,utc:s.$u,x:s.$x,$offset:s.$offset})};var Y=function(){function c(i){this.$L=R(i.locale,null,!0),this.parse(i),this.$x=this.$x||i.x||{},this[V]=!0}var s=c.prototype;return s.parse=function(i){this.$d=function(u){var a=u.date,f=u.utc;if(a===null)return new Date(NaN);if(g.u(a))return new Date;if(a instanceof Date)return new Date(a);if(typeof a=="string"&&!/Z$/i.test(a)){var m=a.match(l);if(m){var d=m[2]-1||0,v=(m[7]||"0").substring(0,3);return f?new Date(Date.UTC(m[1],d,m[3]||1,m[4]||0,m[5]||0,m[6]||0,v)):new Date(m[1],d,m[3]||1,m[4]||0,m[5]||0,m[6]||0,v)}}return new Date(a)}(i),this.init()},s.init=function(){var i=this.$d;this.$y=i.getFullYear(),this.$M=i.getMonth(),this.$D=i.getDate(),this.$W=i.getDay(),this.$H=i.getHours(),this.$m=i.getMinutes(),this.$s=i.getSeconds(),this.$ms=i.getMilliseconds()},s.$utils=function(){return g},s.isValid=function(){return this.$d.toString()!==ne},s.isSame=function(i,u){var a=M(i);return this.startOf(u)<=a&&a<=this.endOf(u)},s.isAfter=function(i,u){return M(i)<this.startOf(u)},s.isBefore=function(i,u){return this.endOf(u)<M(i)},s.$g=function(i,u,a){return g.u(i)?this[u]:this.set(a,i)},s.unix=function(){return Math.floor(this.valueOf()/1e3)},s.valueOf=function(){return this.$d.getTime()},s.startOf=function(i,u){var a=this,f=!!g.u(u)||u,m=g.p(i),d=function(B,j){var H=g.w(a.$u?Date.UTC(a.$y,j,B):new Date(a.$y,j,B),a);return f?H:H.endOf(x)},v=function(B,j){return g.w(a.toDate()[B].apply(a.toDate("s"),(f?[0,0,0,0]:[23,59,59,999]).slice(j)),a)},S=this.$W,T=this.$M,P=this.$D,J="set"+(this.$u?"UTC":"");switch(m){case k:return f?d(1,0):d(31,11);case A:return f?d(1,T):d(0,T+1);case h:var G=this.$locale().weekStart||0,re=(S<G?S+7:S)-G;return d(f?P-re:P+(6-re),T);case x:case I:return v(J+"Hours",0);case p:return v(J+"Minutes",1);case b:return v(J+"Seconds",2);case o:return v(J+"Milliseconds",3);default:return this.clone()}},s.endOf=function(i){return this.startOf(i,!1)},s.$set=function(i,u){var a,f=g.p(i),m="set"+(this.$u?"UTC":""),d=(a={},a[x]=m+"Date",a[I]=m+"Date",a[A]=m+"Month",a[k]=m+"FullYear",a[p]=m+"Hours",a[b]=m+"Minutes",a[o]=m+"Seconds",a[r]=m+"Milliseconds",a)[f],v=f===x?this.$D+(u-this.$W):u;if(f===A||f===k){var S=this.clone().set(I,1);S.$d[d](v),S.init(),this.$d=S.set(I,Math.min(this.$D,S.daysInMonth())).$d}else d&&this.$d[d](v);return this.init(),this},s.set=function(i,u){return this.clone().$set(i,u)},s.get=function(i){return this[g.p(i)]()},s.add=function(i,u){var a,f=this;i=Number(i);var m=g.p(u),d=function(T){var P=M(f);return g.w(P.date(P.date()+Math.round(T*i)),f)};if(m===A)return this.set(A,this.$M+i);if(m===k)return this.set(k,this.$y+i);if(m===x)return d(1);if(m===h)return d(7);var v=(a={},a[b]=t,a[p]=n,a[o]=e,a)[m]||1,S=this.$d.getTime()+i*v;return g.w(S,this)},s.subtract=function(i,u){return this.add(-1*i,u)},s.format=function(i){var u=this,a=this.$locale();if(!this.isValid())return a.invalidDate||ne;var f=i||"YYYY-MM-DDTHH:mm:ssZ",m=g.z(this),d=this.$H,v=this.$m,S=this.$M,T=a.weekdays,P=a.months,J=a.meridiem,G=function(j,H,X,Q){return j&&(j[H]||j(u,f))||X[H].slice(0,Q)},re=function(j){return g.s(d%12||12,j,"0")},B=J||function(j,H,X){var Q=j<12?"AM":"PM";return X?Q.toLowerCase():Q};return f.replace(y,function(j,H){return H||function(X){switch(X){case"YY":return String(u.$y).slice(-2);case"YYYY":return g.s(u.$y,4,"0");case"M":return S+1;case"MM":return g.s(S+1,2,"0");case"MMM":return G(a.monthsShort,S,P,3);case"MMMM":return G(P,S);case"D":return u.$D;case"DD":return g.s(u.$D,2,"0");case"d":return String(u.$W);case"dd":return G(a.weekdaysMin,u.$W,T,2);case"ddd":return G(a.weekdaysShort,u.$W,T,3);case"dddd":return T[u.$W];case"H":return String(d);case"HH":return g.s(d,2,"0");case"h":return re(1);case"hh":return re(2);case"a":return B(d,v,!0);case"A":return B(d,v,!1);case"m":return String(v);case"mm":return g.s(v,2,"0");case"s":return String(u.$s);case"ss":return g.s(u.$s,2,"0");case"SSS":return g.s(u.$ms,3,"0");case"Z":return m}return null}(j)||m.replace(":","")})},s.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},s.diff=function(i,u,a){var f,m=this,d=g.p(u),v=M(i),S=(v.utcOffset()-this.utcOffset())*t,T=this-v,P=function(){return g.m(m,v)};switch(d){case k:f=P()/12;break;case A:f=P();break;case _:f=P()/3;break;case h:f=(T-S)/6048e5;break;case x:f=(T-S)/864e5;break;case p:f=T/n;break;case b:f=T/t;break;case o:f=T/e;break;default:f=T}return a?f:g.a(f)},s.daysInMonth=function(){return this.endOf(A).$D},s.$locale=function(){return C[this.$L]},s.locale=function(i,u){if(!i)return this.$L;var a=this.clone(),f=R(i,u,!0);return f&&(a.$L=f),a},s.clone=function(){return g.w(this.$d,this)},s.toDate=function(){return new Date(this.valueOf())},s.toJSON=function(){return this.isValid()?this.toISOString():null},s.toISOString=function(){return this.$d.toISOString()},s.toString=function(){return this.$d.toUTCString()},c}(),N=Y.prototype;return M.prototype=N,[["$ms",r],["$s",o],["$m",b],["$H",p],["$W",x],["$M",A],["$y",k],["$D",I]].forEach(function(c){N[c[1]]=function(s){return this.$g(s,c[0],c[1])}}),M.extend=function(c,s){return c.$i||(c(s,Y,M),c.$i=!0),M},M.locale=R,M.isDayjs=L,M.unix=function(c){return M(1e3*c)},M.en=C[E],M.Ls=C,M.p={},M})});var He=Ze((Fe,_e)=>{"use strict";(function(e,t){typeof Fe=="object"&&typeof _e<"u"?_e.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_customParseFormat=t()})(Fe,function(){"use strict";var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d/,r=/\d\d/,o=/\d\d?/,b=/\d*[^-_:/,()\s\d]+/,p={},x=function(l){return(l=+l)+(l>68?1900:2e3)},h=function(l){return function(y){this[l]=+y}},A=[/[+-]\d\d:?(\d\d)?|Z/,function(l){(this.zone||(this.zone={})).offset=function(y){if(!y||y==="Z")return 0;var O=y.match(/([+-]|\d\d)/g),w=60*O[1]+(+O[2]||0);return w===0?0:O[0]==="+"?-w:w}(l)}],_=function(l){var y=p[l];return y&&(y.indexOf?y:y.s.concat(y.f))},k=function(l,y){var O,w=p.meridiem;if(w){for(var W=1;W<=24;W+=1)if(l.indexOf(w(W,0,y))>-1){O=W>12;break}}else O=l===(y?"pm":"PM");return O},I={A:[b,function(l){this.afternoon=k(l,!1)}],a:[b,function(l){this.afternoon=k(l,!0)}],Q:[n,function(l){this.month=3*(l-1)+1}],S:[n,function(l){this.milliseconds=100*+l}],SS:[r,function(l){this.milliseconds=10*+l}],SSS:[/\d{3}/,function(l){this.milliseconds=+l}],s:[o,h("seconds")],ss:[o,h("seconds")],m:[o,h("minutes")],mm:[o,h("minutes")],H:[o,h("hours")],h:[o,h("hours")],HH:[o,h("hours")],hh:[o,h("hours")],D:[o,h("day")],DD:[r,h("day")],Do:[b,function(l){var y=p.ordinal,O=l.match(/\d+/);if(this.day=O[0],y)for(var w=1;w<=31;w+=1)y(w).replace(/\[|\]/g,"")===l&&(this.day=w)}],w:[o,h("week")],ww:[r,h("week")],M:[o,h("month")],MM:[r,h("month")],MMM:[b,function(l){var y=_("months"),O=(_("monthsShort")||y.map(function(w){return w.slice(0,3)})).indexOf(l)+1;if(O<1)throw new Error;this.month=O%12||O}],MMMM:[b,function(l){var y=_("months").indexOf(l)+1;if(y<1)throw new Error;this.month=y%12||y}],Y:[/[+-]?\d+/,h("year")],YY:[r,function(l){this.year=x(l)}],YYYY:[/\d{4}/,h("year")],Z:A,ZZ:A};function ne(l){var y,O;y=l,O=p&&p.formats;for(var w=(l=y.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(M,g,Y){var N=Y&&Y.toUpperCase();return g||O[Y]||e[Y]||O[N].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(c,s,i){return s||i.slice(1)})})).match(t),W=w.length,E=0;E<W;E+=1){var C=w[E],V=I[C],L=V&&V[0],R=V&&V[1];w[E]=R?{regex:L,parser:R}:C.replace(/^\[|\]$/g,"")}return function(M){for(var g={},Y=0,N=0;Y<W;Y+=1){var c=w[Y];if(typeof c=="string")N+=c.length;else{var s=c.regex,i=c.parser,u=M.slice(N),a=s.exec(u)[0];i.call(g,a),M=M.replace(a,"")}}return function(f){var m=f.afternoon;if(m!==void 0){var d=f.hours;m?d<12&&(f.hours+=12):d===12&&(f.hours=0),delete f.afternoon}}(g),g}}return function(l,y,O){O.p.customParseFormat=!0,l&&l.parseTwoDigitYear&&(x=l.parseTwoDigitYear);var w=y.prototype,W=w.parse;w.parse=function(E){var C=E.date,V=E.utc,L=E.args;this.$u=V;var R=L[1];if(typeof R=="string"){var M=L[2]===!0,g=L[3]===!0,Y=M||g,N=L[2];g&&(N=L[2]),p=this.$locale(),!M&&N&&(p=O.Ls[N]),this.$d=function(u,a,f,m){try{if(["x","X"].indexOf(a)>-1)return new Date((a==="X"?1e3:1)*u);var d=ne(a)(u),v=d.year,S=d.month,T=d.day,P=d.hours,J=d.minutes,G=d.seconds,re=d.milliseconds,B=d.zone,j=d.week,H=new Date,X=T||(v||S?1:H.getDate()),Q=v||H.getFullYear(),fe=0;v&&!S||(fe=S>0?S-1:H.getMonth());var me,Me=P||0,we=J||0,ve=G||0,Oe=re||0;return B?new Date(Date.UTC(Q,fe,X,Me,we,ve,Oe+60*B.offset*1e3)):f?new Date(Date.UTC(Q,fe,X,Me,we,ve,Oe)):(me=new Date(Q,fe,X,Me,we,ve,Oe),j&&(me=m(me).week(j).toDate()),me)}catch{return new Date("")}}(C,R,V,O),this.init(),N&&N!==!0&&(this.$L=this.locale(N).$L),Y&&C!=this.format(R)&&(this.$d=new Date("")),p={}}else if(R instanceof Array)for(var c=R.length,s=1;s<=c;s+=1){L[1]=R[s-1];var i=O.apply(this,L);if(i.isValid()){this.$d=i.$d,this.$L=i.$L,this.init();break}s===c&&(this.$d=new Date(""))}else W.call(this,E)}}})});var xn={};at(xn,{base64Decode:()=>bt,base64Encode:()=>ht,castArray:()=>te,compose:()=>yt,composeRight:()=>xt,debounce:()=>$t,debugWarn:()=>Ye,debugWarnInvalidTypeMessage:()=>Ot,decimalToBinary:()=>gt,deepClone:()=>ie,deepMerge:()=>Ee,deprecated:()=>Re,generateRandomArray:()=>Nt,generateRandomColor:()=>Pt,generateRandomDate:()=>ye,generateRandomEmail:()=>qe,generateRandomFloat:()=>se,generateRandomIdCard:()=>Kt,generateRandomMobilePhone:()=>Wt,generateRandomStringFromSource:()=>xe,getRandomInt:()=>$,getRandomItem:()=>F,getRandomString:()=>K,getRandomUrl:()=>zt,hasChanged:()=>dt,isArray:()=>Z,isBoolean:()=>ft,isChineseString:()=>rn,isDate:()=>je,isDateString:()=>tt,isDef:()=>pt,isEmail:()=>bn,isEnglishAphabet:()=>Xt,isFloat:()=>on,isFunction:()=>ue,isIdCard:()=>yn,isInteger:()=>fn,isLowerCase:()=>en,isLowerCaseAndNumber:()=>tn,isLowerCaseAndNumberAndChinese:()=>nn,isMap:()=>Ae,isMobilePhone:()=>gn,isNegativeFloat:()=>un,isNegativeInteger:()=>pn,isNonNegativeFloat:()=>an,isNonNegativeInteger:()=>ln,isNonPositiveFloat:()=>cn,isNonPositiveInteger:()=>dn,isNull:()=>mt,isNumber:()=>U,isNumberOrNumberString:()=>Gt,isObject:()=>ct,isObjectLike:()=>ae,isPlainObject:()=>q,isPositiveFloat:()=>sn,isPositiveInteger:()=>mn,isPromise:()=>Ie,isRegExp:()=>ke,isSet:()=>Te,isString:()=>Se,isSymbol:()=>De,isUndef:()=>oe,isUndefined:()=>lt,isUpperCase:()=>qt,isUpperCaseAndNumber:()=>Jt,isUpperCaseAndNumberAndChinese:()=>Qt,isUrl:()=>hn,log:()=>be,objectToString:()=>We,omit:()=>Ne,pick:()=>ce,qs:()=>At,throttle:()=>Tt,throwError:()=>D,throwErrorInvalidTypeMessage:()=>vt,toTypeString:()=>ee,toTypeValue:()=>de,validatorChineseOrEnglish:()=>kt,validatorChineseOrEnglishOrNumber:()=>jt,validatorEmail:()=>Yt,validatorUppercaseOrNumbersOrSpecial:()=>It,validatorUppercaseOrNumbersOrUnderline:()=>Et});function ct(e){let t=typeof e;return e!==null&&(t==="object"||t==="function")}function ae(e){return e!==null&&typeof e=="object"}var We=Object.prototype.toString,ee=e=>We.call(e),de=e=>ee(e).slice(8,-1),Se=e=>typeof e=="string",U=e=>typeof e=="number"&&Number.isFinite(e),ft=e=>typeof e=="boolean",mt=e=>e===null,lt=e=>e===void 0,De=e=>typeof e=="symbol",Z=Array.isArray,ue=e=>typeof e=="function",Ae=e=>ee(e)==="[object Map]",Te=e=>ee(e)==="[object Set]",je=e=>ee(e)==="[object Date]",ke=e=>ee(e)==="[object RegExp]",Ie=e=>ae(e)&&ue(e?.then)&&ue(e?.catch),oe=e=>e==null,pt=e=>e!=null,dt=(e,t)=>e!==t;function q(e){return ee(e)==="[object Object]"}function te(e){return Z(e)?e:[e]}function gt(e){let t=[],n,r="";for(;e>0;)n=Math.floor(e%2),t.push(n),e=Math.floor(e/2);for(;t.length>0;)r+=t.pop().toString();return r}var ze="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function ht(e){let t="",n="";for(let o=0;o<e.length;o++)n+=e[o].charCodeAt(0).toString(2).padStart(8,"0");for(let o=0;o<n.length;o+=6)t+=ze[parseInt(n.slice(o,o+6).padEnd(6,"0"),2)];let r=t.length%4;return r!==0&&(t+="=".repeat(4-r)),t}function bt(e){let t="",n="";for(let r=0;r<e.length&&e[r]!=="=";r++)n+=ze.indexOf(e[r]).toString(2).padStart(6,"0");for(let r=0;r<n.length;r+=8){let o=parseInt(n.slice(r,r+8),2);o&&(t+=String.fromCharCode(o))}return t}function yt(...e){return e.reduce((t,n)=>function(...r){return n(t(...r))})}function xt(...e){return e.reduce((t,n)=>function(...r){return t(n(...r))})}function $t(e,t=500){let n=null;return function(...r){n&&clearTimeout(n),n=setTimeout(()=>{e.apply(this,r)},t)}}function ie(e){let t=new WeakMap;function n(r){if(!ae(r))return r;if(je(r))return new Date(r);if(ke(r))return new RegExp(r);if(Ie(r))return r;if(t.has(r))return t.get(r);if(Ae(r)){let p=new Map;return t.set(r,p),r.forEach((x,h)=>p.set(n(h),n(x))),p}if(Te(r)){let p=new Set;return t.set(r,p),r.forEach(x=>p.add(n(x))),p}let o=Z(r)?Object.setPrototypeOf([],Object.getPrototypeOf(r)):Object.create(Object.getPrototypeOf(r));t.set(r,o);let b=Object.getOwnPropertyDescriptors(r);for(let p of Reflect.ownKeys(b)){let x=b[p];x.get||x.set?Object.defineProperty(o,p,x):Object.defineProperty(o,p,{...x,value:n(x.value)})}return o}return n(e)}function Ee(e,t,n={}){return Be(Ve(e,n),Ve(t,n),n)}function Be(e,t,n){return Z(e)?wt(e,t,n):Mt(e,t,n)}function Mt(e,t,n){if(!q(t))return t;let r=Object.getOwnPropertyDescriptors(t);return Reflect.ownKeys(t).forEach(o=>{(q(e[o])||Z(e[o]))&&(q(t[o])||Z(t[o]))?e[o]=Be(e[o],t[o],n):Object.defineProperty(e,o,r[o])}),e}function wt(e,t,n){let{mergeStrategy:r="replace"}=n;if(Z(t))switch(r){case"merge":return e.concat(t);case"replace":return t;default:return t}return t}function Ve(e,t){let{deepClone:n=!0}=t;return n?ie(e):e}var ge=class extends Error{constructor(t,n="Utils"){super(t),this.name=n}};function D(e,t){throw new ge(`[${e}] ${t}`)}function Ye(e,t){let n=Se(e)?new ge(`[${e}] ${t}`,"UtilsWarn"):e;console.warn(n)}var Re=({from:e,replacement:t,version:n,type:r="API"})=>{Ye(`${r}`,`${e} is about to be deprecated in version ${n}, please use ${t} instead.`)};function vt(e,t,n,r){let o=`Invalid params: type check failed for params "${t}". Expected ${n}, got ${de(r)} with value ${r}.`;D(e,o)}function Ot(e,t,n,r){let o=`Invalid params: type check failed for params "${t}". Expected ${n}, got ${de(r)} with value ${r}.`;Ye(e,o)}var he=(e,t,...n)=>{if(!t)return;let r=n.length===0?"":n.length===1?n[0]:n;console[e](`[Log] ${t}:`,r)},be=(e,...t)=>{he("info",e,...t)};be.info=(e,...t)=>{he("info",e,...t)};be.error=(e,...t)=>{he("error",e,...t)};be.warn=(e,...t)=>{he("warn",e,...t)};function St(e,t){let{decode:n=!0}=t||{},r={};e.startsWith("?")&&(e=e.slice(1)),e.includes("?")&&(e=e.slice(e.indexOf("?")+1));let o=e.split("&").filter(Boolean);for(let b of o){let[p,x]=b.split("=");r[p]=n?decodeURIComponent(x):x}return r}function Ge(e,t){let{encode:n=!0}=t||{},r=[];for(let o in e){let b=e[o];r.push(`${o}=${n?encodeURIComponent(b):b}`)}return r.join("&")}function Dt(e,t,n){let r=Ee({encode:!0},{...n}),o=Ge(t,r);return e.includes("?")?e.endsWith("?")||e.endsWith("&")?`${e}${o}`:`${e}&${o}`:`${e}?${o}`}var At={parse:St,stringify:Ge,appendQueryString:Dt};function Tt(e,t=500){let n=null;return function(...r){if(oe(n))return n=Date.now(),e.apply(this,r);let o=Date.now();if(o-n>=t)return n=o,e.apply(this,r)}}function jt(e){return!oe(e)&&/^[\dA-Z\u4E00-\u9FA5]+$/i.test(e)}function kt(e){return!oe(e)&&/^[A-Z\u4E00-\u9FA5]+$/i.test(e)}function It(e){return!oe(e)&&/^[\d!"#$%&'()*+,./:;<=>?@A-Z[\\\]^_`{|}~]+$/.test(e)}function Et(e){return/^[\dA-Z_]+$/.test(e)}function Yt(e){return Re({from:"validatorEmail",replacement:"isEmail",version:"2.4.0"}),/^([\w-])+@([\w-])+(\.[\w-])+/.test(e)}function ce(e,t,n={}){let{includeProto:r=!1,includeSymbols:o=!0,includeNonEnum:b=!1}=n,p={};return q(e)&&te(t).forEach(h=>{De(h)&&!o||!(r?h in e:Object.hasOwn(e,h))||!b&&(r?Rt(e,h):Object.getOwnPropertyDescriptor(e,h))?.enumerable===!1||(p[h]=ie(e[h]))}),p}function Rt(e,t){let n=e;for(;n!==null;){let r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Object.getPrototypeOf(n)}}function Ne(e,t){if(!q(e))return{};let n=ie(e),r=te(t),o=Object.keys(n).filter(b=>!r.includes(b));return ce(n,o)}function Nt(e,t){return(!U(e)||e<=0)&&D("generateRandomArray","num \u5FC5\u987B\u5927\u4E8E0"),ue(t)||D("generateRandomArray","cb \u5FC5\u987B\u662F\u51FD\u6570"),Array.from({length:e}).fill(0).map((n,r)=>t(n,r))}function Pt(){return`#${Math.random().toString(16).slice(2,8).padEnd(6,"0")}`}var z=pe(Le(),1),Xe=pe(He(),1);function F(e){return e[Math.floor(Math.random()*e.length)]}function $(e={}){U(e)&&(e={max:e});let{min:t=1,max:n=F(Lt())}=e;Ct(t,n);let r=Math.ceil(t),o=Math.floor(n);return Math.floor(Math.random()*(o-r+1)+r)}function Ct(e,t){let n=Math.ceil(e),r=Math.floor(t);Number.isSafeInteger(n)||D("getRandomInt",`The minimum value Math.ceil(${e}) should be a safe integer`),Number.isSafeInteger(r)||D("getRandomInt",`The maximum value Math.floor(${t}) should be a safe integer`),r<n&&(t>=e&&D("getRandomInt",`No integer value found between ${e} and ${t}`),D("getRandomInt",`The maximum value ${t} should be greater than the minimum value ${e}`))}function Lt(){return Array.from({length:Number.MAX_SAFE_INTEGER.toString().length}).map((e,t)=>{let n=Number.MAX_SAFE_INTEGER.toString().slice(0,t+1);return Number(n)})}(0,z.extend)(Xe.default);function ye(e={}){let{start:t="1800-01-01 00:00:00",end:n=(0,z.default)().format("YYYY-MM-DD HH:mm:ss"),format:r="YYYY-MM-DD HH:mm:ss"}=e;(!(0,z.default)(t).isValid()||!(0,z.default)(n).isValid())&&D("generateRandomDate","start end \u53C2\u6570\u5FC5\u987B\u662F\u5408\u6CD5\u7684\u65F6\u95F4\u683C\u5F0F");let o=(0,z.default)(t).year(),b=(0,z.default)(n).year(),p=$({min:o,max:b}),x=$({min:1,max:12}),h=$({min:1,max:31}),A=$(23),_=$(59),k=$(59),I=(0,z.default)(`${p}-${x}-${h} ${A}:${_}:${k}`);return I.isBefore((0,z.default)(t))||I.isAfter((0,z.default)(n))?ye(e):I.format(r)}function K(e={}){let t=_t(e),n=Ht(t);Ut(n);let{length:r}=t;Zt(r.min,r.max);let o=$(r),b=t.prefix||"";for(let p=0;p<o;p++)b+=n.charAt(Math.floor(Math.random()*n.length));return b+(t.suffix||"")}var Ft=16,Ue=1;function _t(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:Ft,min:Ue,...e.length},extra:t?[]:[...new Set(te(e.extra||[]))]}}function Ht(e){let t="";return e.lowerCase&&(t+="abcdefghijklmnopqrstuvwxyz"),e.upperCase&&(t+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),e.number&&(t+="0123456789"),t+=te(e.extra).join(""),t}function Ut(e){e.length===0&&D("getRandomString","At least one character set (lowercase, uppercase, number) must be enabled or extra characters provided")}function Zt(e,t){Number.isInteger(e)||D("getRandomString","min must be an integer"),Number.isInteger(t)||D("getRandomString","max must be an integer"),e<Ue&&D("getRandomString",`Minimum length cannot be less than ${Ue}`),t<e&&D("getRandomString","Maximum length cannot be less than minimum length")}function qe(){let e=["gmail.com","outlook.com.cn","example.com","qq.com","163.com","test.com.cn"],t=`${K(1)}${K({length:$({max:30,min:1})})}${K(1)}@${F(e)}`;return/\.{2,}/.test(t)?qe():t}function se(e={}){U(e)&&(e={max:e});let{min:t=0,max:n=1,fractionDigits:r=2}=e;if(t===n)return t;if(t>n)throw new Error(`\u6700\u5927\u503C ${n} \u5E94\u5927\u4E8E\u6700\u5C0F\u503C ${t}`);return Math.random()*(n-t)+t}function xe(e,t){(!U(e)||e<=0)&&D("generateRandomStringFromSource","num \u5FC5\u987B\u5927\u4E8E0"),(!Z(t)||t.length===0)&&D("generateRandomStringFromSource","source \u4E0D\u80FD\u4E3A\u7A7A\u6570\u7EC4");let n="";for(let r=0;r<e;r++)n+=F(t);return n}function Kt(){let e=$({min:1e5,max:999999}),t=[0,1,2,3,4,5,6,7,8,9];return[e,ye({format:"YYYYMMDD"}),xe(3,t),xe(1,[...t,"X","x"])].join("")}function Wt(){return F(["13","14","15","16","17","18","19"])+$(999999999).toString().padEnd(9,"0")}function zt(){let e=["http://","https://"],t=[".com",".net",".org",".cn",".top"],n=[`?name=${K({length:{min:4,max:8}})}`,`?id=${$()}`,`?page=${K({length:{min:2,max:4}})}`,`?query=${K({length:{min:5,max:6}})}`,`?search=${K({length:{min:1,max:4}})}`,`?token=${K({length:{min:16,max:16}})}`];return`${F(e)}${K({length:{min:5,max:25}})}${F(t)}${F(n)}`}var vo=[""," ",null,"null",void 0,"undefined",!0,"true",!1,"false",Number.POSITIVE_INFINITY,"Infinity",Number.NEGATIVE_INFINITY,"-Infinity",Number.NaN,"NaN"];var Oo=[65785,"920478",$(),`${$()}`],So=[-312,"-824",-$(),`-${$()}`],Do=[`0${$()}`,"00",`0000${$()}`,`-0${$()}`,"-00",`-0000${$()}`,"+0",`+${$()}`];var Ao=[5.23321001,"5.00321001",se(),`${se()}`],To=[-7.3211,"-5.01321001",-se(),`-${se()}`],jo=["00.0","0000.0","-00.0","-000..0","+0.01",`+${se()}`];function Je(){let e={protoProp:"parentValue"};Object.defineProperty(e,"hiddenProtoProp",{value:"hidden",enumerable:!1});let t=Symbol("symbolKey"),n=Symbol("nonEnumSymbol"),r=new Date("2023-01-01"),o=/test/gi,b=new Error("test error"),p=Promise.resolve("test promise"),x=()=>"test function",h=[1,2,3],A=[,"filled",,],_=new Map([["key","value"]]),k=new Set([1,2,3]),I=BigInt(9007199254740991),ne=Symbol("specialSymbol");return{testObj:Object.create(e,{strKey:{value:"normal",enumerable:!0},number:{value:42,enumerable:!0},string:{value:"test",enumerable:!0},boolean:{value:!0,enumerable:!0},nullValue:{value:null,enumerable:!0},undefinedValue:{value:void 0,enumerable:!0},bigInt:{value:I,enumerable:!0},symbol:{value:ne,enumerable:!0},nan:{value:NaN,enumerable:!0},infinity:{value:1/0,enumerable:!0},negativeZero:{value:-0,enumerable:!0},[t]:{value:"symbolValue",enumerable:!0},nonEnumKey:{value:"nonEnumValue",enumerable:!1},[n]:{value:"nonEnumSymbol",enumerable:!1},date:{value:r,enumerable:!0},regex:{value:o,enumerable:!0},error:{value:b,enumerable:!0},promise:{value:p,enumerable:!0},func:{value:x,enumerable:!0},array:{value:h,enumerable:!0},sparseArray:{value:A,enumerable:!0},map:{value:_,enumerable:!0},set:{value:k,enumerable:!0},mixed:{value:{func:()=>42,nested:{key:"value",deepArray:[1,2,{nestedKey:"nestedValue"}]}},enumerable:!0},accessorProp:{get(){return this._secret||"default"},set(y){this._secret=y},enumerable:!0,configurable:!0},explicitWritable:{value:"canChange",writable:!0,enumerable:!0},nonExtensibleObj:{value:Object.preventExtensions({locked:!0}),enumerable:!0}}),symbolKey:t,nonEnumSymbol:n,specialDate:r,specialRegex:o,specialError:b,specialPromise:p,specialFunc:x,specialArray:h,sparseArray:A,specialMap:_,specialSet:k,specialBigInt:I,specialSymbol:ne}}var{testObj:Vt,symbolKey:Yo,nonEnumSymbol:Ro,specialBigInt:No,specialSymbol:Po,specialDate:Co,specialRegex:Lo,specialError:Fo,specialFunc:_o,specialPromise:Ho,sparseArray:Uo,specialArray:Zo,specialMap:Ko,specialSet:Wo}=Je();console.log("testObj: ",Vt);var Qe={a:1,b:3,name:"string"},zo=ce(Qe,["a"]),Bt=Ne(Qe,["b","a"]);console.log("b: ",Bt);function Gt(e){return/^\d+$/.test(e)}function Xt(e){return/^[A-Z]+$/i.test(e)}function qt(e){return/^[A-Z]+$/.test(e)}function Jt(e){return/^[\dA-Z]+$/.test(e)}function Qt(e){return/^[\dA-Z\u4E00-\u9FA5]+$/.test(e)}function en(e){return/^[a-z]+$/.test(e)}function tn(e){return/^[\da-z]+$/.test(e)}function nn(e){return/^[\da-z\u4E00-\u9FA5]+$/.test(e)}function rn(e){return/^[\u4E00-\u9FA5]+$/.test(e)}function on(e){return/^-?(?:0|[1-9]\d*)\.\d+$/.test(e)}function sn(e){return/^(?:0\.0*[1-9]\d*|[1-9]\d*\.\d+)$/.test(e)}function an(e){return/^(?:0|[1-9]\d*)\.\d+$/.test(e)}function un(e){return/^-(?:0\.0*[1-9]\d*|[1-9]\d*\.\d+)$/.test(e)}function cn(e){return/^-(?:0|[1-9]\d*)\.\d+$/.test(e)}function fn(e){return/^-?(?:0|[1-9]\d*)$/.test(e)}function mn(e){return/^[1-9]\d*$/.test(e)}function ln(e){return/^(?:0|[1-9]\d*)$/.test(e)&&!Object.is(e,-0)}function pn(e){return/^-[1-9]\d*$/.test(e)}function dn(e){return/^-(?:0|[1-9]\d*)$/.test(e)||Object.is(e,-0)}var $e=pe(Le(),1),et=pe(He(),1);function gn(e){return/^1[3-9]\d{9}$/.test(e)}function hn(e){return/^https?:\/\/\S+$/i.test(e)}function bn(e){return/^[^\s@]+@[^\s@][^\s.@]*\.[^\s@]+$/.test(e)}function tt(e,t="YYYY-MM-DD HH:mm:ss"){return(0,$e.extend)(et.default),(0,$e.default)(e,t,!0).isValid()}function yn(e){return/^[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)&&tt(e.slice(6,14),"YYYYMMDD")}return ut(xn);})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lntvow/utils",
3
- "version": "3.2.6",
3
+ "version": "4.0.0",
4
4
  "type": "module",
5
5
  "description": "工具库",
6
6
  "keywords": [
@@ -14,34 +14,33 @@
14
14
  "files": [
15
15
  "dist"
16
16
  ],
17
- "main": "dist/index.cjs",
18
- "module": "dist/index.mjs",
19
- "types": "dist/index.d.ts",
17
+ "main": "dist/utils.esm-bundler.cjs",
18
+ "module": "dist/utils.esm-bundler.mjs",
19
+ "types": "dist/utils.esm-bundler.d.ts",
20
20
  "dependencies": {
21
- "dayjs": "^1.11.11"
21
+ "dayjs": "^1.11.13"
22
22
  },
23
23
  "devDependencies": {
24
- "@lntvow/dev": "^3.0.6",
25
- "@lntvow/eslint-config": "^9.12.0",
26
- "@swc/core": "^1.7.26",
27
- "@vitest/coverage-istanbul": "^1.6.0",
28
- "@vitest/ui": "^1.6.0",
29
- "deepmerge": "^4.3.1",
30
- "tsup": "^8.1.0",
31
- "typescript": "^5.4.5",
32
- "vite": "^5.2.12",
33
- "vitest": "^1.6.0"
24
+ "@lntvow/dev": "^4.4.2",
25
+ "@vitest/coverage-v8": "^3.2.2",
26
+ "@vitest/ui": "^3.2.2",
27
+ "tsup": "^8.5.0",
28
+ "typescript": "^5.8.3",
29
+ "vitest": "^3.2.2"
34
30
  },
35
31
  "scripts": {
36
- "dev": "vitest",
32
+ "postinstall": "simple-git-hooks",
33
+ "rimraf": "rimraf ./node_modules/",
34
+ "commit": "git add . && git-cz && git push",
35
+ "release": "git add . && bumpp package.json jsr.json --all --no-tag --no-print-commits",
36
+ "lint:eslint": "eslint \"src/**/*.{js,jsx,ts,tsx,vue}\" --fix",
37
+ "lint:tsc": "tsc --noEmit",
38
+ "lint": "run-p lint:eslint lint:tsc",
39
+ "ncu": "ncu -u && pnpm install",
40
+ "dev": "vite",
37
41
  "test": "vitest",
38
- "test:ui": "vitest --ui",
42
+ "test:ui": "vitest --ui --coverage.enabled=true",
39
43
  "coverage": "vitest run --coverage",
40
- "build": "tsup",
41
- "build:vite": "vite build",
42
- "lint": "eslint \"src/**/*.{js,jsx,ts,tsx,vue}\"",
43
- "commit": "git add . && git-cz && git push",
44
- "release": "git add . && bumpp package.json --all --commit --no-tag --push",
45
- "rimraf": "rimraf ./node_modules/"
44
+ "build": "tsup"
46
45
  }
47
46
  }
package/dist/index.cjs DELETED
@@ -1,2 +0,0 @@
1
- "use strict";var it=Object.create;var R=Object.defineProperty;var st=Object.getOwnPropertyDescriptor;var at=Object.getOwnPropertyNames,L=Object.getOwnPropertySymbols,mt=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty,ut=Object.prototype.propertyIsEnumerable;var H=(t,e,n)=>e in t?R(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,U=(t,e)=>{for(var n in e||(e={}))z.call(e,n)&&H(t,n,e[n]);if(L)for(var n of L(e))ut.call(e,n)&&H(t,n,e[n]);return t};var ct=(t,e)=>{for(var n in e)R(t,n,{get:e[n],enumerable:!0})},W=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of at(e))!z.call(t,o)&&o!==n&&R(t,o,{get:()=>e[o],enumerable:!(r=st(e,o))||r.enumerable});return t};var M=(t,e,n)=>(n=t!=null?it(mt(t)):{},W(e||!t||!t.__esModule?R(n,"default",{value:t,enumerable:!0}):n,t)),pt=t=>W(R({},"__esModule",{value:!0}),t);var Oe={};ct(Oe,{base64Decode:()=>gt,base64Encode:()=>dt,castArray:()=>$,compareProperties:()=>Kt,compose:()=>lt,composeRight:()=>xt,debounce:()=>bt,debugWarn:()=>V,decimalToBinary:()=>ft,deepClone:()=>E,deepMerge:()=>A,deprecated:()=>G,error:()=>Ot,excludeProperties:()=>Lt,extractProperties:()=>Ht,generateRandomArray:()=>zt,generateRandomColor:()=>Wt,generateRandomDate:()=>F,generateRandomEmail:()=>et,generateRandomFloat:()=>Bt,generateRandomIdCard:()=>qt,generateRandomInteger:()=>m,generateRandomMobilePhone:()=>Vt,generateRandomString:()=>b,generateRandomStringFromSource:()=>I,generateRandomUrl:()=>nt,getRandomItem:()=>x,hasChanged:()=>Dt,hasOwn:()=>w,initLog:()=>ht,isArray:()=>p,isBoolean:()=>jt,isChinese:()=>Qt,isDate:()=>v,isDateString:()=>ot,isDef:()=>Mt,isEmail:()=>be,isEmptyString:()=>ye,isEnglishAphabet:()=>Jt,isFloat:()=>se,isFunction:()=>h,isIdCard:()=>he,isInteger:()=>pe,isLowerCase:()=>re,isLowerCaseAndNumber:()=>oe,isLowerCaseAndNumberAndChinese:()=>ie,isMap:()=>At,isMobilePhone:()=>xe,isNegativeFloat:()=>me,isNegativeFloatOrZero:()=>ce,isNegativeInteger:()=>ge,isNegativeIntegerOrZero:()=>le,isNull:()=>St,isNumber:()=>c,isNumberOrNumberString:()=>Xt,isObject:()=>u,isPositiveFloat:()=>ae,isPositiveFloatOrZero:()=>ue,isPositiveInteger:()=>fe,isPositiveIntegerOrZero:()=>de,isPromise:()=>Tt,isRegExp:()=>_,isSet:()=>$t,isString:()=>Z,isSymbol:()=>Rt,isUndef:()=>l,isUndefined:()=>Et,isUpperCase:()=>te,isUpperCaseAndNumber:()=>ee,isUpperCaseAndNumberAndChinese:()=>ne,isUrl:()=>we,log:()=>D,objectToString:()=>q,qs:()=>Nt,throttle:()=>Pt,throwError:()=>a,toTypeString:()=>T,validatorChineseOrEnglish:()=>vt,validatorChineseOrEnglishOrNumber:()=>Ut,validatorEmail:()=>Gt,validatorLatitudeOrLongitude:()=>Yt,validatorUppercaseOrNumbersOrSpecial:()=>_t,validatorUppercaseOrNumbersOrUnderline:()=>Zt,warn:()=>wt});module.exports=pt(Oe);function ft(t){let e=[],n,r="";for(;t>0;)n=Math.floor(t%2),e.push(n),t=Math.floor(t/2);for(;e.length>0;)r+=e.pop().toString();return r}var B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function dt(t){let e="",n="";for(let o=0;o<t.length;o++)n+=t[o].charCodeAt(0).toString(2).padStart(8,"0");for(let o=0;o<n.length;o+=6)e+=B[parseInt(n.slice(o,o+6).padEnd(6,"0"),2)];let r=e.length%4;return r!==0&&(e+="=".repeat(4-r)),e}function gt(t){let e="",n="";for(let r=0;r<t.length&&t[r]!=="=";r++)n+=B.indexOf(t[r]).toString(2).padStart(6,"0");for(let r=0;r<n.length;r+=8){let o=parseInt(n.slice(r,r+8),2);o&&(e+=String.fromCharCode(o))}return e}function lt(...t){return t.reduce((e,n)=>function(...r){return n(e(...r))})}function xt(...t){return t.reduce((e,n)=>function(...r){return e(n(...r))})}function bt(t,e=500){let n=null;return function(...r){n&&clearTimeout(n),n=setTimeout(()=>{t.apply(this,r)},e)}}var q=Object.prototype.toString,T=t=>q.call(t),yt=null;function ht(t){h(t)&&(yt=t)}var j=(t,e,...n)=>{if(!e)return;let r=n.length===0?"":n.length===1?n[0]:n;console[t](`[Log] ${e}:`,r)},D=(t,...e)=>{j("info",t,...e)};D.info=(t,...e)=>{j("info",t,...e)};D.error=(t,...e)=>{j("error",t,...e)};D.warn=(t,...e)=>{j("warn",t,...e)};var wt=(...t)=>console.warn(...t),Ot=(...t)=>console.error(...t),At=t=>T(t)==="[object Map]",$t=t=>T(t)==="[object Set]",v=t=>T(t)==="[object Date]",_=t=>T(t)==="[object RegExp]",h=t=>typeof t=="function",c=t=>typeof t=="number",Z=t=>typeof t=="string",Rt=t=>typeof t=="symbol",u=t=>t!==null&&typeof t=="object",Tt=t=>u(t)&&h(t.then)&&h(t.catch),l=t=>t==null,Et=t=>t===void 0,St=t=>t===null,Mt=t=>t!=null,jt=t=>typeof t=="boolean",p=Array.isArray,w=(t,e)=>Object.hasOwn(t,e),Dt=(t,e)=>t!==e;function E(t){let e=new WeakMap;function n(r){if(v(r))return new Date(r);if(_(r))return new RegExp(r);if(u(r)){if(e.has(r))return e.get(r);let o={};if(p(r)){o=[],e.set(r,o);for(let i=0;i<r.length;i++)o[i]=n(r[i]);return o}e.set(r,o);for(let i in r)w(r,i)&&(o[i]=n(r[i]));return o}return r}return n(t)}var C=class extends Error{constructor(e){super(e),this.name="LntvowError"}};function a(t,e){throw new C(`[${t}] ${e}`)}function V(t,e){if(process.env.NODE_ENV!=="production"){let n=Z(t)?new C(`[${t}] ${e}`):t;console.warn(n)}}var G=({from:t,replacement:e,version:n,type:r="API"})=>{V(`${r}`,`${t} is about to be deprecated in version ${n}, please use ${e} instead.`)};function A(t,e,n){return(!u(t)||!u(e))&&a("deepMerge","template \u548C source \u5FC5\u987B\u662F\u5BF9\u8C61"),p(t)?Ft(t,e,n):Ct(t,e,n)}function Ct(t,e,n){let r=O(e,n);return Object.keys(t).forEach(i=>{l(e[i])?r[i]=O(t[i],n):r[i]=u(t[i])&&u(e[i])?A(t[i],e[i],n):O(e[i],n)}),r}function Ft(t,e,n){if(p(e)){let r=O(e,n);return r.push(...O(t,n)),r}return O(t,n)}function O(t,e){let{deepClone:n=!0}=e||{};return n?E(t):t}function It(t,e){let{decode:n}=A({decode:!0},e||{}),r={};t.startsWith("?")&&(t=t.slice(1)),t.includes("?")&&(t=t.slice(t.indexOf("?")+1));let o=t.split("&").filter(Boolean);for(let i of o){let[g,f]=i.split("=");r[g]=n?decodeURIComponent(f):f}return r}function X(t,e){let{encode:n}=A({encode:!0},e||{}),r=[];for(let o in t){let i=t[o];r.push(`${o}=${n?encodeURIComponent(i):i}`)}return r.join("&")}function kt(t,e,n){let r=A({encode:!0},n||{}),o=X(e,r);return t.includes("?")?t.endsWith("?")||t.endsWith("&")?`${t}${o}`:`${t}&${o}`:`${t}?${o}`}var Nt={parse:It,stringify:X,appendQueryString:kt};function Pt(t,e=500){let n=null;return function(...r){if(l(n))return n=Date.now(),t.apply(this,r);let o=Date.now();if(o-n>=e)return n=o,t.apply(this,r)}}function Yt(t){return/^-?\d{1,3}\.\d{6}$/.test(t)}function Ut(t){return!l(t)&&/^[\dA-Za-z\u4E00-\u9FA5]+$/.test(t)}function vt(t){return!l(t)&&/^[A-Za-z\u4E00-\u9FA5]+$/.test(t)}function _t(t){return!l(t)&&/^[\d!"#$%&'()*+,./:;<=>?@A-Z[\\\]^_`{|}~]+$/.test(t)}function Zt(t){return/^[\dA-Z_]+$/.test(t)}function Gt(t){return G({from:"validatorEmail",replacement:"isEmail",version:"2.4.0"}),/^([\w-])+@([\w-])+(\.[\w-])+/.test(t)}function $(t){return p(t)?t:[t]}function Kt(t,e){return(!u(t)||!u(e))&&a("deepMerge","template \u548C source \u5FC5\u987B\u662F\u5BF9\u8C61"),p(t)?void 0:Q(t,e)}function Q(t,e){let n={};return Object.keys(t).forEach(r=>{let o=t[r],i=e[r];u(o)&&u(i)?n[r]=Q(o,i):Object.is(o,i)||(n[r]=i)}),n}function Lt(t,e){let n=E(t);return $(e).forEach(o=>{w(n,o)&&delete n[o]}),n}function Ht(t,e){let n={};return $(e).forEach(o=>{w(t,o)&&(n[o]=t[o])}),n}function zt(t,e){return(!c(t)||t<=0)&&a("generateRandomArray","num \u5FC5\u987B\u5927\u4E8E0"),h(e)||a("generateRandomArray","cb \u5FC5\u987B\u662F\u51FD\u6570"),Array.from({length:t}).fill(0).map((n,r)=>e(n,r))}function Wt(){return`#${Math.random().toString(16).slice(2,8).padEnd(6,"0")}`}var d=M(require("dayjs"),1),J=M(require("dayjs/plugin/customParseFormat"),1);function m(t={}){c(t)&&(t={max:t});let{min:e=0,max:n=Number.MAX_SAFE_INTEGER}=t,r=Math.ceil(e),o=Math.floor(n);return r===o?r:(o<r&&(n>=e&&a("generateRandomInteger",`\u672A\u627E\u5230 ${e} \u548C ${n} \u4E4B\u95F4\u7684\u6574\u6570\u503C`),a("generateRandomInteger",`\u6700\u5927\u503C ${n} \u5E94\u5927\u4E8E\u6700\u5C0F\u503C ${e}`)),Math.floor(Math.random()*(o-r+1)+r))}(0,d.extend)(J.default);function F(t={}){let{start:e="1800-01-01 00:00:00",end:n=(0,d.default)().format("YYYY-MM-DD HH:mm:ss"),format:r="YYYY-MM-DD HH:mm:ss"}=t;(!(0,d.default)(e).isValid()||!(0,d.default)(n).isValid())&&a("generateRandomDate","start end \u53C2\u6570\u5FC5\u987B\u662F\u5408\u6CD5\u7684\u65F6\u95F4\u683C\u5F0F");let o=(0,d.default)(e).year(),i=(0,d.default)(n).year(),g=m({min:o,max:i}),f=m({min:1,max:12}),S=m({min:1,max:31}),N=m(23),y=m(59),P=m(59),Y=(0,d.default)(`${g}-${f}-${S} ${N}:${y}:${P}`);return Y.isBefore((0,d.default)(e))||Y.isAfter((0,d.default)(n))?F(t):Y.format(r)}var tt=16,K=1;function b(t={}){c(t)&&(t={length:t});let{lowerCase:e=!0,upperCase:n=!0,number:r=!0,extra:o=[],length:i=tt}=t,g={max:tt,min:K};c(i)?g={max:i,min:i}:(g=U(U({},g),i),g.min<K&&a("generateRandomString",`length.min \u5FC5\u987B\u5927\u4E8E\u7B49\u4E8E${K}`)),e||n||r||a("generateRandomString","lowerCase upperCase number \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u53C2\u6570\u4E3Atrue");let f="";e&&(f+="abcdefghijklmnopqrstuvwxyz"),n&&(f+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),r&&(f+="0123456789"),f+=$(o).flatMap(y=>y.split("")).join("");let S="",N=m(g);for(let y=0;y<N;y++){let P=Math.floor(Math.random()*f.length);S+=f.charAt(P)}return S}function x(t){return t[Math.floor(Math.random()*t.length)]}function et(){let t=["gmail.com","outlook.com.cn","example.com","qq.com","163.com","test.com.cn"],e=`${b(1)}${b({length:m({max:30,min:1}),extra:[".","_","-"]})}${b(1)}@${x(t)}`;return/\.{2,}/.test(e)?et():e}function Bt(t={}){c(t)&&(t={max:t});let{min:e=0,max:n=1,fractionDigits:r=2}=t;if(e===n)return e;if(e>n)throw new Error(`\u6700\u5927\u503C ${n} \u5E94\u5927\u4E8E\u6700\u5C0F\u503C ${e}`);return Math.random()*(n-e)+e}function I(t,e){(!c(t)||t<=0)&&a("generateRandomStringFromSource","num \u5FC5\u987B\u5927\u4E8E0"),(!p(e)||e.length===0)&&a("generateRandomStringFromSource","source \u4E0D\u80FD\u4E3A\u7A7A\u6570\u7EC4");let n="";for(let r=0;r<t;r++)n+=x(e);return n}function qt(){let t=m({min:1e5,max:999999}),e=[0,1,2,3,4,5,6,7,8,9];return[t,F({format:"YYYYMMDD"}),I(3,e),I(1,[...e,"X","x"])].join("")}function Vt(){return x(["13","14","15","16","17","18","19"])+m(999999999).toString().padEnd(9,"0")}function nt(){let e=`${x(["http://","https://"])}${b(1)}${b({length:{max:60,min:5},extra:["/"]})}`;return/^(?:http|https):\/\/\w*\/{2,}/.test(e)?nt():e}function Xt(t){return/^\d+$/.test(t)}function Qt(t){return/^[\u4E00-\u9FA5]+$/.test(t)}function Jt(t){return/^[A-Za-z]+$/.test(t)}function te(t){return/^[A-Z]+$/.test(t)}function ee(t){return/^[\dA-Z]+$/.test(t)}function ne(t){return/^[\dA-Z\u4E00-\u9FA5]+$/.test(t)}function re(t){return/^[a-z]+$/.test(t)}function oe(t){return/^[\da-z]+$/.test(t)}function ie(t){return/^[\da-z\u4E00-\u9FA5]+$/.test(t)}function se(t,e={}){let{integer:n=!0}=e;return n?/^-?(0|[1-9]\d*)(\.\d+)?$/.test(t):/^-?(0|[1-9]\d*)\.\d+$/.test(t)}function ae(t,e={}){let{integer:n=!0}=e;return n?/^[1-9]\d*\.?\d*|^0\.\d*[1-9]\d*$/.test(t):/^[1-9]\d*\.\d*|^0\.\d*[1-9]\d*$/.test(t)}function me(t,e={}){let{integer:n=!0}=e;return n?/^-[1-9]\d*\.?\d*|^-0\.\d*[1-9]\d*$/.test(t):/^-[1-9]\d*\.\d*|^-0\.\d*[1-9]\d*$/.test(t)}function ue(t,e={}){let{integer:n=!0}=e;return n?/^(0|[1-9]\d*)(\.\d+)?$/.test(t):/^(0|[1-9]\d*)\.\d+$/.test(t)}function ce(t,e={}){let{integer:n=!0}=e;return n?/^(-?0(\.0+)?|-(0|[1-9]\d*)(\.\d+)?)$/.test(t):/^(-?0\.0+|-(0|[1-9]\d*)\.\d+)$/.test(t)}function pe(t){return/^-?(0|[1-9]\d*)$/.test(t)}function fe(t){return/^[1-9]\d*$/.test(t)}function de(t){return/^(0|[1-9]\d*)$/.test(t)}function ge(t){return/^-([1-9]\d*)$/.test(t)}function le(t){return/^(0|-(0|[1-9]\d*))$/.test(t)}var k=M(require("dayjs"),1),rt=M(require("dayjs/plugin/customParseFormat"),1);function xe(t){return/^1[3-9]\d{9}$/.test(t)}function be(t){return/^[\w-]+(?:\.[\w-]+)*@[\w-]+(?:\.[\w-]+)*$/.test(t)}function ye(t){return t===""}function ot(t,e="YYYY-MM-DD HH:mm:ss"){return(0,k.extend)(rt.default),(0,k.default)(t,e,!0).isValid()}function he(t){return/^[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(t)&&ot(t.slice(6,14),"YYYYMMDD")}function we(t){return/^(?:http|https):\/\/[\w.]+/.test(t)}0&&(module.exports={base64Decode,base64Encode,castArray,compareProperties,compose,composeRight,debounce,debugWarn,decimalToBinary,deepClone,deepMerge,deprecated,error,excludeProperties,extractProperties,generateRandomArray,generateRandomColor,generateRandomDate,generateRandomEmail,generateRandomFloat,generateRandomIdCard,generateRandomInteger,generateRandomMobilePhone,generateRandomString,generateRandomStringFromSource,generateRandomUrl,getRandomItem,hasChanged,hasOwn,initLog,isArray,isBoolean,isChinese,isDate,isDateString,isDef,isEmail,isEmptyString,isEnglishAphabet,isFloat,isFunction,isIdCard,isInteger,isLowerCase,isLowerCaseAndNumber,isLowerCaseAndNumberAndChinese,isMap,isMobilePhone,isNegativeFloat,isNegativeFloatOrZero,isNegativeInteger,isNegativeIntegerOrZero,isNull,isNumber,isNumberOrNumberString,isObject,isPositiveFloat,isPositiveFloatOrZero,isPositiveInteger,isPositiveIntegerOrZero,isPromise,isRegExp,isSet,isString,isSymbol,isUndef,isUndefined,isUpperCase,isUpperCaseAndNumber,isUpperCaseAndNumberAndChinese,isUrl,log,objectToString,qs,throttle,throwError,toTypeString,validatorChineseOrEnglish,validatorChineseOrEnglishOrNumber,validatorEmail,validatorLatitudeOrLongitude,validatorUppercaseOrNumbersOrSpecial,validatorUppercaseOrNumbersOrUnderline,warn});
2
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts","../src/utils/code.ts","../src/utils/compose.ts","../src/utils/debounce.ts","../src/utils/type.ts","../src/utils/deepClone.ts","../src/utils/error.ts","../src/utils/deepMerge.ts","../src/utils/qs.ts","../src/utils/throttle.ts","../src/utils/validator.ts","../src/array/castArray.ts","../src/object/compareProperties.ts","../src/object/propertyManipulation.ts","../src/random/generateRandomArray.ts","../src/random/generateRandomColor.ts","../src/random/generateRandomDate.ts","../src/random/generateRandomInteger.ts","../src/random/generateRandomString.ts","../src/random/getRandomItem.ts","../src/random/generateRandomEmail.ts","../src/random/generateRandomFloat.ts","../src/random/generateRandomStringFromSource.ts","../src/random/generateRandomIdCard.ts","../src/random/generateRandomMobilePhone.ts","../src/random/generateRandomUrl.ts","../src/validator/aphabet.ts","../src/validator/float.ts","../src/validator/integer.ts","../src/validator/utils.ts"],"sourcesContent":["export * from './array'\n\nexport * from './object'\n\nexport * from './random'\n\nexport * from './utils'\n\nexport * from './validator'\n","/**\n * 十进制转二进制\n * @example decimalToBinary(233) => '11101001'\n */\nexport function decimalToBinary(decNumber: number): string {\n const stack = []\n let remainder\n let binaryString = ''\n\n while (decNumber > 0) {\n remainder = Math.floor(decNumber % 2)\n stack.push(remainder)\n decNumber = Math.floor(decNumber / 2)\n }\n\n while (stack.length > 0) {\n binaryString += stack.pop()!.toString()\n }\n\n return binaryString\n}\n\nconst BASE64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\n/**\n * Base64 编码\n * @example base64Encode('hello') => 'aGVsbG8='\n */\nexport function base64Encode(str: string): string {\n let result = ''\n let bin = ''\n\n for (let i = 0; i < str.length; i++) {\n bin += str[i].charCodeAt(0).toString(2).padStart(8, '0')\n }\n\n for (let i = 0; i < bin.length; i += 6) {\n result += BASE64_CHARS[parseInt(bin.slice(i, i + 6).padEnd(6, '0'), 2)]\n }\n\n const padding = result.length % 4\n if (padding !== 0) result += '='.repeat(4 - padding)\n\n return result\n}\n\n/**\n * Base64 解码\n * @example base64Decode('aGVsbG8=') => 'hello'\n */\nexport function base64Decode(str: string): string {\n let result = ''\n let bin = ''\n\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '=') break\n bin += BASE64_CHARS.indexOf(str[i]).toString(2).padStart(6, '0')\n }\n\n for (let i = 0; i < bin.length; i += 8) {\n const binary = parseInt(bin.slice(i, i + 8), 2)\n if (binary) {\n result += String.fromCharCode(binary)\n }\n }\n\n return result\n}\n","/**\n * compose\n * @param fns 任意函数\n */\nexport function compose(...fns: ((...args: any[]) => any)[]) {\n return fns.reduce(\n (previous, current) =>\n function (...args) {\n return current(previous(...args))\n }\n )\n}\n\n/**\n * compose 从右到左\n * @param fns 任意函数\n */\nexport function composeRight(...fns: ((...args: any[]) => any)[]) {\n return fns.reduce(\n (previous, current) =>\n function (...args) {\n return previous(current(...args))\n }\n )\n}\n","/**\n * 防抖函数\n * @param target 目标函数\n * @param wait 等待时间 默认 500ms\n * @example debounce(() => console.log('debounce'), 500)\n */\nexport function debounce(target: Function, wait = 500) {\n let timer: number | null = null\n\n return function (...args: any[]) {\n if (timer) clearTimeout(timer)\n timer = setTimeout(() => {\n target.apply(this, args)\n }, wait) as any\n }\n}\n","/* eslint-disable no-console */\n\n/* eslint-disable ts/ban-types */\nexport type AnyObject = Record<string, any>\n\nexport type ArrayItem<T> = T extends (infer U)[] ? U : never\n\nexport const objectToString = Object.prototype.toString\n\nexport const toTypeString = (value: unknown): string => objectToString.call(value)\n\nlet logCb: Function | null = null\n\nexport function initLog(cb: Function) {\n if (isFunction(cb)) {\n logCb = cb\n }\n}\n\nconst origConsole = (type: 'info' | 'warn' | 'error', name: unknown, ...arg: unknown[]) => {\n if (!name) return\n const context = arg.length === 0 ? '' : arg.length === 1 ? arg[0] : arg\n\n console[type](`[Log] ${name}:`, context)\n}\n\nexport const log = (name: unknown, ...arg: unknown[]) => {\n origConsole('info', name, ...arg)\n}\n\nlog.info = (name: unknown, ...arg: unknown[]) => {\n origConsole('info', name, ...arg)\n}\n\nlog.error = (name: unknown, ...arg: unknown[]) => {\n origConsole('error', name, ...arg)\n}\n\nlog.warn = (name: unknown, ...arg: unknown[]) => {\n origConsole('warn', name, ...arg)\n}\n\nexport const warn = (...arg: unknown[]) => console.warn(...arg)\n\nexport const error = (...arg: unknown[]) => console.error(...arg)\n\nexport const isMap = (val: unknown): val is Map<any, any> => toTypeString(val) === '[object Map]'\n\nexport const isSet = (val: unknown): val is Set<any> => toTypeString(val) === '[object Set]'\n\nexport const isDate = (val: unknown): val is Date => toTypeString(val) === '[object Date]'\n\nexport const isRegExp = (val: unknown): val is RegExp => toTypeString(val) === '[object RegExp]'\n\nexport const isFunction = (val: unknown): val is Function => typeof val === 'function'\n\nexport const isNumber = (val: unknown): val is number => typeof val === 'number'\n\nexport const isString = (val: unknown): val is string => typeof val === 'string'\n\nexport const isSymbol = (val: unknown): val is symbol => typeof val === 'symbol'\n\nexport const isObject = (val: unknown): val is Record<any, any> => val !== null && typeof val === 'object'\n\nexport const isPromise = <T = any>(val: unknown): val is Promise<T> =>\n isObject(val) && isFunction(val.then) && isFunction(val.catch)\n\nexport const isUndef = (val: unknown): val is undefined | null => val === undefined || val === null\n\nexport const isUndefined = (val: unknown): val is undefined => val === undefined\n\nexport const isNull = (val: unknown): val is null => val === null\n\nexport const isDef = <T>(val: T): val is NonNullable<T> => val !== undefined && val !== null\n\nexport const isBoolean = (val: unknown): val is boolean => typeof val === 'boolean'\n\nexport const isArray = Array.isArray\n\nexport const hasOwn = <T extends object, U extends keyof T>(target: T, key: U) => Object.hasOwn(target, key)\n\nexport const hasChanged = (oldValue: unknown, newValue: unknown) => oldValue !== newValue\n\nexport type Arrayable<T> = T | T[]\n\n// export function isMobilePhone() {\n// if (\n// navigator.userAgent.indexOf('Mobile') > -1 ||\n// navigator.userAgent.indexOf('Android') > -1 ||\n// navigator.userAgent.indexOf('iPhone') > -1 ||\n// navigator.userAgent.indexOf('iPad') > -1 ||\n// navigator.userAgent.indexOf('Windows Phone') > -1 ||\n// navigator.userAgent.indexOf('BlackBerry') > -1 ||\n// navigator.userAgent.indexOf('Symbian') > -1\n// ) {\n// return true\n// }\n// return false\n// }\n","import { hasOwn, isArray, isDate, isObject, isRegExp } from './type'\n\n/**\n * 深拷贝\n * @param target 拷贝对象\n * @example deepClone({ name: 1, obj: { name: 1 }, arr: [1, 2, 3] }) => { name: 1, obj: { name: 1 }, arr: [1, 2, 3] }\n */\nexport function deepClone<T>(target: T): T {\n const map = new WeakMap()\n\n function _deepClone(value: any) {\n if (isDate(value)) return new Date(value)\n if (isRegExp(value)) return new RegExp(value)\n\n if (isObject(value)) {\n // 取出 WeakMap 中缓存的 clone 对象\n if (map.has(value)) return map.get(value)\n let clone: Record<any, any> = {}\n\n // 处理数组\n if (isArray(value)) {\n clone = []\n map.set(value, clone)\n for (let i = 0; i < value.length; i++) {\n clone[i] = _deepClone(value[i])\n }\n\n return clone\n }\n\n // 设置缓存\n map.set(value, clone)\n\n for (const key in value) {\n if (hasOwn(value, key)) {\n clone[key] = _deepClone(value[key])\n }\n }\n\n return clone\n }\n return value\n }\n\n return _deepClone(target)\n}\n","import { isString } from './type'\n\nclass LntvowError extends Error {\n constructor(m: string) {\n super(m)\n this.name = 'LntvowError'\n }\n}\n\nexport function throwError(scope: string, message: string) {\n throw new LntvowError(`[${scope}] ${message}`)\n}\n\nexport function debugWarn(err: Error): void\n\nexport function debugWarn(scope: string, message: string): void\n\nexport function debugWarn(scope: string | Error, message?: string) {\n if (process.env.NODE_ENV !== 'production') {\n const error: Error = isString(scope) ? new LntvowError(`[${scope}] ${message}`) : scope\n\n console.warn(error)\n }\n}\n\nexport const deprecated = ({\n from,\n replacement,\n version,\n type = 'API',\n}: {\n from: string\n replacement: string\n version: string\n type?: 'API'\n}) => {\n debugWarn(`${type}`, `${from} is about to be deprecated in version ${version}, please use ${replacement} instead.`)\n}\n","import { isArray, type AnyObject, isObject, isUndef } from './type'\nimport { deepClone as _deepClone } from './deepClone'\nimport { throwError } from './error'\n\ninterface DeepMergeOptions {\n /**\n * 是否开启深拷贝 默认开启\n * @default true\n */\n deepClone: boolean\n}\n\n/**\n * 深度合并两对象\n * @param template 模板对象 就是默认值\n * @param source 源对象 就是用户传入的值\n * @param options 配置对象\n * @example deepMerge({ name: 1, obj: { name: '默认' , text: '旧值' }, arr: [1, 2, 3] }, { name: 1, obj: { name: '修改', age: '新增' }, test: 'test' }) => { name: 1, obj: { name: '修改', text: '旧值', age: '新增' }, arr: [1, 2, 3], test: 'test' }\n */\n\nexport function deepMerge(template: AnyObject, source: AnyObject, options?: DeepMergeOptions): any {\n if (!isObject(template) || !isObject(source)) {\n throwError('deepMerge', 'template 和 source 必须是对象')\n }\n\n return isArray(template) ? arrayMerge(template, source, options) : mergeObject(template, source, options)\n}\n\nfunction mergeObject(template: AnyObject, source: AnyObject, options?: DeepMergeOptions) {\n const target = process(source, options)\n const templateKeys = Object.keys(template)\n templateKeys.forEach(key => {\n if (isUndef(source[key])) {\n target[key] = process(template[key], options)\n } else {\n target[key] =\n isObject(template[key]) && isObject(source[key])\n ? deepMerge(template[key], source[key], options)\n : process(source[key], options)\n }\n })\n\n return target\n}\n\n// 数组暂时没有深拷贝的需求\nfunction arrayMerge<T>(template: T[], source: AnyObject, options?: DeepMergeOptions) {\n if (isArray(source)) {\n const result = process(source, options)\n result.push(...process(template, options))\n\n return result\n }\n return process(template, options)\n}\n\nfunction process<T>(source: T, options?: DeepMergeOptions): T {\n const { deepClone = true } = options || {}\n\n return deepClone ? _deepClone(source) : source\n}\n","import { deepMerge } from './deepMerge'\nimport type { AnyObject } from './type'\n\n/**\n * 解析查询字符串\n * @param str 转换的字符串\n * @return 转换后的对象\n * @example\n * parse('a=1&b=2') => { a: '1', b: '2' }\n * parse('?a=1&b=2') => { a: '1', b: '2' }\n * parse('&a=1&b=2') => { a: '1', b: '2' }\n * parse('from=%E4%B8%AD%E5%9B%BD') => { from: '中国' }\n * parse('from=%E4%B8%AD%E5%9B%BD', { decode: false }) => { from: '%E4%B8%AD%E5%9B%BD' }\n */\nfunction parse(str: string, options?: ParseOptions) {\n const { decode } = deepMerge({ decode: true }, options || {}) as ParseOptions\n const result: Record<string, string> = {}\n str.startsWith('?') && (str = str.slice(1))\n str.includes('?') && (str = str.slice(str.indexOf('?') + 1))\n\n const pairs = str.split('&').filter(Boolean)\n\n for (const pair of pairs) {\n const [key, value] = pair.split('=')\n result[key] = decode ? decodeURIComponent(value) : value\n }\n\n return result\n}\n\n/**\n * 转换对象为查询字符串\n * @param obj 转换的对象\n * @return 转换后的字符串\n * @example\n * stringify({ a: '1', b: '2' }) => 'a=1&b=2'\n * stringify({ from: '中国' }) => 'from=%E4%B8%AD%E5%9B%BD'\n * stringify({ from: '中国' }, { encode: false }) => 'from=中国'\n */\nfunction stringify(obj: Record<string, any>, options?: StringifyOptions) {\n const { encode } = deepMerge({ encode: true }, options || {}) as StringifyOptions\n\n const pairs = []\n for (const key in obj) {\n const value = obj[key]\n pairs.push(`${key}=${encode ? encodeURIComponent(value) : value}`)\n }\n\n return pairs.join('&')\n}\n\n/**\n * url追加查询字符串\n * @param url url\n * @param obj 查询字符串对象\n * @return 追加后的url\n * @example\n * appendQueryString('https://www.baidu.com', { a: '1', b: '2' }) => 'https://www.baidu.com?a=1&b=2'\n * appendQueryString('/pages/index?id=10', { test:'23' }) => '/pages/index?id=10&test=23'\n */\nfunction appendQueryString(url: string, obj: AnyObject, options?: StringifyOptions) {\n const stringifyOptions = deepMerge({ encode: true }, options || {}) as StringifyOptions\n const query = stringify(obj, stringifyOptions)\n\n if (url.includes('?')) {\n return url.endsWith('?') || url.endsWith('&') ? `${url}${query}` : `${url}&${query}`\n }\n return `${url}?${query}`\n}\n\nexport const qs = {\n parse,\n stringify,\n appendQueryString,\n}\n\nexport interface ParseOptions {\n /**\n * 是否解码\n * @default true\n */\n decode?: boolean\n}\n\nexport interface StringifyOptions {\n /**\n * 是否编码\n * @default true\n */\n encode?: boolean\n}\n","/* eslint-disable no-invalid-this */\n/* eslint-disable ts/ban-types */\nimport { isUndef } from './type'\n\n/**\n * 节流函数\n * @param target 目标函数\n * @param wait 等待时间 默认 500ms\n * @example throttle(() => console.log('hello world'), 500)\n */\nexport function throttle(target: Function, wait = 500) {\n let timer: number | null = null\n\n return function (...args: any[]) {\n if (isUndef(timer)) {\n timer = Date.now()\n\n return target.apply(this, args)\n }\n const now = Date.now()\n if (now - timer >= wait) {\n timer = now\n\n return target.apply(this, args)\n }\n }\n}\n","import { deprecated } from './error'\nimport { isUndef } from './type'\n\n/**\n * 校验经纬度\n */\nexport function validatorLatitudeOrLongitude(value: string) {\n return /^-?\\d{1,3}\\.\\d{6}$/.test(value)\n}\n\n/**\n * 校验中文、字母、数字\n */\nexport function validatorChineseOrEnglishOrNumber(value: string) {\n return !isUndef(value) && /^[\\dA-Za-z\\u4E00-\\u9FA5]+$/.test(value)\n}\n\n/**\n * 校验中英文\n */\nexport function validatorChineseOrEnglish(value: string) {\n return !isUndef(value) && /^[A-Za-z\\u4E00-\\u9FA5]+$/.test(value)\n}\n\n/**\n * 校验大写字母、数字、特殊字符 特殊字符包括 !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\n */\nexport function validatorUppercaseOrNumbersOrSpecial(value: string) {\n return !isUndef(value) && /^[\\d!\"#$%&'()*+,./:;<=>?@A-Z[\\\\\\]^_`{|}~]+$/.test(value)\n}\n\n/**\n * 校验大写字母、数字、_\n */\nexport function validatorUppercaseOrNumbersOrUnderline(value: string) {\n return /^[\\dA-Z_]+$/.test(value)\n}\n\n/**\n * 校验是否为邮箱\n * @deprecated 使用 isEmail 代替\n */\nexport function validatorEmail(value: string) {\n deprecated({ from: 'validatorEmail', replacement: 'isEmail', version: '2.4.0' })\n\n return /^([\\w-])+@([\\w-])+(\\.[\\w-])+/.test(value)\n}\n","import { isArray } from '@/utils'\n\n/**\n * 将非数组转换为数组 如果是目标本就是数组则直接返回\n * @example castArray(1) => [1]\n */\nexport function castArray<T>(target: T | T[]): T[] {\n return isArray(target) ? target : [target]\n}\n","import { isObject, type AnyObject, isArray, throwError } from '../utils'\n\nexport function compareProperties(target: AnyObject, source: AnyObject) {\n if (!isObject(target) || !isObject(source)) {\n throwError('deepMerge', 'template 和 source 必须是对象')\n }\n\n return isArray(target) ? compareArray(target, source) : compareObject(target, source)\n}\n\nfunction compareObject(target: AnyObject, source: AnyObject) {\n const result = {} as AnyObject\n\n Object.keys(target).forEach(key => {\n const targetItem = target[key]\n const sourceItem = source[key]\n if (isObject(targetItem) && isObject(sourceItem)) {\n result[key] = compareObject(targetItem, sourceItem)\n } else if (!Object.is(targetItem, sourceItem)) {\n result[key] = sourceItem\n }\n })\n\n return result\n}\n\nfunction compareArray<T>(target: T[], source: AnyObject) {\n // if (isArray(source)) {\n // target.every((item, index) => {})\n // } else {\n // return source\n // }\n}\n","import { deepClone, type Arrayable, hasOwn, type AnyObject } from '../utils'\nimport { castArray } from '../array'\n\n/**\n * 排除对象中的某些属性\n * @param target 目标对象\n * @param properties 要排除的属性\n * @example excludeProperties({ a: 1, b: 2, c: 3 }, ['a', 'b']) => { c: 3 }\n */\nexport function excludeProperties<T extends AnyObject, K extends keyof T>(\n target: T,\n properties: Arrayable<K>\n): Omit<T, K> {\n const result = deepClone(target)\n const list = castArray(properties)\n list.forEach(property => {\n if (hasOwn(result, property)) {\n // eslint-disable-next-line ts/no-dynamic-delete\n delete result[property]\n }\n })\n\n return result\n}\n\n/**\n * 提取对象中的某些属性\n * @param target 目标对象\n * @param properties 要提取的属性\n * @example extractProperties({ a: 1, b: 2, c: 3 }, ['a', 'b']) => { a: 1, b: 2 }\n */\nexport function extractProperties<T extends AnyObject, K extends keyof T>(\n target: T,\n properties: Arrayable<K>\n): Pick<T, K> {\n const result = {} as Pick<T, K>\n const list = castArray(properties)\n\n list.forEach(property => {\n if (hasOwn(target, property)) {\n result[property] = target[property]\n }\n })\n\n return result\n}\n","import { isFunction, isNumber, throwError } from '@/utils'\n\n/**\n * 生成随机数组\n * @example generateRandomArray(4, () => 1) => [1, 1, 1, 1]\n * */\nexport function generateRandomArray<T>(num: number, cb: (item?: unknown, index?: number) => T): T[] {\n if (!isNumber(num) || num <= 0) {\n throwError('generateRandomArray', 'num 必须大于0')\n }\n if (!isFunction(cb)) {\n throwError('generateRandomArray', 'cb 必须是函数')\n }\n\n return Array.from({ length: num })\n .fill(0)\n .map((e, i) => cb(e, i))\n}\n","/**\n * 生成随机颜色\n * @example generateRandomColor() => '#f36a38'\n * */\nexport function generateRandomColor(): string {\n return `#${Math.random().toString(16).slice(2, 8).padEnd(6, '0')}`\n}\n","import dayjs, { extend } from 'dayjs'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\nimport { generateRandomInteger } from './generateRandomInteger'\nimport { throwError } from '@/utils'\n\nextend(customParseFormat)\n\n/**\n * 生成随机时间\n * @example generateRandomDate() => '2021-07-01 08:51:34'\n * */\n\nexport function generateRandomDate(options: GenerateRandomDate = {}): string {\n const {\n start = '1800-01-01 00:00:00',\n end = dayjs().format('YYYY-MM-DD HH:mm:ss'),\n format = 'YYYY-MM-DD HH:mm:ss',\n } = options\n\n if (!dayjs(start).isValid() || !dayjs(end).isValid()) {\n throwError('generateRandomDate', 'start end 参数必须是合法的时间格式')\n }\n\n const startYear = dayjs(start).year()\n const endYear = dayjs(end).year()\n\n const randomYear = generateRandomInteger({ min: startYear, max: endYear })\n const randomMonth = generateRandomInteger({ min: 1, max: 12 })\n const randomDay = generateRandomInteger({ min: 1, max: 31 })\n const randomHour = generateRandomInteger(23)\n const randomMinute = generateRandomInteger(59)\n const randomSecond = generateRandomInteger(59)\n\n const result = dayjs(`${randomYear}-${randomMonth}-${randomDay} ${randomHour}:${randomMinute}:${randomSecond}`)\n\n // 异常时间处理\n if (result.isBefore(dayjs(start)) || result.isAfter(dayjs(end))) {\n return generateRandomDate(options)\n }\n\n return result.format(format)\n}\n\ninterface GenerateRandomDate {\n /**\n * 开始时间\n * @default 1800-01-01 00:00:00\n */\n start?: string | Date\n\n /**\n * 结束时间\n * @default 当前时间\n */\n end?: string | Date\n\n /**\n * 时间格式\n * @default YYYY-MM-DD HH:mm:ss\n */\n format?: string\n}\n","import { isNumber, throwError } from '@/utils'\n\n/**\n * 生成范围内的随机整数\n * @example generateRandomInteger() => 217342\n * */\nexport function generateRandomInteger(options: GenerateRandomIntegerOptions = {}) {\n if (isNumber(options)) {\n options = { max: options }\n }\n\n const { min = 0, max = Number.MAX_SAFE_INTEGER } = options\n\n const effectiveMin = Math.ceil(min)\n const effectiveMax = Math.floor(max)\n\n if (effectiveMin === effectiveMax) {\n return effectiveMin\n }\n\n if (effectiveMax < effectiveMin) {\n if (max >= min) {\n throwError('generateRandomInteger', `未找到 ${min} 和 ${max} 之间的整数值`)\n }\n\n throwError('generateRandomInteger', `最大值 ${max} 应大于最小值 ${min}`)\n }\n\n return Math.floor(Math.random() * (effectiveMax - effectiveMin + 1) + effectiveMin)\n}\n\ntype GenerateRandomIntegerOptions =\n | number\n | {\n /**\n * 最大值\n * @default Number.MAX_SAFE_INTEGER\n */\n max?: number\n\n /**\n * 最小值\n * @default 0\n */\n min?: number\n }\n","import { castArray } from '..'\nimport { generateRandomInteger } from './generateRandomInteger'\nimport { isNumber, throwError, type Arrayable } from '@/utils'\n\nconst DEFAULT_MAX = 16\nconst DEFAULT_MIN = 1\n\n/**\n * 生成随机字符串 大小写字母和数字\n * @example generateRandomString() => 'lZtJqMl0dyTO3WDG'\n * */\nexport function generateRandomString(options: GenerateRandomStringOptions = {}): string {\n if (isNumber(options)) {\n options = { length: options }\n }\n\n const { lowerCase = true, upperCase = true, number = true, extra = [], length = DEFAULT_MAX } = options\n\n let generateRandomIntegerOptions = { max: DEFAULT_MAX, min: DEFAULT_MIN }\n if (isNumber(length)) {\n generateRandomIntegerOptions = { max: length, min: length }\n } else {\n generateRandomIntegerOptions = { ...generateRandomIntegerOptions, ...length }\n if (generateRandomIntegerOptions.min < DEFAULT_MIN) {\n throwError('generateRandomString', `length.min 必须大于等于${DEFAULT_MIN}`)\n }\n }\n\n if (!(lowerCase || upperCase || number)) {\n throwError('generateRandomString', 'lowerCase upperCase number 至少需要一个参数为true')\n }\n\n let characters = ''\n if (lowerCase) characters += 'abcdefghijklmnopqrstuvwxyz'\n if (upperCase) characters += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n if (number) characters += '0123456789'\n characters += castArray(extra)\n .flatMap(item => item.split(''))\n .join('')\n\n let result = ''\n const len = generateRandomInteger(generateRandomIntegerOptions)\n\n for (let i = 0; i < len; i++) {\n const randomIndex = Math.floor(Math.random() * characters.length)\n result += characters.charAt(randomIndex)\n }\n\n return result\n}\n\ntype GenerateRandomStringOptions =\n /**\n * 生成字符串的长度\n * @default 16\n */\n | number\n | {\n /**\n * 生成字符串的长度 若传递对象则生成 max 和 min 之间的随机长度\n */\n length?:\n | number\n | {\n /**\n * 最大值\n * @default 16\n */\n max?: number\n\n /**\n * 最小值\n * @default 1\n */\n min?: number\n }\n /**\n * 是否包含小写字母\n * @default true\n */\n lowerCase?: boolean\n /**\n * 是否包含大写字母\n * @default true\n */\n upperCase?: boolean\n /**\n * 是否包含数字\n * @default true\n */\n number?: boolean\n /**\n * 扩展字符\n * @default []\n * @example ['-', '_','@']\n */\n extra?: Arrayable<string>\n }\n","/**\n * 获取数组中的随机元素\n * @example getRandomItem([0, 1, 2, 3, 4]) => 2\n */\nexport function getRandomItem<T>(list: T[]): T {\n return list[Math.floor(Math.random() * list.length)]\n}\n","import { generateRandomInteger } from './generateRandomInteger'\nimport { generateRandomString } from './generateRandomString'\nimport { getRandomItem } from './getRandomItem'\n\n/**\n * 生成随机邮箱\n * @example generateRandomEmail() => lZtJqMl0dyTO3WDGzFDO@gmail.com\n */\nexport function generateRandomEmail(): string {\n const emailProviders = ['gmail.com', 'outlook.com.cn', 'example.com', 'qq.com', '163.com', 'test.com.cn']\n\n const result = `${generateRandomString(1)}${generateRandomString({\n length: generateRandomInteger({ max: 30, min: 1 }),\n extra: ['.', '_', '-'],\n })}${generateRandomString(1)}@${getRandomItem(emailProviders)}`\n\n // 异常邮箱处理\n if (/\\.{2,}/.test(result)) {\n return generateRandomEmail()\n }\n\n return result\n}\n","import { isNumber } from '@/utils'\n\n/**\n * 生成范围内的随机浮点数\n * @example generateRandomFloat() => 0.35\n * */\nexport function generateRandomFloat(options: GenerateRandomFloat = {}) {\n if (isNumber(options)) {\n options = { max: options }\n }\n\n const { min = 0, max = 1, fractionDigits = 2 } = options\n\n if (min === max) {\n return min\n }\n\n if (min > max) {\n throw new Error(`最大值 ${max} 应大于最小值 ${min}`)\n }\n\n return Math.random() * (max - min) + min\n}\n\ntype GenerateRandomFloat =\n | number\n | {\n /**\n * 最大值\n * @default 1.00\n */\n max?: number\n\n /**\n * 最小值\n * @default 0.00\n */\n min?: number\n\n /**\n * 小数位数\n * @default 2\n */\n fractionDigits?: number\n }\n","import { getRandomItem } from './getRandomItem'\nimport { isArray, isNumber, throwError } from '@/utils'\n\n/**\n * 生成随机数据从数据源中\n * @param num 随机获取数据源子项次数\n * @example generateRandomStringFromSource(4, ['1', 'b', 'c', 'd', 'e']) => 'dea1'\n * */\nexport function generateRandomStringFromSource(num: number, source: (number | string)[]): string {\n if (!isNumber(num) || num <= 0) {\n throwError('generateRandomStringFromSource', 'num 必须大于0')\n }\n\n if (!isArray(source) || source.length === 0) {\n throwError('generateRandomStringFromSource', 'source 不能为空数组')\n }\n\n let result = ''\n\n for (let i = 0; i < num; i++) {\n result += getRandomItem(source)\n }\n\n return result\n}\n","import { generateRandomStringFromSource } from './generateRandomStringFromSource'\nimport { generateRandomDate } from './generateRandomDate'\nimport { generateRandomInteger } from './generateRandomInteger'\n\n/**\n * 生成随机二代身份证号\n * @example generateRandomIdCard() => '410304200210165258'\n */\nexport function generateRandomIdCard(): string {\n const prefix = generateRandomInteger({ min: 100_000, max: 999_999 })\n const zeroToNine = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n\n return [\n prefix,\n generateRandomDate({ format: 'YYYYMMDD' }),\n generateRandomStringFromSource(3, zeroToNine),\n generateRandomStringFromSource(1, [...zeroToNine, 'X', 'x']),\n ].join('')\n}\n","import { generateRandomInteger } from './generateRandomInteger'\nimport { getRandomItem } from './getRandomItem'\n\n/**\n * 生成随机手机号码\n * @example generateRandomMobilePhone() => 13012345678\n */\nexport function generateRandomMobilePhone(): string {\n return (\n getRandomItem(['13', '14', '15', '16', '17', '18', '19']) +\n generateRandomInteger(999_999_999).toString().padEnd(9, '0')\n )\n}\n","import { generateRandomString } from './generateRandomString'\nimport { getRandomItem } from './getRandomItem'\n\n/**\n * 生成随机url\n * @example generateRandomUrl() => 'https://guyme6GCT/Nc58L/NFGdhfCkJi'\n */\nexport function generateRandomUrl(): string {\n const urlPrefix = ['http://', 'https://']\n\n const result = `${getRandomItem(urlPrefix)}${generateRandomString(1)}${generateRandomString({ length: { max: 60, min: 5 }, extra: ['/'] })}`\n\n // 异常url处理\n if (/^(?:http|https):\\/\\/\\w*\\/{2,}/.test(result)) {\n return generateRandomUrl()\n }\n\n return result\n}\n","/**\n * 校验是否为数字\n */\nexport function isNumberOrNumberString(val: string) {\n return /^\\d+$/.test(val)\n}\n\n/**\n * 校验是否为中文\n */\nexport function isChinese(val: string) {\n return /^[\\u4E00-\\u9FA5]+$/.test(val)\n}\n\n/**\n * 校验是否为英文字母\n */\nexport function isEnglishAphabet(val: string) {\n return /^[A-Za-z]+$/.test(val)\n}\n\n/**\n * 校验是否为大写字母\n */\nexport function isUpperCase(val: string) {\n return /^[A-Z]+$/.test(val)\n}\n\n/**\n * 校验是否为大写字母和数字\n */\nexport function isUpperCaseAndNumber(val: string) {\n return /^[\\dA-Z]+$/.test(val)\n}\n\n/**\n * 校验是否为大写字母数字和中文\n */\nexport function isUpperCaseAndNumberAndChinese(val: string) {\n return /^[\\dA-Z\\u4E00-\\u9FA5]+$/.test(val)\n}\n\n/**\n * 校验是否为小写字母\n */\nexport function isLowerCase(val: string) {\n return /^[a-z]+$/.test(val)\n}\n\n/**\n * 校验是否为小写字母和数字\n */\nexport function isLowerCaseAndNumber(val: string) {\n return /^[\\da-z]+$/.test(val)\n}\n\n/**\n * 校验是否为小写字母数字和中文\n */\nexport function isLowerCaseAndNumberAndChinese(val: string) {\n return /^[\\da-z\\u4E00-\\u9FA5]+$/.test(val)\n}\n","/**\n * 校验是否为浮点数\n */\nexport function isFloat(val: string, floatOptions: FloatOptions = {}) {\n const { integer = true } = floatOptions\n if (integer) {\n return /^-?(0|[1-9]\\d*)(\\.\\d+)?$/.test(val)\n }\n\n return /^-?(0|[1-9]\\d*)\\.\\d+$/.test(val)\n}\n\n/**\n * 校验是否为大于零的浮点数\n */\nexport function isPositiveFloat(val: string, floatOptions: FloatOptions = {}) {\n const { integer = true } = floatOptions\n\n if (integer) {\n return /^[1-9]\\d*\\.?\\d*|^0\\.\\d*[1-9]\\d*$/.test(val)\n }\n\n return /^[1-9]\\d*\\.\\d*|^0\\.\\d*[1-9]\\d*$/.test(val)\n}\n\n/**\n * 校验是否为小于零的浮点数\n */\nexport function isNegativeFloat(val: string, floatOptions: FloatOptions = {}) {\n const { integer = true } = floatOptions\n\n if (integer) {\n return /^-[1-9]\\d*\\.?\\d*|^-0\\.\\d*[1-9]\\d*$/.test(val)\n }\n\n return /^-[1-9]\\d*\\.\\d*|^-0\\.\\d*[1-9]\\d*$/.test(val)\n}\n\n/**\n * 校验是否为大于等于零的浮点数\n */\nexport function isPositiveFloatOrZero(val: string, floatOptions: FloatOptions = {}) {\n const { integer = true } = floatOptions\n\n if (integer) {\n return /^(0|[1-9]\\d*)(\\.\\d+)?$/.test(val)\n }\n\n return /^(0|[1-9]\\d*)\\.\\d+$/.test(val)\n}\n\n/**\n * 校验是否为小于等于零的浮点数\n */\nexport function isNegativeFloatOrZero(val: string, floatOptions: FloatOptions = {}) {\n const { integer = true } = floatOptions\n\n if (integer) {\n return /^(-?0(\\.0+)?|-(0|[1-9]\\d*)(\\.\\d+)?)$/.test(val)\n }\n\n return /^(-?0\\.0+|-(0|[1-9]\\d*)\\.\\d+)$/.test(val)\n}\n\nexport interface FloatOptions {\n /**\n * 是否包括整数\n * @default true\n */\n integer?: boolean\n}\n","/**\n * 校验是否为整数\n */\nexport function isInteger(val: string) {\n return /^-?(0|[1-9]\\d*)$/.test(val)\n}\n\n/**\n * 校验否为正整数\n */\nexport function isPositiveInteger(val: string) {\n return /^[1-9]\\d*$/.test(val)\n}\n\n/**\n * 校验是否为大于等于零的整数\n */\nexport function isPositiveIntegerOrZero(val: string) {\n return /^(0|[1-9]\\d*)$/.test(val)\n}\n\n/**\n * 校验是否为负整数\n */\nexport function isNegativeInteger(val: string) {\n return /^-([1-9]\\d*)$/.test(val)\n}\n\n/**\n * 校验是否为小于等于零的整数\n */\nexport function isNegativeIntegerOrZero(val: string) {\n return /^(0|-(0|[1-9]\\d*))$/.test(val)\n}\n","import dayjs, { extend } from 'dayjs'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\n\n/**\n * 校验是否为手机号\n */\nexport function isMobilePhone(val: string) {\n return /^1[3-9]\\d{9}$/.test(val)\n}\n\n/**\n * 校验是否为邮箱\n */\nexport function isEmail(val: string) {\n return /^[\\w-]+(?:\\.[\\w-]+)*@[\\w-]+(?:\\.[\\w-]+)*$/.test(val)\n}\n\n/**\n * 校验是否为空字符串\n */\nexport function isEmptyString(val: unknown) {\n return val === ''\n}\n\n// /**\n// * 校验是否为数字或数字字符串\n// */\n// export function isNumberString(val: unknown): val is number {\n// if (isNumber(val)) {\n// return val - val === 0 // 排除 NaN Infinity -Infinity\n// }\n// if (isString(val) && val.trim() !== '') {\n// return Number.isFinite(+val) // 排除字符串 Infinity -Infinity\n// }\n\n// return false\n// }\n\n// /**\n// * 校验是否为奇数\n// */\n// export function isOdd(val: unknown) {\n// const n = Math.abs(val as number)\n// if (!isNumberString(n)) return false\n// if (!Number.isInteger(n)) return false\n// if (!Number.isSafeInteger(n)) {\n// throwError('isOdd', 'value exceeds maximum safe integer')\n// }\n\n// return n % 2 === 1\n// }\n\n// /**\n// * 校验是否为偶数\n// */\n// export function isEven(val: unknown) {\n// const n = Math.abs(val as number)\n// console.log('🍏 ~ n:', val, n)\n// if (!isNumberString(n)) return false\n// if (!Number.isInteger(n)) return false\n// if (!Number.isSafeInteger(n)) {\n// throwError('isEven', 'value exceeds maximum safe integer')\n// }\n\n// return n % 2 === 0\n// }\n\n/**\n * 校验是否为合法时间格式\n * @param format 时间格式\n * @default 'YYYY-MM-DD HH:mm:ss'\n * @see https://day.js.org/docs/zh-CN/parse/string-format\n */\nexport function isDateString(val: string, format = 'YYYY-MM-DD HH:mm:ss') {\n extend(customParseFormat)\n\n return dayjs(val, format, true).isValid()\n}\n\n/**\n * 校验是否为二代身份证号\n */\nexport function isIdCard(val: string) {\n const flag =\n /^[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(val) &&\n isDateString(val.slice(6, 14), 'YYYYMMDD')\n\n return flag\n}\n\n/**\n * 是否是链接\n */\nexport function isUrl(val: string) {\n return /^(?:http|https):\\/\\/[\\w.]+/.test(val)\n}\n"],"mappings":"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","names":["src_exports","__export","base64Decode","base64Encode","castArray","compareProperties","compose","composeRight","debounce","debugWarn","decimalToBinary","deepClone","deepMerge","deprecated","error","excludeProperties","extractProperties","generateRandomArray","generateRandomColor","generateRandomDate","generateRandomEmail","generateRandomFloat","generateRandomIdCard","generateRandomInteger","generateRandomMobilePhone","generateRandomString","generateRandomStringFromSource","generateRandomUrl","getRandomItem","hasChanged","hasOwn","initLog","isArray","isBoolean","isChinese","isDate","isDateString","isDef","isEmail","isEmptyString","isEnglishAphabet","isFloat","isFunction","isIdCard","isInteger","isLowerCase","isLowerCaseAndNumber","isLowerCaseAndNumberAndChinese","isMap","isMobilePhone","isNegativeFloat","isNegativeFloatOrZero","isNegativeInteger","isNegativeIntegerOrZero","isNull","isNumber","isNumberOrNumberString","isObject","isPositiveFloat","isPositiveFloatOrZero","isPositiveInteger","isPositiveIntegerOrZero","isPromise","isRegExp","isSet","isString","isSymbol","isUndef","isUndefined","isUpperCase","isUpperCaseAndNumber","isUpperCaseAndNumberAndChinese","isUrl","log","objectToString","qs","throttle","throwError","toTypeString","validatorChineseOrEnglish","validatorChineseOrEnglishOrNumber","validatorEmail","validatorLatitudeOrLongitude","validatorUppercaseOrNumbersOrSpecial","validatorUppercaseOrNumbersOrUnderline","warn","__toCommonJS","decimalToBinary","decNumber","stack","remainder","binaryString","BASE64_CHARS","base64Encode","str","result","bin","i","padding","base64Decode","binary","compose","fns","previous","current","args","composeRight","debounce","target","wait","timer","args","objectToString","toTypeString","value","logCb","initLog","cb","isFunction","origConsole","type","name","arg","context","log","warn","error","isMap","val","isSet","isDate","isRegExp","isNumber","isString","isSymbol","isObject","isPromise","isUndef","isUndefined","isNull","isDef","isBoolean","isArray","hasOwn","target","key","hasChanged","oldValue","newValue","deepClone","target","map","_deepClone","value","isDate","isRegExp","isObject","clone","isArray","key","hasOwn","LntvowError","m","throwError","scope","message","debugWarn","error","isString","deprecated","from","replacement","version","type","deepMerge","template","source","options","isObject","throwError","isArray","arrayMerge","mergeObject","target","process","key","isUndef","result","deepClone","parse","str","options","decode","deepMerge","result","pairs","pair","key","value","stringify","obj","encode","appendQueryString","url","stringifyOptions","query","qs","throttle","target","wait","timer","args","isUndef","now","validatorLatitudeOrLongitude","value","validatorChineseOrEnglishOrNumber","isUndef","validatorChineseOrEnglish","validatorUppercaseOrNumbersOrSpecial","validatorUppercaseOrNumbersOrUnderline","validatorEmail","deprecated","castArray","target","isArray","compareProperties","target","source","isObject","throwError","isArray","compareObject","result","key","targetItem","sourceItem","excludeProperties","target","properties","result","deepClone","castArray","property","hasOwn","extractProperties","generateRandomArray","num","cb","isNumber","throwError","isFunction","e","i","generateRandomColor","import_dayjs","import_customParseFormat","generateRandomInteger","options","isNumber","min","max","effectiveMin","effectiveMax","throwError","customParseFormat","generateRandomDate","options","start","end","dayjs","format","throwError","startYear","endYear","randomYear","generateRandomInteger","randomMonth","randomDay","randomHour","randomMinute","randomSecond","result","DEFAULT_MAX","DEFAULT_MIN","generateRandomString","options","isNumber","lowerCase","upperCase","number","extra","length","generateRandomIntegerOptions","__spreadValues","throwError","characters","castArray","item","result","len","generateRandomInteger","i","randomIndex","getRandomItem","list","generateRandomEmail","emailProviders","result","generateRandomString","generateRandomInteger","getRandomItem","generateRandomFloat","options","isNumber","min","max","fractionDigits","generateRandomStringFromSource","num","source","isNumber","throwError","isArray","result","i","getRandomItem","generateRandomIdCard","prefix","generateRandomInteger","zeroToNine","generateRandomDate","generateRandomStringFromSource","generateRandomMobilePhone","getRandomItem","generateRandomInteger","generateRandomUrl","result","getRandomItem","generateRandomString","isNumberOrNumberString","val","isChinese","isEnglishAphabet","isUpperCase","isUpperCaseAndNumber","isUpperCaseAndNumberAndChinese","isLowerCase","isLowerCaseAndNumber","isLowerCaseAndNumberAndChinese","isFloat","val","floatOptions","integer","isPositiveFloat","isNegativeFloat","isPositiveFloatOrZero","isNegativeFloatOrZero","isInteger","val","isPositiveInteger","isPositiveIntegerOrZero","isNegativeInteger","isNegativeIntegerOrZero","import_dayjs","import_customParseFormat","isMobilePhone","val","isEmail","isEmptyString","isDateString","format","customParseFormat","dayjs","isIdCard","isUrl"]}