ddan-js 1.3.7 → 1.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/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 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};
|
|
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 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}));
|
|
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/index.js
CHANGED
|
@@ -24,9 +24,9 @@ exports.default = {
|
|
|
24
24
|
url: url_1.default,
|
|
25
25
|
rule: rule_1.default,
|
|
26
26
|
convert: convert_1.default,
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
Event: event_1.default,
|
|
28
|
+
Store: store_1.default,
|
|
29
29
|
storeRef: store_1.storeRef,
|
|
30
|
-
|
|
30
|
+
Persist: persist_1.default,
|
|
31
31
|
persistConfig: persist_1.persistConfig
|
|
32
32
|
};
|
|
@@ -52,4 +52,4 @@ const ruleValidator = (_, value) => {
|
|
|
52
52
|
}
|
|
53
53
|
return true;
|
|
54
54
|
};
|
|
55
|
-
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/types/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import Event from "./class/event";
|
|
2
|
+
import Store from "./class/store";
|
|
3
|
+
import Persist from "./class/persist";
|
|
4
4
|
declare const _default: {
|
|
5
5
|
gbk: {
|
|
6
6
|
gbkLength: (str: string) => number;
|
|
@@ -76,7 +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
|
-
|
|
79
|
+
Http: typeof import("./modules/mini/http").default;
|
|
80
80
|
};
|
|
81
81
|
url: {
|
|
82
82
|
parse: (qs: any, { sep, eq, max, multiple }?: {
|
|
@@ -115,10 +115,10 @@ declare const _default: {
|
|
|
115
115
|
uint8ArrayToString: (arr: any) => string;
|
|
116
116
|
stringToArrayBuffer: (str: any) => ArrayBuffer;
|
|
117
117
|
};
|
|
118
|
-
|
|
119
|
-
|
|
118
|
+
Event: typeof Event;
|
|
119
|
+
Store: typeof Store;
|
|
120
120
|
storeRef: (source: import("./typings").IDStore, persistConfig?: import("./typings").IDPersistConfig | undefined) => any;
|
|
121
|
-
|
|
121
|
+
Persist: typeof Persist;
|
|
122
122
|
persistConfig: (key: string, fields: string[], storage: import("./typings").DStorage) => import("./typings").IDPersistConfig;
|
|
123
123
|
};
|
|
124
124
|
export default _default;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import diff from "./diff";
|
|
2
|
-
import
|
|
2
|
+
import Http from "./http";
|
|
3
3
|
declare const _default: {
|
|
4
4
|
diff: typeof diff;
|
|
5
5
|
promixify: (miniapi: any) => any;
|
|
6
6
|
run: (func: any, args?: {}) => Promise<any[]> | undefined;
|
|
7
7
|
formatList: (lists: any[], start: any, name: any) => any;
|
|
8
8
|
ruleValidator: (_: any, value: any) => boolean;
|
|
9
|
-
|
|
9
|
+
Http: typeof Http;
|
|
10
10
|
};
|
|
11
11
|
export default _default;
|