ddan-js 1.3.6 → 1.3.7
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/bin/ddan-js.esm.js +1 -1
- package/bin/ddan-js.js +1 -1
- package/bin/lib/class/store.js +0 -9
- package/bin/lib/index.js +2 -0
- package/bin/lib/modules/convert.js +19 -0
- package/bin/lib/modules/hook/debounce.js +7 -0
- package/bin/lib/modules/hook/index.js +8 -0
- package/bin/lib/modules/hook/throttle.js +7 -0
- package/bin/lib/modules/list.js +5 -0
- package/bin/lib/modules/mini/diff.js +6 -0
- package/bin/lib/modules/mini/http/index.js +153 -0
- package/bin/lib/modules/mini/http/interceptor.js +24 -0
- package/bin/lib/modules/mini/index.js +26 -1
- package/bin/lib/modules/time.js +13 -0
- package/bin/lib/util/index.js +36 -19
- package/bin/types/class/store.d.ts +0 -1
- package/bin/types/index.d.ts +7 -2
- package/bin/types/modules/convert.d.ts +7 -0
- package/bin/types/modules/hook/debounce.d.ts +7 -0
- package/bin/types/modules/hook/throttle.d.ts +7 -0
- package/bin/types/modules/mini/diff.d.ts +6 -0
- package/bin/types/modules/mini/http/index.d.ts +48 -0
- package/bin/types/modules/mini/http/interceptor.d.ts +6 -0
- package/bin/types/modules/mini/index.d.ts +2 -0
- package/bin/types/modules/time.d.ts +6 -0
- package/bin/types/typings/index.d.ts +4 -0
- package/bin/types/util/index.d.ts +8 -2
- package/package.json +1 -1
package/bin/ddan-js.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={gbkLength:function(e){let t=0;if(!e)return 0;for(let r=0;r<e.length;r++)e.charCodeAt(r)>127||94===e.charCodeAt(r)?t+=2:t++;return t},gbkCut:function(e,t){if(!e||t<=0)return"";let r=0,n=0;for(let i=0;i<e.length&&(e.charCodeAt(i)>127||94===e.charCodeAt(i)?r+=2:r++,!(r>t));i++)n=i;return e.substr(0,n+1)}};const t=(e,t="yyyy-MM-dd hh:mm:ss")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e;if(!r)return"";const n={};return n.yyyy=r.getFullYear(),n.yy=`${n.yyyy}`.substr(2),n.M=r.getMonth()+1,n.MM=(n.M<10?"0":"")+n.M,n.d=r.getDate(),n.dd=(n.d<10?"0":"")+n.d,n.h=r.getHours(),n.hh=(n.h<10?"0":"")+n.h,n.m=r.getMinutes(),n.mm=(n.m<10?"0":"")+n.m,n.s=r.getSeconds(),n.ss=(n.s<10?"0":"")+n.s,n.S=r.getMilliseconds(),n.SS=(n.S<10?"0":"")+n.S,n.SSS=n.S.toString().padStart(3,0),t.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>n[e]))};function r(){return Date.now()}var n={now:r,isToday:e=>e&&(new Date).toDateString()===new Date(e).toDateString(),format:t,parseTime:function({year:e=0,month:r=0,date:n=0,hour:i=0,minute:s=0,second:o=0}){const a=`${e||"yyyy"}/${r||"MM"}/${n||"dd"} ${i}:${s}:${o}`;return new Date(t(Date.now(),a)).getTime()},todayZero:()=>new Date(t(r(),"yyyy/MM/dd 00:00:00")).getTime(),oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3},i="object"==typeof global&&global&&global.Object===Object&&global,s="object"==typeof self&&self&&self.Object===Object&&self;const o=(i||s||Function("return this")()).Symbol,{toString:a,hasOwnProperty:u,propertyIsEnumerable:l}=Object.prototype,c=o?o.toStringTag:void 0;function f(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":c&&c in Object(e)?function(e){const t=u.call(e,c),r=e[c];let n=!1;try{e[c]=void 0,n=!0}catch(e){}const i=a.call(e);return n&&(t?e[c]=r:delete e[c]),i}(e):a.call(e)}var d={getTag:f,getType:function(e){return(f(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:a,hasOwnProperty:u,propertyIsEnumerable:l},p="[object Function]",y="[object GeneratorFunction]",h="[object AsyncFunction]",g=9007199254740991;const m=/^(?:0|[1-9]\d*)$/;function b(e){const t=typeof e;return null!=e&&("object"==t||"function"==t)}function v(e){return null!=e&&"object"==typeof e}const w=Array.isArray;function $(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=g}(e.length)&&!j(e)}function O(e){return v(e)&&$(e)}function j(e){var t=b(e)?d.getTag(e):"";return t===p||t===y||t===h}var A={is:function(e,t){return d.getTag(e)===`[object ${t}]`},isNumber:function(e){return"[object Number]"===d.getTag(e)},isString:function(e){return"string"==typeof e||!w(e)&&v(e)&&"[object String]"==d.getTag(e)},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isObject:b,isObjectLike:v,isSymbol:function(e){return"symbol"==typeof e||v(e)&&"[object Symbol]"===d.getTag(e)},isFunction:j,isArray:w,isArrayLikeObject:O,isIndex:function(e,t){return!!(t=null==t?g:t)&&("number"==typeof e||m.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:$,isPrototype:function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)},isArguments:function(e){return O(e)&&d.hasOwnProperty.call(e,"callee")&&(!d.propertyIsEnumerable.call(e,"callee")||"[object Arguments]"==d.toString.call(e))},isPromise:function(e){return"[object Promise]"===(b(e)?d.getTag(e):"")}};const q=NaN,F=/^\s+|\s+$/g,x=/^[-+]0x[0-9a-f]+$/i,S=/^0b[01]+$/i,k=/^0o[0-7]+$/i,E=parseInt,P=1/0,M=17976931348623157e292;function R(e){if("number"==typeof e)return e;if(A.isSymbol(e))return q;if(A.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=A.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(F,"");const t=S.test(e);return t||k.test(e)?E(e.slice(2),t?2:8):x.test(e)?q:+e}function D(e){return e?(e=R(e))===P||e===-P?(e<0?-1:1)*M:e==e?e:0:0===e?e:0}var T={toNumber:R,toFinite:D,toInteger:function(e){var t=D(e),r=t%1;return t==t?r?t-r:t:0}};const N="Expected a function",_=Math.max,I=Math.min;function C(e,t=0,r={}){var n,i,s,o,a,u,l=0,c=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError(N);function p(t){var r=n,s=i;return n=i=void 0,l=t,o=e.apply(s,r)}function y(e){var r=e-u;return void 0===u||r>=t||r<0||f&&e-l>=s}function h(){var e=Date.now();if(y(e))return g(e);a=setTimeout(h,function(e){var r=t-(e-u);return f?I(r,s-(e-l)):r}(e))}function g(e){return a=void 0,d&&n?p(e):(n=i=void 0,o)}function m(...e){var r=Date.now(),s=y(r);if(n=arguments,i=this,u=r,s){if(void 0===a)return function(e){return l=e,a=setTimeout(h,t),c?p(e):o}(u);if(f)return a=setTimeout(h,t),p(u)}return void 0===a&&(a=setTimeout(h,t)),o}return t=T.toNumber(t)||0,A.isObject(r)&&(c=!!r.leading,s=(f="maxWait"in r)?_(T.toNumber(r.maxWait)||0,t):s,d="trailing"in r?!!r.trailing:d),m.cancel=function(){void 0!==a&&clearTimeout(a),l=0,n=u=i=a=void 0},m.flush=function(){return void 0===a?o:g(Date.now())},m}class V{source;constructor(e){this.source=e}run(){let e;try{let t;return t=A.isFunction(this.source)?this.source():this.source,e=A.isPromise(t)?t:Promise.resolve(t),e.then((e=>[null,e])).catch((e=>[e,void 0]))}catch(e){return Promise.resolve([e,void 0])}}}var z={sleep:(e=1e3)=>new Promise((t=>{setTimeout(t,e)})),run:e=>new V(e).run(),debounce:C,throttle:function(e,t=0,r={}){var n=!1,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return A.isObject(r)&&(n=r.leading?!!r.leading:n,i=r.trailing?!!r.trailing:i),C(e,t,{leading:n,maxWait:t,trailing:i})}};var U={random:function(e){return Math.floor(Math.random()*e)},randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randomString:function(e,t=!1){e=e||32;const r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let i="";for(let t=0;t<e;t++)i+=r.charAt(Math.floor(62*Math.random()));return t?n.format(new Date,"yyyyMMddhhmmss")+i:i}};function L(e){return e!=e}function J(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}(t,(function(t){return e[t]}))}var W,Z,B=(W=Object.keys,Z=Object,function(e){return W(Z(e))}),H=Math.max;function Y(e,t){var r=A.isArray(e)||A.isArguments(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,i=!!n;for(var s in e)!t&&!d.hasOwnProperty.call(e,s)||i&&("length"==s||A.isIndex(s,n))||r.push(s);return r}const G=e=>{if(!e)return e;if("object"!=typeof e)return e;const t=Array.isArray(e)?[]:{};for(const r in e)e.hasOwnProperty(r)&&(t[r]=G(e[r]));return t};var K={...A,...d,includes:function(e,t,r,n){e=A.isArrayLike(e)?e:function(e){return e?J(e,function(e){return A.isArrayLike(e)?Y(e):function(e){if(!A.isPrototype(e))return B(e);var t=[];for(var r in Object(e))d.hasOwnProperty.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}(e)):[]}(e),r=r&&!n?T.toInteger(r):0;var i=e.length;return r<0&&(r=H(i+r,0)),A.isString(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}(e,L,r);for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}(e,t,r)>-1},merge:function(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e},compareArray:function(e,t){if(!Array.isArray(e)||!Array.isArray(t))return!1;if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;r++)if(e[r]!==t[r])return!1;return!0},copy:(e,t=[])=>{if(void 0===e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r)return r;if(Array.isArray(r)||!t||t.length<=0)return r;const n={};for(const e in r)t.includes(e)&&r.hasOwnProperty(e)&&(n[e]=r[e]);return n},clone:G};class Q{_map;constructor(){this._map=new Map}clear(){return this._map.clear(),this}on(e,t){if(!t)return this;let r=this._map.get(e);return r||(r=new Set,this._map.set(e,r)),r.add(t),this}emit(e,...t){const r=this._map.get(e);if(!r)return this;return[...r].forEach((e=>e(...t))),this}off(e="",t){if(!e)return this._map.clear(),this;if(!t)return this._map.delete(e.toString()),this;const r=this._map.get(e);return r?(r.delete(t),this):this}once(e,t){const r=(...n)=>{t(...n),this.off(e,r)};return this.on(e,r),this}has(e){return this._map.has(e)}}var X={groupBy:(e,t)=>e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{}),stepAction:function(e,t,r=100){if(!A.isFunction(t))return;if(!A.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let i=r+n,s=e.slice(n,i);t&&t(s),n=i}},skip:(e,t)=>{if(!A.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:(e,t,r=0)=>{if(!A.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const i=t+n;return e.slice(n,e.length<i?e.length:i)||[]},distinct:e=>!A.isArray(e)||e.length<=0?[]:[...new Set(e)]};const ee="[object Object]",te="[object Array]",re=e=>Object.prototype.toString.call(e),ne=(e,t,r=!1)=>{if(e===t)return;const n=re(e);if(n===re(t))if(n===te&&e.length>=t.length)for(let r=0;r<t.length;r++)ne(e[r],t[r]);else if(n===ee&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?ne(e[n],t[n]):e[n]=null},ie=(e,t,r,n="",i=!1)=>{if(e===t)return;const s=re(e),o=re(t);if(s===te&&o===s&&e.length>=t.length)for(let i=0;i<e.length;i++)ie(e[i],t[i],r,`${n}[${i}]`);else if(s===ee&&o===s&&(i||Object.keys(e).length>=Object.keys(t).length)){const i=Object.keys(e);for(let s of i){const i=e[s],o=t[s],a=re(i),u=re(o);if(i!==o)if(a===te&&u===a&&i.length>=o.length)for(let e=0;e<i.length;e++)ie(i[e],o[e],r,`${n?n+".":""}${s}[${e}]`);else if(a===ee&&u===a&&Object.keys(i).length>=Object.keys(o).length)for(let e in i)ie(i[e],o[e],r,`${n?n+".":""}${s}.${e}`);else r[`${n?n+".":""}${s}`]=i}}else r[n]=e};const se=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var oe={diff:function(e,t){const r={};return(e=>{if(re(e)===ee)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,i=r.length;for(let e=0;e<i-1;e++){const t=r[e];re(n[t])!==ee&&(n[t]={}),n=n[t]}n[r[i-1]]=e[t],delete e[t]}})(e),ne(e,t,!0),ie(e,t,r,"",!0),r},promixify:se,run:(e,t={})=>{if(e)return z.run(se(e)(t))},formatList:(e,t,r)=>(e||[]).reduce(((e,n,i)=>({...e,[`${r}[${t+i}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e)))};function ae(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const ue=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:i=!1}={}){t=t||"&",r=r||"=";const s={};if("string"!=typeof e||0===e.length)return s;const o=/\+/g,a=n||1e3;let u=(e=e.split(t)).length;a>0&&u>a&&(u=a);for(let t=0;t<u;++t){let n,a,u,l,c=e[t].replace(o,"%20"),f=c.indexOf(r);f>=0?(n=c.substr(0,f),a=c.substr(f+1)):(n=c,a=""),u=decodeURIComponent(n),l=decodeURIComponent(a),ae(s,u)&&i?Array.isArray(s[u])?s[u].push(l):s[u]=[s[u],l]:s[u]=l}return s},le=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},ce=function(e,{sep:t="&",eq:r="=",name:n=null,multiple:i=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const s=encodeURIComponent(le(n))+r;return i&&Array.isArray(e[n])?e[n].map((function(e){return s+encodeURIComponent(le(e))})).join(t):s+encodeURIComponent(le(e[n]))})).filter(Boolean).join(t):n?encodeURIComponent(le(n))+r+encodeURIComponent(le(e)):""};var fe={parse:ue,decode:ue,stringify:ce,encode:ce,useHttps:function(e){if(!e)return e;const t=e.trim();return"string"!=typeof e?e:t.indexOf("https")<0?t.replace("http","https"):t}};const de=/%[sdj%]/g;let pe=()=>{};function ye(e){if(!e||!e.length)return null;const t={};return e.forEach((e=>{const r=e.field;t[r]=t[r]||[],t[r].push(e)})),t}function he(e,...t){let r=0;const n=t.length;if("function"==typeof e)return e.apply(null,t);if("string"==typeof e){return e.replace(de,(e=>{if("%%"===e)return"%";if(r>=n)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}))}return e}function ge(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function me(e,t,r){let n=0;const i=e.length;!function s(o){if(o&&o.length)return void r(o);const a=n;n+=1,a<i?t(e[a],s):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(pe=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class be extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function ve(e,t,r,n,i){if(t.first){const t=new Promise(((t,s)=>{const o=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);me(o,r,(e=>(n(e),e.length?s(new be(e,ye(e))):t(i))))}));return t.catch((e=>e)),t}const s=!0===t.firstFields?Object.keys(e):t.firstFields||[],o=Object.keys(e),a=o.length;let u=0;const l=[],c=new Promise(((t,c)=>{const f=e=>{if(l.push.apply(l,e),u++,u===a)return n(l),l.length?c(new be(l,ye(l))):t(i)};o.length||(n(l),t(i)),o.forEach((t=>{const n=e[t];-1!==s.indexOf(t)?me(n,r,f):function(e,t,r){const n=[];let i=0;const s=e.length;function o(e){n.push(...e||[]),i++,i===s&&r(n)}e.forEach((e=>{t(e,o)}))}(n,r,f)}))}));return c.catch((e=>e)),c}function we(e,t){return r=>{let n;return n=e.fullFields?function(e,t){let r=e;for(let e=0;e<t.length;e++){if(null==r)return r;r=r[t[e]]}return r}(t,e.fullFields):t[r.field||e.fullField],(i=r)&&void 0!==i.message?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:"function"==typeof r?r():r,fieldValue:n,field:r.field||e.fullField};var i}}function $e(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e}const Oe=(e,t,r,n,i,s)=>{!e.required||r.hasOwnProperty(e.field||"")&&!ge(t,s||e.type)||n.push(he(i.messages.required,e.fullField))};let je;const Ae=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,qe=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Fe={integer:e=>Fe.number(e)&&parseInt(e,10)===e,float:e=>Fe.number(e)&&!Fe.integer(e),array:e=>Array.isArray(e),regexp(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:e=>"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime()),number:e=>!isNaN(e)&&"number"==typeof e,object:e=>"object"==typeof e&&!Fe.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(Ae),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(je)return je;const e="[a-fA-F\\d:]",t=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${e})|(?<=${e})(?=\\s|$))`:"",r="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fA-F\\d]{1,4}",i=`\n(?:\n(?:${n}:){7}(?:${n}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${n}:){6}(?:${r}|:${n}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${n}:){5}(?::${r}|(?::${n}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${n}:){4}(?:(?::${n}){0,1}:${r}|(?::${n}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${n}:){3}(?:(?::${n}){0,2}:${r}|(?::${n}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${n}:){2}(?:(?::${n}){0,3}:${r}|(?::${n}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${n}:){1}(?:(?::${n}){0,4}:${r}|(?::${n}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${n}){0,5}:${r}|(?::${n}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),s=new RegExp(`(?:^${r}$)|(?:^${i}$)`),o=new RegExp(`^${r}$`),a=new RegExp(`^${i}$`),u=e=>e&&e.exact?s:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${i}${t(e)})`,"g");u.v4=e=>e&&e.exact?o:new RegExp(`${t(e)}${r}${t(e)}`,"g"),u.v6=e=>e&&e.exact?a:new RegExp(`${t(e)}${i}${t(e)}`,"g");const l=u.v4().source,c=u.v6().source;return je=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${l}|${c}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)`,"i"),je})()),hex:e=>"string"==typeof e&&!!e.match(qe)},xe="enum";var Se={required:Oe,whitespace:(e,t,r,n,i)=>{(/^\s+$/.test(t)||""===t)&&n.push(he(i.messages.whitespace,e.fullField))},type:(e,t,r,n,i)=>{if(e.required&&void 0===t)return void Oe(e,t,r,n,i);const s=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(s)>-1?Fe[s](t)||n.push(he(i.messages.types[s],e.fullField,e.type)):s&&typeof t!==e.type&&n.push(he(i.messages.types[s],e.fullField,e.type))},range:(e,t,r,n,i)=>{const s="number"==typeof e.len,o="number"==typeof e.min,a="number"==typeof e.max,u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let l=t,c="";const f="number"==typeof t,d="string"==typeof t,p=Array.isArray(t);if(f?c="number":d?c="string":p&&(c="array"),!c)return!1;p&&(l=t.length),d&&(l=t.replace(u,"_").length),s?l!==e.len&&n.push(he(i.messages[c].len,e.fullField,e.len)):o&&!a&&l<e.min?n.push(he(i.messages[c].min,e.fullField,e.min)):a&&!o&&l>e.max?n.push(he(i.messages[c].max,e.fullField,e.max)):o&&a&&(l<e.min||l>e.max)&&n.push(he(i.messages[c].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,i)=>{e[xe]=Array.isArray(e[xe])?e[xe]:[],-1===e[xe].indexOf(t)&&n.push(he(i.messages[xe],e.fullField,e[xe].join(", ")))},pattern:(e,t,r,n,i)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const ke=(e,t,r,n,i)=>{const s=e.type,o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,s)&&!e.required)return r();Se.required(e,t,n,o,i,s),ge(t,s)||Se.type(e,t,n,o,i)}r(o)};var Ee={string:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(ge(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i,"string"),ge(t,"string")||(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i),Se.pattern(e,t,n,s,i),!0===e.whitespace&&Se.whitespace(e,t,n,s,i))}r(s)},method:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},number:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},boolean:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},regexp:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),ge(t)||Se.type(e,t,n,s,i)}r(s)},integer:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},float:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},array:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Se.required(e,t,n,s,i,"array"),null!=t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},object:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},enum:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.enum(e,t,n,s,i)}r(s)},pattern:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i),ge(t,"string")||Se.pattern(e,t,n,s,i)}r(s)},date:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,"date")&&!e.required)return r();if(Se.required(e,t,n,s,i),!ge(t,"date")){let r;r=t instanceof Date?t:new Date(t),Se.type(e,r,n,s,i),r&&Se.range(e,r.getTime(),n,s,i)}}r(s)},url:ke,hex:ke,email:ke,required:(e,t,r,n,i)=>{const s=[],o=Array.isArray(t)?"array":typeof t;Se.required(e,t,n,s,i,o),r(s)},any:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i)}r(s)}};function Pe(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone(){const e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}const Me=Pe();class Re{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");Ee[e]=t};static warning=pe;static messages=Me;static validators=Ee;rules={};_messages=Me;constructor(e){this.define(e)}define(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach((t=>{const r=e[t];this.rules[t]=Array.isArray(r)?r:[r]}))}messages(e){return e&&(this._messages=$e(Pe(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,i=t,s=r;if("function"==typeof i&&(s=i,i={}),!this.rules||0===Object.keys(this.rules).length)return s&&s(null,n),Promise.resolve(n);if(i.messages){let e=this.messages();e===Me&&(e=Pe()),$e(e,i.messages),i.messages=e}else i.messages=this.messages();const o={};(i.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let i=n[t];r.forEach((r=>{let s=r;"function"==typeof s.transform&&(n===e&&(n={...n}),i=n[t]=s.transform(i)),s="function"==typeof s?{validator:s}:{...s},s.validator=this.getValidationMethod(s),s.validator&&(s.field=t,s.fullField=s.fullField||t,s.type=this.getType(s),o[t]=o[t]||[],o[t].push({rule:s,value:i,source:n,field:t}))}))}));const a={};return ve(o,i,((e,t)=>{const r=e.rule;let s,o=!("object"!==r.type&&"array"!==r.type||"object"!=typeof r.fields&&"object"!=typeof r.defaultField);function u(e,t){return{...t,fullField:`${r.fullField}.${e}`,fullFields:r.fullFields?[...r.fullFields,e]:[e]}}function l(s=[]){let l=Array.isArray(s)?s:[s];!0===i.suppressWarning&&l.length&&Re.warning("async-validator:",l),l.length&&void 0!==r.message&&(l=[].concat(r.message));let c=l.map(we(r,n));if(i.first&&c.length)return a[r.field]=1,t(c);if(o){if(r.required&&!e.value)return void 0!==r.message?c=[].concat(r.message).map(we(r,n)):i.error&&(c=[i.error(r,he(i.messages.required,r.field))]),t(c);let s={};r.defaultField&&Object.keys(e.value).map((e=>{s[e]=r.defaultField})),s={...s,...e.rule.fields};const o={};Object.keys(s).forEach((e=>{const t=s[e],r=Array.isArray(t)?t:[t];o[e]=r.map(u.bind(null,e))}));const a=new Re(o);a.messages(i.messages),e.rule.options&&(e.rule.options.messages=i.messages,e.rule.options.error=i.error),a.validate(e.value,e.rule.options||i,(e=>{const r=[];c&&c.length&&r.push(...c),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(c)}if(o=o&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)s=r.asyncValidator(r,e.value,l,e.source,i);else if(r.validator){try{s=r.validator(r,e.value,l,e.source,i)}catch(e){console.error?.(e),i.suppressValidatorError||setTimeout((()=>{throw e}),0),l(e.message)}!0===s?l():!1===s?l("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):s instanceof Array?l(s):s instanceof Error&&l(s.message)}s&&s.then&&s.then((()=>l()),(e=>l(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)i=e[r],Array.isArray(i)?t=t.concat(...i):t.push(i);var i;t.length?(r=ye(t),s(t,r)):s(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Ee.hasOwnProperty(e.type))throw new Error(he("Unknown rule type %s",e.type));return e.type||"string"}getValidationMethod(e){if("function"==typeof e.validator)return e.validator;const t=Object.keys(e),r=t.indexOf("message");return-1!==r&&t.splice(r,1),1===t.length&&"required"===t[0]?Ee.required:Ee[this.getType(e)]||void 0}}function De(e){return new Re(e)}var Te={validateId:function(e){return!!e&&(!(e.length<6)&&!!/^[A-Za-z0-9_-]+$/.test(e))},validatePhone:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)},validator:De,validate:function(e,t,r={},n=(()=>{})){return z.run(De(e).validate(t,r,n))}};class Ne{key;storage;fields=[];constructor(e){this.key=e?.key||"",this.fields=e?.fields||[],this.storage=e?.storage||void 0}save=z.debounce((e=>{if(this.key&&this.storage)try{const{setItem:t,setStorageSync:r}=this.storage;if(r)return r(this.key,e);if(t)return t(this.key,JSON.stringify(e))}catch(e){console.error("persit save ",e)}}));read(){if(this.key&&this.storage)try{const{getItem:e,getStorageSync:t}=this.storage;if(t)return t(this.key);if(e){const t=e(this.key);return JSON.parse(t)}}catch(e){return void console.error("persit read ",e)}}handleSave(e,t){if(!this.fields.includes(t)||!e)return;const r=K.copy(e,this.fields);this.save(r)}}class _e extends Q{setters;getters;actions;persist;constructor(){super(),this.getters={},this.setters={},this.actions={}}async dispatch(e,t=void 0){const r=Reflect.get(this.actions,e);if(!K.isFunction(r))return;const[,n]=await z.run(r(this,t));return n}async query(e){const t=Reflect.get(this,e);let r;return r=null!=t&&""!==t?K.copy(t):await this.dispatch(e),r}change=(e,t,r)=>{if(!e.persist)return;const n=e.persist.fields||[];if(!n.includes(t))return;const i=K.copy(e,n);e.persist.save(i)}}var Ie={gbk:e,time:n,hook:z,math:U,util:K,list:X,mini:oe,url:fe,rule:Te,event:Q,store:_e,storeRef:(e,t)=>{const r=Object.assign(new _e,e||{});r.__persist=new Ne(t||r.persist);const n=r.__persist.read(),i=n?Object.assign(r,n):r;return new Proxy(i,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return K.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const i=Reflect.get(e.setters,t);if(K.isFunction(i)&&!i(e,r))return!0;const s=Reflect.set(e,t,r,n);return s&&(e.emit(t.toString(),r),e?.__persist?.handleSave(e,t.toString())),s},has:(e,t)=>Reflect.has(e,t)})},persist:Ne,persistConfig:(e,t,r)=>({key:e,fields:t,storage:r})};export{Ie as default};
|
|
1
|
+
var e={gbkLength:function(e){let t=0;if(!e)return 0;for(let r=0;r<e.length;r++)e.charCodeAt(r)>127||94===e.charCodeAt(r)?t+=2:t++;return t},gbkCut:function(e,t){if(!e||t<=0)return"";let r=0,n=0;for(let s=0;s<e.length&&(e.charCodeAt(s)>127||94===e.charCodeAt(s)?r+=2:r++,!(r>t));s++)n=s;return e.substr(0,n+1)}};const t=(e,t="yyyy-MM-dd hh:mm:ss")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e;if(!r)return"";const n={};return n.yyyy=r.getFullYear(),n.yy=`${n.yyyy}`.substr(2),n.M=r.getMonth()+1,n.MM=(n.M<10?"0":"")+n.M,n.d=r.getDate(),n.dd=(n.d<10?"0":"")+n.d,n.h=r.getHours(),n.hh=(n.h<10?"0":"")+n.h,n.m=r.getMinutes(),n.mm=(n.m<10?"0":"")+n.m,n.s=r.getSeconds(),n.ss=(n.s<10?"0":"")+n.s,n.S=r.getMilliseconds(),n.SS=(n.S<10?"0":"")+n.S,n.SSS=n.S.toString().padStart(3,0),t.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>n[e]))};function r(){return Date.now()}var n={now:r,isToday:e=>e&&(new Date).toDateString()===new Date(e).toDateString(),format:t,parseTime:function({year:e=0,month:r=0,date:n=0,hour:s=0,minute:i=0,second:o=0}){const a=`${e||"yyyy"}/${r||"MM"}/${n||"dd"} ${s}:${i}:${o}`;return new Date(t(Date.now(),a)).getTime()},todayZero:()=>new Date(t(r(),"yyyy/MM/dd 00:00:00")).getTime(),oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3},s="object"==typeof global&&global&&global.Object===Object&&global,i="object"==typeof self&&self&&self.Object===Object&&self;const o=(s||i||Function("return this")()).Symbol,{toString:a,hasOwnProperty:u,propertyIsEnumerable:c}=Object.prototype,l=o?o.toStringTag:void 0;function f(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":l&&l in Object(e)?function(e){const t=u.call(e,l),r=e[l];let n=!1;try{e[l]=void 0,n=!0}catch(e){}const s=a.call(e);return n&&(t?e[l]=r:delete e[l]),s}(e):a.call(e)}var d={getTag:f,getType:function(e){return(f(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:a,hasOwnProperty:u,propertyIsEnumerable:c},h="[object Function]",p="[object GeneratorFunction]",y="[object AsyncFunction]",g=9007199254740991;const m=/^(?:0|[1-9]\d*)$/;function b(e){const t=typeof e;return null!=e&&("object"==t||"function"==t)}function v(e){return null!=e&&"object"==typeof e}const w=Array.isArray;function q(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=g}(e.length)&&!$(e)}function O(e){return v(e)&&q(e)}function $(e){var t=b(e)?d.getTag(e):"";return t===h||t===p||t===y}var j={is:function(e,t){return d.getTag(e)===`[object ${t}]`},isNumber:function(e){return"[object Number]"===d.getTag(e)},isString:function(e){return"string"==typeof e||!w(e)&&v(e)&&"[object String]"==d.getTag(e)},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isObject:b,isObjectLike:v,isSymbol:function(e){return"symbol"==typeof e||v(e)&&"[object Symbol]"===d.getTag(e)},isFunction:$,isArray:w,isArrayLikeObject:O,isIndex:function(e,t){return!!(t=null==t?g:t)&&("number"==typeof e||m.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:q,isPrototype:function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)},isArguments:function(e){return O(e)&&d.hasOwnProperty.call(e,"callee")&&(!d.propertyIsEnumerable.call(e,"callee")||"[object Arguments]"==d.toString.call(e))},isPromise:function(e){return"[object Promise]"===(b(e)?d.getTag(e):"")}};const A=NaN,F=/^\s+|\s+$/g,k=/^[-+]0x[0-9a-f]+$/i,S=/^0b[01]+$/i,x=/^0o[0-7]+$/i,E=parseInt,R=1/0,P=17976931348623157e292;function T(e){if("number"==typeof e)return e;if(j.isSymbol(e))return A;if(j.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=j.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(F,"");const t=S.test(e);return t||x.test(e)?E(e.slice(2),t?2:8):k.test(e)?A:+e}function D(e){return e?(e=T(e))===R||e===-R?(e<0?-1:1)*P:e==e?e:0:0===e?e:0}var I={toNumber:T,toFinite:D,toInteger:function(e){var t=D(e),r=t%1;return t==t?r?t-r:t:0}};const M="Expected a function",C=Math.max,N=Math.min;function _(e,t=0,r={}){var n,s,i,o,a,u,c=0,l=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError(M);function h(t){var r=n,i=s;return n=s=void 0,c=t,o=e.apply(i,r)}function p(e){var r=e-u;return void 0===u||r>=t||r<0||f&&e-c>=i}function y(){var e=Date.now();if(p(e))return g(e);a=setTimeout(y,function(e){var r=t-(e-u);return f?N(r,i-(e-c)):r}(e))}function g(e){return a=void 0,d&&n?h(e):(n=s=void 0,o)}function m(...e){var r=Date.now(),i=p(r);if(n=arguments,s=this,u=r,i){if(void 0===a)return function(e){return c=e,a=setTimeout(y,t),l?h(e):o}(u);if(f)return a=setTimeout(y,t),h(u)}return void 0===a&&(a=setTimeout(y,t)),o}return t=I.toNumber(t)||0,j.isObject(r)&&(l=!!r.leading,i=(f="maxWait"in r)?C(I.toNumber(r.maxWait)||0,t):i,d="trailing"in r?!!r.trailing:d),m.cancel=function(){void 0!==a&&clearTimeout(a),c=0,n=u=s=a=void 0},m.flush=function(){return void 0===a?o:g(Date.now())},m}class L{source;constructor(e){this.source=e}run(){let e;try{let t;return t=j.isFunction(this.source)?this.source():this.source,e=j.isPromise(t)?t:Promise.resolve(t),e.then((e=>[null,e])).catch((e=>[e,void 0]))}catch(e){return Promise.resolve([e,void 0])}}}var U={sleep:(e=1e3)=>new Promise((t=>{setTimeout(t,e)})),run:e=>new L(e).run(),debounce:_,throttle:function(e,t=0,r={}){var n=!1,s=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return j.isObject(r)&&(n=r.leading?!!r.leading:n,s=r.trailing?!!r.trailing:s),_(e,t,{leading:n,maxWait:t,trailing:s})}};var V={random:function(e){return Math.floor(Math.random()*e)},randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randomString:function(e,t=!1){e=e||32;const r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let s="";for(let t=0;t<e;t++)s+=r.charAt(Math.floor(62*Math.random()));return t?n.format(new Date,"yyyyMMddhhmmss")+s:s}};function J(e){return e!=e}function z(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,s=Array(n);++r<n;)s[r]=t(e[r],r,e);return s}(t,(function(t){return e[t]}))}var B,H,W=(B=Object.keys,H=Object,function(e){return B(H(e))}),Z=Math.max;function Y(e,t){var r=j.isArray(e)||j.isArguments(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,s=!!n;for(var i in e)!t&&!d.hasOwnProperty.call(e,i)||s&&("length"==i||j.isIndex(i,n))||r.push(i);return r}const G=e=>{if(!e)return e;if("object"!=typeof e)return e;const t=Array.isArray(e)?[]:{};for(const r in e)e.hasOwnProperty(r)&&(t[r]=G(e[r]));return t};var K={...j,...d,includes:function(e,t,r,n){e=j.isArrayLike(e)?e:function(e){return e?z(e,function(e){return j.isArrayLike(e)?Y(e):function(e){if(!j.isPrototype(e))return W(e);var t=[];for(var r in Object(e))d.hasOwnProperty.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}(e)):[]}(e),r=r&&!n?I.toInteger(r):0;var s=e.length;return r<0&&(r=Z(s+r,0)),j.isString(e)?r<=s&&e.indexOf(t,r)>-1:!!s&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var s=e.length,i=r+(n?1:-1);n?i--:++i<s;)if(t(e[i],i,e))return i;return-1}(e,J,r);for(var n=r-1,s=e.length;++n<s;)if(e[n]===t)return n;return-1}(e,t,r)>-1},merge:function(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e},compareArray:function(e,t){if(!Array.isArray(e)||!Array.isArray(t))return!1;if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;r++)if(e[r]!==t[r])return!1;return!0},copy:(e,t=[])=>{if(void 0===e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r)return r;if(Array.isArray(r)||!t||t.length<=0)return r;const n={};for(const e in r)t.includes(e)&&r.hasOwnProperty(e)&&(n[e]=r[e]);return n},clone:G};class Q{_map;constructor(){this._map=new Map}clear(){return this._map.clear(),this}on(e,t){if(!t)return this;let r=this._map.get(e);return r||(r=new Set,this._map.set(e,r)),r.add(t),this}emit(e,...t){const r=this._map.get(e);if(!r)return this;return[...r].forEach((e=>e(...t))),this}off(e="",t){if(!e)return this._map.clear(),this;if(!t)return this._map.delete(e.toString()),this;const r=this._map.get(e);return r?(r.delete(t),this):this}once(e,t){const r=(...n)=>{t(...n),this.off(e,r)};return this.on(e,r),this}has(e){return this._map.has(e)}}var X={groupBy:(e,t)=>e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{}),stepAction:function(e,t,r=100){if(!j.isFunction(t))return;if(!j.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let s=r+n,i=e.slice(n,s);t&&t(i),n=s}},skip:(e,t)=>{if(!j.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:(e,t,r=0)=>{if(!j.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const s=t+n;return e.slice(n,e.length<s?e.length:s)||[]},distinct:e=>!j.isArray(e)||e.length<=0?[]:[...new Set(e)]};const ee="[object Object]",te="[object Array]",re=e=>Object.prototype.toString.call(e),ne=(e,t,r=!1)=>{if(e===t)return;const n=re(e);if(n===re(t))if(n===te&&e.length>=t.length)for(let r=0;r<t.length;r++)ne(e[r],t[r]);else if(n===ee&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?ne(e[n],t[n]):e[n]=null},se=(e,t,r,n="",s=!1)=>{if(e===t)return;const i=re(e),o=re(t);if(i===te&&o===i&&e.length>=t.length)for(let s=0;s<e.length;s++)se(e[s],t[s],r,`${n}[${s}]`);else if(i===ee&&o===i&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let i of s){const s=e[i],o=t[i],a=re(s),u=re(o);if(s!==o)if(a===te&&u===a&&s.length>=o.length)for(let e=0;e<s.length;e++)se(s[e],o[e],r,`${n?n+".":""}${i}[${e}]`);else if(a===ee&&u===a&&Object.keys(s).length>=Object.keys(o).length)for(let e in s)se(s[e],o[e],r,`${n?n+".":""}${i}.${e}`);else r[`${n?n+".":""}${i}`]=s}}else r[n]=e};class ie{list=[];constructor(){this.invoke=this.invoke.bind(this)}use(e){this.list=this.list.concat(e)}invoke(e){return this.list.reduce(((e,t)=>e.then((e=>t(e)))),Promise.resolve(e)).catch((e=>"REFETCH"===e.sig?Promise.resolve(e.result):Promise.reject(e)))}}class oe{reqConfig={};handleEncrypt;handleDecrypt;handleToast;handleRequest;interceptors={request:new ie,response:new ie};static blockId="blockid";static requestLock={};constructor(e){const{reqConfig:t={},requestEncrypt:r,responseDecrypt:n,handleToast:s,handleRequest:i}=e;this.reqConfig=t,this.handleEncrypt=r,this.handleDecrypt=n,this.handleToast=s,this.handleRequest=i}lockR(e,t){oe.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete oe.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}_fetch(e,t){let r=e;return t&&this.handleEncrypt&&(r=this.handleEncrypt(e)),new Promise(((e,n)=>{this.handleRequest({...r,success:r=>{let n=r;t&&this.handleDecrypt&&(n=this.handleDecrypt(r)),e(n)},fail:e=>{n(e)}})}))}async request(e,t){const r=JSON.parse(JSON.stringify(this.reqConfig[e])),{config:n,...s}=await this.interceptors.request.invoke({url:r.url,data:t||{},header:{"content-type":"application/json"},method:r.method?r.method:"POST",responseType:"text",config:r});let i;try{if("block"===n.model)this.lockR(oe.blockId,(()=>this._fetch(s,n.hasEncrypt))),i=await oe.requestLock[oe.blockId].request;else if(oe.requestLock[oe.blockId]&&oe.requestLock[oe.blockId].lock&&await oe.requestLock[oe.blockId].request,"debounce"===n.model||"debounceAgainstUrl"===n.model){let e;e="debounceAgainstUrl"===n.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),oe.requestLock[e]||this.lockR(e,(()=>this._fetch(s,n.hasEncrypt))),i=await oe.requestLock[e].request,this.unlockR(e)}else i=await this._fetch(s,n.hasEncrypt)}catch(e){this.handleToast&&this.handleToast({title:JSON.stringify(e),icon:"none"})}return this.interceptors.response.invoke({res:i,reqId:this.getIdFromReq(s),refetch:()=>({sig:"REFETCH",result:this.request(e,t||{})})})}}const ae=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var ue={diff:function(e,t){const r={};return(e=>{if(re(e)===ee)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,s=r.length;for(let e=0;e<s-1;e++){const t=r[e];re(n[t])!==ee&&(n[t]={}),n=n[t]}n[r[s-1]]=e[t],delete e[t]}})(e),ne(e,t,!0),se(e,t,r,"",!0),r},promixify:ae,run:(e,t={})=>{if(e)return U.run(ae(e)(t))},formatList:(e,t,r)=>(e||[]).reduce(((e,n,s)=>({...e,[`${r}[${t+s}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e))),http:oe};function ce(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const le=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:s=!1}={}){t=t||"&",r=r||"=";const i={};if("string"!=typeof e||0===e.length)return i;const o=/\+/g,a=n||1e3;let u=(e=e.split(t)).length;a>0&&u>a&&(u=a);for(let t=0;t<u;++t){let n,a,u,c,l=e[t].replace(o,"%20"),f=l.indexOf(r);f>=0?(n=l.substr(0,f),a=l.substr(f+1)):(n=l,a=""),u=decodeURIComponent(n),c=decodeURIComponent(a),ce(i,u)&&s?Array.isArray(i[u])?i[u].push(c):i[u]=[i[u],c]:i[u]=c}return i},fe=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},de=function(e,{sep:t="&",eq:r="=",name:n=null,multiple:s=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const i=encodeURIComponent(fe(n))+r;return s&&Array.isArray(e[n])?e[n].map((function(e){return i+encodeURIComponent(fe(e))})).join(t):i+encodeURIComponent(fe(e[n]))})).filter(Boolean).join(t):n?encodeURIComponent(fe(n))+r+encodeURIComponent(fe(e)):""};var he={parse:le,decode:le,stringify:de,encode:de,useHttps:function(e){if(!e)return e;const t=e.trim();return"string"!=typeof e?e:t.indexOf("https")<0?t.replace("http","https"):t}};const pe=/%[sdj%]/g;let ye=()=>{};function ge(e){if(!e||!e.length)return null;const t={};return e.forEach((e=>{const r=e.field;t[r]=t[r]||[],t[r].push(e)})),t}function me(e,...t){let r=0;const n=t.length;if("function"==typeof e)return e.apply(null,t);if("string"==typeof e){return e.replace(pe,(e=>{if("%%"===e)return"%";if(r>=n)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}))}return e}function be(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function ve(e,t,r){let n=0;const s=e.length;!function i(o){if(o&&o.length)return void r(o);const a=n;n+=1,a<s?t(e[a],i):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(ye=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class we extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function qe(e,t,r,n,s){if(t.first){const t=new Promise(((t,i)=>{const o=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);ve(o,r,(e=>(n(e),e.length?i(new we(e,ge(e))):t(s))))}));return t.catch((e=>e)),t}const i=!0===t.firstFields?Object.keys(e):t.firstFields||[],o=Object.keys(e),a=o.length;let u=0;const c=[],l=new Promise(((t,l)=>{const f=e=>{if(c.push.apply(c,e),u++,u===a)return n(c),c.length?l(new we(c,ge(c))):t(s)};o.length||(n(c),t(s)),o.forEach((t=>{const n=e[t];-1!==i.indexOf(t)?ve(n,r,f):function(e,t,r){const n=[];let s=0;const i=e.length;function o(e){n.push(...e||[]),s++,s===i&&r(n)}e.forEach((e=>{t(e,o)}))}(n,r,f)}))}));return l.catch((e=>e)),l}function Oe(e,t){return r=>{let n;return n=e.fullFields?function(e,t){let r=e;for(let e=0;e<t.length;e++){if(null==r)return r;r=r[t[e]]}return r}(t,e.fullFields):t[r.field||e.fullField],(s=r)&&void 0!==s.message?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:"function"==typeof r?r():r,fieldValue:n,field:r.field||e.fullField};var s}}function $e(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e}const je=(e,t,r,n,s,i)=>{!e.required||r.hasOwnProperty(e.field||"")&&!be(t,i||e.type)||n.push(me(s.messages.required,e.fullField))};let Ae;const Fe=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,ke=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Se={integer:e=>Se.number(e)&&parseInt(e,10)===e,float:e=>Se.number(e)&&!Se.integer(e),array:e=>Array.isArray(e),regexp(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:e=>"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime()),number:e=>!isNaN(e)&&"number"==typeof e,object:e=>"object"==typeof e&&!Se.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(Fe),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(Ae)return Ae;const e="[a-fA-F\\d:]",t=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${e})|(?<=${e})(?=\\s|$))`:"",r="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fA-F\\d]{1,4}",s=`\n(?:\n(?:${n}:){7}(?:${n}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${n}:){6}(?:${r}|:${n}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${n}:){5}(?::${r}|(?::${n}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${n}:){4}(?:(?::${n}){0,1}:${r}|(?::${n}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${n}:){3}(?:(?::${n}){0,2}:${r}|(?::${n}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${n}:){2}(?:(?::${n}){0,3}:${r}|(?::${n}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${n}:){1}(?:(?::${n}){0,4}:${r}|(?::${n}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${n}){0,5}:${r}|(?::${n}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),i=new RegExp(`(?:^${r}$)|(?:^${s}$)`),o=new RegExp(`^${r}$`),a=new RegExp(`^${s}$`),u=e=>e&&e.exact?i:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${s}${t(e)})`,"g");u.v4=e=>e&&e.exact?o:new RegExp(`${t(e)}${r}${t(e)}`,"g"),u.v6=e=>e&&e.exact?a:new RegExp(`${t(e)}${s}${t(e)}`,"g");const c=u.v4().source,l=u.v6().source;return Ae=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${c}|${l}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)`,"i"),Ae})()),hex:e=>"string"==typeof e&&!!e.match(ke)},xe="enum";var Ee={required:je,whitespace:(e,t,r,n,s)=>{(/^\s+$/.test(t)||""===t)&&n.push(me(s.messages.whitespace,e.fullField))},type:(e,t,r,n,s)=>{if(e.required&&void 0===t)return void je(e,t,r,n,s);const i=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(i)>-1?Se[i](t)||n.push(me(s.messages.types[i],e.fullField,e.type)):i&&typeof t!==e.type&&n.push(me(s.messages.types[i],e.fullField,e.type))},range:(e,t,r,n,s)=>{const i="number"==typeof e.len,o="number"==typeof e.min,a="number"==typeof e.max,u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let c=t,l="";const f="number"==typeof t,d="string"==typeof t,h=Array.isArray(t);if(f?l="number":d?l="string":h&&(l="array"),!l)return!1;h&&(c=t.length),d&&(c=t.replace(u,"_").length),i?c!==e.len&&n.push(me(s.messages[l].len,e.fullField,e.len)):o&&!a&&c<e.min?n.push(me(s.messages[l].min,e.fullField,e.min)):a&&!o&&c>e.max?n.push(me(s.messages[l].max,e.fullField,e.max)):o&&a&&(c<e.min||c>e.max)&&n.push(me(s.messages[l].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,s)=>{e[xe]=Array.isArray(e[xe])?e[xe]:[],-1===e[xe].indexOf(t)&&n.push(me(s.messages[xe],e.fullField,e[xe].join(", ")))},pattern:(e,t,r,n,s)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(me(s.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(me(s.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const Re=(e,t,r,n,s)=>{const i=e.type,o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t,i)&&!e.required)return r();Ee.required(e,t,n,o,s,i),be(t,i)||Ee.type(e,t,n,o,s)}r(o)};var Pe={string:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(be(t,"string")&&!e.required)return r();Ee.required(e,t,n,i,s,"string"),be(t,"string")||(Ee.type(e,t,n,i,s),Ee.range(e,t,n,i,s),Ee.pattern(e,t,n,i,s),!0===e.whitespace&&Ee.whitespace(e,t,n,i,s))}r(i)},method:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),void 0!==t&&Ee.type(e,t,n,i,s)}r(i)},number:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),void 0!==t&&(Ee.type(e,t,n,i,s),Ee.range(e,t,n,i,s))}r(i)},boolean:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),void 0!==t&&Ee.type(e,t,n,i,s)}r(i)},regexp:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),be(t)||Ee.type(e,t,n,i,s)}r(i)},integer:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),void 0!==t&&(Ee.type(e,t,n,i,s),Ee.range(e,t,n,i,s))}r(i)},float:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),void 0!==t&&(Ee.type(e,t,n,i,s),Ee.range(e,t,n,i,s))}r(i)},array:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Ee.required(e,t,n,i,s,"array"),null!=t&&(Ee.type(e,t,n,i,s),Ee.range(e,t,n,i,s))}r(i)},object:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),void 0!==t&&Ee.type(e,t,n,i,s)}r(i)},enum:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),void 0!==t&&Ee.enum(e,t,n,i,s)}r(i)},pattern:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t,"string")&&!e.required)return r();Ee.required(e,t,n,i,s),be(t,"string")||Ee.pattern(e,t,n,i,s)}r(i)},date:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t,"date")&&!e.required)return r();if(Ee.required(e,t,n,i,s),!be(t,"date")){let r;r=t instanceof Date?t:new Date(t),Ee.type(e,r,n,i,s),r&&Ee.range(e,r.getTime(),n,i,s)}}r(i)},url:Re,hex:Re,email:Re,required:(e,t,r,n,s)=>{const i=[],o=Array.isArray(t)?"array":typeof t;Ee.required(e,t,n,i,s,o),r(i)},any:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s)}r(i)}};function Te(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone(){const e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}const De=Te();class Ie{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");Pe[e]=t};static warning=ye;static messages=De;static validators=Pe;rules={};_messages=De;constructor(e){this.define(e)}define(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach((t=>{const r=e[t];this.rules[t]=Array.isArray(r)?r:[r]}))}messages(e){return e&&(this._messages=$e(Te(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,s=t,i=r;if("function"==typeof s&&(i=s,s={}),!this.rules||0===Object.keys(this.rules).length)return i&&i(null,n),Promise.resolve(n);if(s.messages){let e=this.messages();e===De&&(e=Te()),$e(e,s.messages),s.messages=e}else s.messages=this.messages();const o={};(s.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let s=n[t];r.forEach((r=>{let i=r;"function"==typeof i.transform&&(n===e&&(n={...n}),s=n[t]=i.transform(s)),i="function"==typeof i?{validator:i}:{...i},i.validator=this.getValidationMethod(i),i.validator&&(i.field=t,i.fullField=i.fullField||t,i.type=this.getType(i),o[t]=o[t]||[],o[t].push({rule:i,value:s,source:n,field:t}))}))}));const a={};return qe(o,s,((e,t)=>{const r=e.rule;let i,o=!("object"!==r.type&&"array"!==r.type||"object"!=typeof r.fields&&"object"!=typeof r.defaultField);function u(e,t){return{...t,fullField:`${r.fullField}.${e}`,fullFields:r.fullFields?[...r.fullFields,e]:[e]}}function c(i=[]){let c=Array.isArray(i)?i:[i];!0===s.suppressWarning&&c.length&&Ie.warning("async-validator:",c),c.length&&void 0!==r.message&&(c=[].concat(r.message));let l=c.map(Oe(r,n));if(s.first&&l.length)return a[r.field]=1,t(l);if(o){if(r.required&&!e.value)return void 0!==r.message?l=[].concat(r.message).map(Oe(r,n)):s.error&&(l=[s.error(r,me(s.messages.required,r.field))]),t(l);let i={};r.defaultField&&Object.keys(e.value).map((e=>{i[e]=r.defaultField})),i={...i,...e.rule.fields};const o={};Object.keys(i).forEach((e=>{const t=i[e],r=Array.isArray(t)?t:[t];o[e]=r.map(u.bind(null,e))}));const a=new Ie(o);a.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),a.validate(e.value,e.rule.options||s,(e=>{const r=[];l&&l.length&&r.push(...l),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(l)}if(o=o&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)i=r.asyncValidator(r,e.value,c,e.source,s);else if(r.validator){try{i=r.validator(r,e.value,c,e.source,s)}catch(e){console.error?.(e),s.suppressValidatorError||setTimeout((()=>{throw e}),0),c(e.message)}!0===i?c():!1===i?c("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):i instanceof Array?c(i):i instanceof Error&&c(i.message)}i&&i.then&&i.then((()=>c()),(e=>c(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)s=e[r],Array.isArray(s)?t=t.concat(...s):t.push(s);var s;t.length?(r=ge(t),i(t,r)):i(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Pe.hasOwnProperty(e.type))throw new Error(me("Unknown rule type %s",e.type));return e.type||"string"}getValidationMethod(e){if("function"==typeof e.validator)return e.validator;const t=Object.keys(e),r=t.indexOf("message");return-1!==r&&t.splice(r,1),1===t.length&&"required"===t[0]?Pe.required:Pe[this.getType(e)]||void 0}}function Me(e){return new Ie(e)}var Ce={validateId:function(e){return!!e&&(!(e.length<6)&&!!/^[A-Za-z0-9_-]+$/.test(e))},validatePhone:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)},validator:Me,validate:function(e,t,r={},n=(()=>{})){return U.run(Me(e).validate(t,r,n))}};var Ne={uint8ArrayToString:function(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},stringToArrayBuffer:function(e){const t=e.length,r=new ArrayBuffer(t),n=new Uint8Array(r);for(let r=0;r<t;r++)n[r]=e.charCodeAt(r);return r}};class _e{key;storage;fields=[];constructor(e){this.key=e?.key||"",this.fields=e?.fields||[],this.storage=e?.storage||void 0}save=U.debounce((e=>{if(this.key&&this.storage)try{const{setItem:t,setStorageSync:r}=this.storage;if(r)return r(this.key,e);if(t)return t(this.key,JSON.stringify(e))}catch(e){console.error("persit save ",e)}}));read(){if(this.key&&this.storage)try{const{getItem:e,getStorageSync:t}=this.storage;if(t)return t(this.key);if(e){const t=e(this.key);return JSON.parse(t)}}catch(e){return void console.error("persit read ",e)}}handleSave(e,t){if(!this.fields.includes(t)||!e)return;const r=K.copy(e,this.fields);this.save(r)}}class Le extends Q{setters;getters;actions;persist;constructor(){super(),this.getters={},this.setters={},this.actions={}}async dispatch(e,t=void 0){const r=Reflect.get(this.actions,e);if(!K.isFunction(r))return;const[,n]=await U.run(r(this,t));return n}async query(e){const t=Reflect.get(this,e);let r;return r=null!=t&&""!==t?K.copy(t):await this.dispatch(e),r}}var Ue={gbk:e,time:n,hook:U,math:V,util:K,list:X,mini:ue,url:he,rule:Ce,convert:Ne,event:Q,store:Le,storeRef:(e,t)=>{const r=Object.assign(new Le,e||{});r.__persist=new _e(t||r.persist);const n=r.__persist.read(),s=n?Object.assign(r,n):r;return new Proxy(s,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return K.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const s=Reflect.get(e.setters,t);if(K.isFunction(s)&&!s(e,r))return!0;const i=Reflect.set(e,t,r,n);return i&&(e.emit(t.toString(),r),e?.__persist?.handleSave(e,t.toString())),i},has:(e,t)=>Reflect.has(e,t)})},persist:_e,persistConfig:(e,t,r)=>({key:e,fields:t,storage:r})};export{Ue as default};
|
package/bin/ddan-js.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).ddan=t()}(this,(function(){"use strict";var e={gbkLength:function(e){let t=0;if(!e)return 0;for(let r=0;r<e.length;r++)e.charCodeAt(r)>127||94===e.charCodeAt(r)?t+=2:t++;return t},gbkCut:function(e,t){if(!e||t<=0)return"";let r=0,n=0;for(let i=0;i<e.length&&(e.charCodeAt(i)>127||94===e.charCodeAt(i)?r+=2:r++,!(r>t));i++)n=i;return e.substr(0,n+1)}};const t=(e,t="yyyy-MM-dd hh:mm:ss")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e;if(!r)return"";const n={};return n.yyyy=r.getFullYear(),n.yy=`${n.yyyy}`.substr(2),n.M=r.getMonth()+1,n.MM=(n.M<10?"0":"")+n.M,n.d=r.getDate(),n.dd=(n.d<10?"0":"")+n.d,n.h=r.getHours(),n.hh=(n.h<10?"0":"")+n.h,n.m=r.getMinutes(),n.mm=(n.m<10?"0":"")+n.m,n.s=r.getSeconds(),n.ss=(n.s<10?"0":"")+n.s,n.S=r.getMilliseconds(),n.SS=(n.S<10?"0":"")+n.S,n.SSS=n.S.toString().padStart(3,0),t.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>n[e]))};function r(){return Date.now()}var n={now:r,isToday:e=>e&&(new Date).toDateString()===new Date(e).toDateString(),format:t,parseTime:function({year:e=0,month:r=0,date:n=0,hour:i=0,minute:s=0,second:o=0}){const a=`${e||"yyyy"}/${r||"MM"}/${n||"dd"} ${i}:${s}:${o}`;return new Date(t(Date.now(),a)).getTime()},todayZero:()=>new Date(t(r(),"yyyy/MM/dd 00:00:00")).getTime(),oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3},i="object"==typeof global&&global&&global.Object===Object&&global,s="object"==typeof self&&self&&self.Object===Object&&self;const o=(i||s||Function("return this")()).Symbol,{toString:a,hasOwnProperty:u,propertyIsEnumerable:l}=Object.prototype,c=o?o.toStringTag:void 0;function f(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":c&&c in Object(e)?function(e){const t=u.call(e,c),r=e[c];let n=!1;try{e[c]=void 0,n=!0}catch(e){}const i=a.call(e);return n&&(t?e[c]=r:delete e[c]),i}(e):a.call(e)}var d={getTag:f,getType:function(e){return(f(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:a,hasOwnProperty:u,propertyIsEnumerable:l},p="[object Function]",y="[object GeneratorFunction]",h="[object AsyncFunction]",g=9007199254740991;const m=/^(?:0|[1-9]\d*)$/;function b(e){const t=typeof e;return null!=e&&("object"==t||"function"==t)}function v(e){return null!=e&&"object"==typeof e}const w=Array.isArray;function $(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=g}(e.length)&&!j(e)}function O(e){return v(e)&&$(e)}function j(e){var t=b(e)?d.getTag(e):"";return t===p||t===y||t===h}var A={is:function(e,t){return d.getTag(e)===`[object ${t}]`},isNumber:function(e){return"[object Number]"===d.getTag(e)},isString:function(e){return"string"==typeof e||!w(e)&&v(e)&&"[object String]"==d.getTag(e)},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isObject:b,isObjectLike:v,isSymbol:function(e){return"symbol"==typeof e||v(e)&&"[object Symbol]"===d.getTag(e)},isFunction:j,isArray:w,isArrayLikeObject:O,isIndex:function(e,t){return!!(t=null==t?g:t)&&("number"==typeof e||m.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:$,isPrototype:function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)},isArguments:function(e){return O(e)&&d.hasOwnProperty.call(e,"callee")&&(!d.propertyIsEnumerable.call(e,"callee")||"[object Arguments]"==d.toString.call(e))},isPromise:function(e){return"[object Promise]"===(b(e)?d.getTag(e):"")}};const q=NaN,F=/^\s+|\s+$/g,x=/^[-+]0x[0-9a-f]+$/i,S=/^0b[01]+$/i,k=/^0o[0-7]+$/i,E=parseInt,P=1/0,M=17976931348623157e292;function R(e){if("number"==typeof e)return e;if(A.isSymbol(e))return q;if(A.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=A.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(F,"");const t=S.test(e);return t||k.test(e)?E(e.slice(2),t?2:8):x.test(e)?q:+e}function T(e){return e?(e=R(e))===P||e===-P?(e<0?-1:1)*M:e==e?e:0:0===e?e:0}var D={toNumber:R,toFinite:T,toInteger:function(e){var t=T(e),r=t%1;return t==t?r?t-r:t:0}};const N="Expected a function",_=Math.max,I=Math.min;function C(e,t=0,r={}){var n,i,s,o,a,u,l=0,c=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError(N);function p(t){var r=n,s=i;return n=i=void 0,l=t,o=e.apply(s,r)}function y(e){var r=e-u;return void 0===u||r>=t||r<0||f&&e-l>=s}function h(){var e=Date.now();if(y(e))return g(e);a=setTimeout(h,function(e){var r=t-(e-u);return f?I(r,s-(e-l)):r}(e))}function g(e){return a=void 0,d&&n?p(e):(n=i=void 0,o)}function m(...e){var r=Date.now(),s=y(r);if(n=arguments,i=this,u=r,s){if(void 0===a)return function(e){return l=e,a=setTimeout(h,t),c?p(e):o}(u);if(f)return a=setTimeout(h,t),p(u)}return void 0===a&&(a=setTimeout(h,t)),o}return t=D.toNumber(t)||0,A.isObject(r)&&(c=!!r.leading,s=(f="maxWait"in r)?_(D.toNumber(r.maxWait)||0,t):s,d="trailing"in r?!!r.trailing:d),m.cancel=function(){void 0!==a&&clearTimeout(a),l=0,n=u=i=a=void 0},m.flush=function(){return void 0===a?o:g(Date.now())},m}class V{source;constructor(e){this.source=e}run(){let e;try{let t;return t=A.isFunction(this.source)?this.source():this.source,e=A.isPromise(t)?t:Promise.resolve(t),e.then((e=>[null,e])).catch((e=>[e,void 0]))}catch(e){return Promise.resolve([e,void 0])}}}var z={sleep:(e=1e3)=>new Promise((t=>{setTimeout(t,e)})),run:e=>new V(e).run(),debounce:C,throttle:function(e,t=0,r={}){var n=!1,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return A.isObject(r)&&(n=r.leading?!!r.leading:n,i=r.trailing?!!r.trailing:i),C(e,t,{leading:n,maxWait:t,trailing:i})}};var U={random:function(e){return Math.floor(Math.random()*e)},randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randomString:function(e,t=!1){e=e||32;const r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let i="";for(let t=0;t<e;t++)i+=r.charAt(Math.floor(62*Math.random()));return t?n.format(new Date,"yyyyMMddhhmmss")+i:i}};function L(e){return e!=e}function J(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}(t,(function(t){return e[t]}))}var W,Z,B=(W=Object.keys,Z=Object,function(e){return W(Z(e))}),H=Math.max;function Y(e,t){var r=A.isArray(e)||A.isArguments(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,i=!!n;for(var s in e)!t&&!d.hasOwnProperty.call(e,s)||i&&("length"==s||A.isIndex(s,n))||r.push(s);return r}const G=e=>{if(!e)return e;if("object"!=typeof e)return e;const t=Array.isArray(e)?[]:{};for(const r in e)e.hasOwnProperty(r)&&(t[r]=G(e[r]));return t};var K={...A,...d,includes:function(e,t,r,n){e=A.isArrayLike(e)?e:function(e){return e?J(e,function(e){return A.isArrayLike(e)?Y(e):function(e){if(!A.isPrototype(e))return B(e);var t=[];for(var r in Object(e))d.hasOwnProperty.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}(e)):[]}(e),r=r&&!n?D.toInteger(r):0;var i=e.length;return r<0&&(r=H(i+r,0)),A.isString(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}(e,L,r);for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}(e,t,r)>-1},merge:function(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e},compareArray:function(e,t){if(!Array.isArray(e)||!Array.isArray(t))return!1;if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;r++)if(e[r]!==t[r])return!1;return!0},copy:(e,t=[])=>{if(void 0===e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r)return r;if(Array.isArray(r)||!t||t.length<=0)return r;const n={};for(const e in r)t.includes(e)&&r.hasOwnProperty(e)&&(n[e]=r[e]);return n},clone:G};class Q{_map;constructor(){this._map=new Map}clear(){return this._map.clear(),this}on(e,t){if(!t)return this;let r=this._map.get(e);return r||(r=new Set,this._map.set(e,r)),r.add(t),this}emit(e,...t){const r=this._map.get(e);if(!r)return this;return[...r].forEach((e=>e(...t))),this}off(e="",t){if(!e)return this._map.clear(),this;if(!t)return this._map.delete(e.toString()),this;const r=this._map.get(e);return r?(r.delete(t),this):this}once(e,t){const r=(...n)=>{t(...n),this.off(e,r)};return this.on(e,r),this}has(e){return this._map.has(e)}}var X={groupBy:(e,t)=>e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{}),stepAction:function(e,t,r=100){if(!A.isFunction(t))return;if(!A.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let i=r+n,s=e.slice(n,i);t&&t(s),n=i}},skip:(e,t)=>{if(!A.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:(e,t,r=0)=>{if(!A.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const i=t+n;return e.slice(n,e.length<i?e.length:i)||[]},distinct:e=>!A.isArray(e)||e.length<=0?[]:[...new Set(e)]};const ee="[object Object]",te="[object Array]",re=e=>Object.prototype.toString.call(e),ne=(e,t,r=!1)=>{if(e===t)return;const n=re(e);if(n===re(t))if(n===te&&e.length>=t.length)for(let r=0;r<t.length;r++)ne(e[r],t[r]);else if(n===ee&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?ne(e[n],t[n]):e[n]=null},ie=(e,t,r,n="",i=!1)=>{if(e===t)return;const s=re(e),o=re(t);if(s===te&&o===s&&e.length>=t.length)for(let i=0;i<e.length;i++)ie(e[i],t[i],r,`${n}[${i}]`);else if(s===ee&&o===s&&(i||Object.keys(e).length>=Object.keys(t).length)){const i=Object.keys(e);for(let s of i){const i=e[s],o=t[s],a=re(i),u=re(o);if(i!==o)if(a===te&&u===a&&i.length>=o.length)for(let e=0;e<i.length;e++)ie(i[e],o[e],r,`${n?n+".":""}${s}[${e}]`);else if(a===ee&&u===a&&Object.keys(i).length>=Object.keys(o).length)for(let e in i)ie(i[e],o[e],r,`${n?n+".":""}${s}.${e}`);else r[`${n?n+".":""}${s}`]=i}}else r[n]=e};const se=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var oe={diff:function(e,t){const r={};return(e=>{if(re(e)===ee)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,i=r.length;for(let e=0;e<i-1;e++){const t=r[e];re(n[t])!==ee&&(n[t]={}),n=n[t]}n[r[i-1]]=e[t],delete e[t]}})(e),ne(e,t,!0),ie(e,t,r,"",!0),r},promixify:se,run:(e,t={})=>{if(e)return z.run(se(e)(t))},formatList:(e,t,r)=>(e||[]).reduce(((e,n,i)=>({...e,[`${r}[${t+i}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e)))};function ae(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const ue=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:i=!1}={}){t=t||"&",r=r||"=";const s={};if("string"!=typeof e||0===e.length)return s;const o=/\+/g,a=n||1e3;let u=(e=e.split(t)).length;a>0&&u>a&&(u=a);for(let t=0;t<u;++t){let n,a,u,l,c=e[t].replace(o,"%20"),f=c.indexOf(r);f>=0?(n=c.substr(0,f),a=c.substr(f+1)):(n=c,a=""),u=decodeURIComponent(n),l=decodeURIComponent(a),ae(s,u)&&i?Array.isArray(s[u])?s[u].push(l):s[u]=[s[u],l]:s[u]=l}return s},le=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},ce=function(e,{sep:t="&",eq:r="=",name:n=null,multiple:i=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const s=encodeURIComponent(le(n))+r;return i&&Array.isArray(e[n])?e[n].map((function(e){return s+encodeURIComponent(le(e))})).join(t):s+encodeURIComponent(le(e[n]))})).filter(Boolean).join(t):n?encodeURIComponent(le(n))+r+encodeURIComponent(le(e)):""};var fe={parse:ue,decode:ue,stringify:ce,encode:ce,useHttps:function(e){if(!e)return e;const t=e.trim();return"string"!=typeof e?e:t.indexOf("https")<0?t.replace("http","https"):t}};const de=/%[sdj%]/g;let pe=()=>{};function ye(e){if(!e||!e.length)return null;const t={};return e.forEach((e=>{const r=e.field;t[r]=t[r]||[],t[r].push(e)})),t}function he(e,...t){let r=0;const n=t.length;if("function"==typeof e)return e.apply(null,t);if("string"==typeof e){return e.replace(de,(e=>{if("%%"===e)return"%";if(r>=n)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}))}return e}function ge(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function me(e,t,r){let n=0;const i=e.length;!function s(o){if(o&&o.length)return void r(o);const a=n;n+=1,a<i?t(e[a],s):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(pe=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class be extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function ve(e,t,r,n,i){if(t.first){const t=new Promise(((t,s)=>{const o=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);me(o,r,(e=>(n(e),e.length?s(new be(e,ye(e))):t(i))))}));return t.catch((e=>e)),t}const s=!0===t.firstFields?Object.keys(e):t.firstFields||[],o=Object.keys(e),a=o.length;let u=0;const l=[],c=new Promise(((t,c)=>{const f=e=>{if(l.push.apply(l,e),u++,u===a)return n(l),l.length?c(new be(l,ye(l))):t(i)};o.length||(n(l),t(i)),o.forEach((t=>{const n=e[t];-1!==s.indexOf(t)?me(n,r,f):function(e,t,r){const n=[];let i=0;const s=e.length;function o(e){n.push(...e||[]),i++,i===s&&r(n)}e.forEach((e=>{t(e,o)}))}(n,r,f)}))}));return c.catch((e=>e)),c}function we(e,t){return r=>{let n;return n=e.fullFields?function(e,t){let r=e;for(let e=0;e<t.length;e++){if(null==r)return r;r=r[t[e]]}return r}(t,e.fullFields):t[r.field||e.fullField],(i=r)&&void 0!==i.message?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:"function"==typeof r?r():r,fieldValue:n,field:r.field||e.fullField};var i}}function $e(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e}const Oe=(e,t,r,n,i,s)=>{!e.required||r.hasOwnProperty(e.field||"")&&!ge(t,s||e.type)||n.push(he(i.messages.required,e.fullField))};let je;const Ae=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,qe=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Fe={integer:e=>Fe.number(e)&&parseInt(e,10)===e,float:e=>Fe.number(e)&&!Fe.integer(e),array:e=>Array.isArray(e),regexp(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:e=>"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime()),number:e=>!isNaN(e)&&"number"==typeof e,object:e=>"object"==typeof e&&!Fe.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(Ae),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(je)return je;const e="[a-fA-F\\d:]",t=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${e})|(?<=${e})(?=\\s|$))`:"",r="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fA-F\\d]{1,4}",i=`\n(?:\n(?:${n}:){7}(?:${n}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${n}:){6}(?:${r}|:${n}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${n}:){5}(?::${r}|(?::${n}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${n}:){4}(?:(?::${n}){0,1}:${r}|(?::${n}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${n}:){3}(?:(?::${n}){0,2}:${r}|(?::${n}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${n}:){2}(?:(?::${n}){0,3}:${r}|(?::${n}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${n}:){1}(?:(?::${n}){0,4}:${r}|(?::${n}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${n}){0,5}:${r}|(?::${n}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),s=new RegExp(`(?:^${r}$)|(?:^${i}$)`),o=new RegExp(`^${r}$`),a=new RegExp(`^${i}$`),u=e=>e&&e.exact?s:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${i}${t(e)})`,"g");u.v4=e=>e&&e.exact?o:new RegExp(`${t(e)}${r}${t(e)}`,"g"),u.v6=e=>e&&e.exact?a:new RegExp(`${t(e)}${i}${t(e)}`,"g");const l=u.v4().source,c=u.v6().source;return je=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${l}|${c}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)`,"i"),je})()),hex:e=>"string"==typeof e&&!!e.match(qe)},xe="enum";var Se={required:Oe,whitespace:(e,t,r,n,i)=>{(/^\s+$/.test(t)||""===t)&&n.push(he(i.messages.whitespace,e.fullField))},type:(e,t,r,n,i)=>{if(e.required&&void 0===t)return void Oe(e,t,r,n,i);const s=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(s)>-1?Fe[s](t)||n.push(he(i.messages.types[s],e.fullField,e.type)):s&&typeof t!==e.type&&n.push(he(i.messages.types[s],e.fullField,e.type))},range:(e,t,r,n,i)=>{const s="number"==typeof e.len,o="number"==typeof e.min,a="number"==typeof e.max,u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let l=t,c="";const f="number"==typeof t,d="string"==typeof t,p=Array.isArray(t);if(f?c="number":d?c="string":p&&(c="array"),!c)return!1;p&&(l=t.length),d&&(l=t.replace(u,"_").length),s?l!==e.len&&n.push(he(i.messages[c].len,e.fullField,e.len)):o&&!a&&l<e.min?n.push(he(i.messages[c].min,e.fullField,e.min)):a&&!o&&l>e.max?n.push(he(i.messages[c].max,e.fullField,e.max)):o&&a&&(l<e.min||l>e.max)&&n.push(he(i.messages[c].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,i)=>{e[xe]=Array.isArray(e[xe])?e[xe]:[],-1===e[xe].indexOf(t)&&n.push(he(i.messages[xe],e.fullField,e[xe].join(", ")))},pattern:(e,t,r,n,i)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const ke=(e,t,r,n,i)=>{const s=e.type,o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,s)&&!e.required)return r();Se.required(e,t,n,o,i,s),ge(t,s)||Se.type(e,t,n,o,i)}r(o)};var Ee={string:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(ge(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i,"string"),ge(t,"string")||(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i),Se.pattern(e,t,n,s,i),!0===e.whitespace&&Se.whitespace(e,t,n,s,i))}r(s)},method:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},number:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},boolean:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},regexp:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),ge(t)||Se.type(e,t,n,s,i)}r(s)},integer:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},float:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},array:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Se.required(e,t,n,s,i,"array"),null!=t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},object:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},enum:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.enum(e,t,n,s,i)}r(s)},pattern:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i),ge(t,"string")||Se.pattern(e,t,n,s,i)}r(s)},date:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t,"date")&&!e.required)return r();if(Se.required(e,t,n,s,i),!ge(t,"date")){let r;r=t instanceof Date?t:new Date(t),Se.type(e,r,n,s,i),r&&Se.range(e,r.getTime(),n,s,i)}}r(s)},url:ke,hex:ke,email:ke,required:(e,t,r,n,i)=>{const s=[],o=Array.isArray(t)?"array":typeof t;Se.required(e,t,n,s,i,o),r(s)},any:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ge(t)&&!e.required)return r();Se.required(e,t,n,s,i)}r(s)}};function Pe(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone(){const e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}const Me=Pe();class Re{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");Ee[e]=t};static warning=pe;static messages=Me;static validators=Ee;rules={};_messages=Me;constructor(e){this.define(e)}define(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach((t=>{const r=e[t];this.rules[t]=Array.isArray(r)?r:[r]}))}messages(e){return e&&(this._messages=$e(Pe(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,i=t,s=r;if("function"==typeof i&&(s=i,i={}),!this.rules||0===Object.keys(this.rules).length)return s&&s(null,n),Promise.resolve(n);if(i.messages){let e=this.messages();e===Me&&(e=Pe()),$e(e,i.messages),i.messages=e}else i.messages=this.messages();const o={};(i.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let i=n[t];r.forEach((r=>{let s=r;"function"==typeof s.transform&&(n===e&&(n={...n}),i=n[t]=s.transform(i)),s="function"==typeof s?{validator:s}:{...s},s.validator=this.getValidationMethod(s),s.validator&&(s.field=t,s.fullField=s.fullField||t,s.type=this.getType(s),o[t]=o[t]||[],o[t].push({rule:s,value:i,source:n,field:t}))}))}));const a={};return ve(o,i,((e,t)=>{const r=e.rule;let s,o=!("object"!==r.type&&"array"!==r.type||"object"!=typeof r.fields&&"object"!=typeof r.defaultField);function u(e,t){return{...t,fullField:`${r.fullField}.${e}`,fullFields:r.fullFields?[...r.fullFields,e]:[e]}}function l(s=[]){let l=Array.isArray(s)?s:[s];!0===i.suppressWarning&&l.length&&Re.warning("async-validator:",l),l.length&&void 0!==r.message&&(l=[].concat(r.message));let c=l.map(we(r,n));if(i.first&&c.length)return a[r.field]=1,t(c);if(o){if(r.required&&!e.value)return void 0!==r.message?c=[].concat(r.message).map(we(r,n)):i.error&&(c=[i.error(r,he(i.messages.required,r.field))]),t(c);let s={};r.defaultField&&Object.keys(e.value).map((e=>{s[e]=r.defaultField})),s={...s,...e.rule.fields};const o={};Object.keys(s).forEach((e=>{const t=s[e],r=Array.isArray(t)?t:[t];o[e]=r.map(u.bind(null,e))}));const a=new Re(o);a.messages(i.messages),e.rule.options&&(e.rule.options.messages=i.messages,e.rule.options.error=i.error),a.validate(e.value,e.rule.options||i,(e=>{const r=[];c&&c.length&&r.push(...c),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(c)}if(o=o&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)s=r.asyncValidator(r,e.value,l,e.source,i);else if(r.validator){try{s=r.validator(r,e.value,l,e.source,i)}catch(e){console.error?.(e),i.suppressValidatorError||setTimeout((()=>{throw e}),0),l(e.message)}!0===s?l():!1===s?l("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):s instanceof Array?l(s):s instanceof Error&&l(s.message)}s&&s.then&&s.then((()=>l()),(e=>l(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)i=e[r],Array.isArray(i)?t=t.concat(...i):t.push(i);var i;t.length?(r=ye(t),s(t,r)):s(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Ee.hasOwnProperty(e.type))throw new Error(he("Unknown rule type %s",e.type));return e.type||"string"}getValidationMethod(e){if("function"==typeof e.validator)return e.validator;const t=Object.keys(e),r=t.indexOf("message");return-1!==r&&t.splice(r,1),1===t.length&&"required"===t[0]?Ee.required:Ee[this.getType(e)]||void 0}}function Te(e){return new Re(e)}var De={validateId:function(e){return!!e&&(!(e.length<6)&&!!/^[A-Za-z0-9_-]+$/.test(e))},validatePhone:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)},validator:Te,validate:function(e,t,r={},n=(()=>{})){return z.run(Te(e).validate(t,r,n))}};class Ne{key;storage;fields=[];constructor(e){this.key=e?.key||"",this.fields=e?.fields||[],this.storage=e?.storage||void 0}save=z.debounce((e=>{if(this.key&&this.storage)try{const{setItem:t,setStorageSync:r}=this.storage;if(r)return r(this.key,e);if(t)return t(this.key,JSON.stringify(e))}catch(e){console.error("persit save ",e)}}));read(){if(this.key&&this.storage)try{const{getItem:e,getStorageSync:t}=this.storage;if(t)return t(this.key);if(e){const t=e(this.key);return JSON.parse(t)}}catch(e){return void console.error("persit read ",e)}}handleSave(e,t){if(!this.fields.includes(t)||!e)return;const r=K.copy(e,this.fields);this.save(r)}}class _e extends Q{setters;getters;actions;persist;constructor(){super(),this.getters={},this.setters={},this.actions={}}async dispatch(e,t=void 0){const r=Reflect.get(this.actions,e);if(!K.isFunction(r))return;const[,n]=await z.run(r(this,t));return n}async query(e){const t=Reflect.get(this,e);let r;return r=null!=t&&""!==t?K.copy(t):await this.dispatch(e),r}change=(e,t,r)=>{if(!e.persist)return;const n=e.persist.fields||[];if(!n.includes(t))return;const i=K.copy(e,n);e.persist.save(i)}}var Ie={gbk:e,time:n,hook:z,math:U,util:K,list:X,mini:oe,url:fe,rule:De,event:Q,store:_e,storeRef:(e,t)=>{const r=Object.assign(new _e,e||{});r.__persist=new Ne(t||r.persist);const n=r.__persist.read(),i=n?Object.assign(r,n):r;return new Proxy(i,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return K.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const i=Reflect.get(e.setters,t);if(K.isFunction(i)&&!i(e,r))return!0;const s=Reflect.set(e,t,r,n);return s&&(e.emit(t.toString(),r),e?.__persist?.handleSave(e,t.toString())),s},has:(e,t)=>Reflect.has(e,t)})},persist:Ne,persistConfig:(e,t,r)=>({key:e,fields:t,storage:r})};return Ie}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).ddan=t()}(this,(function(){"use strict";var e={gbkLength:function(e){let t=0;if(!e)return 0;for(let r=0;r<e.length;r++)e.charCodeAt(r)>127||94===e.charCodeAt(r)?t+=2:t++;return t},gbkCut:function(e,t){if(!e||t<=0)return"";let r=0,n=0;for(let s=0;s<e.length&&(e.charCodeAt(s)>127||94===e.charCodeAt(s)?r+=2:r++,!(r>t));s++)n=s;return e.substr(0,n+1)}};const t=(e,t="yyyy-MM-dd hh:mm:ss")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e;if(!r)return"";const n={};return n.yyyy=r.getFullYear(),n.yy=`${n.yyyy}`.substr(2),n.M=r.getMonth()+1,n.MM=(n.M<10?"0":"")+n.M,n.d=r.getDate(),n.dd=(n.d<10?"0":"")+n.d,n.h=r.getHours(),n.hh=(n.h<10?"0":"")+n.h,n.m=r.getMinutes(),n.mm=(n.m<10?"0":"")+n.m,n.s=r.getSeconds(),n.ss=(n.s<10?"0":"")+n.s,n.S=r.getMilliseconds(),n.SS=(n.S<10?"0":"")+n.S,n.SSS=n.S.toString().padStart(3,0),t.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(e=>n[e]))};function r(){return Date.now()}var n={now:r,isToday:e=>e&&(new Date).toDateString()===new Date(e).toDateString(),format:t,parseTime:function({year:e=0,month:r=0,date:n=0,hour:s=0,minute:i=0,second:o=0}){const a=`${e||"yyyy"}/${r||"MM"}/${n||"dd"} ${s}:${i}:${o}`;return new Date(t(Date.now(),a)).getTime()},todayZero:()=>new Date(t(r(),"yyyy/MM/dd 00:00:00")).getTime(),oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3},s="object"==typeof global&&global&&global.Object===Object&&global,i="object"==typeof self&&self&&self.Object===Object&&self;const o=(s||i||Function("return this")()).Symbol,{toString:a,hasOwnProperty:u,propertyIsEnumerable:c}=Object.prototype,l=o?o.toStringTag:void 0;function f(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":l&&l in Object(e)?function(e){const t=u.call(e,l),r=e[l];let n=!1;try{e[l]=void 0,n=!0}catch(e){}const s=a.call(e);return n&&(t?e[l]=r:delete e[l]),s}(e):a.call(e)}var d={getTag:f,getType:function(e){return(f(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:a,hasOwnProperty:u,propertyIsEnumerable:c},h="[object Function]",p="[object GeneratorFunction]",y="[object AsyncFunction]",g=9007199254740991;const m=/^(?:0|[1-9]\d*)$/;function b(e){const t=typeof e;return null!=e&&("object"==t||"function"==t)}function v(e){return null!=e&&"object"==typeof e}const w=Array.isArray;function q(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=g}(e.length)&&!$(e)}function O(e){return v(e)&&q(e)}function $(e){var t=b(e)?d.getTag(e):"";return t===h||t===p||t===y}var j={is:function(e,t){return d.getTag(e)===`[object ${t}]`},isNumber:function(e){return"[object Number]"===d.getTag(e)},isString:function(e){return"string"==typeof e||!w(e)&&v(e)&&"[object String]"==d.getTag(e)},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isObject:b,isObjectLike:v,isSymbol:function(e){return"symbol"==typeof e||v(e)&&"[object Symbol]"===d.getTag(e)},isFunction:$,isArray:w,isArrayLikeObject:O,isIndex:function(e,t){return!!(t=null==t?g:t)&&("number"==typeof e||m.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:q,isPrototype:function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)},isArguments:function(e){return O(e)&&d.hasOwnProperty.call(e,"callee")&&(!d.propertyIsEnumerable.call(e,"callee")||"[object Arguments]"==d.toString.call(e))},isPromise:function(e){return"[object Promise]"===(b(e)?d.getTag(e):"")}};const A=NaN,F=/^\s+|\s+$/g,k=/^[-+]0x[0-9a-f]+$/i,S=/^0b[01]+$/i,x=/^0o[0-7]+$/i,E=parseInt,R=1/0,P=17976931348623157e292;function T(e){if("number"==typeof e)return e;if(j.isSymbol(e))return A;if(j.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=j.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(F,"");const t=S.test(e);return t||x.test(e)?E(e.slice(2),t?2:8):k.test(e)?A:+e}function D(e){return e?(e=T(e))===R||e===-R?(e<0?-1:1)*P:e==e?e:0:0===e?e:0}var I={toNumber:T,toFinite:D,toInteger:function(e){var t=D(e),r=t%1;return t==t?r?t-r:t:0}};const M="Expected a function",C=Math.max,N=Math.min;function _(e,t=0,r={}){var n,s,i,o,a,u,c=0,l=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError(M);function h(t){var r=n,i=s;return n=s=void 0,c=t,o=e.apply(i,r)}function p(e){var r=e-u;return void 0===u||r>=t||r<0||f&&e-c>=i}function y(){var e=Date.now();if(p(e))return g(e);a=setTimeout(y,function(e){var r=t-(e-u);return f?N(r,i-(e-c)):r}(e))}function g(e){return a=void 0,d&&n?h(e):(n=s=void 0,o)}function m(...e){var r=Date.now(),i=p(r);if(n=arguments,s=this,u=r,i){if(void 0===a)return function(e){return c=e,a=setTimeout(y,t),l?h(e):o}(u);if(f)return a=setTimeout(y,t),h(u)}return void 0===a&&(a=setTimeout(y,t)),o}return t=I.toNumber(t)||0,j.isObject(r)&&(l=!!r.leading,i=(f="maxWait"in r)?C(I.toNumber(r.maxWait)||0,t):i,d="trailing"in r?!!r.trailing:d),m.cancel=function(){void 0!==a&&clearTimeout(a),c=0,n=u=s=a=void 0},m.flush=function(){return void 0===a?o:g(Date.now())},m}class L{source;constructor(e){this.source=e}run(){let e;try{let t;return t=j.isFunction(this.source)?this.source():this.source,e=j.isPromise(t)?t:Promise.resolve(t),e.then((e=>[null,e])).catch((e=>[e,void 0]))}catch(e){return Promise.resolve([e,void 0])}}}var U={sleep:(e=1e3)=>new Promise((t=>{setTimeout(t,e)})),run:e=>new L(e).run(),debounce:_,throttle:function(e,t=0,r={}){var n=!1,s=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return j.isObject(r)&&(n=r.leading?!!r.leading:n,s=r.trailing?!!r.trailing:s),_(e,t,{leading:n,maxWait:t,trailing:s})}};var V={random:function(e){return Math.floor(Math.random()*e)},randomRange:function(e,t){return Math.floor(Math.random()*(t-e+1)+e)},lerp:function(e,t,r){return e*(1-r)+t*r},randomString:function(e,t=!1){e=e||32;const r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let s="";for(let t=0;t<e;t++)s+=r.charAt(Math.floor(62*Math.random()));return t?n.format(new Date,"yyyyMMddhhmmss")+s:s}};function J(e){return e!=e}function z(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,s=Array(n);++r<n;)s[r]=t(e[r],r,e);return s}(t,(function(t){return e[t]}))}var B,H,W=(B=Object.keys,H=Object,function(e){return B(H(e))}),Z=Math.max;function Y(e,t){var r=j.isArray(e)||j.isArguments(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,s=!!n;for(var i in e)!t&&!d.hasOwnProperty.call(e,i)||s&&("length"==i||j.isIndex(i,n))||r.push(i);return r}const G=e=>{if(!e)return e;if("object"!=typeof e)return e;const t=Array.isArray(e)?[]:{};for(const r in e)e.hasOwnProperty(r)&&(t[r]=G(e[r]));return t};var K={...j,...d,includes:function(e,t,r,n){e=j.isArrayLike(e)?e:function(e){return e?z(e,function(e){return j.isArrayLike(e)?Y(e):function(e){if(!j.isPrototype(e))return W(e);var t=[];for(var r in Object(e))d.hasOwnProperty.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}(e)):[]}(e),r=r&&!n?I.toInteger(r):0;var s=e.length;return r<0&&(r=Z(s+r,0)),j.isString(e)?r<=s&&e.indexOf(t,r)>-1:!!s&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var s=e.length,i=r+(n?1:-1);n?i--:++i<s;)if(t(e[i],i,e))return i;return-1}(e,J,r);for(var n=r-1,s=e.length;++n<s;)if(e[n]===t)return n;return-1}(e,t,r)>-1},merge:function(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e},compareArray:function(e,t){if(!Array.isArray(e)||!Array.isArray(t))return!1;if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;r++)if(e[r]!==t[r])return!1;return!0},copy:(e,t=[])=>{if(void 0===e)return;const r=JSON.parse(JSON.stringify(e));if("object"!=typeof r)return r;if(Array.isArray(r)||!t||t.length<=0)return r;const n={};for(const e in r)t.includes(e)&&r.hasOwnProperty(e)&&(n[e]=r[e]);return n},clone:G};class Q{_map;constructor(){this._map=new Map}clear(){return this._map.clear(),this}on(e,t){if(!t)return this;let r=this._map.get(e);return r||(r=new Set,this._map.set(e,r)),r.add(t),this}emit(e,...t){const r=this._map.get(e);if(!r)return this;return[...r].forEach((e=>e(...t))),this}off(e="",t){if(!e)return this._map.clear(),this;if(!t)return this._map.delete(e.toString()),this;const r=this._map.get(e);return r?(r.delete(t),this):this}once(e,t){const r=(...n)=>{t(...n),this.off(e,r)};return this.on(e,r),this}has(e){return this._map.has(e)}}var X={groupBy:(e,t)=>e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{}),stepAction:function(e,t,r=100){if(!j.isFunction(t))return;if(!j.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let s=r+n,i=e.slice(n,s);t&&t(i),n=s}},skip:(e,t)=>{if(!j.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:(e,t,r=0)=>{if(!j.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const s=t+n;return e.slice(n,e.length<s?e.length:s)||[]},distinct:e=>!j.isArray(e)||e.length<=0?[]:[...new Set(e)]};const ee="[object Object]",te="[object Array]",re=e=>Object.prototype.toString.call(e),ne=(e,t,r=!1)=>{if(e===t)return;const n=re(e);if(n===re(t))if(n===te&&e.length>=t.length)for(let r=0;r<t.length;r++)ne(e[r],t[r]);else if(n===ee&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?ne(e[n],t[n]):e[n]=null},se=(e,t,r,n="",s=!1)=>{if(e===t)return;const i=re(e),o=re(t);if(i===te&&o===i&&e.length>=t.length)for(let s=0;s<e.length;s++)se(e[s],t[s],r,`${n}[${s}]`);else if(i===ee&&o===i&&(s||Object.keys(e).length>=Object.keys(t).length)){const s=Object.keys(e);for(let i of s){const s=e[i],o=t[i],a=re(s),u=re(o);if(s!==o)if(a===te&&u===a&&s.length>=o.length)for(let e=0;e<s.length;e++)se(s[e],o[e],r,`${n?n+".":""}${i}[${e}]`);else if(a===ee&&u===a&&Object.keys(s).length>=Object.keys(o).length)for(let e in s)se(s[e],o[e],r,`${n?n+".":""}${i}.${e}`);else r[`${n?n+".":""}${i}`]=s}}else r[n]=e};class ie{list=[];constructor(){this.invoke=this.invoke.bind(this)}use(e){this.list=this.list.concat(e)}invoke(e){return this.list.reduce(((e,t)=>e.then((e=>t(e)))),Promise.resolve(e)).catch((e=>"REFETCH"===e.sig?Promise.resolve(e.result):Promise.reject(e)))}}class oe{reqConfig={};handleEncrypt;handleDecrypt;handleToast;handleRequest;interceptors={request:new ie,response:new ie};static blockId="blockid";static requestLock={};constructor(e){const{reqConfig:t={},requestEncrypt:r,responseDecrypt:n,handleToast:s,handleRequest:i}=e;this.reqConfig=t,this.handleEncrypt=r,this.handleDecrypt=n,this.handleToast=s,this.handleRequest=i}lockR(e,t){oe.requestLock[e]={lock:!0,request:t()}}unlockR(e){delete oe.requestLock[e]}getIdFromReq(e){const{url:t,data:r={}}=e;return t+JSON.stringify(r)}getIdFromReqUrl(e){return e.url||""}_fetch(e,t){let r=e;return t&&this.handleEncrypt&&(r=this.handleEncrypt(e)),new Promise(((e,n)=>{this.handleRequest({...r,success:r=>{let n=r;t&&this.handleDecrypt&&(n=this.handleDecrypt(r)),e(n)},fail:e=>{n(e)}})}))}async request(e,t){const r=JSON.parse(JSON.stringify(this.reqConfig[e])),{config:n,...s}=await this.interceptors.request.invoke({url:r.url,data:t||{},header:{"content-type":"application/json"},method:r.method?r.method:"POST",responseType:"text",config:r});let i;try{if("block"===n.model)this.lockR(oe.blockId,(()=>this._fetch(s,n.hasEncrypt))),i=await oe.requestLock[oe.blockId].request;else if(oe.requestLock[oe.blockId]&&oe.requestLock[oe.blockId].lock&&await oe.requestLock[oe.blockId].request,"debounce"===n.model||"debounceAgainstUrl"===n.model){let e;e="debounceAgainstUrl"===n.model?this.getIdFromReqUrl(s):this.getIdFromReq(s),oe.requestLock[e]||this.lockR(e,(()=>this._fetch(s,n.hasEncrypt))),i=await oe.requestLock[e].request,this.unlockR(e)}else i=await this._fetch(s,n.hasEncrypt)}catch(e){this.handleToast&&this.handleToast({title:JSON.stringify(e),icon:"none"})}return this.interceptors.response.invoke({res:i,reqId:this.getIdFromReq(s),refetch:()=>({sig:"REFETCH",result:this.request(e,t||{})})})}}const ae=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var ue={diff:function(e,t){const r={};return(e=>{if(re(e)===ee)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,s=r.length;for(let e=0;e<s-1;e++){const t=r[e];re(n[t])!==ee&&(n[t]={}),n=n[t]}n[r[s-1]]=e[t],delete e[t]}})(e),ne(e,t,!0),se(e,t,r,"",!0),r},promixify:ae,run:(e,t={})=>{if(e)return U.run(ae(e)(t))},formatList:(e,t,r)=>(e||[]).reduce(((e,n,s)=>({...e,[`${r}[${t+s}]`]:n})),{}),ruleValidator:(e,t)=>!!t&&(!Array.isArray(t)||!(t.length<=0)&&t.every((e=>!!e))),http:oe};function ce(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const le=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:s=!1}={}){t=t||"&",r=r||"=";const i={};if("string"!=typeof e||0===e.length)return i;const o=/\+/g,a=n||1e3;let u=(e=e.split(t)).length;a>0&&u>a&&(u=a);for(let t=0;t<u;++t){let n,a,u,c,l=e[t].replace(o,"%20"),f=l.indexOf(r);f>=0?(n=l.substr(0,f),a=l.substr(f+1)):(n=l,a=""),u=decodeURIComponent(n),c=decodeURIComponent(a),ce(i,u)&&s?Array.isArray(i[u])?i[u].push(c):i[u]=[i[u],c]:i[u]=c}return i},fe=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},de=function(e,{sep:t="&",eq:r="=",name:n=null,multiple:s=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const i=encodeURIComponent(fe(n))+r;return s&&Array.isArray(e[n])?e[n].map((function(e){return i+encodeURIComponent(fe(e))})).join(t):i+encodeURIComponent(fe(e[n]))})).filter(Boolean).join(t):n?encodeURIComponent(fe(n))+r+encodeURIComponent(fe(e)):""};var he={parse:le,decode:le,stringify:de,encode:de,useHttps:function(e){if(!e)return e;const t=e.trim();return"string"!=typeof e?e:t.indexOf("https")<0?t.replace("http","https"):t}};const pe=/%[sdj%]/g;let ye=()=>{};function ge(e){if(!e||!e.length)return null;const t={};return e.forEach((e=>{const r=e.field;t[r]=t[r]||[],t[r].push(e)})),t}function me(e,...t){let r=0;const n=t.length;if("function"==typeof e)return e.apply(null,t);if("string"==typeof e){return e.replace(pe,(e=>{if("%%"===e)return"%";if(r>=n)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}))}return e}function be(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function ve(e,t,r){let n=0;const s=e.length;!function i(o){if(o&&o.length)return void r(o);const a=n;n+=1,a<s?t(e[a],i):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(ye=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class we extends Error{errors;fields;constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function qe(e,t,r,n,s){if(t.first){const t=new Promise(((t,i)=>{const o=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);ve(o,r,(e=>(n(e),e.length?i(new we(e,ge(e))):t(s))))}));return t.catch((e=>e)),t}const i=!0===t.firstFields?Object.keys(e):t.firstFields||[],o=Object.keys(e),a=o.length;let u=0;const c=[],l=new Promise(((t,l)=>{const f=e=>{if(c.push.apply(c,e),u++,u===a)return n(c),c.length?l(new we(c,ge(c))):t(s)};o.length||(n(c),t(s)),o.forEach((t=>{const n=e[t];-1!==i.indexOf(t)?ve(n,r,f):function(e,t,r){const n=[];let s=0;const i=e.length;function o(e){n.push(...e||[]),s++,s===i&&r(n)}e.forEach((e=>{t(e,o)}))}(n,r,f)}))}));return l.catch((e=>e)),l}function Oe(e,t){return r=>{let n;return n=e.fullFields?function(e,t){let r=e;for(let e=0;e<t.length;e++){if(null==r)return r;r=r[t[e]]}return r}(t,e.fullFields):t[r.field||e.fullField],(s=r)&&void 0!==s.message?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:"function"==typeof r?r():r,fieldValue:n,field:r.field||e.fullField};var s}}function $e(e,t){if(t)for(const r in t)if(t.hasOwnProperty(r)){const n=t[r];"object"==typeof n&&"object"==typeof e[r]?e[r]={...e[r],...n}:e[r]=n}return e}const je=(e,t,r,n,s,i)=>{!e.required||r.hasOwnProperty(e.field||"")&&!be(t,i||e.type)||n.push(me(s.messages.required,e.fullField))};let Ae;const Fe=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,ke=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Se={integer:e=>Se.number(e)&&parseInt(e,10)===e,float:e=>Se.number(e)&&!Se.integer(e),array:e=>Array.isArray(e),regexp(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:e=>"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime()),number:e=>!isNaN(e)&&"number"==typeof e,object:e=>"object"==typeof e&&!Se.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(Fe),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if(Ae)return Ae;const e="[a-fA-F\\d:]",t=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${e})|(?<=${e})(?=\\s|$))`:"",r="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fA-F\\d]{1,4}",s=`\n(?:\n(?:${n}:){7}(?:${n}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${n}:){6}(?:${r}|:${n}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${n}:){5}(?::${r}|(?::${n}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${n}:){4}(?:(?::${n}){0,1}:${r}|(?::${n}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${n}:){3}(?:(?::${n}){0,2}:${r}|(?::${n}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${n}:){2}(?:(?::${n}){0,3}:${r}|(?::${n}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${n}:){1}(?:(?::${n}){0,4}:${r}|(?::${n}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${n}){0,5}:${r}|(?::${n}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),i=new RegExp(`(?:^${r}$)|(?:^${s}$)`),o=new RegExp(`^${r}$`),a=new RegExp(`^${s}$`),u=e=>e&&e.exact?i:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${s}${t(e)})`,"g");u.v4=e=>e&&e.exact?o:new RegExp(`${t(e)}${r}${t(e)}`,"g"),u.v6=e=>e&&e.exact?a:new RegExp(`${t(e)}${s}${t(e)}`,"g");const c=u.v4().source,l=u.v6().source;return Ae=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${c}|${l}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)`,"i"),Ae})()),hex:e=>"string"==typeof e&&!!e.match(ke)},xe="enum";var Ee={required:je,whitespace:(e,t,r,n,s)=>{(/^\s+$/.test(t)||""===t)&&n.push(me(s.messages.whitespace,e.fullField))},type:(e,t,r,n,s)=>{if(e.required&&void 0===t)return void je(e,t,r,n,s);const i=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(i)>-1?Se[i](t)||n.push(me(s.messages.types[i],e.fullField,e.type)):i&&typeof t!==e.type&&n.push(me(s.messages.types[i],e.fullField,e.type))},range:(e,t,r,n,s)=>{const i="number"==typeof e.len,o="number"==typeof e.min,a="number"==typeof e.max,u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let c=t,l="";const f="number"==typeof t,d="string"==typeof t,h=Array.isArray(t);if(f?l="number":d?l="string":h&&(l="array"),!l)return!1;h&&(c=t.length),d&&(c=t.replace(u,"_").length),i?c!==e.len&&n.push(me(s.messages[l].len,e.fullField,e.len)):o&&!a&&c<e.min?n.push(me(s.messages[l].min,e.fullField,e.min)):a&&!o&&c>e.max?n.push(me(s.messages[l].max,e.fullField,e.max)):o&&a&&(c<e.min||c>e.max)&&n.push(me(s.messages[l].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,s)=>{e[xe]=Array.isArray(e[xe])?e[xe]:[],-1===e[xe].indexOf(t)&&n.push(me(s.messages[xe],e.fullField,e[xe].join(", ")))},pattern:(e,t,r,n,s)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(me(s.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(me(s.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const Re=(e,t,r,n,s)=>{const i=e.type,o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t,i)&&!e.required)return r();Ee.required(e,t,n,o,s,i),be(t,i)||Ee.type(e,t,n,o,s)}r(o)};var Pe={string:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(be(t,"string")&&!e.required)return r();Ee.required(e,t,n,i,s,"string"),be(t,"string")||(Ee.type(e,t,n,i,s),Ee.range(e,t,n,i,s),Ee.pattern(e,t,n,i,s),!0===e.whitespace&&Ee.whitespace(e,t,n,i,s))}r(i)},method:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),void 0!==t&&Ee.type(e,t,n,i,s)}r(i)},number:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),void 0!==t&&(Ee.type(e,t,n,i,s),Ee.range(e,t,n,i,s))}r(i)},boolean:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),void 0!==t&&Ee.type(e,t,n,i,s)}r(i)},regexp:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),be(t)||Ee.type(e,t,n,i,s)}r(i)},integer:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),void 0!==t&&(Ee.type(e,t,n,i,s),Ee.range(e,t,n,i,s))}r(i)},float:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),void 0!==t&&(Ee.type(e,t,n,i,s),Ee.range(e,t,n,i,s))}r(i)},array:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Ee.required(e,t,n,i,s,"array"),null!=t&&(Ee.type(e,t,n,i,s),Ee.range(e,t,n,i,s))}r(i)},object:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),void 0!==t&&Ee.type(e,t,n,i,s)}r(i)},enum:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s),void 0!==t&&Ee.enum(e,t,n,i,s)}r(i)},pattern:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t,"string")&&!e.required)return r();Ee.required(e,t,n,i,s),be(t,"string")||Ee.pattern(e,t,n,i,s)}r(i)},date:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t,"date")&&!e.required)return r();if(Ee.required(e,t,n,i,s),!be(t,"date")){let r;r=t instanceof Date?t:new Date(t),Ee.type(e,r,n,i,s),r&&Ee.range(e,r.getTime(),n,i,s)}}r(i)},url:Re,hex:Re,email:Re,required:(e,t,r,n,s)=>{const i=[],o=Array.isArray(t)?"array":typeof t;Ee.required(e,t,n,i,s,o),r(i)},any:(e,t,r,n,s)=>{const i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(be(t)&&!e.required)return r();Ee.required(e,t,n,i,s)}r(i)}};function Te(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone(){const e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}const De=Te();class Ie{static register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");Pe[e]=t};static warning=ye;static messages=De;static validators=Pe;rules={};_messages=De;constructor(e){this.define(e)}define(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach((t=>{const r=e[t];this.rules[t]=Array.isArray(r)?r:[r]}))}messages(e){return e&&(this._messages=$e(Te(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,s=t,i=r;if("function"==typeof s&&(i=s,s={}),!this.rules||0===Object.keys(this.rules).length)return i&&i(null,n),Promise.resolve(n);if(s.messages){let e=this.messages();e===De&&(e=Te()),$e(e,s.messages),s.messages=e}else s.messages=this.messages();const o={};(s.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let s=n[t];r.forEach((r=>{let i=r;"function"==typeof i.transform&&(n===e&&(n={...n}),s=n[t]=i.transform(s)),i="function"==typeof i?{validator:i}:{...i},i.validator=this.getValidationMethod(i),i.validator&&(i.field=t,i.fullField=i.fullField||t,i.type=this.getType(i),o[t]=o[t]||[],o[t].push({rule:i,value:s,source:n,field:t}))}))}));const a={};return qe(o,s,((e,t)=>{const r=e.rule;let i,o=!("object"!==r.type&&"array"!==r.type||"object"!=typeof r.fields&&"object"!=typeof r.defaultField);function u(e,t){return{...t,fullField:`${r.fullField}.${e}`,fullFields:r.fullFields?[...r.fullFields,e]:[e]}}function c(i=[]){let c=Array.isArray(i)?i:[i];!0===s.suppressWarning&&c.length&&Ie.warning("async-validator:",c),c.length&&void 0!==r.message&&(c=[].concat(r.message));let l=c.map(Oe(r,n));if(s.first&&l.length)return a[r.field]=1,t(l);if(o){if(r.required&&!e.value)return void 0!==r.message?l=[].concat(r.message).map(Oe(r,n)):s.error&&(l=[s.error(r,me(s.messages.required,r.field))]),t(l);let i={};r.defaultField&&Object.keys(e.value).map((e=>{i[e]=r.defaultField})),i={...i,...e.rule.fields};const o={};Object.keys(i).forEach((e=>{const t=i[e],r=Array.isArray(t)?t:[t];o[e]=r.map(u.bind(null,e))}));const a=new Ie(o);a.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),a.validate(e.value,e.rule.options||s,(e=>{const r=[];l&&l.length&&r.push(...l),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(l)}if(o=o&&(r.required||!r.required&&e.value),r.field=e.field,r.asyncValidator)i=r.asyncValidator(r,e.value,c,e.source,s);else if(r.validator){try{i=r.validator(r,e.value,c,e.source,s)}catch(e){console.error?.(e),s.suppressValidatorError||setTimeout((()=>{throw e}),0),c(e.message)}!0===i?c():!1===i?c("function"==typeof r.message?r.message(r.fullField||r.field):r.message||`${r.fullField||r.field} fails`):i instanceof Array?c(i):i instanceof Error&&c(i.message)}i&&i.then&&i.then((()=>c()),(e=>c(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)s=e[r],Array.isArray(s)?t=t.concat(...s):t.push(s);var s;t.length?(r=ge(t),i(t,r)):i(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Pe.hasOwnProperty(e.type))throw new Error(me("Unknown rule type %s",e.type));return e.type||"string"}getValidationMethod(e){if("function"==typeof e.validator)return e.validator;const t=Object.keys(e),r=t.indexOf("message");return-1!==r&&t.splice(r,1),1===t.length&&"required"===t[0]?Pe.required:Pe[this.getType(e)]||void 0}}function Me(e){return new Ie(e)}var Ce={validateId:function(e){return!!e&&(!(e.length<6)&&!!/^[A-Za-z0-9_-]+$/.test(e))},validatePhone:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)},validator:Me,validate:function(e,t,r={},n=(()=>{})){return U.run(Me(e).validate(t,r,n))}};var Ne={uint8ArrayToString:function(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},stringToArrayBuffer:function(e){const t=e.length,r=new ArrayBuffer(t),n=new Uint8Array(r);for(let r=0;r<t;r++)n[r]=e.charCodeAt(r);return r}};class _e{key;storage;fields=[];constructor(e){this.key=e?.key||"",this.fields=e?.fields||[],this.storage=e?.storage||void 0}save=U.debounce((e=>{if(this.key&&this.storage)try{const{setItem:t,setStorageSync:r}=this.storage;if(r)return r(this.key,e);if(t)return t(this.key,JSON.stringify(e))}catch(e){console.error("persit save ",e)}}));read(){if(this.key&&this.storage)try{const{getItem:e,getStorageSync:t}=this.storage;if(t)return t(this.key);if(e){const t=e(this.key);return JSON.parse(t)}}catch(e){return void console.error("persit read ",e)}}handleSave(e,t){if(!this.fields.includes(t)||!e)return;const r=K.copy(e,this.fields);this.save(r)}}class Le extends Q{setters;getters;actions;persist;constructor(){super(),this.getters={},this.setters={},this.actions={}}async dispatch(e,t=void 0){const r=Reflect.get(this.actions,e);if(!K.isFunction(r))return;const[,n]=await U.run(r(this,t));return n}async query(e){const t=Reflect.get(this,e);let r;return r=null!=t&&""!==t?K.copy(t):await this.dispatch(e),r}}var Ue={gbk:e,time:n,hook:U,math:V,util:K,list:X,mini:ue,url:he,rule:Ce,convert:Ne,event:Q,store:Le,storeRef:(e,t)=>{const r=Object.assign(new Le,e||{});r.__persist=new _e(t||r.persist);const n=r.__persist.read(),s=n?Object.assign(r,n):r;return new Proxy(s,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return K.isFunction(n)?n(e):Reflect.get(e,t,r)},set:(e,t,r,n)=>{const s=Reflect.get(e.setters,t);if(K.isFunction(s)&&!s(e,r))return!0;const i=Reflect.set(e,t,r,n);return i&&(e.emit(t.toString(),r),e?.__persist?.handleSave(e,t.toString())),i},has:(e,t)=>Reflect.has(e,t)})},persist:_e,persistConfig:(e,t,r)=>({key:e,fields:t,storage:r})};return Ue}));
|
package/bin/lib/class/store.js
CHANGED
|
@@ -36,15 +36,6 @@ class DStore extends event_1.default {
|
|
|
36
36
|
}
|
|
37
37
|
return result;
|
|
38
38
|
}
|
|
39
|
-
change = (self, key, value) => {
|
|
40
|
-
if (!self.persist)
|
|
41
|
-
return;
|
|
42
|
-
const fields = self.persist.fields || [];
|
|
43
|
-
if (!fields.includes(key))
|
|
44
|
-
return;
|
|
45
|
-
const data = util_1.default.copy(self, fields);
|
|
46
|
-
self.persist.save(data);
|
|
47
|
-
};
|
|
48
39
|
}
|
|
49
40
|
exports.default = DStore;
|
|
50
41
|
const storeRef = (source, persistConfig) => {
|
package/bin/lib/index.js
CHANGED
|
@@ -10,6 +10,7 @@ const list_1 = require("./modules/list");
|
|
|
10
10
|
const mini_1 = require("./modules/mini");
|
|
11
11
|
const url_1 = require("./modules/url");
|
|
12
12
|
const rule_1 = require("./modules/rule");
|
|
13
|
+
const convert_1 = require("./modules/convert");
|
|
13
14
|
const store_1 = require("./class/store");
|
|
14
15
|
const persist_1 = require("./class/persist");
|
|
15
16
|
exports.default = {
|
|
@@ -22,6 +23,7 @@ exports.default = {
|
|
|
22
23
|
mini: mini_1.default,
|
|
23
24
|
url: url_1.default,
|
|
24
25
|
rule: rule_1.default,
|
|
26
|
+
convert: convert_1.default,
|
|
25
27
|
event: event_1.default,
|
|
26
28
|
store: store_1.default,
|
|
27
29
|
storeRef: store_1.storeRef,
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function uint8ArrayToString(arr) {
|
|
4
|
+
let dataString = "";
|
|
5
|
+
for (let i = 0; i < arr.length; i++) {
|
|
6
|
+
dataString += String.fromCharCode(arr[i]);
|
|
7
|
+
}
|
|
8
|
+
return dataString;
|
|
9
|
+
}
|
|
10
|
+
function stringToArrayBuffer(str) {
|
|
11
|
+
const l = str.length;
|
|
12
|
+
const buffer = new ArrayBuffer(l);
|
|
13
|
+
const bufferView = new Uint8Array(buffer);
|
|
14
|
+
for (let i = 0; i < l; i++) {
|
|
15
|
+
bufferView[i] = str.charCodeAt(i);
|
|
16
|
+
}
|
|
17
|
+
return buffer;
|
|
18
|
+
}
|
|
19
|
+
exports.default = { uint8ArrayToString, stringToArrayBuffer };
|
|
@@ -5,6 +5,13 @@ const is_1 = require("../../util/is");
|
|
|
5
5
|
const FUNC_ERROR_TEXT = 'Expected a function';
|
|
6
6
|
const nativeMax = Math.max;
|
|
7
7
|
const nativeMin = Math.min;
|
|
8
|
+
/**
|
|
9
|
+
* 防抖 一段时间内,规定时间间隔多次执行,回调触发一次
|
|
10
|
+
* @param func
|
|
11
|
+
* @param wait
|
|
12
|
+
* @param options 参数:leading 开始执行, trailing结束执行
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
8
15
|
function debounce(func, wait = 0, options = {}) {
|
|
9
16
|
var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
|
|
10
17
|
if (typeof func != 'function') {
|
|
@@ -3,6 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const debounce_1 = require("./debounce");
|
|
4
4
|
const throttle_1 = require("./throttle");
|
|
5
5
|
const task_1 = require("../../class/task");
|
|
6
|
+
/**
|
|
7
|
+
* 休眠
|
|
8
|
+
* @param time
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
6
11
|
const sleep = (time = 1000) => new Promise(resolve => { setTimeout(resolve, time); });
|
|
12
|
+
/**
|
|
13
|
+
* 执行任务
|
|
14
|
+
*/
|
|
7
15
|
const run = (task) => new task_1.default(task).run();
|
|
8
16
|
exports.default = { sleep, run, debounce: debounce_1.default, throttle: throttle_1.default };
|
|
@@ -4,6 +4,13 @@ const is_1 = require("../../util/is");
|
|
|
4
4
|
const debounce_1 = require("./debounce");
|
|
5
5
|
/** Error message constants. */
|
|
6
6
|
const FUNC_ERROR_TEXT = 'Expected a function';
|
|
7
|
+
/**
|
|
8
|
+
* 节流 每个间隔内,触发一次
|
|
9
|
+
* @param func
|
|
10
|
+
* @param wait
|
|
11
|
+
* @param options 参数:leading 开始执行, trailing结束执行
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
7
14
|
function throttle(func, wait = 0, options = {}) {
|
|
8
15
|
var leading = false, trailing = true;
|
|
9
16
|
if (typeof func != 'function') {
|
package/bin/lib/modules/list.js
CHANGED
|
@@ -61,6 +61,11 @@ const take = (list, count, skip = 0) => {
|
|
|
61
61
|
const endIndex = count + start;
|
|
62
62
|
return list.slice(start, list.length < endIndex ? list.length : endIndex) || [];
|
|
63
63
|
};
|
|
64
|
+
/**
|
|
65
|
+
* 去重
|
|
66
|
+
* @param list
|
|
67
|
+
* @returns
|
|
68
|
+
*/
|
|
64
69
|
const distinct = (list) => {
|
|
65
70
|
if (!is_1.default.isArray(list) || list.length <= 0)
|
|
66
71
|
return [];
|
|
@@ -81,6 +81,12 @@ const doDiff = (cur, pre, target, path = "", root = false) => {
|
|
|
81
81
|
}
|
|
82
82
|
target[path] = cur;
|
|
83
83
|
};
|
|
84
|
+
/**
|
|
85
|
+
* 计算并格式化差异值
|
|
86
|
+
* @param data
|
|
87
|
+
* @param prevData
|
|
88
|
+
* @returns
|
|
89
|
+
*/
|
|
84
90
|
function diff(data, prevData) {
|
|
85
91
|
const target = {};
|
|
86
92
|
initPath(data);
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const interceptor_1 = require("./interceptor");
|
|
4
|
+
class MiniHttp {
|
|
5
|
+
// 接口配置
|
|
6
|
+
reqConfig = {};
|
|
7
|
+
handleEncrypt;
|
|
8
|
+
handleDecrypt;
|
|
9
|
+
handleToast;
|
|
10
|
+
handleRequest;
|
|
11
|
+
// 拦截器
|
|
12
|
+
interceptors = {
|
|
13
|
+
request: new interceptor_1.default(),
|
|
14
|
+
response: new interceptor_1.default(),
|
|
15
|
+
};
|
|
16
|
+
// 阻塞请求的锁id
|
|
17
|
+
static blockId = "blockid";
|
|
18
|
+
// 请求锁字典
|
|
19
|
+
static requestLock = {};
|
|
20
|
+
constructor(options) {
|
|
21
|
+
const { reqConfig = {}, requestEncrypt, responseDecrypt, handleToast, handleRequest } = options;
|
|
22
|
+
this.reqConfig = reqConfig;
|
|
23
|
+
this.handleEncrypt = requestEncrypt;
|
|
24
|
+
this.handleDecrypt = responseDecrypt;
|
|
25
|
+
this.handleToast = handleToast;
|
|
26
|
+
this.handleRequest = handleRequest;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 加锁
|
|
30
|
+
* @param {string} id
|
|
31
|
+
* @param {function} func
|
|
32
|
+
*/
|
|
33
|
+
lockR(id, func) {
|
|
34
|
+
MiniHttp.requestLock[id] = {
|
|
35
|
+
lock: true,
|
|
36
|
+
request: func(),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 解锁
|
|
41
|
+
* @param {string} id
|
|
42
|
+
*/
|
|
43
|
+
unlockR(id) {
|
|
44
|
+
delete MiniHttp.requestLock[id];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* 根据URL和请求参数构造唯一标识符
|
|
48
|
+
* @param {object} req
|
|
49
|
+
*/
|
|
50
|
+
getIdFromReq(req) {
|
|
51
|
+
const { url, data = {} } = req;
|
|
52
|
+
return url + JSON.stringify(data);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 根据URL构造唯一标识符
|
|
56
|
+
* @param {object} req
|
|
57
|
+
*/
|
|
58
|
+
getIdFromReqUrl(req) {
|
|
59
|
+
return req.url || "";
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* 请求函数
|
|
63
|
+
* @param {object} _payload 小程序 wx.request 可用参数
|
|
64
|
+
* @param {boolean} hasEncrypt 是否需要加密
|
|
65
|
+
*/
|
|
66
|
+
_fetch(_payload, hasEncrypt) {
|
|
67
|
+
let payload = _payload;
|
|
68
|
+
if (hasEncrypt && this.handleEncrypt) {
|
|
69
|
+
payload = this.handleEncrypt(_payload);
|
|
70
|
+
}
|
|
71
|
+
return new Promise((resolve, reject) => {
|
|
72
|
+
this.handleRequest({
|
|
73
|
+
...payload,
|
|
74
|
+
success: (_res) => {
|
|
75
|
+
let res = _res;
|
|
76
|
+
if (hasEncrypt && this.handleDecrypt) {
|
|
77
|
+
res = this.handleDecrypt(_res);
|
|
78
|
+
}
|
|
79
|
+
resolve(res);
|
|
80
|
+
},
|
|
81
|
+
fail: (err) => {
|
|
82
|
+
reject(err);
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 请求{name}接口
|
|
89
|
+
* @param {string} name
|
|
90
|
+
* @param {object} payload
|
|
91
|
+
*/
|
|
92
|
+
async request(name, payload) {
|
|
93
|
+
const config = JSON.parse(JSON.stringify(this.reqConfig[name]));
|
|
94
|
+
// 进行请求参数的处理
|
|
95
|
+
const { config: _, ...req } = await this.interceptors.request.invoke({
|
|
96
|
+
url: config.url,
|
|
97
|
+
data: payload || {},
|
|
98
|
+
header: { "content-type": "application/json" },
|
|
99
|
+
method: config.method ? config.method : "POST",
|
|
100
|
+
responseType: "text",
|
|
101
|
+
config,
|
|
102
|
+
});
|
|
103
|
+
let result;
|
|
104
|
+
try {
|
|
105
|
+
// 处理阻塞/去抖/普通请求
|
|
106
|
+
if (_.model === "block") {
|
|
107
|
+
this.lockR(MiniHttp.blockId, () => this._fetch(req, _.hasEncrypt));
|
|
108
|
+
result = await MiniHttp.requestLock[MiniHttp.blockId].request;
|
|
109
|
+
// note: 在具体的回调函数中主动 unlock
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
if (MiniHttp.requestLock[MiniHttp.blockId] &&
|
|
113
|
+
MiniHttp.requestLock[MiniHttp.blockId].lock) {
|
|
114
|
+
await MiniHttp.requestLock[MiniHttp.blockId].request;
|
|
115
|
+
}
|
|
116
|
+
//去抖模式
|
|
117
|
+
if (_.model === "debounce" || _.model === "debounceAgainstUrl") {
|
|
118
|
+
let id;
|
|
119
|
+
if (_.model === "debounceAgainstUrl") {
|
|
120
|
+
// 仅针对url去抖的临时方案
|
|
121
|
+
id = this.getIdFromReqUrl(req);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
id = this.getIdFromReq(req);
|
|
125
|
+
}
|
|
126
|
+
if (!MiniHttp.requestLock[id]) {
|
|
127
|
+
this.lockR(id, () => this._fetch(req, _.hasEncrypt));
|
|
128
|
+
}
|
|
129
|
+
result = await MiniHttp.requestLock[id].request;
|
|
130
|
+
this.unlockR(id);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
result = await this._fetch(req, _.hasEncrypt);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
this.handleToast && this.handleToast({ title: JSON.stringify(error), icon: "none" });
|
|
139
|
+
}
|
|
140
|
+
// 抛出response 拦截器 (由原来的直接抛出result改为抛出包含res、reqId、refetch的对象)
|
|
141
|
+
// const res = this.interceptors.response.invoke(result);
|
|
142
|
+
const res = this.interceptors.response.invoke({
|
|
143
|
+
res: result,
|
|
144
|
+
reqId: this.getIdFromReq(req),
|
|
145
|
+
refetch: () => {
|
|
146
|
+
// 重新请求
|
|
147
|
+
return { sig: "REFETCH", result: this.request(name, payload || {}) };
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
return res;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
exports.default = MiniHttp;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class Interceptor {
|
|
4
|
+
list = [];
|
|
5
|
+
constructor() {
|
|
6
|
+
this.invoke = this.invoke.bind(this);
|
|
7
|
+
}
|
|
8
|
+
use(func) {
|
|
9
|
+
this.list = this.list.concat(func);
|
|
10
|
+
}
|
|
11
|
+
invoke(result) {
|
|
12
|
+
return this.list
|
|
13
|
+
.reduce((acc, func) => acc.then((res) => func(res)), Promise.resolve(result))
|
|
14
|
+
.catch((res) => {
|
|
15
|
+
if (res.sig === "REFETCH") {
|
|
16
|
+
return Promise.resolve(res.result);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
return Promise.reject(res);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.default = Interceptor;
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const diff_1 = require("./diff");
|
|
4
4
|
const hook_1 = require("../hook");
|
|
5
|
+
const http_1 = require("./http");
|
|
6
|
+
/**
|
|
7
|
+
* promise 化 wx 异步函数
|
|
8
|
+
* @param miniapi
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
5
11
|
const promixify = (miniapi) => {
|
|
6
12
|
if (typeof miniapi !== "function")
|
|
7
13
|
return miniapi;
|
|
@@ -9,14 +15,33 @@ const promixify = (miniapi) => {
|
|
|
9
15
|
miniapi(Object.assign(args, { success: resolve, fail: reject }));
|
|
10
16
|
});
|
|
11
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* 执行 wx 异步函数
|
|
20
|
+
* @param func
|
|
21
|
+
* @param args
|
|
22
|
+
* @returns
|
|
23
|
+
*/
|
|
12
24
|
const run = (func, args = {}) => {
|
|
13
25
|
if (!func)
|
|
14
26
|
return;
|
|
15
27
|
return hook_1.default.run(promixify(func)(args));
|
|
16
28
|
};
|
|
29
|
+
/**
|
|
30
|
+
* 格式化列表
|
|
31
|
+
* @param lists
|
|
32
|
+
* @param start
|
|
33
|
+
* @param name
|
|
34
|
+
* @returns
|
|
35
|
+
*/
|
|
17
36
|
const formatList = (lists, start, name) => {
|
|
18
37
|
return (lists || []).reduce((res, val, index) => ({ ...res, [`${name}[${start + index}]`]: val }), {});
|
|
19
38
|
};
|
|
39
|
+
/**
|
|
40
|
+
* 字段简易规则
|
|
41
|
+
* @param _
|
|
42
|
+
* @param value
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
20
45
|
const ruleValidator = (_, value) => {
|
|
21
46
|
if (!value)
|
|
22
47
|
return false;
|
|
@@ -27,4 +52,4 @@ const ruleValidator = (_, value) => {
|
|
|
27
52
|
}
|
|
28
53
|
return true;
|
|
29
54
|
};
|
|
30
|
-
exports.default = { diff: diff_1.default, promixify, run, formatList, ruleValidator };
|
|
55
|
+
exports.default = { diff: diff_1.default, promixify, run, formatList, ruleValidator, http: http_1.default };
|
package/bin/lib/modules/time.js
CHANGED
|
@@ -6,10 +6,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
* @returns
|
|
7
7
|
*/
|
|
8
8
|
const isToday = (date) => date && new Date().toDateString() === new Date(date).toDateString();
|
|
9
|
+
/**
|
|
10
|
+
* 当天零点
|
|
11
|
+
*/
|
|
9
12
|
const todayZero = () => new Date(format(now(), "yyyy/MM/dd 00:00:00")).getTime();
|
|
13
|
+
/** 1天ms数 */
|
|
10
14
|
const oneDay = 86400000;
|
|
15
|
+
/** 1小时ms数 */
|
|
11
16
|
const oneHour = 3600000;
|
|
17
|
+
/** 1分ms数 */
|
|
12
18
|
const oneMinute = 60000;
|
|
19
|
+
/** 1秒ms数 */
|
|
13
20
|
const oneSecond = 1000;
|
|
14
21
|
/**
|
|
15
22
|
* 时间格式化
|
|
@@ -39,10 +46,16 @@ const format = (time, reg = "yyyy-MM-dd hh:mm:ss") => {
|
|
|
39
46
|
map.SSS = map.S.toString().padStart(3, 0);
|
|
40
47
|
return reg.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g, ($1) => map[$1]);
|
|
41
48
|
};
|
|
49
|
+
/**
|
|
50
|
+
* 解析时间
|
|
51
|
+
* @param param0
|
|
52
|
+
* @returns
|
|
53
|
+
*/
|
|
42
54
|
function parseTime({ year = 0, month = 0, date = 0, hour = 0, minute = 0, second = 0 }) {
|
|
43
55
|
const _format = `${year || "yyyy"}/${month || "MM"}/${date || "dd"} ${hour}:${minute}:${second}`;
|
|
44
56
|
return new Date(format(Date.now(), _format)).getTime();
|
|
45
57
|
}
|
|
58
|
+
/** 当前时间 */
|
|
46
59
|
function now() {
|
|
47
60
|
return Date.now();
|
|
48
61
|
}
|
package/bin/lib/util/index.js
CHANGED
|
@@ -14,35 +14,52 @@ function compareArray(arr1, arr2) {
|
|
|
14
14
|
}
|
|
15
15
|
return true;
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
/**
|
|
18
|
+
* 拷贝数据
|
|
19
|
+
* @param source 数据源
|
|
20
|
+
* @param fields 可指定拷贝的字段
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
const copy = (source, fields = []) => {
|
|
24
|
+
if (source === undefined)
|
|
19
25
|
return undefined;
|
|
20
|
-
const
|
|
21
|
-
if (typeof
|
|
22
|
-
return
|
|
23
|
-
if (Array.isArray(
|
|
24
|
-
return
|
|
26
|
+
const newData = JSON.parse(JSON.stringify(source));
|
|
27
|
+
if (typeof newData !== 'object')
|
|
28
|
+
return newData;
|
|
29
|
+
if (Array.isArray(newData) || !fields || fields.length <= 0)
|
|
30
|
+
return newData;
|
|
25
31
|
const result = {};
|
|
26
|
-
for (const key in
|
|
27
|
-
if (fields.includes(key) &&
|
|
28
|
-
result[key] =
|
|
32
|
+
for (const key in newData) {
|
|
33
|
+
if (fields.includes(key) && newData.hasOwnProperty(key)) {
|
|
34
|
+
result[key] = newData[key];
|
|
29
35
|
}
|
|
30
36
|
}
|
|
31
37
|
return result;
|
|
32
38
|
};
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
/**
|
|
40
|
+
* 克隆实体对象
|
|
41
|
+
* @param source
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
const clone = (source) => {
|
|
45
|
+
if (!source)
|
|
46
|
+
return source;
|
|
47
|
+
if (typeof source !== 'object')
|
|
48
|
+
return source;
|
|
49
|
+
const result = Array.isArray(source) ? [] : {};
|
|
50
|
+
for (const key in source) {
|
|
51
|
+
if (source.hasOwnProperty(key)) {
|
|
52
|
+
result[key] = clone(source[key]);
|
|
42
53
|
}
|
|
43
54
|
}
|
|
44
55
|
return result;
|
|
45
56
|
};
|
|
57
|
+
/**
|
|
58
|
+
* 合并
|
|
59
|
+
* @param target
|
|
60
|
+
* @param source
|
|
61
|
+
* @returns
|
|
62
|
+
*/
|
|
46
63
|
function merge(target, source) {
|
|
47
64
|
if (source) {
|
|
48
65
|
for (const s in source) {
|
|
@@ -8,6 +8,5 @@ export default class DStore extends DEvent implements IDStore {
|
|
|
8
8
|
constructor();
|
|
9
9
|
dispatch(key: string, payload?: undefined): Promise<any>;
|
|
10
10
|
query(key: string): Promise<undefined>;
|
|
11
|
-
change: (self: any, key: string, value: any) => void;
|
|
12
11
|
}
|
|
13
12
|
export declare const storeRef: (source: IDStore, persistConfig?: IDPersistConfig) => any;
|
package/bin/types/index.d.ts
CHANGED
|
@@ -40,8 +40,8 @@ declare const _default: {
|
|
|
40
40
|
includes: typeof import("./util/includes").default;
|
|
41
41
|
merge: <T extends object>(target: T, source: Partial<T>) => T;
|
|
42
42
|
compareArray: (arr1: any, arr2: any) => boolean;
|
|
43
|
-
copy: (
|
|
44
|
-
clone: (
|
|
43
|
+
copy: (source: any, fields?: string[]) => any;
|
|
44
|
+
clone: (source: any) => any;
|
|
45
45
|
getTag: (value: any) => string;
|
|
46
46
|
getType: (value: any) => string;
|
|
47
47
|
toString: () => string;
|
|
@@ -76,6 +76,7 @@ declare const _default: {
|
|
|
76
76
|
run: (func: any, args?: {}) => Promise<any[]> | undefined;
|
|
77
77
|
formatList: (lists: any[], start: any, name: any) => any;
|
|
78
78
|
ruleValidator: (_: any, value: any) => boolean;
|
|
79
|
+
http: typeof import("./modules/mini/http").default;
|
|
79
80
|
};
|
|
80
81
|
url: {
|
|
81
82
|
parse: (qs: any, { sep, eq, max, multiple }?: {
|
|
@@ -110,6 +111,10 @@ declare const _default: {
|
|
|
110
111
|
validator: (rules: import("./modules/rule/async-validator").Rules) => import("./modules/rule/async-validator").default;
|
|
111
112
|
validate: (rules: import("./modules/rule/async-validator").Rules, source_: import("./modules/rule/async-validator").Values, o?: any, oc?: any) => Promise<import("./modules/rule/async-validator").Values>;
|
|
112
113
|
};
|
|
114
|
+
convert: {
|
|
115
|
+
uint8ArrayToString: (arr: any) => string;
|
|
116
|
+
stringToArrayBuffer: (str: any) => ArrayBuffer;
|
|
117
|
+
};
|
|
113
118
|
event: typeof event;
|
|
114
119
|
store: typeof store;
|
|
115
120
|
storeRef: (source: import("./typings").IDStore, persistConfig?: import("./typings").IDPersistConfig | undefined) => any;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare function uint8ArrayToString(arr: any): string;
|
|
2
|
+
declare function stringToArrayBuffer(str: any): ArrayBuffer;
|
|
3
|
+
declare const _default: {
|
|
4
|
+
uint8ArrayToString: typeof uint8ArrayToString;
|
|
5
|
+
stringToArrayBuffer: typeof stringToArrayBuffer;
|
|
6
|
+
};
|
|
7
|
+
export default _default;
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { IDebounceOption, TAnyFunction } from '../../typings';
|
|
2
|
+
/**
|
|
3
|
+
* 防抖 一段时间内,规定时间间隔多次执行,回调触发一次
|
|
4
|
+
* @param func
|
|
5
|
+
* @param wait
|
|
6
|
+
* @param options 参数:leading 开始执行, trailing结束执行
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
2
9
|
declare function debounce(func: TAnyFunction, wait?: number, options?: IDebounceOption): {
|
|
3
10
|
(...debouncedArgs: any[]): any;
|
|
4
11
|
cancel: () => void;
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { IDebounceOption, TAnyFunction, Omit } from "../../typings";
|
|
2
|
+
/**
|
|
3
|
+
* 节流 每个间隔内,触发一次
|
|
4
|
+
* @param func
|
|
5
|
+
* @param wait
|
|
6
|
+
* @param options 参数:leading 开始执行, trailing结束执行
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
2
9
|
declare function throttle(func: TAnyFunction, wait?: number, options?: Omit<IDebounceOption, 'maxWait'>): {
|
|
3
10
|
(...debouncedArgs: any[]): any;
|
|
4
11
|
cancel: () => void;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import Interceptor from "./interceptor";
|
|
2
|
+
export default class MiniHttp {
|
|
3
|
+
reqConfig: {};
|
|
4
|
+
handleEncrypt: (payload: any) => any;
|
|
5
|
+
handleDecrypt: (payload: any) => any;
|
|
6
|
+
handleToast: (payload: any) => any;
|
|
7
|
+
handleRequest: (payload: any) => any;
|
|
8
|
+
interceptors: {
|
|
9
|
+
request: Interceptor;
|
|
10
|
+
response: Interceptor;
|
|
11
|
+
};
|
|
12
|
+
static blockId: string;
|
|
13
|
+
static requestLock: {};
|
|
14
|
+
constructor(options: any);
|
|
15
|
+
/**
|
|
16
|
+
* 加锁
|
|
17
|
+
* @param {string} id
|
|
18
|
+
* @param {function} func
|
|
19
|
+
*/
|
|
20
|
+
lockR(id: any, func: any): void;
|
|
21
|
+
/**
|
|
22
|
+
* 解锁
|
|
23
|
+
* @param {string} id
|
|
24
|
+
*/
|
|
25
|
+
unlockR(id: any): void;
|
|
26
|
+
/**
|
|
27
|
+
* 根据URL和请求参数构造唯一标识符
|
|
28
|
+
* @param {object} req
|
|
29
|
+
*/
|
|
30
|
+
getIdFromReq(req: any): string;
|
|
31
|
+
/**
|
|
32
|
+
* 根据URL构造唯一标识符
|
|
33
|
+
* @param {object} req
|
|
34
|
+
*/
|
|
35
|
+
getIdFromReqUrl(req: any): any;
|
|
36
|
+
/**
|
|
37
|
+
* 请求函数
|
|
38
|
+
* @param {object} _payload 小程序 wx.request 可用参数
|
|
39
|
+
* @param {boolean} hasEncrypt 是否需要加密
|
|
40
|
+
*/
|
|
41
|
+
_fetch(_payload: any, hasEncrypt: any): Promise<unknown>;
|
|
42
|
+
/**
|
|
43
|
+
* 请求{name}接口
|
|
44
|
+
* @param {string} name
|
|
45
|
+
* @param {object} payload
|
|
46
|
+
*/
|
|
47
|
+
request(name: string, payload: any): Promise<any>;
|
|
48
|
+
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import diff from "./diff";
|
|
2
|
+
import http from "./http";
|
|
2
3
|
declare const _default: {
|
|
3
4
|
diff: typeof diff;
|
|
4
5
|
promixify: (miniapi: any) => any;
|
|
5
6
|
run: (func: any, args?: {}) => Promise<any[]> | undefined;
|
|
6
7
|
formatList: (lists: any[], start: any, name: any) => any;
|
|
7
8
|
ruleValidator: (_: any, value: any) => boolean;
|
|
9
|
+
http: typeof http;
|
|
8
10
|
};
|
|
9
11
|
export default _default;
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 解析时间
|
|
3
|
+
* @param param0
|
|
4
|
+
* @returns
|
|
5
|
+
*/
|
|
1
6
|
declare function parseTime({ year, month, date, hour, minute, second }: {
|
|
2
7
|
year?: number | undefined;
|
|
3
8
|
month?: number | undefined;
|
|
@@ -6,6 +11,7 @@ declare function parseTime({ year, month, date, hour, minute, second }: {
|
|
|
6
11
|
minute?: number | undefined;
|
|
7
12
|
second?: number | undefined;
|
|
8
13
|
}): number;
|
|
14
|
+
/** 当前时间 */
|
|
9
15
|
declare function now(): number;
|
|
10
16
|
declare const _default: {
|
|
11
17
|
now: typeof now;
|
|
@@ -2,6 +2,10 @@ import DPersist from "../class/persist";
|
|
|
2
2
|
export type TAnyFunction = (...args: any[]) => void;
|
|
3
3
|
export type TArrayFunction<T> = (args: T[]) => void;
|
|
4
4
|
export type Omit<T, K> = Pick<T, Exclude<keyof T, K>>;
|
|
5
|
+
/**
|
|
6
|
+
* leading 开始执行
|
|
7
|
+
* trailing 结束执行
|
|
8
|
+
*/
|
|
5
9
|
export interface IDebounceOption {
|
|
6
10
|
leading?: boolean;
|
|
7
11
|
maxWait?: number;
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import includes from "./includes";
|
|
2
2
|
declare function compareArray(arr1: any, arr2: any): boolean;
|
|
3
|
+
/**
|
|
4
|
+
* 合并
|
|
5
|
+
* @param target
|
|
6
|
+
* @param source
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
3
9
|
declare function merge<T extends object>(target: T, source: Partial<T>): T;
|
|
4
10
|
declare const _default: {
|
|
5
11
|
includes: typeof includes;
|
|
6
12
|
merge: typeof merge;
|
|
7
13
|
compareArray: typeof compareArray;
|
|
8
|
-
copy: (
|
|
9
|
-
clone: (
|
|
14
|
+
copy: (source: any, fields?: string[]) => any;
|
|
15
|
+
clone: (source: any) => any;
|
|
10
16
|
getTag: (value: any) => string;
|
|
11
17
|
getType: (value: any) => string;
|
|
12
18
|
toString: () => string;
|