@lntvow/utils 3.0.6 → 3.0.8

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.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var V=Object.create;var R=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Q=Object.getPrototypeOf,J=Object.prototype.hasOwnProperty;var ee=(e,t)=>{for(var r in t)R(e,r,{get:t[r],enumerable:!0})},U=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of X(t))!J.call(e,o)&&o!==r&&R(e,o,{get:()=>t[o],enumerable:!(n=B(t,o))||n.enumerable});return e};var T=(e,t,r)=>(r=e!=null?V(Q(e)):{},U(t||!e||!e.__esModule?R(r,"default",{value:e,enumerable:!0}):r,e)),te=e=>U(R({},"__esModule",{value:!0}),e);var ut={};ee(ut,{castArray:()=>M,compareProperties:()=>Se,compose:()=>re,composeRight:()=>ne,debounce:()=>oe,debugWarn:()=>Z,deepClone:()=>w,deepMerge:()=>g,deprecated:()=>k,error:()=>ue,excludeProperties:()=>Ce,extractProperties:()=>Fe,generateRandomArray:()=>Ie,generateRandomColor:()=>Ne,generateRandomDate:()=>j,generateRandomEmail:()=>Ye,generateRandomFloat:()=>ke,generateRandomIdCard:()=>Pe,generateRandomInteger:()=>p,generateRandomMobilePhone:()=>Ue,generateRandomString:()=>P,generateRandomStringFromSource:()=>D,getRandomItem:()=>l,hasChanged:()=>be,hasOwn:()=>O,initLog:()=>ie,isArray:()=>c,isBoolean:()=>le,isChinese:()=>Ze,isDate:()=>I,isDateString:()=>z,isDef:()=>xe,isEmail:()=>it,isEmptyString:()=>st,isEnglishAphabet:()=>_e,isFloat:()=>qe,isFunction:()=>y,isIdCard:()=>at,isInteger:()=>Je,isLowerCase:()=>ze,isLowerCaseAndNumber:()=>We,isLowerCaseAndNumberAndChinese:()=>Le,isMap:()=>ce,isMobilePhone:()=>ot,isNegativeFloat:()=>Be,isNegativeFloatOrZero:()=>Qe,isNegativeInteger:()=>rt,isNegativeIntegerOrZero:()=>nt,isNull:()=>ge,isNumber:()=>f,isNumberOrNumberString:()=>ve,isObject:()=>u,isPositiveFloat:()=>Ve,isPositiveFloatOrZero:()=>Xe,isPositiveInteger:()=>et,isPositiveIntegerOrZero:()=>tt,isPromise:()=>fe,isRegExp:()=>N,isSet:()=>pe,isString:()=>Y,isSymbol:()=>me,isUndef:()=>d,isUndefined:()=>de,isUpperCase:()=>Ge,isUpperCaseAndNumber:()=>He,isUpperCaseAndNumberAndChinese:()=>Ke,log:()=>se,objectToString:()=>v,qs:()=>we,throttle:()=>$e,throwError:()=>a,toTypeString:()=>A,validatorChineseOrEnglish:()=>Ee,validatorChineseOrEnglishOrNumber:()=>Te,validatorEmail:()=>De,validatorLatitudeOrLongitude:()=>Re,validatorUppercaseOrNumbersOrSpecial:()=>Me,validatorUppercaseOrNumbersOrUnderline:()=>je,warn:()=>ae});module.exports=te(ut);function re(...e){return e.reduce((t,r)=>function(...n){return r(t(...n))})}function ne(...e){return e.reduce((t,r)=>function(...n){return t(r(...n))})}function oe(e,t=500){let r=null;return function(...n){r&&clearTimeout(r),r=setTimeout(()=>{e.apply(this,n)},t)}}var v=Object.prototype.toString,A=e=>v.call(e),F=null;function ie(e){y(e)&&(F=e)}var se=(e,...t)=>{let r=t.length===0?"":t.length===1?t[0]:t;console.log(`%c ${e} `,"padding: 2px; border-radius: 3px; color: #fff; background: #000; font-weight: bold;",r),F&&F(e,r)},ae=(...e)=>console.warn(...e),ue=(...e)=>console.error(...e),ce=e=>A(e)==="[object Map]",pe=e=>A(e)==="[object Set]",I=e=>A(e)==="[object Date]",N=e=>A(e)==="[object RegExp]",y=e=>typeof e=="function",f=e=>typeof e=="number",Y=e=>typeof e=="string",me=e=>typeof e=="symbol",u=e=>e!==null&&typeof e=="object",fe=e=>u(e)&&y(e.then)&&y(e.catch),d=e=>e==null,de=e=>e===void 0,ge=e=>e===null,xe=e=>e!=null,le=e=>typeof e=="boolean",c=Array.isArray,O=(e,t)=>Object.hasOwn(e,t),be=(e,t)=>e!==t;function w(e){let t=new WeakMap;function r(n){if(I(n))return new Date(n);if(N(n))return new RegExp(n);if(u(n)){if(t.has(n))return t.get(n);let o={};if(c(n)){o=[],t.set(n,o);for(let i=0;i<n.length;i++)o[i]=r(n[i]);return o}t.set(n,o);for(let i in n)O(n,i)&&(o[i]=r(n[i]));return o}else return n}return r(e)}var E=class extends Error{constructor(t){super(t),this.name="LntvowError"}};function a(e,t){throw new E(`[${e}] ${t}`)}function Z(e,t){if(process.env.NODE_ENV!=="production"){let r=Y(e)?new E(`[${e}] ${t}`):e;console.warn(r)}}var k=({from:e,replacement:t,version:r,type:n="API"})=>{Z(`${n}`,`${e} is about to be deprecated in version ${r}, please use ${t} instead.`)};function g(e,t,r){return(!u(e)||!u(t))&&a("deepMerge","template \u548C source \u5FC5\u987B\u662F\u5BF9\u8C61"),c(e)?Oe(e,t,r):ye(e,t,r)}function ye(e,t,r){let n=h(t,r);return Object.keys(e).forEach(i=>{d(t[i])?n[i]=h(e[i],r):n[i]=u(e[i])&&u(t[i])?g(e[i],t[i],r):h(t[i],r)}),n}function Oe(e,t,r){if(c(t)){let n=h(t,r);return n.push(...h(e,r)),n}else return h(e,r)}function h(e,t){let{deepClone:r=!0}=t||{};return r?w(e):e}function he(e,t){let{decode:r}=g({decode:!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 i of o){let[b,x]=i.split("=");n[b]=r?decodeURIComponent(x):x}return n}function _(e,t){let{encode:r}=g({encode:!0},t||{}),n=[];for(let o in e){let i=e[o];n.push(`${o}=${r?encodeURIComponent(i):i}`)}return n.join("&")}function Ae(e,t,r){let n=g({encode:!0},r||{}),o=_(t,n);return e.includes("?")?e.endsWith("?")||e.endsWith("&")?`${e}${o}`:`${e}&${o}`:`${e}?${o}`}var we={parse:he,stringify:_,appendQueryString:Ae};function $e(e,t=500){let r=null;return function(...n){if(d(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 Re(e){return/^-?\d{1,3}\.\d{6}$/.test(e)}function Te(e){return!d(e)&&/^[\dA-Za-z\u4E00-\u9FA5]+$/.test(e)}function Ee(e){return!d(e)&&/^[A-Za-z\u4E00-\u9FA5]+$/.test(e)}function Me(e){return!d(e)&&/^[\d!"#$%&'()*+,./:;<=>?@A-Z[\\\]^_`{|}~]+$/.test(e)}function je(e){return/^[\dA-Z_]+$/.test(e)}function De(e){return k({from:"validatorEmail",replacement:"isEmail",version:"2.4.0"}),/^([\w-])+@([\w-])+(\.[\w-])+/.test(e)}function M(e){return c(e)?e:[e]}function Se(e,t){return(!u(e)||!u(t))&&a("deepMerge","template \u548C source \u5FC5\u987B\u662F\u5BF9\u8C61"),c(e)?void 0:G(e,t)}function G(e,t){let r={};return Object.keys(e).forEach(n=>{let o=e[n],i=t[n];u(o)&&u(i)?r[n]=G(o,i):Object.is(o,i)||(r[n]=i)}),r}function Ce(e,t){let r=w(e);return M(t).forEach(o=>{O(r,o)&&delete r[o]}),r}function Fe(e,t){let r={};return M(t).forEach(o=>{O(e,o)&&(r[o]=e[o])}),r}function Ie(e,t){return(!f(e)||e<=0)&&a("generateRandomArray","num \u5FC5\u987B\u5927\u4E8E0"),y(t)||a("generateRandomArray","cb \u5FC5\u987B\u662F\u51FD\u6570"),Array.from({length:e}).fill(0).map((r,n)=>t(r,n))}function Ne(){return`#${Math.random().toString(16).slice(2,8).padEnd(6,"0")}`}var m=T(require("dayjs"),1),H=T(require("dayjs/plugin/customParseFormat"),1);function p(e={}){f(e)&&(e={max:e});let{min:t=0,max:r=Number.MAX_SAFE_INTEGER}=e,n=Math.ceil(t),o=Math.floor(r);return n===o?n:(o<n&&(r>=t&&a("generateRandomInteger",`\u672A\u627E\u5230 ${t} \u548C ${r} \u4E4B\u95F4\u7684\u6574\u6570\u503C`),a("generateRandomInteger",`\u6700\u5927\u503C ${r} \u5E94\u5927\u4E8E\u6700\u5C0F\u503C ${t}`)),Math.floor(Math.random()*(o-n+1)+n))}(0,m.extend)(H.default);function j(e={}){let{start:t="1800-01-01 00:00:00",end:r=(0,m.default)().format("YYYY-MM-DD HH:mm:ss"),format:n="YYYY-MM-DD HH:mm:ss"}=e;(!(0,m.default)(t).isValid()||!(0,m.default)(r).isValid())&&a("generateRandomDate","start end \u53C2\u6570\u5FC5\u987B\u662F\u5408\u6CD5\u7684\u65F6\u95F4\u683C\u5F0F");let o=(0,m.default)(t).year(),i=(0,m.default)(r).year(),b=p({min:o,max:i}),x=p({min:1,max:12}),C=p({min:1,max:31}),W=p(23),L=p(59),q=p(59),$=(0,m.default)(`${b}-${x}-${C} ${W}:${L}:${q}`);return $.isBefore((0,m.default)(t))||$.isAfter((0,m.default)(r))?(console.log("\u4E0D\u5408\u6CD5\u65F6\u95F4",(0,m.default)($).format("YYYY-MM-DD HH:mm:ss")),j(e)):$.format(n)}function P(e,t={}){let{lowerCase:r,upperCase:n,number:o}=g({lowerCase:!0,upperCase:!0,number:!0},t);r||n||o||a("generateRandomString","lowerCase upperCase number \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u53C2\u6570\u4E3Atrue");let i="";r&&(i+="abcdefghijklmnopqrstuvwxyz"),n&&(i+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),o&&(i+="0123456789");let b="";for(let x=0;x<e;x++){let C=Math.floor(Math.random()*i.length);b+=i.charAt(C)}return b}function l(e){return e[Math.floor(Math.random()*e.length)]}function Ye(){let e=["gmail.com","yahoo.com","outlook.com","example.com","qq.com","163.com"];return`${P(10)}@${l(e)}`}function ke(e={}){f(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){(!f(e)||e<=0)&&a("generateRandomStringFromSource","num \u5FC5\u987B\u5927\u4E8E0"),(!c(t)||t.length===0)&&a("generateRandomStringFromSource","source \u4E0D\u80FD\u4E3A\u7A7A\u6570\u7EC4");let r="";for(let n=0;n<e;n++)r+=l(t);return r}function Pe(){let e=p({min:1e5,max:999999}),t=[0,1,2,3,4,5,6,7,8,9];return[e,j({format:"YYYYMMDD"}),D(3,t),D(1,[...t,"X","x"])].join("")}function Ue(){return l(["13","14","15","16","17","18","19"])+p(999999999).toString().padEnd(9,"0")}function ve(e){return/^\d+$/.test(e)}function Ze(e){return/^[\u4E00-\u9FA5]+$/.test(e)}function _e(e){return/^[A-Za-z]+$/.test(e)}function Ge(e){return/^[A-Z]+$/.test(e)}function He(e){return/^[\dA-Z]+$/.test(e)}function Ke(e){return/^[\dA-Z\u4E00-\u9FA5]+$/.test(e)}function ze(e){return/^[a-z]+$/.test(e)}function We(e){return/^[\da-z]+$/.test(e)}function Le(e){return/^[\da-z\u4E00-\u9FA5]+$/.test(e)}function qe(e,t={}){let{integer:r=!0}=t;return r?/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e):/^-?(0|[1-9]\d*)\.\d+$/.test(e)}function Ve(e,t={}){let{integer:r=!0}=t;return r?/^[1-9]\d*\.?\d*|^0\.\d*[1-9]\d*$/.test(e):/^[1-9]\d*\.\d*|^0\.\d*[1-9]\d*$/.test(e)}function Be(e,t={}){let{integer:r=!0}=t;return r?/^-[1-9]\d*\.?\d*|^-0\.\d*[1-9]\d*$/.test(e):/^-[1-9]\d*\.\d*|^-0\.\d*[1-9]\d*$/.test(e)}function Xe(e,t={}){let{integer:r=!0}=t;return r?/^(0|[1-9]\d*)(\.\d+)?$/.test(e):/^(0|[1-9]\d*)\.\d+$/.test(e)}function Qe(e,t={}){let{integer:r=!0}=t;return r?/^(-?0(\.0+)?|-(0|[1-9]\d*)(\.\d+)?)$/.test(e):/^(-?0\.0+|-(0|[1-9]\d*)\.\d+)$/.test(e)}function Je(e){return/^-?(0|[1-9]\d*)$/.test(e)}function et(e){return/^[1-9]\d*$/.test(e)}function tt(e){return/^(0|[1-9]\d*)$/.test(e)}function rt(e){return/^-([1-9]\d*)$/.test(e)}function nt(e){return/^(0|-(0|[1-9]\d*))$/.test(e)}var S=T(require("dayjs"),1),K=T(require("dayjs/plugin/customParseFormat"),1);function ot(e){return/^1[3-9]\d{9}$/.test(e)}function it(e){return/^([\w-])+@([\w-])+(\.[\w-])+/.test(e)}function st(e){return e===""}function z(e,t="YYYY-MM-DD HH:mm:ss"){return(0,S.extend)(K.default),(0,S.default)(e,t,!0).isValid()}function at(e){let t=/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e);return!t||(t=z(e.slice(6,14),"YYYYMMDD"),!t),t}0&&(module.exports={castArray,compareProperties,compose,composeRight,debounce,debugWarn,deepClone,deepMerge,deprecated,error,excludeProperties,extractProperties,generateRandomArray,generateRandomColor,generateRandomDate,generateRandomEmail,generateRandomFloat,generateRandomIdCard,generateRandomInteger,generateRandomMobilePhone,generateRandomString,generateRandomStringFromSource,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,log,objectToString,qs,throttle,throwError,toTypeString,validatorChineseOrEnglish,validatorChineseOrEnglishOrNumber,validatorEmail,validatorLatitudeOrLongitude,validatorUppercaseOrNumbersOrSpecial,validatorUppercaseOrNumbersOrUnderline,warn});
1
+ "use strict";var q=Object.create;var R=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var X=Object.getPrototypeOf,Q=Object.prototype.hasOwnProperty;var J=(e,t)=>{for(var r in t)R(e,r,{get:t[r],enumerable:!0})},P=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of B(t))!Q.call(e,o)&&o!==r&&R(e,o,{get:()=>t[o],enumerable:!(n=V(t,o))||n.enumerable});return e};var T=(e,t,r)=>(r=e!=null?q(X(e)):{},P(t||!e||!e.__esModule?R(r,"default",{value:e,enumerable:!0}):r,e)),ee=e=>P(R({},"__esModule",{value:!0}),e);var pt={};J(pt,{castArray:()=>M,compareProperties:()=>Se,compose:()=>te,composeRight:()=>re,debounce:()=>ne,debugWarn:()=>v,deepClone:()=>$,deepMerge:()=>g,deprecated:()=>Y,error:()=>ae,excludeProperties:()=>De,extractProperties:()=>Fe,generateRandomArray:()=>Ce,generateRandomColor:()=>Ie,generateRandomDate:()=>j,generateRandomEmail:()=>Ne,generateRandomFloat:()=>ke,generateRandomIdCard:()=>Ye,generateRandomInteger:()=>p,generateRandomMobilePhone:()=>Pe,generateRandomString:()=>Ue,generateRandomStringFromSource:()=>w,getRandomItem:()=>l,hasChanged:()=>le,hasOwn:()=>O,initLog:()=>oe,isArray:()=>c,isBoolean:()=>xe,isChinese:()=>Ze,isDate:()=>I,isDateString:()=>z,isDef:()=>ge,isEmail:()=>it,isEmptyString:()=>st,isEnglishAphabet:()=>_e,isFloat:()=>qe,isFunction:()=>y,isIdCard:()=>at,isInteger:()=>Je,isLowerCase:()=>He,isLowerCaseAndNumber:()=>We,isLowerCaseAndNumberAndChinese:()=>Le,isMap:()=>ue,isMobilePhone:()=>ot,isNegativeFloat:()=>Be,isNegativeFloatOrZero:()=>Qe,isNegativeInteger:()=>rt,isNegativeIntegerOrZero:()=>nt,isNull:()=>de,isNumber:()=>f,isNumberOrNumberString:()=>ve,isObject:()=>u,isPositiveFloat:()=>Ve,isPositiveFloatOrZero:()=>Xe,isPositiveInteger:()=>et,isPositiveIntegerOrZero:()=>tt,isPromise:()=>me,isRegExp:()=>N,isSet:()=>pe,isString:()=>k,isSymbol:()=>ce,isUndef:()=>d,isUndefined:()=>fe,isUpperCase:()=>Ge,isUpperCaseAndNumber:()=>Ke,isUpperCaseAndNumberAndChinese:()=>ze,isUrl:()=>ut,log:()=>ie,objectToString:()=>U,qs:()=>we,throttle:()=>Ae,throwError:()=>a,toTypeString:()=>A,validatorChineseOrEnglish:()=>Te,validatorChineseOrEnglishOrNumber:()=>Re,validatorEmail:()=>je,validatorLatitudeOrLongitude:()=>$e,validatorUppercaseOrNumbersOrSpecial:()=>Ee,validatorUppercaseOrNumbersOrUnderline:()=>Me,warn:()=>se});module.exports=ee(pt);function te(...e){return e.reduce((t,r)=>function(...n){return r(t(...n))})}function re(...e){return e.reduce((t,r)=>function(...n){return t(r(...n))})}function ne(e,t=500){let r=null;return function(...n){r&&clearTimeout(r),r=setTimeout(()=>{e.apply(this,n)},t)}}var U=Object.prototype.toString,A=e=>U.call(e),C=null;function oe(e){y(e)&&(C=e)}var ie=(e,...t)=>{let r=t.length===0?"":t.length===1?t[0]:t;console.log(`%c ${e} `,"padding: 2px; border-radius: 3px; color: #fff; background: #000; font-weight: bold;",r),C&&C(e,r)},se=(...e)=>console.warn(...e),ae=(...e)=>console.error(...e),ue=e=>A(e)==="[object Map]",pe=e=>A(e)==="[object Set]",I=e=>A(e)==="[object Date]",N=e=>A(e)==="[object RegExp]",y=e=>typeof e=="function",f=e=>typeof e=="number",k=e=>typeof e=="string",ce=e=>typeof e=="symbol",u=e=>e!==null&&typeof e=="object",me=e=>u(e)&&y(e.then)&&y(e.catch),d=e=>e==null,fe=e=>e===void 0,de=e=>e===null,ge=e=>e!=null,xe=e=>typeof e=="boolean",c=Array.isArray,O=(e,t)=>Object.hasOwn(e,t),le=(e,t)=>e!==t;function $(e){let t=new WeakMap;function r(n){if(I(n))return new Date(n);if(N(n))return new RegExp(n);if(u(n)){if(t.has(n))return t.get(n);let o={};if(c(n)){o=[],t.set(n,o);for(let i=0;i<n.length;i++)o[i]=r(n[i]);return o}t.set(n,o);for(let i in n)O(n,i)&&(o[i]=r(n[i]));return o}else return n}return r(e)}var E=class extends Error{constructor(t){super(t),this.name="LntvowError"}};function a(e,t){throw new E(`[${e}] ${t}`)}function v(e,t){if(process.env.NODE_ENV!=="production"){let r=k(e)?new E(`[${e}] ${t}`):e;console.warn(r)}}var Y=({from:e,replacement:t,version:r,type:n="API"})=>{v(`${n}`,`${e} is about to be deprecated in version ${r}, please use ${t} instead.`)};function g(e,t,r){return(!u(e)||!u(t))&&a("deepMerge","template \u548C source \u5FC5\u987B\u662F\u5BF9\u8C61"),c(e)?ye(e,t,r):be(e,t,r)}function be(e,t,r){let n=h(t,r);return Object.keys(e).forEach(i=>{d(t[i])?n[i]=h(e[i],r):n[i]=u(e[i])&&u(t[i])?g(e[i],t[i],r):h(t[i],r)}),n}function ye(e,t,r){if(c(t)){let n=h(t,r);return n.push(...h(e,r)),n}else return h(e,r)}function h(e,t){let{deepClone:r=!0}=t||{};return r?$(e):e}function Oe(e,t){let{decode:r}=g({decode:!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 i of o){let[b,x]=i.split("=");n[b]=r?decodeURIComponent(x):x}return n}function Z(e,t){let{encode:r}=g({encode:!0},t||{}),n=[];for(let o in e){let i=e[o];n.push(`${o}=${r?encodeURIComponent(i):i}`)}return n.join("&")}function he(e,t,r){let n=g({encode:!0},r||{}),o=Z(t,n);return e.includes("?")?e.endsWith("?")||e.endsWith("&")?`${e}${o}`:`${e}&${o}`:`${e}?${o}`}var we={parse:Oe,stringify:Z,appendQueryString:he};function Ae(e,t=500){let r=null;return function(...n){if(d(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 $e(e){return/^-?\d{1,3}\.\d{6}$/.test(e)}function Re(e){return!d(e)&&/^[\dA-Za-z\u4E00-\u9FA5]+$/.test(e)}function Te(e){return!d(e)&&/^[A-Za-z\u4E00-\u9FA5]+$/.test(e)}function Ee(e){return!d(e)&&/^[\d!"#$%&'()*+,./:;<=>?@A-Z[\\\]^_`{|}~]+$/.test(e)}function Me(e){return/^[\dA-Z_]+$/.test(e)}function je(e){return Y({from:"validatorEmail",replacement:"isEmail",version:"2.4.0"}),/^([\w-])+@([\w-])+(\.[\w-])+/.test(e)}function M(e){return c(e)?e:[e]}function Se(e,t){return(!u(e)||!u(t))&&a("deepMerge","template \u548C source \u5FC5\u987B\u662F\u5BF9\u8C61"),c(e)?void 0:_(e,t)}function _(e,t){let r={};return Object.keys(e).forEach(n=>{let o=e[n],i=t[n];u(o)&&u(i)?r[n]=_(o,i):Object.is(o,i)||(r[n]=i)}),r}function De(e,t){let r=$(e);return M(t).forEach(o=>{O(r,o)&&delete r[o]}),r}function Fe(e,t){let r={};return M(t).forEach(o=>{O(e,o)&&(r[o]=e[o])}),r}function Ce(e,t){return(!f(e)||e<=0)&&a("generateRandomArray","num \u5FC5\u987B\u5927\u4E8E0"),y(t)||a("generateRandomArray","cb \u5FC5\u987B\u662F\u51FD\u6570"),Array.from({length:e}).fill(0).map((r,n)=>t(r,n))}function Ie(){return`#${Math.random().toString(16).slice(2,8).padEnd(6,"0")}`}var m=T(require("dayjs"),1),G=T(require("dayjs/plugin/customParseFormat"),1);function p(e={}){f(e)&&(e={max:e});let{min:t=0,max:r=Number.MAX_SAFE_INTEGER}=e,n=Math.ceil(t),o=Math.floor(r);return n===o?n:(o<n&&(r>=t&&a("generateRandomInteger",`\u672A\u627E\u5230 ${t} \u548C ${r} \u4E4B\u95F4\u7684\u6574\u6570\u503C`),a("generateRandomInteger",`\u6700\u5927\u503C ${r} \u5E94\u5927\u4E8E\u6700\u5C0F\u503C ${t}`)),Math.floor(Math.random()*(o-n+1)+n))}(0,m.extend)(G.default);function j(e={}){let{start:t="1800-01-01 00:00:00",end:r=(0,m.default)().format("YYYY-MM-DD HH:mm:ss"),format:n="YYYY-MM-DD HH:mm:ss"}=e;(!(0,m.default)(t).isValid()||!(0,m.default)(r).isValid())&&a("generateRandomDate","start end \u53C2\u6570\u5FC5\u987B\u662F\u5408\u6CD5\u7684\u65F6\u95F4\u683C\u5F0F");let o=(0,m.default)(t).year(),i=(0,m.default)(r).year(),b=p({min:o,max:i}),x=p({min:1,max:12}),D=p({min:1,max:31}),H=p(23),W=p(59),L=p(59),F=(0,m.default)(`${b}-${x}-${D} ${H}:${W}:${L}`);return F.isBefore((0,m.default)(t))||F.isAfter((0,m.default)(r))?j(e):F.format(n)}function l(e){return e[Math.floor(Math.random()*e.length)]}function w(e,t){(!f(e)||e<=0)&&a("generateRandomStringFromSource","num \u5FC5\u987B\u5927\u4E8E0"),(!c(t)||t.length===0)&&a("generateRandomStringFromSource","source \u4E0D\u80FD\u4E3A\u7A7A\u6570\u7EC4");let r="";for(let n=0;n<e;n++)r+=l(t);return r}function Ne(){let e=["gmail.com","yahoo.com","outlook.com","example.com","qq.com","163.com"];return`${w(p({min:1,max:16}),["-","_",..."abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".split("")])}@${l(e)}`}function ke(e={}){f(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 Ye(){let e=p({min:1e5,max:999999}),t=[0,1,2,3,4,5,6,7,8,9];return[e,j({format:"YYYYMMDD"}),w(3,t),w(1,[...t,"X","x"])].join("")}function Pe(){return l(["13","14","15","16","17","18","19"])+p(999999999).toString().padEnd(9,"0")}function Ue(e,t={}){let{lowerCase:r,upperCase:n,number:o}=g({lowerCase:!0,upperCase:!0,number:!0},t);r||n||o||a("generateRandomString","lowerCase upperCase number \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u53C2\u6570\u4E3Atrue");let i="";r&&(i+="abcdefghijklmnopqrstuvwxyz"),n&&(i+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),o&&(i+="0123456789");let b="";for(let x=0;x<e;x++){let D=Math.floor(Math.random()*i.length);b+=i.charAt(D)}return b}function ve(e){return/^\d+$/.test(e)}function Ze(e){return/^[\u4E00-\u9FA5]+$/.test(e)}function _e(e){return/^[A-Za-z]+$/.test(e)}function Ge(e){return/^[A-Z]+$/.test(e)}function Ke(e){return/^[\dA-Z]+$/.test(e)}function ze(e){return/^[\dA-Z\u4E00-\u9FA5]+$/.test(e)}function He(e){return/^[a-z]+$/.test(e)}function We(e){return/^[\da-z]+$/.test(e)}function Le(e){return/^[\da-z\u4E00-\u9FA5]+$/.test(e)}function qe(e,t={}){let{integer:r=!0}=t;return r?/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e):/^-?(0|[1-9]\d*)\.\d+$/.test(e)}function Ve(e,t={}){let{integer:r=!0}=t;return r?/^[1-9]\d*\.?\d*|^0\.\d*[1-9]\d*$/.test(e):/^[1-9]\d*\.\d*|^0\.\d*[1-9]\d*$/.test(e)}function Be(e,t={}){let{integer:r=!0}=t;return r?/^-[1-9]\d*\.?\d*|^-0\.\d*[1-9]\d*$/.test(e):/^-[1-9]\d*\.\d*|^-0\.\d*[1-9]\d*$/.test(e)}function Xe(e,t={}){let{integer:r=!0}=t;return r?/^(0|[1-9]\d*)(\.\d+)?$/.test(e):/^(0|[1-9]\d*)\.\d+$/.test(e)}function Qe(e,t={}){let{integer:r=!0}=t;return r?/^(-?0(\.0+)?|-(0|[1-9]\d*)(\.\d+)?)$/.test(e):/^(-?0\.0+|-(0|[1-9]\d*)\.\d+)$/.test(e)}function Je(e){return/^-?(0|[1-9]\d*)$/.test(e)}function et(e){return/^[1-9]\d*$/.test(e)}function tt(e){return/^(0|[1-9]\d*)$/.test(e)}function rt(e){return/^-([1-9]\d*)$/.test(e)}function nt(e){return/^(0|-(0|[1-9]\d*))$/.test(e)}var S=T(require("dayjs"),1),K=T(require("dayjs/plugin/customParseFormat"),1);function ot(e){return/^1[3-9]\d{9}$/.test(e)}function it(e){return/^[\w-]+@[\w-]+(?:\.[\w-])+/.test(e)}function st(e){return e===""}function z(e,t="YYYY-MM-DD HH:mm:ss"){return(0,S.extend)(K.default),(0,S.default)(e,t,!0).isValid()}function at(e){let t=/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dX]$/i.test(e);return!t||(t=z(e.slice(6,14),"YYYYMMDD"),!t),t}function ut(e){return/^(?:http|https):\/\/[\w.]+/.test(e)}0&&(module.exports={castArray,compareProperties,compose,composeRight,debounce,debugWarn,deepClone,deepMerge,deprecated,error,excludeProperties,extractProperties,generateRandomArray,generateRandomColor,generateRandomDate,generateRandomEmail,generateRandomFloat,generateRandomIdCard,generateRandomInteger,generateRandomMobilePhone,generateRandomString,generateRandomStringFromSource,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});
package/dist/index.d.cts CHANGED
@@ -1,23 +1,22 @@
1
1
  /**
2
- * @description 将非数组转换为数组 如果是目标本就是数组则直接返回
3
- * @param target 目标
2
+ * 将非数组转换为数组 如果是目标本就是数组则直接返回
4
3
  * @example castArray(1) => [1]
5
4
  */
6
5
  declare function castArray<T>(target: T | T[]): T[];
7
6
 
8
7
  /**
9
- * @description compose
8
+ * compose
10
9
  * @param fns 任意函数
11
10
  */
12
11
  declare function compose(...fns: ((...args: any[]) => any)[]): (...args: any[]) => any;
13
12
  /**
14
- * @description compose 从右到左
13
+ * compose 从右到左
15
14
  * @param fns 任意函数
16
15
  */
17
16
  declare function composeRight(...fns: ((...args: any[]) => any)[]): (...args: any[]) => any;
18
17
 
19
18
  /**
20
- * @description 防抖函数
19
+ * 防抖函数
21
20
  * @param target 目标函数
22
21
  * @param wait 等待时间 默认 500ms
23
22
  * @example debounce(() => console.log('debounce'), 500)
@@ -25,7 +24,7 @@ declare function composeRight(...fns: ((...args: any[]) => any)[]): (...args: an
25
24
  declare function debounce(target: Function, wait?: number): (...args: any[]) => void;
26
25
 
27
26
  /**
28
- * @description 深拷贝
27
+ * 深拷贝
29
28
  * @param target 拷贝对象
30
29
  * @example deepClone({ name: 1, obj: { name: 1 }, arr: [1, 2, 3] }) => { name: 1, obj: { name: 1 }, arr: [1, 2, 3] }
31
30
  */
@@ -61,13 +60,13 @@ type Arrayable<T> = T | T[];
61
60
 
62
61
  interface DeepMergeOptions {
63
62
  /**
64
- * @description 是否开启深拷贝 默认开启
63
+ * 是否开启深拷贝 默认开启
65
64
  * @default true
66
65
  */
67
66
  deepClone: boolean;
68
67
  }
69
68
  /**
70
- * @description 深度合并两对象
69
+ * 深度合并两对象
71
70
  * @param template 模板对象 就是默认值
72
71
  * @param source 源对象 就是用户传入的值
73
72
  * @param options 配置对象
@@ -86,7 +85,7 @@ declare const deprecated: ({ from, replacement, version, type, }: {
86
85
  }) => void;
87
86
 
88
87
  /**
89
- * @description 解析查询字符串
88
+ * 解析查询字符串
90
89
  * @param str 转换的字符串
91
90
  * @return 转换后的对象
92
91
  * @example
@@ -98,7 +97,7 @@ declare const deprecated: ({ from, replacement, version, type, }: {
98
97
  */
99
98
  declare function parse(str: string, options?: ParseOptions): Record<string, string>;
100
99
  /**
101
- *@description 转换对象为查询字符串
100
+ * 转换对象为查询字符串
102
101
  * @param obj 转换的对象
103
102
  * @return 转换后的字符串
104
103
  * @example
@@ -108,7 +107,7 @@ declare function parse(str: string, options?: ParseOptions): Record<string, stri
108
107
  */
109
108
  declare function stringify(obj: Record<string, any>, options?: StringifyOptions): string;
110
109
  /**
111
- * @description url追加查询字符串
110
+ * url追加查询字符串
112
111
  * @param url url
113
112
  * @param obj 查询字符串对象
114
113
  * @return 追加后的url
@@ -124,21 +123,21 @@ declare const qs: {
124
123
  };
125
124
  interface ParseOptions {
126
125
  /**
127
- * @description 是否解码
126
+ * 是否解码
128
127
  * @default true
129
128
  */
130
129
  decode?: boolean;
131
130
  }
132
131
  interface StringifyOptions {
133
132
  /**
134
- * @description 是否编码
133
+ * 是否编码
135
134
  * @default true
136
135
  */
137
136
  encode?: boolean;
138
137
  }
139
138
 
140
139
  /**
141
- * @description 节流函数
140
+ * 节流函数
142
141
  * @param target 目标函数
143
142
  * @param wait 等待时间 默认 500ms
144
143
  * @example throttle(() => console.log('hello world'), 500)
@@ -146,27 +145,27 @@ interface StringifyOptions {
146
145
  declare function throttle(target: Function, wait?: number): (...args: any[]) => any;
147
146
 
148
147
  /**
149
- * @description 校验经纬度
148
+ * 校验经纬度
150
149
  */
151
150
  declare function validatorLatitudeOrLongitude(value: string): boolean;
152
151
  /**
153
- * @description 校验中文、字母、数字
152
+ * 校验中文、字母、数字
154
153
  */
155
154
  declare function validatorChineseOrEnglishOrNumber(value: string): boolean;
156
155
  /**
157
- * @description 校验中英文
156
+ * 校验中英文
158
157
  */
159
158
  declare function validatorChineseOrEnglish(value: string): boolean;
160
159
  /**
161
- * @description 校验大写字母、数字、特殊字符 特殊字符包括 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
160
+ * 校验大写字母、数字、特殊字符 特殊字符包括 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
162
161
  */
163
162
  declare function validatorUppercaseOrNumbersOrSpecial(value: string): boolean;
164
163
  /**
165
- * @description 校验大写字母、数字、_
164
+ * 校验大写字母、数字、_
166
165
  */
167
166
  declare function validatorUppercaseOrNumbersOrUnderline(value: string): boolean;
168
167
  /**
169
- * @description 校验是否为邮箱
168
+ * 校验是否为邮箱
170
169
  * @deprecated 使用 isEmail 代替
171
170
  */
172
171
  declare function validatorEmail(value: string): boolean;
@@ -174,14 +173,14 @@ declare function validatorEmail(value: string): boolean;
174
173
  declare function compareProperties(target: AnyObject, source: AnyObject): void | AnyObject;
175
174
 
176
175
  /**
177
- * @description 排除对象中的某些属性
176
+ * 排除对象中的某些属性
178
177
  * @param target 目标对象
179
178
  * @param properties 要排除的属性
180
179
  * @example excludeProperties({ a: 1, b: 2, c: 3 }, ['a', 'b']) => { c: 3 }
181
180
  */
182
181
  declare function excludeProperties<T extends AnyObject, K extends keyof T>(target: T, properties: Arrayable<K>): Omit<T, K>;
183
182
  /**
184
- * @description 提取对象中的某些属性
183
+ * 提取对象中的某些属性
185
184
  * @param target 目标对象
186
185
  * @param properties 要提取的属性
187
186
  * @example extractProperties({ a: 1, b: 2, c: 3 }, ['a', 'b']) => { a: 1, b: 2 }
@@ -189,243 +188,248 @@ declare function excludeProperties<T extends AnyObject, K extends keyof T>(targe
189
188
  declare function extractProperties<T extends AnyObject, K extends keyof T>(target: T, properties: Arrayable<K>): Pick<T, K>;
190
189
 
191
190
  /**
192
- * @description 生成随机数组
191
+ * 生成随机数组
193
192
  * @example generateRandomArray(4, () => 1) => [1, 1, 1, 1]
194
193
  * */
195
194
  declare function generateRandomArray<T>(num: number, cb: (item?: unknown, index?: number) => T): T[];
196
195
 
197
196
  /**
198
- * @description 生成随机颜色
197
+ * 生成随机颜色
199
198
  * @example generateRandomColor() => '#f36a38'
200
199
  * */
201
200
  declare function generateRandomColor(): string;
202
201
 
203
202
  /**
204
- * @description 生成随机时间
203
+ * 生成随机时间
205
204
  * @example generateRandomDate() => '2021-07-01 08:51:34'
206
205
  * */
207
206
  declare function generateRandomDate(options?: GenerateRandomDate): string;
208
207
  interface GenerateRandomDate {
209
208
  /**
210
- * @description 开始时间
209
+ * 开始时间
211
210
  * @default 1800-01-01 00:00:00
212
211
  */
213
212
  start?: string | Date;
214
213
  /**
215
- * @description 结束时间
214
+ * 结束时间
216
215
  * @default 当前时间
217
216
  */
218
217
  end?: string | Date;
219
218
  /**
220
- * @description 时间格式
219
+ * 时间格式
221
220
  * @default YYYY-MM-DD HH:mm:ss
222
221
  */
223
222
  format?: string;
224
223
  }
225
224
 
226
225
  /**
227
- * @description 生成随机邮箱
228
- * @example generateRandomEmail() => lZtJqMl0dyTO3WDGzFDO@example.com
226
+ * 生成随机邮箱
227
+ * @example generateRandomEmail() => lZtJqMl0dyTO3WDGzFDO@gmail.com
229
228
  */
230
229
  declare function generateRandomEmail(): string;
231
230
 
232
231
  /**
233
- * @description 生成范围内的随机浮点数
232
+ * 生成范围内的随机浮点数
234
233
  * @example generateRandomFloat() => 0.35
235
234
  * */
236
235
  declare function generateRandomFloat(options?: GenerateRandomFloat): number;
237
236
  type GenerateRandomFloat = number | {
238
237
  /**
239
- * @description 最大值
238
+ * 最大值
240
239
  * @default 1.00
241
240
  */
242
241
  max?: number;
243
242
  /**
244
- * @description 最小值
243
+ * 最小值
245
244
  * @default 0.00
246
245
  */
247
246
  min?: number;
248
247
  /**
249
- * @description 小数位数
248
+ * 小数位数
250
249
  * @default 2
251
250
  */
252
251
  fractionDigits?: number;
253
252
  };
254
253
 
255
254
  /**
256
- * @description 生成随机二代身份证号
255
+ * 生成随机二代身份证号
257
256
  * @example generateRandomIdCard() => '410304200210165258'
258
257
  */
259
258
  declare function generateRandomIdCard(): string;
260
259
 
261
260
  /**
262
- * @description 生成范围内的随机整数
261
+ * 生成范围内的随机整数
263
262
  * @example generateRandomInteger() => 217342
264
263
  * */
265
264
  declare function generateRandomInteger(options?: GenerateRandomIntegerOptions): number;
266
265
  type GenerateRandomIntegerOptions = number | {
267
266
  /**
268
- * @description 最大值
267
+ * 最大值
269
268
  * @default Number.MAX_SAFE_INTEGER
270
269
  */
271
270
  max?: number;
272
271
  /**
273
- * @description 最小值
272
+ * 最小值
274
273
  * @default 0
275
274
  */
276
275
  min?: number;
277
276
  };
278
277
 
279
278
  /**
280
- * @description 生成随机手机号码
279
+ * 生成随机手机号码
281
280
  * @example generateRandomMobilePhone() => 13012345678
282
281
  */
283
282
  declare function generateRandomMobilePhone(): string;
284
283
 
285
284
  /**
286
- * @description 生成随机字符串 大小写字母和数字
285
+ * 生成随机字符串 大小写字母和数字
287
286
  * @param length 返回字符串的长度
288
287
  * @example generateRandomString(20) => 'lZtJqMl0dyTO3WDGzFDO'
289
288
  * */
290
289
  declare function generateRandomString(length: number, options?: GenerateRandomStringOptions): string;
291
290
  interface GenerateRandomStringOptions {
292
291
  /**
293
- * @description 是否包含小写字母
292
+ * 是否包含小写字母
294
293
  * @default true
295
294
  */
296
295
  lowerCase?: boolean;
297
296
  /**
298
- * @description 是否包含大写字母
297
+ * 是否包含大写字母
299
298
  * @default true
300
299
  */
301
300
  upperCase?: boolean;
302
301
  /**
303
- * @description 是否包含数字
302
+ * 是否包含数字
304
303
  * @default true
305
304
  */
306
305
  number?: boolean;
307
306
  }
308
307
 
309
308
  /**
310
- * @description 生成随机数据从数据源中
309
+ * 生成随机数据从数据源中
311
310
  * @param num 随机获取数据源子项次数
312
311
  * @example generateRandomStringFromSource(4, ['1', 'b', 'c', 'd', 'e']) => 'dea1'
313
312
  * */
314
313
  declare function generateRandomStringFromSource(num: number, source: (number | string)[]): string;
315
314
 
316
315
  /**
317
- * @description 获取数组中的随机元素
316
+ * 获取数组中的随机元素
318
317
  * @example getRandomItem([0, 1, 2, 3, 4]) => 2
319
318
  */
320
319
  declare function getRandomItem<T>(list: T[]): T;
321
320
 
322
321
  /**
323
- * @description 校验是否为数字
322
+ * 校验是否为数字
324
323
  */
325
324
  declare function isNumberOrNumberString(val: string): boolean;
326
325
  /**
327
- * @description 校验是否为中文
326
+ * 校验是否为中文
328
327
  */
329
328
  declare function isChinese(val: string): boolean;
330
329
  /**
331
- * @description 校验是否为英文字母
330
+ * 校验是否为英文字母
332
331
  */
333
332
  declare function isEnglishAphabet(val: string): boolean;
334
333
  /**
335
- * @description 校验是否为大写字母
334
+ * 校验是否为大写字母
336
335
  */
337
336
  declare function isUpperCase(val: string): boolean;
338
337
  /**
339
- * @description 校验是否为大写字母和数字
338
+ * 校验是否为大写字母和数字
340
339
  */
341
340
  declare function isUpperCaseAndNumber(val: string): boolean;
342
341
  /**
343
- * @description 校验是否为大写字母数字和中文
342
+ * 校验是否为大写字母数字和中文
344
343
  */
345
344
  declare function isUpperCaseAndNumberAndChinese(val: string): boolean;
346
345
  /**
347
- * @description 校验是否为小写字母
346
+ * 校验是否为小写字母
348
347
  */
349
348
  declare function isLowerCase(val: string): boolean;
350
349
  /**
351
- * @description 校验是否为小写字母和数字
350
+ * 校验是否为小写字母和数字
352
351
  */
353
352
  declare function isLowerCaseAndNumber(val: string): boolean;
354
353
  /**
355
- * @description 校验是否为小写字母数字和中文
354
+ * 校验是否为小写字母数字和中文
356
355
  */
357
356
  declare function isLowerCaseAndNumberAndChinese(val: string): boolean;
358
357
 
359
358
  /**
360
- * @description 校验是否为浮点数
359
+ * 校验是否为浮点数
361
360
  */
362
361
  declare function isFloat(val: string, floatOptions?: FloatOptions): boolean;
363
362
  /**
364
- * @description 校验是否为大于零的浮点数
363
+ * 校验是否为大于零的浮点数
365
364
  */
366
365
  declare function isPositiveFloat(val: string, floatOptions?: FloatOptions): boolean;
367
366
  /**
368
- * @description 校验是否为小于零的浮点数
367
+ * 校验是否为小于零的浮点数
369
368
  */
370
369
  declare function isNegativeFloat(val: string, floatOptions?: FloatOptions): boolean;
371
370
  /**
372
- * @description 校验是否为大于等于零的浮点数
371
+ * 校验是否为大于等于零的浮点数
373
372
  */
374
373
  declare function isPositiveFloatOrZero(val: string, floatOptions?: FloatOptions): boolean;
375
374
  /**
376
- * @description 校验是否为小于等于零的浮点数
375
+ * 校验是否为小于等于零的浮点数
377
376
  */
378
377
  declare function isNegativeFloatOrZero(val: string, floatOptions?: FloatOptions): boolean;
379
378
  interface FloatOptions {
380
379
  /**
381
- * @description 是否包括整数
380
+ * 是否包括整数
382
381
  * @default true
383
382
  */
384
383
  integer?: boolean;
385
384
  }
386
385
 
387
386
  /**
388
- * @description 校验是否为整数
387
+ * 校验是否为整数
389
388
  */
390
389
  declare function isInteger(val: string): boolean;
391
390
  /**
392
- * @description 校验否为正整数
391
+ * 校验否为正整数
393
392
  */
394
393
  declare function isPositiveInteger(val: string): boolean;
395
394
  /**
396
- * @description 校验是否为大于等于零的整数
395
+ * 校验是否为大于等于零的整数
397
396
  */
398
397
  declare function isPositiveIntegerOrZero(val: string): boolean;
399
398
  /**
400
- * @description 校验是否为负整数
399
+ * 校验是否为负整数
401
400
  */
402
401
  declare function isNegativeInteger(val: string): boolean;
403
402
  /**
404
- * @description 校验是否为小于等于零的整数
403
+ * 校验是否为小于等于零的整数
405
404
  */
406
405
  declare function isNegativeIntegerOrZero(val: string): boolean;
407
406
 
408
407
  /**
409
- * @description 校验是否为手机号
408
+ * 校验是否为手机号
410
409
  */
411
410
  declare function isMobilePhone(val: string): boolean;
412
411
  /**
413
- * @description 校验是否为邮箱
412
+ * 校验是否为邮箱
414
413
  */
415
414
  declare function isEmail(val: string): boolean;
416
415
  /**
417
- * @description 校验是否为空字符串
416
+ * 校验是否为空字符串
418
417
  */
419
418
  declare function isEmptyString(val: unknown): boolean;
420
419
  /**
421
- * @description 校验是否为合法时间格式
422
- * @param format 时间格式 默认 YYYY-MM-DD HH:mm:ss
423
- * @link https://day.js.org/docs/zh-CN/parse/string-format
420
+ * 校验是否为合法时间格式
421
+ * @param format 时间格式
422
+ * @default 'YYYY-MM-DD HH:mm:ss'
423
+ * @see https://day.js.org/docs/zh-CN/parse/string-format
424
424
  */
425
425
  declare function isDateString(val: string, format?: string): boolean;
426
426
  /**
427
- * @description 校验是否为二代身份证号
427
+ * 校验是否为二代身份证号
428
428
  */
429
429
  declare function isIdCard(val: string): boolean;
430
+ /**
431
+ * 是否是链接
432
+ */
433
+ declare function isUrl(val: string): boolean;
430
434
 
431
- export { type AnyObject, type ArrayItem, type Arrayable, type FloatOptions, type GenerateRandomDate, type GenerateRandomFloat, type GenerateRandomIntegerOptions, type GenerateRandomStringOptions, type ParseOptions, type StringifyOptions, castArray, compareProperties, compose, composeRight, debounce, debugWarn, deepClone, deepMerge, deprecated, error, excludeProperties, extractProperties, generateRandomArray, generateRandomColor, generateRandomDate, generateRandomEmail, generateRandomFloat, generateRandomIdCard, generateRandomInteger, generateRandomMobilePhone, generateRandomString, generateRandomStringFromSource, 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, log, objectToString, qs, throttle, throwError, toTypeString, validatorChineseOrEnglish, validatorChineseOrEnglishOrNumber, validatorEmail, validatorLatitudeOrLongitude, validatorUppercaseOrNumbersOrSpecial, validatorUppercaseOrNumbersOrUnderline, warn };
435
+ export { type AnyObject, type ArrayItem, type Arrayable, type FloatOptions, type GenerateRandomDate, type GenerateRandomFloat, type GenerateRandomIntegerOptions, type GenerateRandomStringOptions, type ParseOptions, type StringifyOptions, castArray, compareProperties, compose, composeRight, debounce, debugWarn, deepClone, deepMerge, deprecated, error, excludeProperties, extractProperties, generateRandomArray, generateRandomColor, generateRandomDate, generateRandomEmail, generateRandomFloat, generateRandomIdCard, generateRandomInteger, generateRandomMobilePhone, generateRandomString, generateRandomStringFromSource, 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 };
package/dist/index.d.ts CHANGED
@@ -1,23 +1,22 @@
1
1
  /**
2
- * @description 将非数组转换为数组 如果是目标本就是数组则直接返回
3
- * @param target 目标
2
+ * 将非数组转换为数组 如果是目标本就是数组则直接返回
4
3
  * @example castArray(1) => [1]
5
4
  */
6
5
  declare function castArray<T>(target: T | T[]): T[];
7
6
 
8
7
  /**
9
- * @description compose
8
+ * compose
10
9
  * @param fns 任意函数
11
10
  */
12
11
  declare function compose(...fns: ((...args: any[]) => any)[]): (...args: any[]) => any;
13
12
  /**
14
- * @description compose 从右到左
13
+ * compose 从右到左
15
14
  * @param fns 任意函数
16
15
  */
17
16
  declare function composeRight(...fns: ((...args: any[]) => any)[]): (...args: any[]) => any;
18
17
 
19
18
  /**
20
- * @description 防抖函数
19
+ * 防抖函数
21
20
  * @param target 目标函数
22
21
  * @param wait 等待时间 默认 500ms
23
22
  * @example debounce(() => console.log('debounce'), 500)
@@ -25,7 +24,7 @@ declare function composeRight(...fns: ((...args: any[]) => any)[]): (...args: an
25
24
  declare function debounce(target: Function, wait?: number): (...args: any[]) => void;
26
25
 
27
26
  /**
28
- * @description 深拷贝
27
+ * 深拷贝
29
28
  * @param target 拷贝对象
30
29
  * @example deepClone({ name: 1, obj: { name: 1 }, arr: [1, 2, 3] }) => { name: 1, obj: { name: 1 }, arr: [1, 2, 3] }
31
30
  */
@@ -61,13 +60,13 @@ type Arrayable<T> = T | T[];
61
60
 
62
61
  interface DeepMergeOptions {
63
62
  /**
64
- * @description 是否开启深拷贝 默认开启
63
+ * 是否开启深拷贝 默认开启
65
64
  * @default true
66
65
  */
67
66
  deepClone: boolean;
68
67
  }
69
68
  /**
70
- * @description 深度合并两对象
69
+ * 深度合并两对象
71
70
  * @param template 模板对象 就是默认值
72
71
  * @param source 源对象 就是用户传入的值
73
72
  * @param options 配置对象
@@ -86,7 +85,7 @@ declare const deprecated: ({ from, replacement, version, type, }: {
86
85
  }) => void;
87
86
 
88
87
  /**
89
- * @description 解析查询字符串
88
+ * 解析查询字符串
90
89
  * @param str 转换的字符串
91
90
  * @return 转换后的对象
92
91
  * @example
@@ -98,7 +97,7 @@ declare const deprecated: ({ from, replacement, version, type, }: {
98
97
  */
99
98
  declare function parse(str: string, options?: ParseOptions): Record<string, string>;
100
99
  /**
101
- *@description 转换对象为查询字符串
100
+ * 转换对象为查询字符串
102
101
  * @param obj 转换的对象
103
102
  * @return 转换后的字符串
104
103
  * @example
@@ -108,7 +107,7 @@ declare function parse(str: string, options?: ParseOptions): Record<string, stri
108
107
  */
109
108
  declare function stringify(obj: Record<string, any>, options?: StringifyOptions): string;
110
109
  /**
111
- * @description url追加查询字符串
110
+ * url追加查询字符串
112
111
  * @param url url
113
112
  * @param obj 查询字符串对象
114
113
  * @return 追加后的url
@@ -124,21 +123,21 @@ declare const qs: {
124
123
  };
125
124
  interface ParseOptions {
126
125
  /**
127
- * @description 是否解码
126
+ * 是否解码
128
127
  * @default true
129
128
  */
130
129
  decode?: boolean;
131
130
  }
132
131
  interface StringifyOptions {
133
132
  /**
134
- * @description 是否编码
133
+ * 是否编码
135
134
  * @default true
136
135
  */
137
136
  encode?: boolean;
138
137
  }
139
138
 
140
139
  /**
141
- * @description 节流函数
140
+ * 节流函数
142
141
  * @param target 目标函数
143
142
  * @param wait 等待时间 默认 500ms
144
143
  * @example throttle(() => console.log('hello world'), 500)
@@ -146,27 +145,27 @@ interface StringifyOptions {
146
145
  declare function throttle(target: Function, wait?: number): (...args: any[]) => any;
147
146
 
148
147
  /**
149
- * @description 校验经纬度
148
+ * 校验经纬度
150
149
  */
151
150
  declare function validatorLatitudeOrLongitude(value: string): boolean;
152
151
  /**
153
- * @description 校验中文、字母、数字
152
+ * 校验中文、字母、数字
154
153
  */
155
154
  declare function validatorChineseOrEnglishOrNumber(value: string): boolean;
156
155
  /**
157
- * @description 校验中英文
156
+ * 校验中英文
158
157
  */
159
158
  declare function validatorChineseOrEnglish(value: string): boolean;
160
159
  /**
161
- * @description 校验大写字母、数字、特殊字符 特殊字符包括 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
160
+ * 校验大写字母、数字、特殊字符 特殊字符包括 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
162
161
  */
163
162
  declare function validatorUppercaseOrNumbersOrSpecial(value: string): boolean;
164
163
  /**
165
- * @description 校验大写字母、数字、_
164
+ * 校验大写字母、数字、_
166
165
  */
167
166
  declare function validatorUppercaseOrNumbersOrUnderline(value: string): boolean;
168
167
  /**
169
- * @description 校验是否为邮箱
168
+ * 校验是否为邮箱
170
169
  * @deprecated 使用 isEmail 代替
171
170
  */
172
171
  declare function validatorEmail(value: string): boolean;
@@ -174,14 +173,14 @@ declare function validatorEmail(value: string): boolean;
174
173
  declare function compareProperties(target: AnyObject, source: AnyObject): void | AnyObject;
175
174
 
176
175
  /**
177
- * @description 排除对象中的某些属性
176
+ * 排除对象中的某些属性
178
177
  * @param target 目标对象
179
178
  * @param properties 要排除的属性
180
179
  * @example excludeProperties({ a: 1, b: 2, c: 3 }, ['a', 'b']) => { c: 3 }
181
180
  */
182
181
  declare function excludeProperties<T extends AnyObject, K extends keyof T>(target: T, properties: Arrayable<K>): Omit<T, K>;
183
182
  /**
184
- * @description 提取对象中的某些属性
183
+ * 提取对象中的某些属性
185
184
  * @param target 目标对象
186
185
  * @param properties 要提取的属性
187
186
  * @example extractProperties({ a: 1, b: 2, c: 3 }, ['a', 'b']) => { a: 1, b: 2 }
@@ -189,243 +188,248 @@ declare function excludeProperties<T extends AnyObject, K extends keyof T>(targe
189
188
  declare function extractProperties<T extends AnyObject, K extends keyof T>(target: T, properties: Arrayable<K>): Pick<T, K>;
190
189
 
191
190
  /**
192
- * @description 生成随机数组
191
+ * 生成随机数组
193
192
  * @example generateRandomArray(4, () => 1) => [1, 1, 1, 1]
194
193
  * */
195
194
  declare function generateRandomArray<T>(num: number, cb: (item?: unknown, index?: number) => T): T[];
196
195
 
197
196
  /**
198
- * @description 生成随机颜色
197
+ * 生成随机颜色
199
198
  * @example generateRandomColor() => '#f36a38'
200
199
  * */
201
200
  declare function generateRandomColor(): string;
202
201
 
203
202
  /**
204
- * @description 生成随机时间
203
+ * 生成随机时间
205
204
  * @example generateRandomDate() => '2021-07-01 08:51:34'
206
205
  * */
207
206
  declare function generateRandomDate(options?: GenerateRandomDate): string;
208
207
  interface GenerateRandomDate {
209
208
  /**
210
- * @description 开始时间
209
+ * 开始时间
211
210
  * @default 1800-01-01 00:00:00
212
211
  */
213
212
  start?: string | Date;
214
213
  /**
215
- * @description 结束时间
214
+ * 结束时间
216
215
  * @default 当前时间
217
216
  */
218
217
  end?: string | Date;
219
218
  /**
220
- * @description 时间格式
219
+ * 时间格式
221
220
  * @default YYYY-MM-DD HH:mm:ss
222
221
  */
223
222
  format?: string;
224
223
  }
225
224
 
226
225
  /**
227
- * @description 生成随机邮箱
228
- * @example generateRandomEmail() => lZtJqMl0dyTO3WDGzFDO@example.com
226
+ * 生成随机邮箱
227
+ * @example generateRandomEmail() => lZtJqMl0dyTO3WDGzFDO@gmail.com
229
228
  */
230
229
  declare function generateRandomEmail(): string;
231
230
 
232
231
  /**
233
- * @description 生成范围内的随机浮点数
232
+ * 生成范围内的随机浮点数
234
233
  * @example generateRandomFloat() => 0.35
235
234
  * */
236
235
  declare function generateRandomFloat(options?: GenerateRandomFloat): number;
237
236
  type GenerateRandomFloat = number | {
238
237
  /**
239
- * @description 最大值
238
+ * 最大值
240
239
  * @default 1.00
241
240
  */
242
241
  max?: number;
243
242
  /**
244
- * @description 最小值
243
+ * 最小值
245
244
  * @default 0.00
246
245
  */
247
246
  min?: number;
248
247
  /**
249
- * @description 小数位数
248
+ * 小数位数
250
249
  * @default 2
251
250
  */
252
251
  fractionDigits?: number;
253
252
  };
254
253
 
255
254
  /**
256
- * @description 生成随机二代身份证号
255
+ * 生成随机二代身份证号
257
256
  * @example generateRandomIdCard() => '410304200210165258'
258
257
  */
259
258
  declare function generateRandomIdCard(): string;
260
259
 
261
260
  /**
262
- * @description 生成范围内的随机整数
261
+ * 生成范围内的随机整数
263
262
  * @example generateRandomInteger() => 217342
264
263
  * */
265
264
  declare function generateRandomInteger(options?: GenerateRandomIntegerOptions): number;
266
265
  type GenerateRandomIntegerOptions = number | {
267
266
  /**
268
- * @description 最大值
267
+ * 最大值
269
268
  * @default Number.MAX_SAFE_INTEGER
270
269
  */
271
270
  max?: number;
272
271
  /**
273
- * @description 最小值
272
+ * 最小值
274
273
  * @default 0
275
274
  */
276
275
  min?: number;
277
276
  };
278
277
 
279
278
  /**
280
- * @description 生成随机手机号码
279
+ * 生成随机手机号码
281
280
  * @example generateRandomMobilePhone() => 13012345678
282
281
  */
283
282
  declare function generateRandomMobilePhone(): string;
284
283
 
285
284
  /**
286
- * @description 生成随机字符串 大小写字母和数字
285
+ * 生成随机字符串 大小写字母和数字
287
286
  * @param length 返回字符串的长度
288
287
  * @example generateRandomString(20) => 'lZtJqMl0dyTO3WDGzFDO'
289
288
  * */
290
289
  declare function generateRandomString(length: number, options?: GenerateRandomStringOptions): string;
291
290
  interface GenerateRandomStringOptions {
292
291
  /**
293
- * @description 是否包含小写字母
292
+ * 是否包含小写字母
294
293
  * @default true
295
294
  */
296
295
  lowerCase?: boolean;
297
296
  /**
298
- * @description 是否包含大写字母
297
+ * 是否包含大写字母
299
298
  * @default true
300
299
  */
301
300
  upperCase?: boolean;
302
301
  /**
303
- * @description 是否包含数字
302
+ * 是否包含数字
304
303
  * @default true
305
304
  */
306
305
  number?: boolean;
307
306
  }
308
307
 
309
308
  /**
310
- * @description 生成随机数据从数据源中
309
+ * 生成随机数据从数据源中
311
310
  * @param num 随机获取数据源子项次数
312
311
  * @example generateRandomStringFromSource(4, ['1', 'b', 'c', 'd', 'e']) => 'dea1'
313
312
  * */
314
313
  declare function generateRandomStringFromSource(num: number, source: (number | string)[]): string;
315
314
 
316
315
  /**
317
- * @description 获取数组中的随机元素
316
+ * 获取数组中的随机元素
318
317
  * @example getRandomItem([0, 1, 2, 3, 4]) => 2
319
318
  */
320
319
  declare function getRandomItem<T>(list: T[]): T;
321
320
 
322
321
  /**
323
- * @description 校验是否为数字
322
+ * 校验是否为数字
324
323
  */
325
324
  declare function isNumberOrNumberString(val: string): boolean;
326
325
  /**
327
- * @description 校验是否为中文
326
+ * 校验是否为中文
328
327
  */
329
328
  declare function isChinese(val: string): boolean;
330
329
  /**
331
- * @description 校验是否为英文字母
330
+ * 校验是否为英文字母
332
331
  */
333
332
  declare function isEnglishAphabet(val: string): boolean;
334
333
  /**
335
- * @description 校验是否为大写字母
334
+ * 校验是否为大写字母
336
335
  */
337
336
  declare function isUpperCase(val: string): boolean;
338
337
  /**
339
- * @description 校验是否为大写字母和数字
338
+ * 校验是否为大写字母和数字
340
339
  */
341
340
  declare function isUpperCaseAndNumber(val: string): boolean;
342
341
  /**
343
- * @description 校验是否为大写字母数字和中文
342
+ * 校验是否为大写字母数字和中文
344
343
  */
345
344
  declare function isUpperCaseAndNumberAndChinese(val: string): boolean;
346
345
  /**
347
- * @description 校验是否为小写字母
346
+ * 校验是否为小写字母
348
347
  */
349
348
  declare function isLowerCase(val: string): boolean;
350
349
  /**
351
- * @description 校验是否为小写字母和数字
350
+ * 校验是否为小写字母和数字
352
351
  */
353
352
  declare function isLowerCaseAndNumber(val: string): boolean;
354
353
  /**
355
- * @description 校验是否为小写字母数字和中文
354
+ * 校验是否为小写字母数字和中文
356
355
  */
357
356
  declare function isLowerCaseAndNumberAndChinese(val: string): boolean;
358
357
 
359
358
  /**
360
- * @description 校验是否为浮点数
359
+ * 校验是否为浮点数
361
360
  */
362
361
  declare function isFloat(val: string, floatOptions?: FloatOptions): boolean;
363
362
  /**
364
- * @description 校验是否为大于零的浮点数
363
+ * 校验是否为大于零的浮点数
365
364
  */
366
365
  declare function isPositiveFloat(val: string, floatOptions?: FloatOptions): boolean;
367
366
  /**
368
- * @description 校验是否为小于零的浮点数
367
+ * 校验是否为小于零的浮点数
369
368
  */
370
369
  declare function isNegativeFloat(val: string, floatOptions?: FloatOptions): boolean;
371
370
  /**
372
- * @description 校验是否为大于等于零的浮点数
371
+ * 校验是否为大于等于零的浮点数
373
372
  */
374
373
  declare function isPositiveFloatOrZero(val: string, floatOptions?: FloatOptions): boolean;
375
374
  /**
376
- * @description 校验是否为小于等于零的浮点数
375
+ * 校验是否为小于等于零的浮点数
377
376
  */
378
377
  declare function isNegativeFloatOrZero(val: string, floatOptions?: FloatOptions): boolean;
379
378
  interface FloatOptions {
380
379
  /**
381
- * @description 是否包括整数
380
+ * 是否包括整数
382
381
  * @default true
383
382
  */
384
383
  integer?: boolean;
385
384
  }
386
385
 
387
386
  /**
388
- * @description 校验是否为整数
387
+ * 校验是否为整数
389
388
  */
390
389
  declare function isInteger(val: string): boolean;
391
390
  /**
392
- * @description 校验否为正整数
391
+ * 校验否为正整数
393
392
  */
394
393
  declare function isPositiveInteger(val: string): boolean;
395
394
  /**
396
- * @description 校验是否为大于等于零的整数
395
+ * 校验是否为大于等于零的整数
397
396
  */
398
397
  declare function isPositiveIntegerOrZero(val: string): boolean;
399
398
  /**
400
- * @description 校验是否为负整数
399
+ * 校验是否为负整数
401
400
  */
402
401
  declare function isNegativeInteger(val: string): boolean;
403
402
  /**
404
- * @description 校验是否为小于等于零的整数
403
+ * 校验是否为小于等于零的整数
405
404
  */
406
405
  declare function isNegativeIntegerOrZero(val: string): boolean;
407
406
 
408
407
  /**
409
- * @description 校验是否为手机号
408
+ * 校验是否为手机号
410
409
  */
411
410
  declare function isMobilePhone(val: string): boolean;
412
411
  /**
413
- * @description 校验是否为邮箱
412
+ * 校验是否为邮箱
414
413
  */
415
414
  declare function isEmail(val: string): boolean;
416
415
  /**
417
- * @description 校验是否为空字符串
416
+ * 校验是否为空字符串
418
417
  */
419
418
  declare function isEmptyString(val: unknown): boolean;
420
419
  /**
421
- * @description 校验是否为合法时间格式
422
- * @param format 时间格式 默认 YYYY-MM-DD HH:mm:ss
423
- * @link https://day.js.org/docs/zh-CN/parse/string-format
420
+ * 校验是否为合法时间格式
421
+ * @param format 时间格式
422
+ * @default 'YYYY-MM-DD HH:mm:ss'
423
+ * @see https://day.js.org/docs/zh-CN/parse/string-format
424
424
  */
425
425
  declare function isDateString(val: string, format?: string): boolean;
426
426
  /**
427
- * @description 校验是否为二代身份证号
427
+ * 校验是否为二代身份证号
428
428
  */
429
429
  declare function isIdCard(val: string): boolean;
430
+ /**
431
+ * 是否是链接
432
+ */
433
+ declare function isUrl(val: string): boolean;
430
434
 
431
- export { type AnyObject, type ArrayItem, type Arrayable, type FloatOptions, type GenerateRandomDate, type GenerateRandomFloat, type GenerateRandomIntegerOptions, type GenerateRandomStringOptions, type ParseOptions, type StringifyOptions, castArray, compareProperties, compose, composeRight, debounce, debugWarn, deepClone, deepMerge, deprecated, error, excludeProperties, extractProperties, generateRandomArray, generateRandomColor, generateRandomDate, generateRandomEmail, generateRandomFloat, generateRandomIdCard, generateRandomInteger, generateRandomMobilePhone, generateRandomString, generateRandomStringFromSource, 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, log, objectToString, qs, throttle, throwError, toTypeString, validatorChineseOrEnglish, validatorChineseOrEnglishOrNumber, validatorEmail, validatorLatitudeOrLongitude, validatorUppercaseOrNumbersOrSpecial, validatorUppercaseOrNumbersOrUnderline, warn };
435
+ export { type AnyObject, type ArrayItem, type Arrayable, type FloatOptions, type GenerateRandomDate, type GenerateRandomFloat, type GenerateRandomIntegerOptions, type GenerateRandomStringOptions, type ParseOptions, type StringifyOptions, castArray, compareProperties, compose, composeRight, debounce, debugWarn, deepClone, deepMerge, deprecated, error, excludeProperties, extractProperties, generateRandomArray, generateRandomColor, generateRandomDate, generateRandomEmail, generateRandomFloat, generateRandomIdCard, generateRandomInteger, generateRandomMobilePhone, generateRandomString, generateRandomStringFromSource, 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 };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- function J(...e){return e.reduce((t,r)=>function(...n){return r(t(...n))})}function ee(...e){return e.reduce((t,r)=>function(...n){return t(r(...n))})}function ne(e,t=500){let r=null;return function(...n){r&&clearTimeout(r),r=setTimeout(()=>{e.apply(this,n)},t)}}var _=Object.prototype.toString,$=e=>_.call(e),M=null;function se(e){h(e)&&(M=e)}var ae=(e,...t)=>{let r=t.length===0?"":t.length===1?t[0]:t;console.log(`%c ${e} `,"padding: 2px; border-radius: 3px; color: #fff; background: #000; font-weight: bold;",r),M&&M(e,r)},ue=(...e)=>console.warn(...e),ce=(...e)=>console.error(...e),pe=e=>$(e)==="[object Map]",me=e=>$(e)==="[object Set]",C=e=>$(e)==="[object Date]",F=e=>$(e)==="[object RegExp]",h=e=>typeof e=="function",d=e=>typeof e=="number",I=e=>typeof e=="string",fe=e=>typeof e=="symbol",c=e=>e!==null&&typeof e=="object",de=e=>c(e)&&h(e.then)&&h(e.catch),g=e=>e==null,ge=e=>e===void 0,xe=e=>e===null,le=e=>e!=null,be=e=>typeof e=="boolean",p=Array.isArray,A=(e,t)=>Object.hasOwn(e,t),ye=(e,t)=>e!==t;function R(e){let t=new WeakMap;function r(n){if(C(n))return new Date(n);if(F(n))return new RegExp(n);if(c(n)){if(t.has(n))return t.get(n);let o={};if(p(n)){o=[],t.set(n,o);for(let i=0;i<n.length;i++)o[i]=r(n[i]);return o}t.set(n,o);for(let i in n)A(n,i)&&(o[i]=r(n[i]));return o}else return n}return r(e)}var T=class extends Error{constructor(t){super(t),this.name="LntvowError"}};function u(e,t){throw new T(`[${e}] ${t}`)}function G(e,t){if(process.env.NODE_ENV!=="production"){let r=I(e)?new T(`[${e}] ${t}`):e;console.warn(r)}}var N=({from:e,replacement:t,version:r,type:n="API"})=>{G(`${n}`,`${e} is about to be deprecated in version ${r}, please use ${t} instead.`)};function l(e,t,r){return(!c(e)||!c(t))&&u("deepMerge","template \u548C source \u5FC5\u987B\u662F\u5BF9\u8C61"),p(e)?K(e,t,r):H(e,t,r)}function H(e,t,r){let n=y(t,r);return Object.keys(e).forEach(i=>{g(t[i])?n[i]=y(e[i],r):n[i]=c(e[i])&&c(t[i])?l(e[i],t[i],r):y(t[i],r)}),n}function K(e,t,r){if(p(t)){let n=y(t,r);return n.push(...y(e,r)),n}else return y(e,r)}function y(e,t){let{deepClone:r=!0}=t||{};return r?R(e):e}function z(e,t){let{decode:r}=l({decode:!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 i of o){let[b,x]=i.split("=");n[b]=r?decodeURIComponent(x):x}return n}function Y(e,t){let{encode:r}=l({encode:!0},t||{}),n=[];for(let o in e){let i=e[o];n.push(`${o}=${r?encodeURIComponent(i):i}`)}return n.join("&")}function W(e,t,r){let n=l({encode:!0},r||{}),o=Y(t,n);return e.includes("?")?e.endsWith("?")||e.endsWith("&")?`${e}${o}`:`${e}&${o}`:`${e}?${o}`}var Ie={parse:z,stringify:Y,appendQueryString:W};function Pe(e,t=500){let r=null;return function(...n){if(g(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 Ge(e){return/^-?\d{1,3}\.\d{6}$/.test(e)}function He(e){return!g(e)&&/^[\dA-Za-z\u4E00-\u9FA5]+$/.test(e)}function Ke(e){return!g(e)&&/^[A-Za-z\u4E00-\u9FA5]+$/.test(e)}function ze(e){return!g(e)&&/^[\d!"#$%&'()*+,./:;<=>?@A-Z[\\\]^_`{|}~]+$/.test(e)}function We(e){return/^[\dA-Z_]+$/.test(e)}function Le(e){return N({from:"validatorEmail",replacement:"isEmail",version:"2.4.0"}),/^([\w-])+@([\w-])+(\.[\w-])+/.test(e)}function j(e){return p(e)?e:[e]}function gt(e,t){return(!c(e)||!c(t))&&u("deepMerge","template \u548C source \u5FC5\u987B\u662F\u5BF9\u8C61"),p(e)?void 0:k(e,t)}function k(e,t){let r={};return Object.keys(e).forEach(n=>{let o=e[n],i=t[n];c(o)&&c(i)?r[n]=k(o,i):Object.is(o,i)||(r[n]=i)}),r}function Ot(e,t){let r=R(e);return j(t).forEach(o=>{A(r,o)&&delete r[o]}),r}function ht(e,t){let r={};return j(t).forEach(o=>{A(e,o)&&(r[o]=e[o])}),r}function jt(e,t){return(!d(e)||e<=0)&&u("generateRandomArray","num \u5FC5\u987B\u5927\u4E8E0"),h(t)||u("generateRandomArray","cb \u5FC5\u987B\u662F\u51FD\u6570"),Array.from({length:e}).fill(0).map((r,n)=>t(r,n))}function Ct(){return`#${Math.random().toString(16).slice(2,8).padEnd(6,"0")}`}import f,{extend as L}from"dayjs";import q from"dayjs/plugin/customParseFormat";function m(e={}){d(e)&&(e={max:e});let{min:t=0,max:r=Number.MAX_SAFE_INTEGER}=e,n=Math.ceil(t),o=Math.floor(r);return n===o?n:(o<n&&(r>=t&&u("generateRandomInteger",`\u672A\u627E\u5230 ${t} \u548C ${r} \u4E4B\u95F4\u7684\u6574\u6570\u503C`),u("generateRandomInteger",`\u6700\u5927\u503C ${r} \u5E94\u5927\u4E8E\u6700\u5C0F\u503C ${t}`)),Math.floor(Math.random()*(o-n+1)+n))}L(q);function D(e={}){let{start:t="1800-01-01 00:00:00",end:r=f().format("YYYY-MM-DD HH:mm:ss"),format:n="YYYY-MM-DD HH:mm:ss"}=e;(!f(t).isValid()||!f(r).isValid())&&u("generateRandomDate","start end \u53C2\u6570\u5FC5\u987B\u662F\u5408\u6CD5\u7684\u65F6\u95F4\u683C\u5F0F");let o=f(t).year(),i=f(r).year(),b=m({min:o,max:i}),x=m({min:1,max:12}),E=m({min:1,max:31}),U=m(23),v=m(59),Z=m(59),w=f(`${b}-${x}-${E} ${U}:${v}:${Z}`);return w.isBefore(f(t))||w.isAfter(f(r))?(console.log("\u4E0D\u5408\u6CD5\u65F6\u95F4",f(w).format("YYYY-MM-DD HH:mm:ss")),D(e)):w.format(n)}function P(e,t={}){let{lowerCase:r,upperCase:n,number:o}=l({lowerCase:!0,upperCase:!0,number:!0},t);r||n||o||u("generateRandomString","lowerCase upperCase number \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u53C2\u6570\u4E3Atrue");let i="";r&&(i+="abcdefghijklmnopqrstuvwxyz"),n&&(i+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),o&&(i+="0123456789");let b="";for(let x=0;x<e;x++){let E=Math.floor(Math.random()*i.length);b+=i.charAt(E)}return b}function O(e){return e[Math.floor(Math.random()*e.length)]}function Bt(){let e=["gmail.com","yahoo.com","outlook.com","example.com","qq.com","163.com"];return`${P(10)}@${O(e)}`}function er(e={}){d(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 S(e,t){(!d(e)||e<=0)&&u("generateRandomStringFromSource","num \u5FC5\u987B\u5927\u4E8E0"),(!p(t)||t.length===0)&&u("generateRandomStringFromSource","source \u4E0D\u80FD\u4E3A\u7A7A\u6570\u7EC4");let r="";for(let n=0;n<e;n++)r+=O(t);return r}function pr(){let e=m({min:1e5,max:999999}),t=[0,1,2,3,4,5,6,7,8,9];return[e,D({format:"YYYYMMDD"}),S(3,t),S(1,[...t,"X","x"])].join("")}function xr(){return O(["13","14","15","16","17","18","19"])+m(999999999).toString().padEnd(9,"0")}function Cr(e){return/^\d+$/.test(e)}function Fr(e){return/^[\u4E00-\u9FA5]+$/.test(e)}function Ir(e){return/^[A-Za-z]+$/.test(e)}function Nr(e){return/^[A-Z]+$/.test(e)}function Yr(e){return/^[\dA-Z]+$/.test(e)}function kr(e){return/^[\dA-Z\u4E00-\u9FA5]+$/.test(e)}function Pr(e){return/^[a-z]+$/.test(e)}function Ur(e){return/^[\da-z]+$/.test(e)}function vr(e){return/^[\da-z\u4E00-\u9FA5]+$/.test(e)}function Gr(e,t={}){let{integer:r=!0}=t;return r?/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e):/^-?(0|[1-9]\d*)\.\d+$/.test(e)}function Hr(e,t={}){let{integer:r=!0}=t;return r?/^[1-9]\d*\.?\d*|^0\.\d*[1-9]\d*$/.test(e):/^[1-9]\d*\.\d*|^0\.\d*[1-9]\d*$/.test(e)}function Kr(e,t={}){let{integer:r=!0}=t;return r?/^-[1-9]\d*\.?\d*|^-0\.\d*[1-9]\d*$/.test(e):/^-[1-9]\d*\.\d*|^-0\.\d*[1-9]\d*$/.test(e)}function zr(e,t={}){let{integer:r=!0}=t;return r?/^(0|[1-9]\d*)(\.\d+)?$/.test(e):/^(0|[1-9]\d*)\.\d+$/.test(e)}function Wr(e,t={}){let{integer:r=!0}=t;return r?/^(-?0(\.0+)?|-(0|[1-9]\d*)(\.\d+)?)$/.test(e):/^(-?0\.0+|-(0|[1-9]\d*)\.\d+)$/.test(e)}function Vr(e){return/^-?(0|[1-9]\d*)$/.test(e)}function Br(e){return/^[1-9]\d*$/.test(e)}function Xr(e){return/^(0|[1-9]\d*)$/.test(e)}function Qr(e){return/^-([1-9]\d*)$/.test(e)}function Jr(e){return/^(0|-(0|[1-9]\d*))$/.test(e)}import V,{extend as B}from"dayjs";import X from"dayjs/plugin/customParseFormat";function cn(e){return/^1[3-9]\d{9}$/.test(e)}function pn(e){return/^([\w-])+@([\w-])+(\.[\w-])+/.test(e)}function mn(e){return e===""}function Q(e,t="YYYY-MM-DD HH:mm:ss"){return B(X),V(e,t,!0).isValid()}function fn(e){let t=/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e);return!t||(t=Q(e.slice(6,14),"YYYYMMDD"),!t),t}export{j as castArray,gt as compareProperties,J as compose,ee as composeRight,ne as debounce,G as debugWarn,R as deepClone,l as deepMerge,N as deprecated,ce as error,Ot as excludeProperties,ht as extractProperties,jt as generateRandomArray,Ct as generateRandomColor,D as generateRandomDate,Bt as generateRandomEmail,er as generateRandomFloat,pr as generateRandomIdCard,m as generateRandomInteger,xr as generateRandomMobilePhone,P as generateRandomString,S as generateRandomStringFromSource,O as getRandomItem,ye as hasChanged,A as hasOwn,se as initLog,p as isArray,be as isBoolean,Fr as isChinese,C as isDate,Q as isDateString,le as isDef,pn as isEmail,mn as isEmptyString,Ir as isEnglishAphabet,Gr as isFloat,h as isFunction,fn as isIdCard,Vr as isInteger,Pr as isLowerCase,Ur as isLowerCaseAndNumber,vr as isLowerCaseAndNumberAndChinese,pe as isMap,cn as isMobilePhone,Kr as isNegativeFloat,Wr as isNegativeFloatOrZero,Qr as isNegativeInteger,Jr as isNegativeIntegerOrZero,xe as isNull,d as isNumber,Cr as isNumberOrNumberString,c as isObject,Hr as isPositiveFloat,zr as isPositiveFloatOrZero,Br as isPositiveInteger,Xr as isPositiveIntegerOrZero,de as isPromise,F as isRegExp,me as isSet,I as isString,fe as isSymbol,g as isUndef,ge as isUndefined,Nr as isUpperCase,Yr as isUpperCaseAndNumber,kr as isUpperCaseAndNumberAndChinese,ae as log,_ as objectToString,Ie as qs,Pe as throttle,u as throwError,$ as toTypeString,Ke as validatorChineseOrEnglish,He as validatorChineseOrEnglishOrNumber,Le as validatorEmail,Ge as validatorLatitudeOrLongitude,ze as validatorUppercaseOrNumbersOrSpecial,We as validatorUppercaseOrNumbersOrUnderline,ue as warn};
1
+ function Q(...e){return e.reduce((t,r)=>function(...n){return r(t(...n))})}function J(...e){return e.reduce((t,r)=>function(...n){return t(r(...n))})}function re(e,t=500){let r=null;return function(...n){r&&clearTimeout(r),r=setTimeout(()=>{e.apply(this,n)},t)}}var Z=Object.prototype.toString,$=e=>Z.call(e),j=null;function ie(e){h(e)&&(j=e)}var se=(e,...t)=>{let r=t.length===0?"":t.length===1?t[0]:t;console.log(`%c ${e} `,"padding: 2px; border-radius: 3px; color: #fff; background: #000; font-weight: bold;",r),j&&j(e,r)},ae=(...e)=>console.warn(...e),ue=(...e)=>console.error(...e),pe=e=>$(e)==="[object Map]",ce=e=>$(e)==="[object Set]",F=e=>$(e)==="[object Date]",C=e=>$(e)==="[object RegExp]",h=e=>typeof e=="function",f=e=>typeof e=="number",I=e=>typeof e=="string",me=e=>typeof e=="symbol",p=e=>e!==null&&typeof e=="object",fe=e=>p(e)&&h(e.then)&&h(e.catch),d=e=>e==null,de=e=>e===void 0,ge=e=>e===null,xe=e=>e!=null,le=e=>typeof e=="boolean",m=Array.isArray,w=(e,t)=>Object.hasOwn(e,t),be=(e,t)=>e!==t;function R(e){let t=new WeakMap;function r(n){if(F(n))return new Date(n);if(C(n))return new RegExp(n);if(p(n)){if(t.has(n))return t.get(n);let o={};if(m(n)){o=[],t.set(n,o);for(let i=0;i<n.length;i++)o[i]=r(n[i]);return o}t.set(n,o);for(let i in n)w(n,i)&&(o[i]=r(n[i]));return o}else return n}return r(e)}var T=class extends Error{constructor(t){super(t),this.name="LntvowError"}};function u(e,t){throw new T(`[${e}] ${t}`)}function _(e,t){if(process.env.NODE_ENV!=="production"){let r=I(e)?new T(`[${e}] ${t}`):e;console.warn(r)}}var N=({from:e,replacement:t,version:r,type:n="API"})=>{_(`${n}`,`${e} is about to be deprecated in version ${r}, please use ${t} instead.`)};function l(e,t,r){return(!p(e)||!p(t))&&u("deepMerge","template \u548C source \u5FC5\u987B\u662F\u5BF9\u8C61"),m(e)?K(e,t,r):G(e,t,r)}function G(e,t,r){let n=y(t,r);return Object.keys(e).forEach(i=>{d(t[i])?n[i]=y(e[i],r):n[i]=p(e[i])&&p(t[i])?l(e[i],t[i],r):y(t[i],r)}),n}function K(e,t,r){if(m(t)){let n=y(t,r);return n.push(...y(e,r)),n}else return y(e,r)}function y(e,t){let{deepClone:r=!0}=t||{};return r?R(e):e}function z(e,t){let{decode:r}=l({decode:!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 i of o){let[b,x]=i.split("=");n[b]=r?decodeURIComponent(x):x}return n}function k(e,t){let{encode:r}=l({encode:!0},t||{}),n=[];for(let o in e){let i=e[o];n.push(`${o}=${r?encodeURIComponent(i):i}`)}return n.join("&")}function H(e,t,r){let n=l({encode:!0},r||{}),o=k(t,n);return e.includes("?")?e.endsWith("?")||e.endsWith("&")?`${e}${o}`:`${e}&${o}`:`${e}?${o}`}var Ce={parse:z,stringify:k,appendQueryString:H};function Ye(e,t=500){let r=null;return function(...n){if(d(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 _e(e){return/^-?\d{1,3}\.\d{6}$/.test(e)}function Ge(e){return!d(e)&&/^[\dA-Za-z\u4E00-\u9FA5]+$/.test(e)}function Ke(e){return!d(e)&&/^[A-Za-z\u4E00-\u9FA5]+$/.test(e)}function ze(e){return!d(e)&&/^[\d!"#$%&'()*+,./:;<=>?@A-Z[\\\]^_`{|}~]+$/.test(e)}function He(e){return/^[\dA-Z_]+$/.test(e)}function We(e){return N({from:"validatorEmail",replacement:"isEmail",version:"2.4.0"}),/^([\w-])+@([\w-])+(\.[\w-])+/.test(e)}function S(e){return m(e)?e:[e]}function dt(e,t){return(!p(e)||!p(t))&&u("deepMerge","template \u548C source \u5FC5\u987B\u662F\u5BF9\u8C61"),m(e)?void 0:Y(e,t)}function Y(e,t){let r={};return Object.keys(e).forEach(n=>{let o=e[n],i=t[n];p(o)&&p(i)?r[n]=Y(o,i):Object.is(o,i)||(r[n]=i)}),r}function yt(e,t){let r=R(e);return S(t).forEach(o=>{w(r,o)&&delete r[o]}),r}function Ot(e,t){let r={};return S(t).forEach(o=>{w(e,o)&&(r[o]=e[o])}),r}function Mt(e,t){return(!f(e)||e<=0)&&u("generateRandomArray","num \u5FC5\u987B\u5927\u4E8E0"),h(t)||u("generateRandomArray","cb \u5FC5\u987B\u662F\u51FD\u6570"),Array.from({length:e}).fill(0).map((r,n)=>t(r,n))}function Dt(){return`#${Math.random().toString(16).slice(2,8).padEnd(6,"0")}`}import g,{extend as W}from"dayjs";import L from"dayjs/plugin/customParseFormat";function c(e={}){f(e)&&(e={max:e});let{min:t=0,max:r=Number.MAX_SAFE_INTEGER}=e,n=Math.ceil(t),o=Math.floor(r);return n===o?n:(o<n&&(r>=t&&u("generateRandomInteger",`\u672A\u627E\u5230 ${t} \u548C ${r} \u4E4B\u95F4\u7684\u6574\u6570\u503C`),u("generateRandomInteger",`\u6700\u5927\u503C ${r} \u5E94\u5927\u4E8E\u6700\u5C0F\u503C ${t}`)),Math.floor(Math.random()*(o-n+1)+n))}W(L);function D(e={}){let{start:t="1800-01-01 00:00:00",end:r=g().format("YYYY-MM-DD HH:mm:ss"),format:n="YYYY-MM-DD HH:mm:ss"}=e;(!g(t).isValid()||!g(r).isValid())&&u("generateRandomDate","start end \u53C2\u6570\u5FC5\u987B\u662F\u5408\u6CD5\u7684\u65F6\u95F4\u683C\u5F0F");let o=g(t).year(),i=g(r).year(),b=c({min:o,max:i}),x=c({min:1,max:12}),E=c({min:1,max:31}),P=c(23),U=c(59),v=c(59),M=g(`${b}-${x}-${E} ${P}:${U}:${v}`);return M.isBefore(g(t))||M.isAfter(g(r))?D(e):M.format(n)}function O(e){return e[Math.floor(Math.random()*e.length)]}function A(e,t){(!f(e)||e<=0)&&u("generateRandomStringFromSource","num \u5FC5\u987B\u5927\u4E8E0"),(!m(t)||t.length===0)&&u("generateRandomStringFromSource","source \u4E0D\u80FD\u4E3A\u7A7A\u6570\u7EC4");let r="";for(let n=0;n<e;n++)r+=O(t);return r}function Xt(){let e=["gmail.com","yahoo.com","outlook.com","example.com","qq.com","163.com"];return`${A(c({min:1,max:16}),["-","_",..."abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".split("")])}@${O(e)}`}function tr(e={}){f(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 ar(){let e=c({min:1e5,max:999999}),t=[0,1,2,3,4,5,6,7,8,9];return[e,D({format:"YYYYMMDD"}),A(3,t),A(1,[...t,"X","x"])].join("")}function fr(){return O(["13","14","15","16","17","18","19"])+c(999999999).toString().padEnd(9,"0")}function lr(e,t={}){let{lowerCase:r,upperCase:n,number:o}=l({lowerCase:!0,upperCase:!0,number:!0},t);r||n||o||u("generateRandomString","lowerCase upperCase number \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u53C2\u6570\u4E3Atrue");let i="";r&&(i+="abcdefghijklmnopqrstuvwxyz"),n&&(i+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),o&&(i+="0123456789");let b="";for(let x=0;x<e;x++){let E=Math.floor(Math.random()*i.length);b+=i.charAt(E)}return b}function Cr(e){return/^\d+$/.test(e)}function Ir(e){return/^[\u4E00-\u9FA5]+$/.test(e)}function Nr(e){return/^[A-Za-z]+$/.test(e)}function kr(e){return/^[A-Z]+$/.test(e)}function Yr(e){return/^[\dA-Z]+$/.test(e)}function Pr(e){return/^[\dA-Z\u4E00-\u9FA5]+$/.test(e)}function Ur(e){return/^[a-z]+$/.test(e)}function vr(e){return/^[\da-z]+$/.test(e)}function Zr(e){return/^[\da-z\u4E00-\u9FA5]+$/.test(e)}function Kr(e,t={}){let{integer:r=!0}=t;return r?/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e):/^-?(0|[1-9]\d*)\.\d+$/.test(e)}function zr(e,t={}){let{integer:r=!0}=t;return r?/^[1-9]\d*\.?\d*|^0\.\d*[1-9]\d*$/.test(e):/^[1-9]\d*\.\d*|^0\.\d*[1-9]\d*$/.test(e)}function Hr(e,t={}){let{integer:r=!0}=t;return r?/^-[1-9]\d*\.?\d*|^-0\.\d*[1-9]\d*$/.test(e):/^-[1-9]\d*\.\d*|^-0\.\d*[1-9]\d*$/.test(e)}function Wr(e,t={}){let{integer:r=!0}=t;return r?/^(0|[1-9]\d*)(\.\d+)?$/.test(e):/^(0|[1-9]\d*)\.\d+$/.test(e)}function Lr(e,t={}){let{integer:r=!0}=t;return r?/^(-?0(\.0+)?|-(0|[1-9]\d*)(\.\d+)?)$/.test(e):/^(-?0\.0+|-(0|[1-9]\d*)\.\d+)$/.test(e)}function Br(e){return/^-?(0|[1-9]\d*)$/.test(e)}function Xr(e){return/^[1-9]\d*$/.test(e)}function Qr(e){return/^(0|[1-9]\d*)$/.test(e)}function Jr(e){return/^-([1-9]\d*)$/.test(e)}function en(e){return/^(0|-(0|[1-9]\d*))$/.test(e)}import q,{extend as V}from"dayjs";import B from"dayjs/plugin/customParseFormat";function cn(e){return/^1[3-9]\d{9}$/.test(e)}function mn(e){return/^[\w-]+@[\w-]+(?:\.[\w-])+/.test(e)}function fn(e){return e===""}function X(e,t="YYYY-MM-DD HH:mm:ss"){return V(B),q(e,t,!0).isValid()}function dn(e){let t=/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dX]$/i.test(e);return!t||(t=X(e.slice(6,14),"YYYYMMDD"),!t),t}function gn(e){return/^(?:http|https):\/\/[\w.]+/.test(e)}export{S as castArray,dt as compareProperties,Q as compose,J as composeRight,re as debounce,_ as debugWarn,R as deepClone,l as deepMerge,N as deprecated,ue as error,yt as excludeProperties,Ot as extractProperties,Mt as generateRandomArray,Dt as generateRandomColor,D as generateRandomDate,Xt as generateRandomEmail,tr as generateRandomFloat,ar as generateRandomIdCard,c as generateRandomInteger,fr as generateRandomMobilePhone,lr as generateRandomString,A as generateRandomStringFromSource,O as getRandomItem,be as hasChanged,w as hasOwn,ie as initLog,m as isArray,le as isBoolean,Ir as isChinese,F as isDate,X as isDateString,xe as isDef,mn as isEmail,fn as isEmptyString,Nr as isEnglishAphabet,Kr as isFloat,h as isFunction,dn as isIdCard,Br as isInteger,Ur as isLowerCase,vr as isLowerCaseAndNumber,Zr as isLowerCaseAndNumberAndChinese,pe as isMap,cn as isMobilePhone,Hr as isNegativeFloat,Lr as isNegativeFloatOrZero,Jr as isNegativeInteger,en as isNegativeIntegerOrZero,ge as isNull,f as isNumber,Cr as isNumberOrNumberString,p as isObject,zr as isPositiveFloat,Wr as isPositiveFloatOrZero,Xr as isPositiveInteger,Qr as isPositiveIntegerOrZero,fe as isPromise,C as isRegExp,ce as isSet,I as isString,me as isSymbol,d as isUndef,de as isUndefined,kr as isUpperCase,Yr as isUpperCaseAndNumber,Pr as isUpperCaseAndNumberAndChinese,gn as isUrl,se as log,Z as objectToString,Ce as qs,Ye as throttle,u as throwError,$ as toTypeString,Ke as validatorChineseOrEnglish,Ge as validatorChineseOrEnglishOrNumber,We as validatorEmail,_e as validatorLatitudeOrLongitude,ze as validatorUppercaseOrNumbersOrSpecial,He as validatorUppercaseOrNumbersOrUnderline,ae as warn};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lntvow/utils",
3
- "version": "3.0.6",
3
+ "version": "3.0.8",
4
4
  "description": "工具库",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -20,6 +20,7 @@
20
20
  },
21
21
  "devDependencies": {
22
22
  "@lntvow/dev": "^1.1.2",
23
+ "@lntvow/eslint-config": "^9.3.8",
23
24
  "@vitest/coverage-istanbul": "^1.6.0",
24
25
  "@vitest/ui": "^1.6.0",
25
26
  "deepmerge": "^4.3.1",
@@ -29,6 +30,7 @@
29
30
  "vitest": "^1.6.0"
30
31
  },
31
32
  "scripts": {
33
+ "dev": "vitest",
32
34
  "test": "vitest",
33
35
  "test:ui": "vitest --ui",
34
36
  "coverage": "vitest run --coverage",