ddan-js 1.2.2 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/ddan-js.esm.js +1 -1
- package/bin/ddan-js.js +1 -1
- package/bin/lib/index.js +2 -1
- package/bin/lib/modules/math/index.js +14 -1
- package/bin/lib/modules/mini/index.js +13 -13
- package/bin/lib/modules/rule/async-validator/index.js +300 -0
- package/bin/lib/modules/rule/async-validator/interface.js +2 -0
- package/bin/lib/modules/rule/async-validator/messages.js +59 -0
- package/bin/lib/modules/rule/async-validator/rule/enum.js +13 -0
- package/bin/lib/modules/rule/async-validator/rule/index.js +16 -0
- package/bin/lib/modules/rule/async-validator/rule/pattern.js +27 -0
- package/bin/lib/modules/rule/async-validator/rule/range.js +54 -0
- package/bin/lib/modules/rule/async-validator/rule/required.js +12 -0
- package/bin/lib/modules/rule/async-validator/rule/type.js +98 -0
- package/bin/lib/modules/rule/async-validator/rule/url.js +55 -0
- package/bin/lib/modules/rule/async-validator/rule/whitespace.js +20 -0
- package/bin/lib/modules/rule/async-validator/util.js +250 -0
- package/bin/lib/modules/rule/async-validator/validator/any.js +16 -0
- package/bin/lib/modules/rule/async-validator/validator/array.js +19 -0
- package/bin/lib/modules/rule/async-validator/validator/boolean.js +20 -0
- package/bin/lib/modules/rule/async-validator/validator/date.js +31 -0
- package/bin/lib/modules/rule/async-validator/validator/enum.js +20 -0
- package/bin/lib/modules/rule/async-validator/validator/float.js +20 -0
- package/bin/lib/modules/rule/async-validator/validator/index.js +36 -0
- package/bin/lib/modules/rule/async-validator/validator/integer.js +20 -0
- package/bin/lib/modules/rule/async-validator/validator/method.js +19 -0
- package/bin/lib/modules/rule/async-validator/validator/number.js +23 -0
- package/bin/lib/modules/rule/async-validator/validator/object.js +19 -0
- package/bin/lib/modules/rule/async-validator/validator/pattern.js +19 -0
- package/bin/lib/modules/rule/async-validator/validator/regexp.js +19 -0
- package/bin/lib/modules/rule/async-validator/validator/required.js +10 -0
- package/bin/lib/modules/rule/async-validator/validator/string.js +24 -0
- package/bin/lib/modules/rule/async-validator/validator/type.js +20 -0
- package/bin/lib/modules/rule/index.js +31 -0
- package/bin/lib/modules/url/index.js +12 -1
- package/bin/lib/util/index.js +30 -1
- package/bin/types/index.d.ts +37 -6
- package/bin/types/modules/math/index.d.ts +2 -0
- package/bin/types/modules/mini/index.d.ts +4 -2
- package/bin/types/modules/rule/async-validator/index.d.ts +43 -0
- package/bin/types/modules/rule/async-validator/interface.d.ts +135 -0
- package/bin/types/modules/rule/async-validator/messages.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/rule/enum.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/rule/index.d.ts +9 -0
- package/bin/types/modules/rule/async-validator/rule/pattern.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/rule/range.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/rule/required.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/rule/type.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/rule/url.d.ts +2 -0
- package/bin/types/modules/rule/async-validator/rule/whitespace.d.ts +14 -0
- package/bin/types/modules/rule/async-validator/util.d.ts +16 -0
- package/bin/types/modules/rule/async-validator/validator/any.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/validator/array.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/validator/boolean.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/validator/date.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/validator/enum.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/validator/float.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/validator/index.d.ts +20 -0
- package/bin/types/modules/rule/async-validator/validator/integer.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/validator/method.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/validator/number.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/validator/object.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/validator/pattern.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/validator/regexp.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/validator/required.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/validator/string.d.ts +3 -0
- package/bin/types/modules/rule/async-validator/validator/type.d.ts +3 -0
- package/bin/types/modules/rule/index.d.ts +12 -0
- package/bin/types/modules/url/index.d.ts +26 -4
- package/bin/types/util/index.d.ts +4 -0
- package/package.json +1 -1
package/bin/ddan-js.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var t={gbkLength:function(t){let e=0;if(!t)return 0;for(let n=0;n<t.length;n++)t.charCodeAt(n)>127||94===t.charCodeAt(n)?e+=2:e++;return e},gbkCut:function(t,e){if(!t||e<=0)return"";let n=0,r=0;for(let o=0;o<t.length&&(t.charCodeAt(o)>127||94===t.charCodeAt(o)?n+=2:n++,!(n>e));o++)r=o;return t.substr(0,r+1)}},e="object"==typeof global&&global&&global.Object===Object&&global,n="object"==typeof self&&self&&self.Object===Object&&self,r=e||n||Function("return this")();const o=(t,e="yyyy-MM-dd hh:mm:ss")=>{const n="string"==typeof t||"number"==typeof t?new Date(t):t,r={};return r.yyyy=n.getFullYear(),r.yy=`${r.yyyy}`.substr(2),r.M=n.getMonth()+1,r.MM=(r.M<10?"0":"")+r.M,r.d=n.getDate(),r.dd=(r.d<10?"0":"")+r.d,r.h=n.getHours(),r.hh=(r.h<10?"0":"")+r.h,r.m=n.getMinutes(),r.mm=(r.m<10?"0":"")+r.m,r.s=n.getSeconds(),r.ss=(r.s<10?"0":"")+r.s,r.S=n.getMilliseconds(),r.SS=(r.S<10?"0":"")+r.S,r.SSS=r.S.toString().padStart(3,0),e.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(t=>r[t]))};function i(){return r.Date.now()}var s={now:i,isToday:t=>(new Date).toDateString()===new Date(t).toDateString(),format:o,parseTime:function({year:t=0,month:e=0,date:n=0,hour:r=0,minute:i=0,second:s=0}){const c=`${t||"yyyy"}/${e||"MM"}/${n||"dd"} ${r}:${i}:${s}`;return new Date(o(Date.now(),c)).getTime()},todayZero:()=>new Date(o(i(),"yyyy/MM/dd 00:00:00")).getTime(),oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3};const c=r.Symbol,{toString:u,hasOwnProperty:a,propertyIsEnumerable:l}=Object.prototype,f=c?c.toStringTag:void 0;function h(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":f&&f in Object(t)?function(t){const e=a.call(t,f),n=t[f];let r=!1;try{t[f]=void 0,r=!0}catch(t){}const o=u.call(t);return r&&(e?t[f]=n:delete t[f]),o}(t):u.call(t)}var g={getTag:h,getType:function(t){return(h(t).match(/\w+/g)||["object","Undefined"])[1]||""},toString:u,hasOwnProperty:a,propertyIsEnumerable:l},y="[object Function]",p="[object GeneratorFunction]",d="[object AsyncFunction]",m=9007199254740991;const b=/^(?:0|[1-9]\d*)$/;function v(t){const e=typeof t;return null!=t&&("object"==e||"function"==e)}function j(t){return null!=t&&"object"==typeof t}const O=Array.isArray;function S(t){return null!=t&&function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=m}(t.length)&&!A(t)}function w(t){return j(t)&&S(t)}function A(t){var e=v(t)?g.getTag(t):"";return e===y||e===p||e===d}var M={is:function(t,e){return g.getTag(t)===`[object ${e}]`},isNumber:function(t){return"[object Number]"===g.getTag(t)},isString:function(t){return"string"==typeof t||!O(t)&&j(t)&&"[object String]"==g.getTag(t)},isChinese:function(t){return!!t&&!!/^[\u4E00-\u9FA5]+$/.test(t)},isObject:v,isObjectLike:j,isSymbol:function(t){return"symbol"==typeof t||j(t)&&"[object Symbol]"===g.getTag(t)},isFunction:A,isArray:O,isArrayLikeObject:w,isIndex:function(t,e){return!!(e=null==e?m:e)&&("number"==typeof t||b.test(t))&&t>-1&&t%1==0&&t<e},isArrayLike:S,isPrototype:function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Object.prototype)},isArguments:function(t){return w(t)&&g.hasOwnProperty.call(t,"callee")&&(!g.propertyIsEnumerable.call(t,"callee")||"[object Arguments]"==g.toString.call(t))},isPromise:function(t){return"[object Promise]"===(v(t)?g.getTag(t):"")}};const $=NaN,T=/^\s+|\s+$/g,k=/^[-+]0x[0-9a-f]+$/i,x=/^0b[01]+$/i,P=/^0o[0-7]+$/i,R=parseInt,D=1/0,I=17976931348623157e292;function F(t){if("number"==typeof t)return t;if(M.isSymbol(t))return $;if(M.isObject(t)){const e="function"==typeof t.valueOf?t.valueOf():t;t=M.isObject(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(T,"");const e=x.test(t);return e||P.test(t)?R(t.slice(2),e?2:8):k.test(t)?$:+t}function C(t){return t?(t=F(t))===D||t===-D?(t<0?-1:1)*I:t==t?t:0:0===t?t:0}var E={toNumber:F,toFinite:C,toInteger:function(t){var e=C(t),n=e%1;return e==e?n?e-n:e:0}};const N="Expected a function",U=Math.max,_=Math.min;function L(t,e=0,n={}){var r,o,i,s,c,u,a=0,l=!1,f=!1,h=!0;if("function"!=typeof t)throw new TypeError(N);function g(e){var n=r,i=o;return r=o=void 0,a=e,s=t.apply(i,n)}function y(t){var n=t-u;return void 0===u||n>=e||n<0||f&&t-a>=i}function p(){var t=Date.now();if(y(t))return d(t);c=setTimeout(p,function(t){var n=e-(t-u);return f?_(n,i-(t-a)):n}(t))}function d(t){return c=void 0,h&&r?g(t):(r=o=void 0,s)}function m(...t){var n=Date.now(),i=y(n);if(r=arguments,o=this,u=n,i){if(void 0===c)return function(t){return a=t,c=setTimeout(p,e),l?g(t):s}(u);if(f)return c=setTimeout(p,e),g(u)}return void 0===c&&(c=setTimeout(p,e)),s}return e=E.toNumber(e)||0,M.isObject(n)&&(l=!!n.leading,i=(f="maxWait"in n)?U(E.toNumber(n.maxWait)||0,e):i,h="trailing"in n?!!n.trailing:h),m.cancel=function(){void 0!==c&&clearTimeout(c),a=0,r=u=o=c=void 0},m.flush=function(){return void 0===c?s:d(Date.now())},m}class B{constructor(t){this.source=t}run(){let t;try{let e;return e=M.isFunction(this.source)?this.source():this.source,t=M.isPromise(e)?e:Promise.resolve(e),t.then((t=>[null,t])).catch((t=>[t,void 0]))}catch(t){return Promise.resolve([t,void 0])}}}var W={sleep:(t=1e3)=>new Promise((e=>{setTimeout(e,t)})),run:t=>new B(t).run(),debounce:L,throttle:function(t,e=0,n={}){var r=!1,o=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return M.isObject(n)&&(r=n.leading?!!n.leading:r,o=n.trailing?!!n.trailing:o),L(t,e,{leading:r,maxWait:e,trailing:o})}};var q={random:function(t){return Math.floor(Math.random()*t)},randomRange:function(t,e){return Math.floor(Math.random()*(e-t+1)+t)},lerp:function(t,e,n){return t*(1-n)+e*n}};function H(t){return t!=t}function J(t,e){return function(t,e){for(var n=-1,r=t?t.length:0,o=Array(r);++n<r;)o[n]=e(t[n],n,t);return o}(e,(function(e){return t[e]}))}var G,Y,Z=(G=Object.keys,Y=Object,function(t){return G(Y(t))}),z=Math.max;function K(t,e){var n=M.isArray(t)||M.isArguments(t)?function(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}(t.length,String):[],r=n.length,o=!!r;for(var i in t)!e&&!g.hasOwnProperty.call(t,i)||o&&("length"==i||M.isIndex(i,r))||n.push(i);return n}var Q=Object.assign(Object.assign(Object.assign({},M),g),{includes:function(t,e,n,r){var o;t=M.isArrayLike(t)?t:(o=t)?J(o,function(t){return M.isArrayLike(t)?K(t):function(t){if(!M.isPrototype(t))return Z(t);var e=[];for(var n in Object(t))g.hasOwnProperty.call(t,n)&&"constructor"!=n&&e.push(n);return e}(t)}(o)):[],n=n&&!r?E.toInteger(n):0;var i=t.length;return n<0&&(n=z(i+n,0)),M.isString(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&function(t,e,n){if(e!=e)return function(t,e,n,r){for(var o=t.length,i=n+(r?1:-1);r?i--:++i<o;)if(e(t[i],i,t))return i;return-1}(t,H,n);for(var r=n-1,o=t.length;++r<o;)if(t[r]===e)return r;return-1}(t,e,n)>-1}});class V{constructor(){this._map=new Map}clear(){return this._map.clear(),this}on(t,e){if(!e)return this;let n=this._map.get(t);return n||(n=new Set,this._map.set(t,n)),n.add(e),this}emit(t,...e){const n=this._map.get(t);if(!n)return this;return[...n].forEach((t=>t(...e))),this}off(t="",e){if(!t)return this._map.clear(),this;if(!e)return this._map.delete(t.toString()),this;const n=this._map.get(t);return n?(n.delete(e),this):this}once(t,e){const n=(...r)=>{e(...r),this.off(t,n)};return this.on(t,n),this}has(t){return this._map.has(t)}}var X={groupBy:(t,e)=>t.reduce(((t,n)=>((t[n[e]]=t[n[e]]||[]).push(n),t)),{}),stepAction:function(t,e,n=100){if(!M.isFunction(e))return;if(!M.isArray(t)||t.length<=0)return;let r=0;for(;t.length>r;){let o=n+r,i=t.slice(r,o);e&&e(i),r=o}},skip:(t,e)=>{if(!M.isArray(t)||t.length<=0)return[];const n=e;return t.slice(n)},take:(t,e,n=0)=>{if(!M.isArray(t)||t.length<=0)return[];const r=n||0;if(r>=t.length)return[];const o=e+r;return t.slice(r,t.length<o?t.length:o)||[]},distinct:t=>!M.isArray(t)||t.length<=0?[]:[...new Set(t)]};const tt="[object Object]",et="[object Array]",nt=t=>Object.prototype.toString.call(t),rt=(t,e,n=!1)=>{if(t===e)return;const r=nt(t);if(r===nt(e))if(r===et&&t.length>=e.length)for(let n=0;n<e.length;n++)rt(t[n],e[n]);else if(r===tt&&Object.keys(t).length>=Object.keys(e).length)for(let r in e)n||void 0!==t[r]?rt(t[r],e[r]):t[r]=null},ot=(t,e,n,r="",o=!1)=>{if(t===e)return;const i=nt(t),s=nt(e);if(i===et&&s===i&&t.length>=e.length)for(let o=0;o<t.length;o++)ot(t[o],e[o],n,`${r}[${o}]`);else if(i===tt&&s===i&&(o||Object.keys(t).length>=Object.keys(e).length)){const o=Object.keys(t);for(let i of o){const o=t[i],s=e[i],c=nt(o),u=nt(s);if(o!==s)if(c===et&&u===c&&o.length>=s.length)for(let t=0;t<o.length;t++)ot(o[t],s[t],n,`${r?r+".":""}${i}[${t}]`);else if(c===tt&&u===c&&Object.keys(o).length>=Object.keys(s).length)for(let t in o)ot(o[t],s[t],n,`${r?r+".":""}${i}.${t}`);else n[`${r?r+".":""}${i}`]=o}}else n[r]=t};const it=t=>(e,...n)=>new Promise(((r,o)=>{t(Object.assign({},e,{success:r,fail:o}),...n)}));var st={diff:function(t,e){const n={};return(t=>{if(nt(t)===tt)for(let e in t)if(/\w+\.\w+/g.test(e)&&-1===e.indexOf("[")){const n=e.split(".");let r=t,o=n.length;for(let t=0;t<o-1;t++){const e=n[t];nt(r[e])!==tt&&(r[e]={}),r=r[e]}r[n[o-1]]=t[e],delete t[e]}})(t),rt(t,e,!0),ot(t,e,n,"",!0),n},promixify:it,api:(t,e=null,...n)=>W.run(it(t)(e,...n))};function ct(t,e){return Object.prototype.hasOwnProperty.call(t,e)}const ut=function(t,{sep:e="&",eq:n="=",max:r=1e3,multiple:o=!1}={}){e=e||"&",n=n||"=";const i={};if("string"!=typeof t||0===t.length)return i;const s=/\+/g,c=r||1e3;let u=(t=t.split(e)).length;c>0&&u>c&&(u=c);for(let e=0;e<u;++e){let r,c,u,a,l=t[e].replace(s,"%20"),f=l.indexOf(n);f>=0?(r=l.substr(0,f),c=l.substr(f+1)):(r=l,c=""),u=decodeURIComponent(r),a=decodeURIComponent(c),ct(i,u)&&o?Array.isArray(i[u])?i[u].push(a):i[u]=[i[u],a]:i[u]=a}return i},at=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}},lt=function(t,{sep:e="&",eq:n="=",name:r=null,multiple:o=!1}={}){return e=e||"&",n=n||"=",null===t&&(t=void 0),"object"==typeof t?Object.keys(t).map((function(r){const i=encodeURIComponent(at(r))+n;return o&&Array.isArray(t[r])?t[r].map((function(t){return i+encodeURIComponent(at(t))})).join(e):i+encodeURIComponent(at(t[r]))})).filter(Boolean).join(e):r?encodeURIComponent(at(r))+n+encodeURIComponent(at(t)):""};var ft={parse:ut,decode:ut,stringify:lt,encode:lt};function ht(t,e,n,r){return new(n||(n=Promise))((function(o,i){function s(t){try{u(r.next(t))}catch(t){i(t)}}function c(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,c)}u((r=r.apply(t,e||[])).next())}))}class gt extends V{constructor(){super(),this.getters={},this.setters={},this.actions={}}dispatch(t,e=void 0){return ht(this,void 0,void 0,(function*(){const n=Reflect.get(this.actions,t);if(!M.isFunction(n))return;const[,r]=yield W.run(n(this,e));return r}))}getByOnce(t){return ht(this,void 0,void 0,(function*(){const e=Reflect.get(this,t);let n;return n=null!=e&&""!==e?JSON.parse(JSON.stringify(e)):yield this.dispatch(t),n}))}}var yt={gbk:t,time:s,hook:W,math:q,util:Q,list:X,mini:st,url:ft,DEvent:V,store:gt,storeRef:t=>{const e=Object.assign(new gt,t||{});return new Proxy(e,{get:(t,e,n)=>{const r=Reflect.get(t.getters,e);return M.isFunction(r)?r():Reflect.get(t,e,n)},set:(t,e,n,r)=>{const o=Reflect.get(t.setters,e);if(M.isFunction(o)&&!o(n))return!0;const i=Reflect.set(t,e,n,r);return i&&t.emit(e.toString(),n),i},has:(t,e)=>Reflect.has(t,e)})}};export{yt 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 i=0;i<e.length&&(e.charCodeAt(i)>127||94===e.charCodeAt(i)?r+=2:r++,!(r>t));i++)n=i;return e.substr(0,n+1)}},t="object"==typeof global&&global&&global.Object===Object&&global,r="object"==typeof self&&self&&self.Object===Object&&self,n=t||r||Function("return this")();const i=(e,t="yyyy-MM-dd hh:mm:ss")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e,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 s(){return n.Date.now()}var o={now:s,isToday:e=>(new Date).toDateString()===new Date(e).toDateString(),format:i,parseTime:function({year:e=0,month:t=0,date:r=0,hour:n=0,minute:s=0,second:o=0}){const a=`${e||"yyyy"}/${t||"MM"}/${r||"dd"} ${n}:${s}:${o}`;return new Date(i(Date.now(),a)).getTime()},todayZero:()=>new Date(i(s(),"yyyy/MM/dd 00:00:00")).getTime(),oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3};const a=n.Symbol,{toString:u,hasOwnProperty:l,propertyIsEnumerable:c}=Object.prototype,f=a?a.toStringTag:void 0;function d(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":f&&f in Object(e)?function(e){const t=l.call(e,f),r=e[f];let n=!1;try{e[f]=void 0,n=!0}catch(e){}const i=u.call(e);return n&&(t?e[f]=r:delete e[f]),i}(e):u.call(e)}var g={getTag:d,getType:function(e){return(d(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:u,hasOwnProperty:l,propertyIsEnumerable:c},p="[object Function]",h="[object GeneratorFunction]",y="[object AsyncFunction]",m=9007199254740991;const b=/^(?:0|[1-9]\d*)$/;function v(e){const t=typeof e;return null!=e&&("object"==t||"function"==t)}function w(e){return null!=e&&"object"==typeof e}const O=Array.isArray;function j(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=m}(e.length)&&!q(e)}function $(e){return w(e)&&j(e)}function q(e){var t=v(e)?g.getTag(e):"";return t===p||t===h||t===y}var A={is:function(e,t){return g.getTag(e)===`[object ${t}]`},isNumber:function(e){return"[object Number]"===g.getTag(e)},isString:function(e){return"string"==typeof e||!O(e)&&w(e)&&"[object String]"==g.getTag(e)},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isObject:v,isObjectLike:w,isSymbol:function(e){return"symbol"==typeof e||w(e)&&"[object Symbol]"===g.getTag(e)},isFunction:q,isArray:O,isArrayLikeObject:$,isIndex:function(e,t){return!!(t=null==t?m:t)&&("number"==typeof e||b.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:j,isPrototype:function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)},isArguments:function(e){return $(e)&&g.hasOwnProperty.call(e,"callee")&&(!g.propertyIsEnumerable.call(e,"callee")||"[object Arguments]"==g.toString.call(e))},isPromise:function(e){return"[object Promise]"===(v(e)?g.getTag(e):"")}};const F=NaN,x=/^\s+|\s+$/g,S=/^[-+]0x[0-9a-f]+$/i,E=/^0b[01]+$/i,P=/^0o[0-7]+$/i,k=parseInt,M=1/0,R=17976931348623157e292;function D(e){if("number"==typeof e)return e;if(A.isSymbol(e))return F;if(A.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=A.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(x,"");const t=E.test(e);return t||P.test(e)?k(e.slice(2),t?2:8):S.test(e)?F:+e}function T(e){return e?(e=D(e))===M||e===-M?(e<0?-1:1)*R:e==e?e:0:0===e?e:0}var N={toNumber:D,toFinite:T,toInteger:function(e){var t=T(e),r=t%1;return t==t?r?t-r:t:0}};const C="Expected a function",I=Math.max,_=Math.min;function V(e,t=0,r={}){var n,i,s,o,a,u,l=0,c=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError(C);function g(t){var r=n,s=i;return n=i=void 0,l=t,o=e.apply(s,r)}function p(e){var r=e-u;return void 0===u||r>=t||r<0||f&&e-l>=s}function h(){var e=Date.now();if(p(e))return y(e);a=setTimeout(h,function(e){var r=t-(e-u);return f?_(r,s-(e-l)):r}(e))}function y(e){return a=void 0,d&&n?g(e):(n=i=void 0,o)}function m(...e){var r=Date.now(),s=p(r);if(n=arguments,i=this,u=r,s){if(void 0===a)return function(e){return l=e,a=setTimeout(h,t),c?g(e):o}(u);if(f)return a=setTimeout(h,t),g(u)}return void 0===a&&(a=setTimeout(h,t)),o}return t=N.toNumber(t)||0,A.isObject(r)&&(c=!!r.leading,s=(f="maxWait"in r)?I(N.toNumber(r.maxWait)||0,t):s,d="trailing"in r?!!r.trailing:d),m.cancel=function(){void 0!==a&&clearTimeout(a),l=0,n=u=i=a=void 0},m.flush=function(){return void 0===a?o:y(Date.now())},m}class z{constructor(e){this.source=e}run(){let e;try{let t;return t=A.isFunction(this.source)?this.source():this.source,e=A.isPromise(t)?t:Promise.resolve(t),e.then((e=>[null,e])).catch((e=>[e,void 0]))}catch(e){return Promise.resolve([e,void 0])}}}var U={sleep:(e=1e3)=>new Promise((t=>{setTimeout(t,e)})),run:e=>new z(e).run(),debounce:V,throttle:function(e,t=0,r={}){var n=!1,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return A.isObject(r)&&(n=r.leading?!!r.leading:n,i=r.trailing?!!r.trailing:i),V(e,t,{leading:n,maxWait:t,trailing:i})}};var L={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 n="";for(let t=0;t<e;t++)n+=r.charAt(Math.floor(62*Math.random()));return t?o.format(new Date,"yyyyMMddhhmmss")+n:n}};function B(e){return e!=e}function J(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}(t,(function(t){return e[t]}))}var W,Z,H=(W=Object.keys,Z=Object,function(e){return W(Z(e))}),Y=Math.max;function G(e,t){var r=A.isArray(e)||A.isArguments(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,i=!!n;for(var s in e)!t&&!g.hasOwnProperty.call(e,s)||i&&("length"==s||A.isIndex(s,n))||r.push(s);return r}var K=Object.assign(Object.assign(Object.assign({},A),g),{includes:function(e,t,r,n){e=A.isArrayLike(e)?e:function(e){return e?J(e,function(e){return A.isArrayLike(e)?G(e):function(e){if(!A.isPrototype(e))return H(e);var t=[];for(var r in Object(e))g.hasOwnProperty.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}(e)):[]}(e),r=r&&!n?N.toInteger(r):0;var i=e.length;return r<0&&(r=Y(i+r,0)),A.isString(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}(e,B,r);for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}(e,t,r)>-1},merge:function(e,t){return t?e?(Object.keys(t).forEach((r=>{Array.isArray(e[r])&&Array.isArray(t[r])?e[r]=e[r].concat(t[r]):"object"==typeof e[r]&&"object"==typeof t[r]?e[r]=Object.assign(e[r],t[r]):e[r]=t[r]})),e):t: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}});class Q{constructor(){this._map=new Map}clear(){return this._map.clear(),this}on(e,t){if(!t)return this;let r=this._map.get(e);return r||(r=new Set,this._map.set(e,r)),r.add(t),this}emit(e,...t){const r=this._map.get(e);if(!r)return this;return[...r].forEach((e=>e(...t))),this}off(e="",t){if(!e)return this._map.clear(),this;if(!t)return this._map.delete(e.toString()),this;const r=this._map.get(e);return r?(r.delete(t),this):this}once(e,t){const r=(...n)=>{t(...n),this.off(e,r)};return this.on(e,r),this}has(e){return this._map.has(e)}}var X={groupBy:(e,t)=>e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{}),stepAction:function(e,t,r=100){if(!A.isFunction(t))return;if(!A.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let i=r+n,s=e.slice(n,i);t&&t(s),n=i}},skip:(e,t)=>{if(!A.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:(e,t,r=0)=>{if(!A.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const i=t+n;return e.slice(n,e.length<i?e.length:i)||[]},distinct:e=>!A.isArray(e)||e.length<=0?[]:[...new Set(e)]};const ee="[object Object]",te="[object Array]",re=e=>Object.prototype.toString.call(e),ne=(e,t,r=!1)=>{if(e===t)return;const n=re(e);if(n===re(t))if(n===te&&e.length>=t.length)for(let r=0;r<t.length;r++)ne(e[r],t[r]);else if(n===ee&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?ne(e[n],t[n]):e[n]=null},ie=(e,t,r,n="",i=!1)=>{if(e===t)return;const s=re(e),o=re(t);if(s===te&&o===s&&e.length>=t.length)for(let i=0;i<e.length;i++)ie(e[i],t[i],r,`${n}[${i}]`);else if(s===ee&&o===s&&(i||Object.keys(e).length>=Object.keys(t).length)){const i=Object.keys(e);for(let s of i){const i=e[s],o=t[s],a=re(i),u=re(o);if(i!==o)if(a===te&&u===a&&i.length>=o.length)for(let e=0;e<i.length;e++)ie(i[e],o[e],r,`${n?n+".":""}${s}[${e}]`);else if(a===ee&&u===a&&Object.keys(i).length>=Object.keys(o).length)for(let e in i)ie(i[e],o[e],r,`${n?n+".":""}${s}.${e}`);else r[`${n?n+".":""}${s}`]=i}}else r[n]=e};const se=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var oe={diff:function(e,t){const r={};return(e=>{if(re(e)===ee)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,i=r.length;for(let e=0;e<i-1;e++){const t=r[e];re(n[t])!==ee&&(n[t]={}),n=n[t]}n[r[i-1]]=e[t],delete e[t]}})(e),ne(e,t,!0),ie(e,t,r,"",!0),r},promixify:se,run:(e,t={})=>{if(e)return U.run(se(e)(t))},formatList:function(e,t,r){return(e||[]).reduce(((e,n,i)=>Object.assign(Object.assign({},e),{[`${r}[${t+i}]`]:n})),{})}};function ae(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const ue=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:i=!1}={}){t=t||"&",r=r||"=";const s={};if("string"!=typeof e||0===e.length)return s;const o=/\+/g,a=n||1e3;let u=(e=e.split(t)).length;a>0&&u>a&&(u=a);for(let t=0;t<u;++t){let n,a,u,l,c=e[t].replace(o,"%20"),f=c.indexOf(r);f>=0?(n=c.substr(0,f),a=c.substr(f+1)):(n=c,a=""),u=decodeURIComponent(n),l=decodeURIComponent(a),ae(s,u)&&i?Array.isArray(s[u])?s[u].push(l):s[u]=[s[u],l]:s[u]=l}return s},le=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},ce=function(e,{sep:t="&",eq:r="=",name:n=null,multiple:i=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const s=encodeURIComponent(le(n))+r;return i&&Array.isArray(e[n])?e[n].map((function(e){return s+encodeURIComponent(le(e))})).join(t):s+encodeURIComponent(le(e[n]))})).filter(Boolean).join(t):n?encodeURIComponent(le(n))+r+encodeURIComponent(le(e)):""};var fe={parse:ue,decode:ue,stringify:ce,encode:ce,useHttps:function(e){if(!e)return e;const t=e.trim();return"string"!=typeof e?e:t.indexOf("https")<0?t.replace("http","https"):t}};const de=/%[sdj%]/g;let ge=()=>{};function pe(e){if(!e||!e.length)return null;const t={};return e.forEach((e=>{const r=e.field;t[r]=t[r]||[],t[r].push(e)})),t}function he(e,...t){let r=0;const n=t.length;if("function"==typeof e)return e.apply(null,t);if("string"==typeof e){return e.replace(de,(e=>{if("%%"===e)return"%";if(r>=n)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}))}return e}function ye(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function me(e,t,r){let n=0;const i=e.length;!function s(o){if(o&&o.length)return void r(o);const a=n;n+=1,a<i?t(e[a],s):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(ge=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class be extends Error{constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function ve(e,t,r,n,i){if(t.first){const t=new Promise(((t,s)=>{const o=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);me(o,r,(e=>(n(e),e.length?s(new be(e,pe(e))):t(i))))}));return t.catch((e=>e)),t}const s=!0===t.firstFields?Object.keys(e):t.firstFields||[],o=Object.keys(e),a=o.length;let u=0;const l=[],c=new Promise(((t,c)=>{const f=e=>{if(l.push.apply(l,e),u++,u===a)return n(l),l.length?c(new be(l,pe(l))):t(i)};o.length||(n(l),t(i)),o.forEach((t=>{const n=e[t];-1!==s.indexOf(t)?me(n,r,f):function(e,t,r){const n=[];let i=0;const s=e.length;function o(e){n.push(...e||[]),i++,i===s&&r(n)}e.forEach((e=>{t(e,o)}))}(n,r,f)}))}));return c.catch((e=>e)),c}function we(e,t){return r=>{let n;return n=e.fullFields?function(e,t){let r=e;for(let e=0;e<t.length;e++){if(null==r)return r;r=r[t[e]]}return r}(t,e.fullFields):t[r.field||e.fullField],(i=r)&&void 0!==i.message?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:"function"==typeof r?r():r,fieldValue:n,field:r.field||e.fullField};var i}}function Oe(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]=Object.assign(Object.assign({},e[r]),n):e[r]=n}return e}const je=(e,t,r,n,i,s)=>{!e.required||r.hasOwnProperty(e.field||"")&&!ye(t,s||e.type)||n.push(he(i.messages.required,e.fullField))};let $e;const qe=/^(([^<>()\[\]\\.,;:\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,}))$/,Ae=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Fe={integer:e=>Fe.number(e)&&parseInt(e,10)===e,float:e=>Fe.number(e)&&!Fe.integer(e),array:e=>Array.isArray(e),regexp(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:e=>"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime()),number:e=>!isNaN(e)&&"number"==typeof e,object:e=>"object"==typeof e&&!Fe.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(qe),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if($e)return $e;const e="[a-fA-F\\d:]",t=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${e})|(?<=${e})(?=\\s|$))`:"",r="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fA-F\\d]{1,4}",i=`\n(?:\n(?:${n}:){7}(?:${n}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${n}:){6}(?:${r}|:${n}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${n}:){5}(?::${r}|(?::${n}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${n}:){4}(?:(?::${n}){0,1}:${r}|(?::${n}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${n}:){3}(?:(?::${n}){0,2}:${r}|(?::${n}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${n}:){2}(?:(?::${n}){0,3}:${r}|(?::${n}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${n}:){1}(?:(?::${n}){0,4}:${r}|(?::${n}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${n}){0,5}:${r}|(?::${n}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),s=new RegExp(`(?:^${r}$)|(?:^${i}$)`),o=new RegExp(`^${r}$`),a=new RegExp(`^${i}$`),u=e=>e&&e.exact?s:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${i}${t(e)})`,"g");u.v4=e=>e&&e.exact?o:new RegExp(`${t(e)}${r}${t(e)}`,"g"),u.v6=e=>e&&e.exact?a:new RegExp(`${t(e)}${i}${t(e)}`,"g");const l=u.v4().source,c=u.v6().source;return $e=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${l}|${c}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)`,"i"),$e})()),hex:e=>"string"==typeof e&&!!e.match(Ae)},xe="enum";var Se={required:je,whitespace:(e,t,r,n,i)=>{(/^\s+$/.test(t)||""===t)&&n.push(he(i.messages.whitespace,e.fullField))},type:(e,t,r,n,i)=>{if(e.required&&void 0===t)return void je(e,t,r,n,i);const s=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(s)>-1?Fe[s](t)||n.push(he(i.messages.types[s],e.fullField,e.type)):s&&typeof t!==e.type&&n.push(he(i.messages.types[s],e.fullField,e.type))},range:(e,t,r,n,i)=>{const s="number"==typeof e.len,o="number"==typeof e.min,a="number"==typeof e.max,u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let l=t,c="";const f="number"==typeof t,d="string"==typeof t,g=Array.isArray(t);if(f?c="number":d?c="string":g&&(c="array"),!c)return!1;g&&(l=t.length),d&&(l=t.replace(u,"_").length),s?l!==e.len&&n.push(he(i.messages[c].len,e.fullField,e.len)):o&&!a&&l<e.min?n.push(he(i.messages[c].min,e.fullField,e.min)):a&&!o&&l>e.max?n.push(he(i.messages[c].max,e.fullField,e.max)):o&&a&&(l<e.min||l>e.max)&&n.push(he(i.messages[c].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,i)=>{e[xe]=Array.isArray(e[xe])?e[xe]:[],-1===e[xe].indexOf(t)&&n.push(he(i.messages[xe],e.fullField,e[xe].join(", ")))},pattern:(e,t,r,n,i)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const Ee=(e,t,r,n,i)=>{const s=e.type,o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t,s)&&!e.required)return r();Se.required(e,t,n,o,i,s),ye(t,s)||Se.type(e,t,n,o,i)}r(o)};var Pe={string:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(ye(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i,"string"),ye(t,"string")||(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i),Se.pattern(e,t,n,s,i),!0===e.whitespace&&Se.whitespace(e,t,n,s,i))}r(s)},method:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},number:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},boolean:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},regexp:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),ye(t)||Se.type(e,t,n,s,i)}r(s)},integer:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},float:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},array:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Se.required(e,t,n,s,i,"array"),null!=t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},object:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},enum:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.enum(e,t,n,s,i)}r(s)},pattern:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i),ye(t,"string")||Se.pattern(e,t,n,s,i)}r(s)},date:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t,"date")&&!e.required)return r();if(Se.required(e,t,n,s,i),!ye(t,"date")){let r;r=t instanceof Date?t:new Date(t),Se.type(e,r,n,s,i),r&&Se.range(e,r.getTime(),n,s,i)}}r(s)},url:Ee,hex:Ee,email:Ee,required:(e,t,r,n,i)=>{const s=[],o=Array.isArray(t)?"array":typeof t;Se.required(e,t,n,s,i,o),r(s)},any:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i)}r(s)}};function ke(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone(){const e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}const Me=ke();class Re{constructor(e){this.rules={},this._messages=Me,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=Oe(ke(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,i=t,s=r;if("function"==typeof i&&(s=i,i={}),!this.rules||0===Object.keys(this.rules).length)return s&&s(null,n),Promise.resolve(n);if(i.messages){let e=this.messages();e===Me&&(e=ke()),Oe(e,i.messages),i.messages=e}else i.messages=this.messages();const o={};(i.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let i=n[t];r.forEach((r=>{let s=r;"function"==typeof s.transform&&(n===e&&(n=Object.assign({},n)),i=n[t]=s.transform(i)),s="function"==typeof s?{validator:s}:Object.assign({},s),s.validator=this.getValidationMethod(s),s.validator&&(s.field=t,s.fullField=s.fullField||t,s.type=this.getType(s),o[t]=o[t]||[],o[t].push({rule:s,value:i,source:n,field:t}))}))}));const a={};return ve(o,i,((e,t)=>{var r;const s=e.rule;let o,u=!("object"!==s.type&&"array"!==s.type||"object"!=typeof s.fields&&"object"!=typeof s.defaultField);function l(e,t){return Object.assign(Object.assign({},t),{fullField:`${s.fullField}.${e}`,fullFields:s.fullFields?[...s.fullFields,e]:[e]})}function c(r=[]){let o=Array.isArray(r)?r:[r];!0===i.suppressWarning&&o.length&&Re.warning("async-validator:",o),o.length&&void 0!==s.message&&(o=[].concat(s.message));let c=o.map(we(s,n));if(i.first&&c.length)return a[s.field]=1,t(c);if(u){if(s.required&&!e.value)return void 0!==s.message?c=[].concat(s.message).map(we(s,n)):i.error&&(c=[i.error(s,he(i.messages.required,s.field))]),t(c);let r={};s.defaultField&&Object.keys(e.value).map((e=>{r[e]=s.defaultField})),r=Object.assign(Object.assign({},r),e.rule.fields);const o={};Object.keys(r).forEach((e=>{const t=r[e],n=Array.isArray(t)?t:[t];o[e]=n.map(l.bind(null,e))}));const a=new Re(o);a.messages(i.messages),e.rule.options&&(e.rule.options.messages=i.messages,e.rule.options.error=i.error),a.validate(e.value,e.rule.options||i,(e=>{const r=[];c&&c.length&&r.push(...c),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(c)}if(u=u&&(s.required||!s.required&&e.value),s.field=e.field,s.asyncValidator)o=s.asyncValidator(s,e.value,c,e.source,i);else if(s.validator){try{o=s.validator(s,e.value,c,e.source,i)}catch(e){null===(r=console.error)||void 0===r||r.call(console,e),i.suppressValidatorError||setTimeout((()=>{throw e}),0),c(e.message)}!0===o?c():!1===o?c("function"==typeof s.message?s.message(s.fullField||s.field):s.message||`${s.fullField||s.field} fails`):o instanceof Array?c(o):o instanceof Error&&c(o.message)}o&&o.then&&o.then((()=>c()),(e=>c(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)i=e[r],Array.isArray(i)?t=t.concat(...i):t.push(i);var i;t.length?(r=pe(t),s(t,r)):s(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Pe.hasOwnProperty(e.type))throw new Error(he("Unknown rule type %s",e.type));return e.type||"string"}getValidationMethod(e){if("function"==typeof e.validator)return e.validator;const t=Object.keys(e),r=t.indexOf("message");return-1!==r&&t.splice(r,1),1===t.length&&"required"===t[0]?Pe.required:Pe[this.getType(e)]||void 0}}function De(e){return new Re(e)}Re.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},Re.warning=ge,Re.messages=Me,Re.validators=Pe;var Te={validateId:function(e){return!!e&&(!(e.length<6)&&!!/^[A-Za-z0-9_-]+$/.test(e))},validatePhone:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)},validator:De,validate:function(e,t,r={},n=(()=>{})){return U.run(De(e).validate(t,r,n))}};function Ne(e,t,r,n){return new(r||(r=Promise))((function(i,s){function o(e){try{u(n.next(e))}catch(e){s(e)}}function a(e){try{u(n.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}u((n=n.apply(e,t||[])).next())}))}class Ce extends Q{constructor(){super(),this.getters={},this.setters={},this.actions={}}dispatch(e,t=void 0){return Ne(this,void 0,void 0,(function*(){const r=Reflect.get(this.actions,e);if(!A.isFunction(r))return;const[,n]=yield U.run(r(this,t));return n}))}getByOnce(e){return Ne(this,void 0,void 0,(function*(){const t=Reflect.get(this,e);let r;return r=null!=t&&""!==t?JSON.parse(JSON.stringify(t)):yield this.dispatch(e),r}))}}var Ie={gbk:e,time:o,hook:U,math:L,util:K,list:X,mini:oe,url:fe,rule:Te,DEvent:Q,store:Ce,storeRef:e=>{const t=Object.assign(new Ce,e||{});return new Proxy(t,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return A.isFunction(n)?n():Reflect.get(e,t,r)},set:(e,t,r,n)=>{const i=Reflect.get(e.setters,t);if(A.isFunction(i)&&!i(r))return!0;const s=Reflect.set(e,t,r,n);return s&&e.emit(t.toString(),r),s},has:(e,t)=>Reflect.has(e,t)})}};export{Ie as default};
|
package/bin/ddan-js.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).ddan=e()}(this,(function(){"use strict";var t={gbkLength:function(t){let e=0;if(!t)return 0;for(let n=0;n<t.length;n++)t.charCodeAt(n)>127||94===t.charCodeAt(n)?e+=2:e++;return e},gbkCut:function(t,e){if(!t||e<=0)return"";let n=0,r=0;for(let o=0;o<t.length&&(t.charCodeAt(o)>127||94===t.charCodeAt(o)?n+=2:n++,!(n>e));o++)r=o;return t.substr(0,r+1)}},e="object"==typeof global&&global&&global.Object===Object&&global,n="object"==typeof self&&self&&self.Object===Object&&self,r=e||n||Function("return this")();const o=(t,e="yyyy-MM-dd hh:mm:ss")=>{const n="string"==typeof t||"number"==typeof t?new Date(t):t,r={};return r.yyyy=n.getFullYear(),r.yy=`${r.yyyy}`.substr(2),r.M=n.getMonth()+1,r.MM=(r.M<10?"0":"")+r.M,r.d=n.getDate(),r.dd=(r.d<10?"0":"")+r.d,r.h=n.getHours(),r.hh=(r.h<10?"0":"")+r.h,r.m=n.getMinutes(),r.mm=(r.m<10?"0":"")+r.m,r.s=n.getSeconds(),r.ss=(r.s<10?"0":"")+r.s,r.S=n.getMilliseconds(),r.SS=(r.S<10?"0":"")+r.S,r.SSS=r.S.toString().padStart(3,0),e.replace(/\byyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S\b/g,(t=>r[t]))};function i(){return r.Date.now()}var s={now:i,isToday:t=>(new Date).toDateString()===new Date(t).toDateString(),format:o,parseTime:function({year:t=0,month:e=0,date:n=0,hour:r=0,minute:i=0,second:s=0}){const u=`${t||"yyyy"}/${e||"MM"}/${n||"dd"} ${r}:${i}:${s}`;return new Date(o(Date.now(),u)).getTime()},todayZero:()=>new Date(o(i(),"yyyy/MM/dd 00:00:00")).getTime(),oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3};const u=r.Symbol,{toString:c,hasOwnProperty:a,propertyIsEnumerable:l}=Object.prototype,f=u?u.toStringTag:void 0;function h(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":f&&f in Object(t)?function(t){const e=a.call(t,f),n=t[f];let r=!1;try{t[f]=void 0,r=!0}catch(t){}const o=c.call(t);return r&&(e?t[f]=n:delete t[f]),o}(t):c.call(t)}var g={getTag:h,getType:function(t){return(h(t).match(/\w+/g)||["object","Undefined"])[1]||""},toString:c,hasOwnProperty:a,propertyIsEnumerable:l},y="[object Function]",d="[object GeneratorFunction]",p="[object AsyncFunction]",m=9007199254740991;const b=/^(?:0|[1-9]\d*)$/;function v(t){const e=typeof t;return null!=t&&("object"==e||"function"==e)}function j(t){return null!=t&&"object"==typeof t}const O=Array.isArray;function S(t){return null!=t&&function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=m}(t.length)&&!A(t)}function w(t){return j(t)&&S(t)}function A(t){var e=v(t)?g.getTag(t):"";return e===y||e===d||e===p}var M={is:function(t,e){return g.getTag(t)===`[object ${e}]`},isNumber:function(t){return"[object Number]"===g.getTag(t)},isString:function(t){return"string"==typeof t||!O(t)&&j(t)&&"[object String]"==g.getTag(t)},isChinese:function(t){return!!t&&!!/^[\u4E00-\u9FA5]+$/.test(t)},isObject:v,isObjectLike:j,isSymbol:function(t){return"symbol"==typeof t||j(t)&&"[object Symbol]"===g.getTag(t)},isFunction:A,isArray:O,isArrayLikeObject:w,isIndex:function(t,e){return!!(e=null==e?m:e)&&("number"==typeof t||b.test(t))&&t>-1&&t%1==0&&t<e},isArrayLike:S,isPrototype:function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Object.prototype)},isArguments:function(t){return w(t)&&g.hasOwnProperty.call(t,"callee")&&(!g.propertyIsEnumerable.call(t,"callee")||"[object Arguments]"==g.toString.call(t))},isPromise:function(t){return"[object Promise]"===(v(t)?g.getTag(t):"")}};const $=NaN,T=/^\s+|\s+$/g,x=/^[-+]0x[0-9a-f]+$/i,k=/^0b[01]+$/i,P=/^0o[0-7]+$/i,R=parseInt,D=1/0,I=17976931348623157e292;function F(t){if("number"==typeof t)return t;if(M.isSymbol(t))return $;if(M.isObject(t)){const e="function"==typeof t.valueOf?t.valueOf():t;t=M.isObject(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(T,"");const e=k.test(t);return e||P.test(t)?R(t.slice(2),e?2:8):x.test(t)?$:+t}function C(t){return t?(t=F(t))===D||t===-D?(t<0?-1:1)*I:t==t?t:0:0===t?t:0}var E={toNumber:F,toFinite:C,toInteger:function(t){var e=C(t),n=e%1;return e==e?n?e-n:e:0}};const N="Expected a function",U=Math.max,_=Math.min;function L(t,e=0,n={}){var r,o,i,s,u,c,a=0,l=!1,f=!1,h=!0;if("function"!=typeof t)throw new TypeError(N);function g(e){var n=r,i=o;return r=o=void 0,a=e,s=t.apply(i,n)}function y(t){var n=t-c;return void 0===c||n>=e||n<0||f&&t-a>=i}function d(){var t=Date.now();if(y(t))return p(t);u=setTimeout(d,function(t){var n=e-(t-c);return f?_(n,i-(t-a)):n}(t))}function p(t){return u=void 0,h&&r?g(t):(r=o=void 0,s)}function m(...t){var n=Date.now(),i=y(n);if(r=arguments,o=this,c=n,i){if(void 0===u)return function(t){return a=t,u=setTimeout(d,e),l?g(t):s}(c);if(f)return u=setTimeout(d,e),g(c)}return void 0===u&&(u=setTimeout(d,e)),s}return e=E.toNumber(e)||0,M.isObject(n)&&(l=!!n.leading,i=(f="maxWait"in n)?U(E.toNumber(n.maxWait)||0,e):i,h="trailing"in n?!!n.trailing:h),m.cancel=function(){void 0!==u&&clearTimeout(u),a=0,r=c=o=u=void 0},m.flush=function(){return void 0===u?s:p(Date.now())},m}class B{constructor(t){this.source=t}run(){let t;try{let e;return e=M.isFunction(this.source)?this.source():this.source,t=M.isPromise(e)?e:Promise.resolve(e),t.then((t=>[null,t])).catch((t=>[t,void 0]))}catch(t){return Promise.resolve([t,void 0])}}}var W={sleep:(t=1e3)=>new Promise((e=>{setTimeout(e,t)})),run:t=>new B(t).run(),debounce:L,throttle:function(t,e=0,n={}){var r=!1,o=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return M.isObject(n)&&(r=n.leading?!!n.leading:r,o=n.trailing?!!n.trailing:o),L(t,e,{leading:r,maxWait:e,trailing:o})}};var q={random:function(t){return Math.floor(Math.random()*t)},randomRange:function(t,e){return Math.floor(Math.random()*(e-t+1)+t)},lerp:function(t,e,n){return t*(1-n)+e*n}};function H(t){return t!=t}function J(t,e){return function(t,e){for(var n=-1,r=t?t.length:0,o=Array(r);++n<r;)o[n]=e(t[n],n,t);return o}(e,(function(e){return t[e]}))}var G,Y,Z=(G=Object.keys,Y=Object,function(t){return G(Y(t))}),z=Math.max;function K(t,e){var n=M.isArray(t)||M.isArguments(t)?function(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}(t.length,String):[],r=n.length,o=!!r;for(var i in t)!e&&!g.hasOwnProperty.call(t,i)||o&&("length"==i||M.isIndex(i,r))||n.push(i);return n}var Q=Object.assign(Object.assign(Object.assign({},M),g),{includes:function(t,e,n,r){var o;t=M.isArrayLike(t)?t:(o=t)?J(o,function(t){return M.isArrayLike(t)?K(t):function(t){if(!M.isPrototype(t))return Z(t);var e=[];for(var n in Object(t))g.hasOwnProperty.call(t,n)&&"constructor"!=n&&e.push(n);return e}(t)}(o)):[],n=n&&!r?E.toInteger(n):0;var i=t.length;return n<0&&(n=z(i+n,0)),M.isString(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&function(t,e,n){if(e!=e)return function(t,e,n,r){for(var o=t.length,i=n+(r?1:-1);r?i--:++i<o;)if(e(t[i],i,t))return i;return-1}(t,H,n);for(var r=n-1,o=t.length;++r<o;)if(t[r]===e)return r;return-1}(t,e,n)>-1}});class V{constructor(){this._map=new Map}clear(){return this._map.clear(),this}on(t,e){if(!e)return this;let n=this._map.get(t);return n||(n=new Set,this._map.set(t,n)),n.add(e),this}emit(t,...e){const n=this._map.get(t);if(!n)return this;return[...n].forEach((t=>t(...e))),this}off(t="",e){if(!t)return this._map.clear(),this;if(!e)return this._map.delete(t.toString()),this;const n=this._map.get(t);return n?(n.delete(e),this):this}once(t,e){const n=(...r)=>{e(...r),this.off(t,n)};return this.on(t,n),this}has(t){return this._map.has(t)}}var X={groupBy:(t,e)=>t.reduce(((t,n)=>((t[n[e]]=t[n[e]]||[]).push(n),t)),{}),stepAction:function(t,e,n=100){if(!M.isFunction(e))return;if(!M.isArray(t)||t.length<=0)return;let r=0;for(;t.length>r;){let o=n+r,i=t.slice(r,o);e&&e(i),r=o}},skip:(t,e)=>{if(!M.isArray(t)||t.length<=0)return[];const n=e;return t.slice(n)},take:(t,e,n=0)=>{if(!M.isArray(t)||t.length<=0)return[];const r=n||0;if(r>=t.length)return[];const o=e+r;return t.slice(r,t.length<o?t.length:o)||[]},distinct:t=>!M.isArray(t)||t.length<=0?[]:[...new Set(t)]};const tt="[object Object]",et="[object Array]",nt=t=>Object.prototype.toString.call(t),rt=(t,e,n=!1)=>{if(t===e)return;const r=nt(t);if(r===nt(e))if(r===et&&t.length>=e.length)for(let n=0;n<e.length;n++)rt(t[n],e[n]);else if(r===tt&&Object.keys(t).length>=Object.keys(e).length)for(let r in e)n||void 0!==t[r]?rt(t[r],e[r]):t[r]=null},ot=(t,e,n,r="",o=!1)=>{if(t===e)return;const i=nt(t),s=nt(e);if(i===et&&s===i&&t.length>=e.length)for(let o=0;o<t.length;o++)ot(t[o],e[o],n,`${r}[${o}]`);else if(i===tt&&s===i&&(o||Object.keys(t).length>=Object.keys(e).length)){const o=Object.keys(t);for(let i of o){const o=t[i],s=e[i],u=nt(o),c=nt(s);if(o!==s)if(u===et&&c===u&&o.length>=s.length)for(let t=0;t<o.length;t++)ot(o[t],s[t],n,`${r?r+".":""}${i}[${t}]`);else if(u===tt&&c===u&&Object.keys(o).length>=Object.keys(s).length)for(let t in o)ot(o[t],s[t],n,`${r?r+".":""}${i}.${t}`);else n[`${r?r+".":""}${i}`]=o}}else n[r]=t};const it=t=>(e,...n)=>new Promise(((r,o)=>{t(Object.assign({},e,{success:r,fail:o}),...n)}));var st={diff:function(t,e){const n={};return(t=>{if(nt(t)===tt)for(let e in t)if(/\w+\.\w+/g.test(e)&&-1===e.indexOf("[")){const n=e.split(".");let r=t,o=n.length;for(let t=0;t<o-1;t++){const e=n[t];nt(r[e])!==tt&&(r[e]={}),r=r[e]}r[n[o-1]]=t[e],delete t[e]}})(t),rt(t,e,!0),ot(t,e,n,"",!0),n},promixify:it,api:(t,e=null,...n)=>W.run(it(t)(e,...n))};function ut(t,e){return Object.prototype.hasOwnProperty.call(t,e)}const ct=function(t,{sep:e="&",eq:n="=",max:r=1e3,multiple:o=!1}={}){e=e||"&",n=n||"=";const i={};if("string"!=typeof t||0===t.length)return i;const s=/\+/g,u=r||1e3;let c=(t=t.split(e)).length;u>0&&c>u&&(c=u);for(let e=0;e<c;++e){let r,u,c,a,l=t[e].replace(s,"%20"),f=l.indexOf(n);f>=0?(r=l.substr(0,f),u=l.substr(f+1)):(r=l,u=""),c=decodeURIComponent(r),a=decodeURIComponent(u),ut(i,c)&&o?Array.isArray(i[c])?i[c].push(a):i[c]=[i[c],a]:i[c]=a}return i},at=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}},lt=function(t,{sep:e="&",eq:n="=",name:r=null,multiple:o=!1}={}){return e=e||"&",n=n||"=",null===t&&(t=void 0),"object"==typeof t?Object.keys(t).map((function(r){const i=encodeURIComponent(at(r))+n;return o&&Array.isArray(t[r])?t[r].map((function(t){return i+encodeURIComponent(at(t))})).join(e):i+encodeURIComponent(at(t[r]))})).filter(Boolean).join(e):r?encodeURIComponent(at(r))+n+encodeURIComponent(at(t)):""};var ft={parse:ct,decode:ct,stringify:lt,encode:lt};function ht(t,e,n,r){return new(n||(n=Promise))((function(o,i){function s(t){try{c(r.next(t))}catch(t){i(t)}}function u(t){try{c(r.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,u)}c((r=r.apply(t,e||[])).next())}))}class gt extends V{constructor(){super(),this.getters={},this.setters={},this.actions={}}dispatch(t,e=void 0){return ht(this,void 0,void 0,(function*(){const n=Reflect.get(this.actions,t);if(!M.isFunction(n))return;const[,r]=yield W.run(n(this,e));return r}))}getByOnce(t){return ht(this,void 0,void 0,(function*(){const e=Reflect.get(this,t);let n;return n=null!=e&&""!==e?JSON.parse(JSON.stringify(e)):yield this.dispatch(t),n}))}}return{gbk:t,time:s,hook:W,math:q,util:Q,list:X,mini:st,url:ft,DEvent:V,store:gt,storeRef:t=>{const e=Object.assign(new gt,t||{});return new Proxy(e,{get:(t,e,n)=>{const r=Reflect.get(t.getters,e);return M.isFunction(r)?r():Reflect.get(t,e,n)},set:(t,e,n,r)=>{const o=Reflect.get(t.setters,e);if(M.isFunction(o)&&!o(n))return!0;const i=Reflect.set(t,e,n,r);return i&&t.emit(e.toString(),n),i},has:(t,e)=>Reflect.has(t,e)})}}}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).ddan=t()}(this,(function(){"use strict";var e={gbkLength:function(e){let t=0;if(!e)return 0;for(let r=0;r<e.length;r++)e.charCodeAt(r)>127||94===e.charCodeAt(r)?t+=2:t++;return t},gbkCut:function(e,t){if(!e||t<=0)return"";let r=0,n=0;for(let i=0;i<e.length&&(e.charCodeAt(i)>127||94===e.charCodeAt(i)?r+=2:r++,!(r>t));i++)n=i;return e.substr(0,n+1)}},t="object"==typeof global&&global&&global.Object===Object&&global,r="object"==typeof self&&self&&self.Object===Object&&self,n=t||r||Function("return this")();const i=(e,t="yyyy-MM-dd hh:mm:ss")=>{const r="string"==typeof e||"number"==typeof e?new Date(e):e,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 s(){return n.Date.now()}var o={now:s,isToday:e=>(new Date).toDateString()===new Date(e).toDateString(),format:i,parseTime:function({year:e=0,month:t=0,date:r=0,hour:n=0,minute:s=0,second:o=0}){const u=`${e||"yyyy"}/${t||"MM"}/${r||"dd"} ${n}:${s}:${o}`;return new Date(i(Date.now(),u)).getTime()},todayZero:()=>new Date(i(s(),"yyyy/MM/dd 00:00:00")).getTime(),oneDay:864e5,oneHour:36e5,oneMinute:6e4,oneSecond:1e3};const u=n.Symbol,{toString:a,hasOwnProperty:l,propertyIsEnumerable:c}=Object.prototype,f=u?u.toStringTag:void 0;function d(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":f&&f in Object(e)?function(e){const t=l.call(e,f),r=e[f];let n=!1;try{e[f]=void 0,n=!0}catch(e){}const i=a.call(e);return n&&(t?e[f]=r:delete e[f]),i}(e):a.call(e)}var g={getTag:d,getType:function(e){return(d(e).match(/\w+/g)||["object","Undefined"])[1]||""},toString:a,hasOwnProperty:l,propertyIsEnumerable:c},p="[object Function]",h="[object GeneratorFunction]",y="[object AsyncFunction]",m=9007199254740991;const b=/^(?:0|[1-9]\d*)$/;function v(e){const t=typeof e;return null!=e&&("object"==t||"function"==t)}function w(e){return null!=e&&"object"==typeof e}const O=Array.isArray;function j(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=m}(e.length)&&!q(e)}function $(e){return w(e)&&j(e)}function q(e){var t=v(e)?g.getTag(e):"";return t===p||t===h||t===y}var A={is:function(e,t){return g.getTag(e)===`[object ${t}]`},isNumber:function(e){return"[object Number]"===g.getTag(e)},isString:function(e){return"string"==typeof e||!O(e)&&w(e)&&"[object String]"==g.getTag(e)},isChinese:function(e){return!!e&&!!/^[\u4E00-\u9FA5]+$/.test(e)},isObject:v,isObjectLike:w,isSymbol:function(e){return"symbol"==typeof e||w(e)&&"[object Symbol]"===g.getTag(e)},isFunction:q,isArray:O,isArrayLikeObject:$,isIndex:function(e,t){return!!(t=null==t?m:t)&&("number"==typeof e||b.test(e))&&e>-1&&e%1==0&&e<t},isArrayLike:j,isPrototype:function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Object.prototype)},isArguments:function(e){return $(e)&&g.hasOwnProperty.call(e,"callee")&&(!g.propertyIsEnumerable.call(e,"callee")||"[object Arguments]"==g.toString.call(e))},isPromise:function(e){return"[object Promise]"===(v(e)?g.getTag(e):"")}};const F=NaN,x=/^\s+|\s+$/g,S=/^[-+]0x[0-9a-f]+$/i,E=/^0b[01]+$/i,P=/^0o[0-7]+$/i,k=parseInt,M=1/0,R=17976931348623157e292;function T(e){if("number"==typeof e)return e;if(A.isSymbol(e))return F;if(A.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=A.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(x,"");const t=E.test(e);return t||P.test(e)?k(e.slice(2),t?2:8):S.test(e)?F:+e}function D(e){return e?(e=T(e))===M||e===-M?(e<0?-1:1)*R:e==e?e:0:0===e?e:0}var N={toNumber:T,toFinite:D,toInteger:function(e){var t=D(e),r=t%1;return t==t?r?t-r:t:0}};const C="Expected a function",I=Math.max,_=Math.min;function V(e,t=0,r={}){var n,i,s,o,u,a,l=0,c=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError(C);function g(t){var r=n,s=i;return n=i=void 0,l=t,o=e.apply(s,r)}function p(e){var r=e-a;return void 0===a||r>=t||r<0||f&&e-l>=s}function h(){var e=Date.now();if(p(e))return y(e);u=setTimeout(h,function(e){var r=t-(e-a);return f?_(r,s-(e-l)):r}(e))}function y(e){return u=void 0,d&&n?g(e):(n=i=void 0,o)}function m(...e){var r=Date.now(),s=p(r);if(n=arguments,i=this,a=r,s){if(void 0===u)return function(e){return l=e,u=setTimeout(h,t),c?g(e):o}(a);if(f)return u=setTimeout(h,t),g(a)}return void 0===u&&(u=setTimeout(h,t)),o}return t=N.toNumber(t)||0,A.isObject(r)&&(c=!!r.leading,s=(f="maxWait"in r)?I(N.toNumber(r.maxWait)||0,t):s,d="trailing"in r?!!r.trailing:d),m.cancel=function(){void 0!==u&&clearTimeout(u),l=0,n=a=i=u=void 0},m.flush=function(){return void 0===u?o:y(Date.now())},m}class z{constructor(e){this.source=e}run(){let e;try{let t;return t=A.isFunction(this.source)?this.source():this.source,e=A.isPromise(t)?t:Promise.resolve(t),e.then((e=>[null,e])).catch((e=>[e,void 0]))}catch(e){return Promise.resolve([e,void 0])}}}var U={sleep:(e=1e3)=>new Promise((t=>{setTimeout(t,e)})),run:e=>new z(e).run(),debounce:V,throttle:function(e,t=0,r={}){var n=!1,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return A.isObject(r)&&(n=r.leading?!!r.leading:n,i=r.trailing?!!r.trailing:i),V(e,t,{leading:n,maxWait:t,trailing:i})}};var L={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 n="";for(let t=0;t<e;t++)n+=r.charAt(Math.floor(62*Math.random()));return t?o.format(new Date,"yyyyMMddhhmmss")+n:n}};function B(e){return e!=e}function J(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}(t,(function(t){return e[t]}))}var W,Z,H=(W=Object.keys,Z=Object,function(e){return W(Z(e))}),Y=Math.max;function G(e,t){var r=A.isArray(e)||A.isArguments(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],n=r.length,i=!!n;for(var s in e)!t&&!g.hasOwnProperty.call(e,s)||i&&("length"==s||A.isIndex(s,n))||r.push(s);return r}var K=Object.assign(Object.assign(Object.assign({},A),g),{includes:function(e,t,r,n){e=A.isArrayLike(e)?e:function(e){return e?J(e,function(e){return A.isArrayLike(e)?G(e):function(e){if(!A.isPrototype(e))return H(e);var t=[];for(var r in Object(e))g.hasOwnProperty.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}(e)):[]}(e),r=r&&!n?N.toInteger(r):0;var i=e.length;return r<0&&(r=Y(i+r,0)),A.isString(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&function(e,t,r){if(t!=t)return function(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}(e,B,r);for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}(e,t,r)>-1},merge:function(e,t){return t?e?(Object.keys(t).forEach((r=>{Array.isArray(e[r])&&Array.isArray(t[r])?e[r]=e[r].concat(t[r]):"object"==typeof e[r]&&"object"==typeof t[r]?e[r]=Object.assign(e[r],t[r]):e[r]=t[r]})),e):t: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}});class Q{constructor(){this._map=new Map}clear(){return this._map.clear(),this}on(e,t){if(!t)return this;let r=this._map.get(e);return r||(r=new Set,this._map.set(e,r)),r.add(t),this}emit(e,...t){const r=this._map.get(e);if(!r)return this;return[...r].forEach((e=>e(...t))),this}off(e="",t){if(!e)return this._map.clear(),this;if(!t)return this._map.delete(e.toString()),this;const r=this._map.get(e);return r?(r.delete(t),this):this}once(e,t){const r=(...n)=>{t(...n),this.off(e,r)};return this.on(e,r),this}has(e){return this._map.has(e)}}var X={groupBy:(e,t)=>e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{}),stepAction:function(e,t,r=100){if(!A.isFunction(t))return;if(!A.isArray(e)||e.length<=0)return;let n=0;for(;e.length>n;){let i=r+n,s=e.slice(n,i);t&&t(s),n=i}},skip:(e,t)=>{if(!A.isArray(e)||e.length<=0)return[];const r=t;return e.slice(r)},take:(e,t,r=0)=>{if(!A.isArray(e)||e.length<=0)return[];const n=r||0;if(n>=e.length)return[];const i=t+n;return e.slice(n,e.length<i?e.length:i)||[]},distinct:e=>!A.isArray(e)||e.length<=0?[]:[...new Set(e)]};const ee="[object Object]",te="[object Array]",re=e=>Object.prototype.toString.call(e),ne=(e,t,r=!1)=>{if(e===t)return;const n=re(e);if(n===re(t))if(n===te&&e.length>=t.length)for(let r=0;r<t.length;r++)ne(e[r],t[r]);else if(n===ee&&Object.keys(e).length>=Object.keys(t).length)for(let n in t)r||void 0!==e[n]?ne(e[n],t[n]):e[n]=null},ie=(e,t,r,n="",i=!1)=>{if(e===t)return;const s=re(e),o=re(t);if(s===te&&o===s&&e.length>=t.length)for(let i=0;i<e.length;i++)ie(e[i],t[i],r,`${n}[${i}]`);else if(s===ee&&o===s&&(i||Object.keys(e).length>=Object.keys(t).length)){const i=Object.keys(e);for(let s of i){const i=e[s],o=t[s],u=re(i),a=re(o);if(i!==o)if(u===te&&a===u&&i.length>=o.length)for(let e=0;e<i.length;e++)ie(i[e],o[e],r,`${n?n+".":""}${s}[${e}]`);else if(u===ee&&a===u&&Object.keys(i).length>=Object.keys(o).length)for(let e in i)ie(i[e],o[e],r,`${n?n+".":""}${s}.${e}`);else r[`${n?n+".":""}${s}`]=i}}else r[n]=e};const se=e=>"function"!=typeof e?e:(t={})=>new Promise(((r,n)=>{e(Object.assign(t,{success:r,fail:n}))}));var oe={diff:function(e,t){const r={};return(e=>{if(re(e)===ee)for(let t in e)if(/\w+\.\w+/g.test(t)&&-1===t.indexOf("[")){const r=t.split(".");let n=e,i=r.length;for(let e=0;e<i-1;e++){const t=r[e];re(n[t])!==ee&&(n[t]={}),n=n[t]}n[r[i-1]]=e[t],delete e[t]}})(e),ne(e,t,!0),ie(e,t,r,"",!0),r},promixify:se,run:(e,t={})=>{if(e)return U.run(se(e)(t))},formatList:function(e,t,r){return(e||[]).reduce(((e,n,i)=>Object.assign(Object.assign({},e),{[`${r}[${t+i}]`]:n})),{})}};function ue(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const ae=function(e,{sep:t="&",eq:r="=",max:n=1e3,multiple:i=!1}={}){t=t||"&",r=r||"=";const s={};if("string"!=typeof e||0===e.length)return s;const o=/\+/g,u=n||1e3;let a=(e=e.split(t)).length;u>0&&a>u&&(a=u);for(let t=0;t<a;++t){let n,u,a,l,c=e[t].replace(o,"%20"),f=c.indexOf(r);f>=0?(n=c.substr(0,f),u=c.substr(f+1)):(n=c,u=""),a=decodeURIComponent(n),l=decodeURIComponent(u),ue(s,a)&&i?Array.isArray(s[a])?s[a].push(l):s[a]=[s[a],l]:s[a]=l}return s},le=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},ce=function(e,{sep:t="&",eq:r="=",name:n=null,multiple:i=!1}={}){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){const s=encodeURIComponent(le(n))+r;return i&&Array.isArray(e[n])?e[n].map((function(e){return s+encodeURIComponent(le(e))})).join(t):s+encodeURIComponent(le(e[n]))})).filter(Boolean).join(t):n?encodeURIComponent(le(n))+r+encodeURIComponent(le(e)):""};var fe={parse:ae,decode:ae,stringify:ce,encode:ce,useHttps:function(e){if(!e)return e;const t=e.trim();return"string"!=typeof e?e:t.indexOf("https")<0?t.replace("http","https"):t}};const de=/%[sdj%]/g;let ge=()=>{};function pe(e){if(!e||!e.length)return null;const t={};return e.forEach((e=>{const r=e.field;t[r]=t[r]||[],t[r].push(e)})),t}function he(e,...t){let r=0;const n=t.length;if("function"==typeof e)return e.apply(null,t);if("string"==typeof e){return e.replace(de,(e=>{if("%%"===e)return"%";if(r>=n)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}))}return e}function ye(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function me(e,t,r){let n=0;const i=e.length;!function s(o){if(o&&o.length)return void r(o);const u=n;n+=1,u<i?t(e[u],s):r([])}([])}"undefined"!=typeof process&&process.env&&"production"!==process.env.NODE_ENV&&"undefined"!=typeof window&&"undefined"!=typeof document&&(ge=(e,t)=>{"undefined"!=typeof console&&console.warn&&"undefined"==typeof ASYNC_VALIDATOR_NO_WARNING&&t.every((e=>"string"==typeof e))&&console.warn(e,t)});class be extends Error{constructor(e,t){super("Async Validation Error"),this.errors=e,this.fields=t}}function ve(e,t,r,n,i){if(t.first){const t=new Promise(((t,s)=>{const o=function(e){const t=[];return Object.keys(e).forEach((r=>{t.push(...e[r]||[])})),t}(e);me(o,r,(e=>(n(e),e.length?s(new be(e,pe(e))):t(i))))}));return t.catch((e=>e)),t}const s=!0===t.firstFields?Object.keys(e):t.firstFields||[],o=Object.keys(e),u=o.length;let a=0;const l=[],c=new Promise(((t,c)=>{const f=e=>{if(l.push.apply(l,e),a++,a===u)return n(l),l.length?c(new be(l,pe(l))):t(i)};o.length||(n(l),t(i)),o.forEach((t=>{const n=e[t];-1!==s.indexOf(t)?me(n,r,f):function(e,t,r){const n=[];let i=0;const s=e.length;function o(e){n.push(...e||[]),i++,i===s&&r(n)}e.forEach((e=>{t(e,o)}))}(n,r,f)}))}));return c.catch((e=>e)),c}function we(e,t){return r=>{let n;return n=e.fullFields?function(e,t){let r=e;for(let e=0;e<t.length;e++){if(null==r)return r;r=r[t[e]]}return r}(t,e.fullFields):t[r.field||e.fullField],(i=r)&&void 0!==i.message?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:"function"==typeof r?r():r,fieldValue:n,field:r.field||e.fullField};var i}}function Oe(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]=Object.assign(Object.assign({},e[r]),n):e[r]=n}return e}const je=(e,t,r,n,i,s)=>{!e.required||r.hasOwnProperty(e.field||"")&&!ye(t,s||e.type)||n.push(he(i.messages.required,e.fullField))};let $e;const qe=/^(([^<>()\[\]\\.,;:\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,}))$/,Ae=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,Fe={integer:e=>Fe.number(e)&&parseInt(e,10)===e,float:e=>Fe.number(e)&&!Fe.integer(e),array:e=>Array.isArray(e),regexp(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:e=>"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime()),number:e=>!isNaN(e)&&"number"==typeof e,object:e=>"object"==typeof e&&!Fe.array(e),method:e=>"function"==typeof e,email:e=>"string"==typeof e&&e.length<=320&&!!e.match(qe),url:e=>"string"==typeof e&&e.length<=2048&&!!e.match((()=>{if($e)return $e;const e="[a-fA-F\\d:]",t=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${e})|(?<=${e})(?=\\s|$))`:"",r="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",n="[a-fA-F\\d]{1,4}",i=`\n(?:\n(?:${n}:){7}(?:${n}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${n}:){6}(?:${r}|:${n}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${n}:){5}(?::${r}|(?::${n}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${n}:){4}(?:(?::${n}){0,1}:${r}|(?::${n}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${n}:){3}(?:(?::${n}){0,2}:${r}|(?::${n}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${n}:){2}(?:(?::${n}){0,3}:${r}|(?::${n}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${n}:){1}(?:(?::${n}){0,4}:${r}|(?::${n}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${n}){0,5}:${r}|(?::${n}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),s=new RegExp(`(?:^${r}$)|(?:^${i}$)`),o=new RegExp(`^${r}$`),u=new RegExp(`^${i}$`),a=e=>e&&e.exact?s:new RegExp(`(?:${t(e)}${r}${t(e)})|(?:${t(e)}${i}${t(e)})`,"g");a.v4=e=>e&&e.exact?o:new RegExp(`${t(e)}${r}${t(e)}`,"g"),a.v6=e=>e&&e.exact?u:new RegExp(`${t(e)}${i}${t(e)}`,"g");const l=a.v4().source,c=a.v6().source;return $e=new RegExp(`(?:^(?:(?:(?:[a-z]+:)?//)|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${l}|${c}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?$)`,"i"),$e})()),hex:e=>"string"==typeof e&&!!e.match(Ae)},xe="enum";var Se={required:je,whitespace:(e,t,r,n,i)=>{(/^\s+$/.test(t)||""===t)&&n.push(he(i.messages.whitespace,e.fullField))},type:(e,t,r,n,i)=>{if(e.required&&void 0===t)return void je(e,t,r,n,i);const s=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(s)>-1?Fe[s](t)||n.push(he(i.messages.types[s],e.fullField,e.type)):s&&typeof t!==e.type&&n.push(he(i.messages.types[s],e.fullField,e.type))},range:(e,t,r,n,i)=>{const s="number"==typeof e.len,o="number"==typeof e.min,u="number"==typeof e.max,a=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let l=t,c="";const f="number"==typeof t,d="string"==typeof t,g=Array.isArray(t);if(f?c="number":d?c="string":g&&(c="array"),!c)return!1;g&&(l=t.length),d&&(l=t.replace(a,"_").length),s?l!==e.len&&n.push(he(i.messages[c].len,e.fullField,e.len)):o&&!u&&l<e.min?n.push(he(i.messages[c].min,e.fullField,e.min)):u&&!o&&l>e.max?n.push(he(i.messages[c].max,e.fullField,e.max)):o&&u&&(l<e.min||l>e.max)&&n.push(he(i.messages[c].range,e.fullField,e.min,e.max))},enum:(e,t,r,n,i)=>{e[xe]=Array.isArray(e[xe])?e[xe]:[],-1===e[xe].indexOf(t)&&n.push(he(i.messages[xe],e.fullField,e[xe].join(", ")))},pattern:(e,t,r,n,i)=>{if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||n.push(he(i.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};const Ee=(e,t,r,n,i)=>{const s=e.type,o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t,s)&&!e.required)return r();Se.required(e,t,n,o,i,s),ye(t,s)||Se.type(e,t,n,o,i)}r(o)};var Pe={string:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field||"")){if(ye(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i,"string"),ye(t,"string")||(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i),Se.pattern(e,t,n,s,i),!0===e.whitespace&&Se.whitespace(e,t,n,s,i))}r(s)},method:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},number:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},boolean:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},regexp:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),ye(t)||Se.type(e,t,n,s,i)}r(s)},integer:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},float:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},array:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();Se.required(e,t,n,s,i,"array"),null!=t&&(Se.type(e,t,n,s,i),Se.range(e,t,n,s,i))}r(s)},object:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.type(e,t,n,s,i)}r(s)},enum:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i),void 0!==t&&Se.enum(e,t,n,s,i)}r(s)},pattern:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t,"string")&&!e.required)return r();Se.required(e,t,n,s,i),ye(t,"string")||Se.pattern(e,t,n,s,i)}r(s)},date:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t,"date")&&!e.required)return r();if(Se.required(e,t,n,s,i),!ye(t,"date")){let r;r=t instanceof Date?t:new Date(t),Se.type(e,r,n,s,i),r&&Se.range(e,r.getTime(),n,s,i)}}r(s)},url:Ee,hex:Ee,email:Ee,required:(e,t,r,n,i)=>{const s=[],o=Array.isArray(t)?"array":typeof t;Se.required(e,t,n,s,i,o),r(s)},any:(e,t,r,n,i)=>{const s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(ye(t)&&!e.required)return r();Se.required(e,t,n,s,i)}r(s)}};function ke(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone(){const e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}const Me=ke();class Re{constructor(e){this.rules={},this._messages=Me,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=Oe(ke(),e)),this._messages}validate(e,t={},r=(()=>{})){let n=e,i=t,s=r;if("function"==typeof i&&(s=i,i={}),!this.rules||0===Object.keys(this.rules).length)return s&&s(null,n),Promise.resolve(n);if(i.messages){let e=this.messages();e===Me&&(e=ke()),Oe(e,i.messages),i.messages=e}else i.messages=this.messages();const o={};(i.keys||Object.keys(this.rules)).forEach((t=>{const r=this.rules[t];let i=n[t];r.forEach((r=>{let s=r;"function"==typeof s.transform&&(n===e&&(n=Object.assign({},n)),i=n[t]=s.transform(i)),s="function"==typeof s?{validator:s}:Object.assign({},s),s.validator=this.getValidationMethod(s),s.validator&&(s.field=t,s.fullField=s.fullField||t,s.type=this.getType(s),o[t]=o[t]||[],o[t].push({rule:s,value:i,source:n,field:t}))}))}));const u={};return ve(o,i,((e,t)=>{var r;const s=e.rule;let o,a=!("object"!==s.type&&"array"!==s.type||"object"!=typeof s.fields&&"object"!=typeof s.defaultField);function l(e,t){return Object.assign(Object.assign({},t),{fullField:`${s.fullField}.${e}`,fullFields:s.fullFields?[...s.fullFields,e]:[e]})}function c(r=[]){let o=Array.isArray(r)?r:[r];!0===i.suppressWarning&&o.length&&Re.warning("async-validator:",o),o.length&&void 0!==s.message&&(o=[].concat(s.message));let c=o.map(we(s,n));if(i.first&&c.length)return u[s.field]=1,t(c);if(a){if(s.required&&!e.value)return void 0!==s.message?c=[].concat(s.message).map(we(s,n)):i.error&&(c=[i.error(s,he(i.messages.required,s.field))]),t(c);let r={};s.defaultField&&Object.keys(e.value).map((e=>{r[e]=s.defaultField})),r=Object.assign(Object.assign({},r),e.rule.fields);const o={};Object.keys(r).forEach((e=>{const t=r[e],n=Array.isArray(t)?t:[t];o[e]=n.map(l.bind(null,e))}));const u=new Re(o);u.messages(i.messages),e.rule.options&&(e.rule.options.messages=i.messages,e.rule.options.error=i.error),u.validate(e.value,e.rule.options||i,(e=>{const r=[];c&&c.length&&r.push(...c),e&&e.length&&r.push(...e),t(r.length?r:null)}))}else t(c)}if(a=a&&(s.required||!s.required&&e.value),s.field=e.field,s.asyncValidator)o=s.asyncValidator(s,e.value,c,e.source,i);else if(s.validator){try{o=s.validator(s,e.value,c,e.source,i)}catch(e){null===(r=console.error)||void 0===r||r.call(console,e),i.suppressValidatorError||setTimeout((()=>{throw e}),0),c(e.message)}!0===o?c():!1===o?c("function"==typeof s.message?s.message(s.fullField||s.field):s.message||`${s.fullField||s.field} fails`):o instanceof Array?c(o):o instanceof Error&&c(o.message)}o&&o.then&&o.then((()=>c()),(e=>c(e)))}),(e=>{!function(e){let t=[],r={};for(let r=0;r<e.length;r++)i=e[r],Array.isArray(i)?t=t.concat(...i):t.push(i);var i;t.length?(r=pe(t),s(t,r)):s(null,n)}(e)}),n)}getType(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!Pe.hasOwnProperty(e.type))throw new Error(he("Unknown rule type %s",e.type));return e.type||"string"}getValidationMethod(e){if("function"==typeof e.validator)return e.validator;const t=Object.keys(e),r=t.indexOf("message");return-1!==r&&t.splice(r,1),1===t.length&&"required"===t[0]?Pe.required:Pe[this.getType(e)]||void 0}}function Te(e){return new Re(e)}Re.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},Re.warning=ge,Re.messages=Me,Re.validators=Pe;var De={validateId:function(e){return!!e&&(!(e.length<6)&&!!/^[A-Za-z0-9_-]+$/.test(e))},validatePhone:function(e){return!!e&&!!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e)},validator:Te,validate:function(e,t,r={},n=(()=>{})){return U.run(Te(e).validate(t,r,n))}};function Ne(e,t,r,n){return new(r||(r=Promise))((function(i,s){function o(e){try{a(n.next(e))}catch(e){s(e)}}function u(e){try{a(n.throw(e))}catch(e){s(e)}}function a(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,u)}a((n=n.apply(e,t||[])).next())}))}class Ce extends Q{constructor(){super(),this.getters={},this.setters={},this.actions={}}dispatch(e,t=void 0){return Ne(this,void 0,void 0,(function*(){const r=Reflect.get(this.actions,e);if(!A.isFunction(r))return;const[,n]=yield U.run(r(this,t));return n}))}getByOnce(e){return Ne(this,void 0,void 0,(function*(){const t=Reflect.get(this,e);let r;return r=null!=t&&""!==t?JSON.parse(JSON.stringify(t)):yield this.dispatch(e),r}))}}return{gbk:e,time:o,hook:U,math:L,util:K,list:X,mini:oe,url:fe,rule:De,DEvent:Q,store:Ce,storeRef:e=>{const t=Object.assign(new Ce,e||{});return new Proxy(t,{get:(e,t,r)=>{const n=Reflect.get(e.getters,t);return A.isFunction(n)?n():Reflect.get(e,t,r)},set:(e,t,r,n)=>{const i=Reflect.get(e.setters,t);if(A.isFunction(i)&&!i(r))return!0;const s=Reflect.set(e,t,r,n);return s&&e.emit(t.toString(),r),s},has:(e,t)=>Reflect.has(e,t)})}}}));
|
package/bin/lib/index.js
CHANGED
|
@@ -9,6 +9,7 @@ const event_1 = require("./class/event");
|
|
|
9
9
|
const list_1 = require("./modules/list");
|
|
10
10
|
const mini_1 = require("./modules/mini");
|
|
11
11
|
const url_1 = require("./modules/url");
|
|
12
|
+
const rule_1 = require("./modules/rule");
|
|
12
13
|
const store_1 = require("./class/store");
|
|
13
14
|
// export { gbk, time, hook, math, util, list, DEvent, store, storeRef };
|
|
14
|
-
exports.default = { gbk: gbk_1.default, time: time_1.default, hook: hook_1.default, math: math_1.default, util: util_1.default, list: list_1.default, mini: mini_1.default, url: url_1.default, DEvent: event_1.default, store: store_1.default, storeRef: store_1.storeRef };
|
|
15
|
+
exports.default = { gbk: gbk_1.default, time: time_1.default, hook: hook_1.default, math: math_1.default, util: util_1.default, list: list_1.default, mini: mini_1.default, url: url_1.default, rule: rule_1.default, DEvent: event_1.default, store: store_1.default, storeRef: store_1.storeRef };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const time_1 = require("../time");
|
|
3
4
|
/**
|
|
4
5
|
* 随机取值[0, max)
|
|
5
6
|
* @param max 最大值
|
|
@@ -24,4 +25,16 @@ function randomRange(min, max) {
|
|
|
24
25
|
function lerp(start, end, t) {
|
|
25
26
|
return start * (1 - t) + end * t;
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
+
function randomString(len, prefix = false) {
|
|
29
|
+
len = len || 32;
|
|
30
|
+
const chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
31
|
+
const maxPos = chars.length;
|
|
32
|
+
let pwd = "";
|
|
33
|
+
for (let i = 0; i < len; i++) {
|
|
34
|
+
pwd += chars.charAt(Math.floor(Math.random() * maxPos));
|
|
35
|
+
}
|
|
36
|
+
if (!prefix)
|
|
37
|
+
return pwd;
|
|
38
|
+
return time_1.default.format(new Date, "yyyyMMddhhmmss") + pwd;
|
|
39
|
+
}
|
|
40
|
+
exports.default = { random, randomRange, lerp, randomString };
|
|
@@ -3,18 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const diff_1 = require("./diff");
|
|
4
4
|
const hook_1 = require("../hook");
|
|
5
5
|
const promixify = (miniapi) => {
|
|
6
|
-
|
|
7
|
-
return
|
|
8
|
-
|
|
9
|
-
});
|
|
10
|
-
};
|
|
6
|
+
if (typeof miniapi !== "function")
|
|
7
|
+
return miniapi;
|
|
8
|
+
return (args = {}) => new Promise((resolve, reject) => {
|
|
9
|
+
miniapi(Object.assign(args, { success: resolve, fail: reject }));
|
|
10
|
+
});
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
// }
|
|
17
|
-
const api = (miniapi, options = null, ...params) => {
|
|
18
|
-
return hook_1.default.run(promixify(miniapi)(options, ...params));
|
|
12
|
+
const run = (func, args = {}) => {
|
|
13
|
+
if (!func)
|
|
14
|
+
return;
|
|
15
|
+
return hook_1.default.run(promixify(func)(args));
|
|
19
16
|
};
|
|
20
|
-
|
|
17
|
+
function formatList(lists, start, name) {
|
|
18
|
+
return (lists || []).reduce((res, val, index) => (Object.assign(Object.assign({}, res), { [`${name}[${start + index}]`]: val })), {});
|
|
19
|
+
}
|
|
20
|
+
exports.default = { diff: diff_1.default, promixify, run, formatList };
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
const util_1 = require("./util");
|
|
18
|
+
const index_1 = require("./validator/index");
|
|
19
|
+
const messages_1 = require("./messages");
|
|
20
|
+
__exportStar(require("./interface"), exports);
|
|
21
|
+
/**
|
|
22
|
+
* Encapsulates a validation schema.
|
|
23
|
+
*
|
|
24
|
+
* @param descriptor An object declaring validation rules
|
|
25
|
+
* for this schema.
|
|
26
|
+
*/
|
|
27
|
+
class Schema {
|
|
28
|
+
constructor(descriptor) {
|
|
29
|
+
// ======================== Instance ========================
|
|
30
|
+
this.rules = {};
|
|
31
|
+
this._messages = messages_1.messages;
|
|
32
|
+
this.define(descriptor);
|
|
33
|
+
}
|
|
34
|
+
define(rules) {
|
|
35
|
+
if (!rules) {
|
|
36
|
+
throw new Error('Cannot configure a schema with no rules');
|
|
37
|
+
}
|
|
38
|
+
if (typeof rules !== 'object' || Array.isArray(rules)) {
|
|
39
|
+
throw new Error('Rules must be an object');
|
|
40
|
+
}
|
|
41
|
+
this.rules = {};
|
|
42
|
+
Object.keys(rules).forEach(name => {
|
|
43
|
+
const item = rules[name];
|
|
44
|
+
this.rules[name] = Array.isArray(item) ? item : [item];
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
messages(messages) {
|
|
48
|
+
if (messages) {
|
|
49
|
+
this._messages = (0, util_1.deepMerge)((0, messages_1.newMessages)(), messages);
|
|
50
|
+
}
|
|
51
|
+
return this._messages;
|
|
52
|
+
}
|
|
53
|
+
validate(source_, o = {}, oc = () => { }) {
|
|
54
|
+
let source = source_;
|
|
55
|
+
let options = o;
|
|
56
|
+
let callback = oc;
|
|
57
|
+
if (typeof options === 'function') {
|
|
58
|
+
callback = options;
|
|
59
|
+
options = {};
|
|
60
|
+
}
|
|
61
|
+
if (!this.rules || Object.keys(this.rules).length === 0) {
|
|
62
|
+
if (callback) {
|
|
63
|
+
callback(null, source);
|
|
64
|
+
}
|
|
65
|
+
return Promise.resolve(source);
|
|
66
|
+
}
|
|
67
|
+
function complete(results) {
|
|
68
|
+
let errors = [];
|
|
69
|
+
let fields = {};
|
|
70
|
+
function add(e) {
|
|
71
|
+
if (Array.isArray(e)) {
|
|
72
|
+
errors = errors.concat(...e);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
errors.push(e);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
for (let i = 0; i < results.length; i++) {
|
|
79
|
+
add(results[i]);
|
|
80
|
+
}
|
|
81
|
+
if (!errors.length) {
|
|
82
|
+
callback(null, source);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
fields = (0, util_1.convertFieldsError)(errors);
|
|
86
|
+
callback(errors, fields);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (options.messages) {
|
|
90
|
+
let messages = this.messages();
|
|
91
|
+
if (messages === messages_1.messages) {
|
|
92
|
+
messages = (0, messages_1.newMessages)();
|
|
93
|
+
}
|
|
94
|
+
(0, util_1.deepMerge)(messages, options.messages);
|
|
95
|
+
options.messages = messages;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
options.messages = this.messages();
|
|
99
|
+
}
|
|
100
|
+
const series = {};
|
|
101
|
+
const keys = options.keys || Object.keys(this.rules);
|
|
102
|
+
keys.forEach(z => {
|
|
103
|
+
const arr = this.rules[z];
|
|
104
|
+
let value = source[z];
|
|
105
|
+
arr.forEach(r => {
|
|
106
|
+
let rule = r;
|
|
107
|
+
if (typeof rule.transform === 'function') {
|
|
108
|
+
if (source === source_) {
|
|
109
|
+
source = Object.assign({}, source);
|
|
110
|
+
}
|
|
111
|
+
value = source[z] = rule.transform(value);
|
|
112
|
+
}
|
|
113
|
+
if (typeof rule === 'function') {
|
|
114
|
+
rule = {
|
|
115
|
+
validator: rule,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
rule = Object.assign({}, rule);
|
|
120
|
+
}
|
|
121
|
+
// Fill validator. Skip if nothing need to validate
|
|
122
|
+
rule.validator = this.getValidationMethod(rule);
|
|
123
|
+
if (!rule.validator) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
rule.field = z;
|
|
127
|
+
rule.fullField = rule.fullField || z;
|
|
128
|
+
rule.type = this.getType(rule);
|
|
129
|
+
series[z] = series[z] || [];
|
|
130
|
+
series[z].push({
|
|
131
|
+
rule,
|
|
132
|
+
value,
|
|
133
|
+
source,
|
|
134
|
+
field: z,
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
const errorFields = {};
|
|
139
|
+
return (0, util_1.asyncMap)(series, options, (data, doIt) => {
|
|
140
|
+
var _a;
|
|
141
|
+
const rule = data.rule;
|
|
142
|
+
let deep = (rule.type === 'object' || rule.type === 'array') &&
|
|
143
|
+
(typeof rule.fields === 'object' ||
|
|
144
|
+
typeof rule.defaultField === 'object');
|
|
145
|
+
deep = deep && (rule.required || (!rule.required && data.value));
|
|
146
|
+
rule.field = data.field;
|
|
147
|
+
function addFullField(key, schema) {
|
|
148
|
+
return Object.assign(Object.assign({}, schema), { fullField: `${rule.fullField}.${key}`, fullFields: rule.fullFields ? [...rule.fullFields, key] : [key] });
|
|
149
|
+
}
|
|
150
|
+
function cb(e = []) {
|
|
151
|
+
let errorList = Array.isArray(e) ? e : [e];
|
|
152
|
+
if (options.suppressWarning === true && errorList.length) {
|
|
153
|
+
Schema.warning('async-validator:', errorList);
|
|
154
|
+
}
|
|
155
|
+
if (errorList.length && rule.message !== undefined) {
|
|
156
|
+
//@ts-ignore
|
|
157
|
+
errorList = [].concat(rule.message);
|
|
158
|
+
}
|
|
159
|
+
// Fill error info
|
|
160
|
+
let filledErrors = errorList.map((0, util_1.complementError)(rule, source));
|
|
161
|
+
if (options.first && filledErrors.length) {
|
|
162
|
+
errorFields[rule.field] = 1;
|
|
163
|
+
return doIt(filledErrors);
|
|
164
|
+
}
|
|
165
|
+
if (!deep) {
|
|
166
|
+
doIt(filledErrors);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
// if rule is required but the target object
|
|
170
|
+
// does not exist fail at the rule level and don't
|
|
171
|
+
// go deeper
|
|
172
|
+
if (rule.required && !data.value) {
|
|
173
|
+
if (rule.message !== undefined) {
|
|
174
|
+
filledErrors = []
|
|
175
|
+
//@ts-ignore
|
|
176
|
+
.concat(rule.message)
|
|
177
|
+
.map((0, util_1.complementError)(rule, source));
|
|
178
|
+
}
|
|
179
|
+
else if (options.error) {
|
|
180
|
+
filledErrors = [
|
|
181
|
+
options.error(rule, (0, util_1.format)(options.messages.required, rule.field)),
|
|
182
|
+
];
|
|
183
|
+
}
|
|
184
|
+
return doIt(filledErrors);
|
|
185
|
+
}
|
|
186
|
+
let fieldsSchema = {};
|
|
187
|
+
if (rule.defaultField) {
|
|
188
|
+
Object.keys(data.value).map(key => {
|
|
189
|
+
//@ts-ignore
|
|
190
|
+
fieldsSchema[key] = rule.defaultField;
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
fieldsSchema = Object.assign(Object.assign({}, fieldsSchema), data.rule.fields);
|
|
194
|
+
const paredFieldsSchema = {};
|
|
195
|
+
Object.keys(fieldsSchema).forEach(field => {
|
|
196
|
+
const fieldSchema = fieldsSchema[field];
|
|
197
|
+
const fieldSchemaList = Array.isArray(fieldSchema)
|
|
198
|
+
? fieldSchema
|
|
199
|
+
: [fieldSchema];
|
|
200
|
+
paredFieldsSchema[field] = fieldSchemaList.map(addFullField.bind(null, field));
|
|
201
|
+
});
|
|
202
|
+
const schema = new Schema(paredFieldsSchema);
|
|
203
|
+
schema.messages(options.messages);
|
|
204
|
+
if (data.rule.options) {
|
|
205
|
+
data.rule.options.messages = options.messages;
|
|
206
|
+
data.rule.options.error = options.error;
|
|
207
|
+
}
|
|
208
|
+
schema.validate(data.value, data.rule.options || options, errs => {
|
|
209
|
+
const finalErrors = [];
|
|
210
|
+
if (filledErrors && filledErrors.length) {
|
|
211
|
+
//@ts-ignore
|
|
212
|
+
finalErrors.push(...filledErrors);
|
|
213
|
+
}
|
|
214
|
+
if (errs && errs.length) {
|
|
215
|
+
//@ts-ignore
|
|
216
|
+
finalErrors.push(...errs);
|
|
217
|
+
}
|
|
218
|
+
//@ts-ignore
|
|
219
|
+
doIt(finalErrors.length ? finalErrors : null);
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
let res;
|
|
224
|
+
if (rule.asyncValidator) {
|
|
225
|
+
res = rule.asyncValidator(rule, data.value, cb, data.source, options);
|
|
226
|
+
}
|
|
227
|
+
else if (rule.validator) {
|
|
228
|
+
try {
|
|
229
|
+
res = rule.validator(rule, data.value, cb, data.source, options);
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
(_a = console.error) === null || _a === void 0 ? void 0 : _a.call(console, error);
|
|
233
|
+
// rethrow to report error
|
|
234
|
+
if (!options.suppressValidatorError) {
|
|
235
|
+
setTimeout(() => {
|
|
236
|
+
throw error;
|
|
237
|
+
}, 0);
|
|
238
|
+
}
|
|
239
|
+
//@ts-ignore
|
|
240
|
+
cb(error.message);
|
|
241
|
+
}
|
|
242
|
+
if (res === true) {
|
|
243
|
+
cb();
|
|
244
|
+
}
|
|
245
|
+
else if (res === false) {
|
|
246
|
+
cb(typeof rule.message === 'function'
|
|
247
|
+
? rule.message(rule.fullField || rule.field)
|
|
248
|
+
: rule.message || `${rule.fullField || rule.field} fails`);
|
|
249
|
+
}
|
|
250
|
+
else if (res instanceof Array) {
|
|
251
|
+
cb(res);
|
|
252
|
+
}
|
|
253
|
+
else if (res instanceof Error) {
|
|
254
|
+
cb(res.message);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
if (res && res.then) {
|
|
258
|
+
res.then(() => cb(), e => cb(e));
|
|
259
|
+
}
|
|
260
|
+
}, results => {
|
|
261
|
+
complete(results);
|
|
262
|
+
}, source);
|
|
263
|
+
}
|
|
264
|
+
getType(rule) {
|
|
265
|
+
if (rule.type === undefined && rule.pattern instanceof RegExp) {
|
|
266
|
+
rule.type = 'pattern';
|
|
267
|
+
}
|
|
268
|
+
if (typeof rule.validator !== 'function' &&
|
|
269
|
+
rule.type &&
|
|
270
|
+
!index_1.default.hasOwnProperty(rule.type)) {
|
|
271
|
+
throw new Error((0, util_1.format)('Unknown rule type %s', rule.type));
|
|
272
|
+
}
|
|
273
|
+
return rule.type || 'string';
|
|
274
|
+
}
|
|
275
|
+
getValidationMethod(rule) {
|
|
276
|
+
if (typeof rule.validator === 'function') {
|
|
277
|
+
return rule.validator;
|
|
278
|
+
}
|
|
279
|
+
const keys = Object.keys(rule);
|
|
280
|
+
const messageIndex = keys.indexOf('message');
|
|
281
|
+
if (messageIndex !== -1) {
|
|
282
|
+
keys.splice(messageIndex, 1);
|
|
283
|
+
}
|
|
284
|
+
if (keys.length === 1 && keys[0] === 'required') {
|
|
285
|
+
return index_1.default.required;
|
|
286
|
+
}
|
|
287
|
+
return index_1.default[this.getType(rule)] || undefined;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
// ========================= Static =========================
|
|
291
|
+
Schema.register = function register(type, validator) {
|
|
292
|
+
if (typeof validator !== 'function') {
|
|
293
|
+
throw new Error('Cannot register a validator by type, validator is not a function');
|
|
294
|
+
}
|
|
295
|
+
index_1.default[type] = validator;
|
|
296
|
+
};
|
|
297
|
+
Schema.warning = util_1.warning;
|
|
298
|
+
Schema.messages = messages_1.messages;
|
|
299
|
+
Schema.validators = index_1.default;
|
|
300
|
+
exports.default = Schema;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.messages = exports.newMessages = void 0;
|
|
4
|
+
function newMessages() {
|
|
5
|
+
return {
|
|
6
|
+
default: 'Validation error on field %s',
|
|
7
|
+
required: '%s is required',
|
|
8
|
+
enum: '%s must be one of %s',
|
|
9
|
+
whitespace: '%s cannot be empty',
|
|
10
|
+
date: {
|
|
11
|
+
format: '%s date %s is invalid for format %s',
|
|
12
|
+
parse: '%s date could not be parsed, %s is invalid ',
|
|
13
|
+
invalid: '%s date %s is invalid',
|
|
14
|
+
},
|
|
15
|
+
types: {
|
|
16
|
+
string: '%s is not a %s',
|
|
17
|
+
method: '%s is not a %s (function)',
|
|
18
|
+
array: '%s is not an %s',
|
|
19
|
+
object: '%s is not an %s',
|
|
20
|
+
number: '%s is not a %s',
|
|
21
|
+
date: '%s is not a %s',
|
|
22
|
+
boolean: '%s is not a %s',
|
|
23
|
+
integer: '%s is not an %s',
|
|
24
|
+
float: '%s is not a %s',
|
|
25
|
+
regexp: '%s is not a valid %s',
|
|
26
|
+
email: '%s is not a valid %s',
|
|
27
|
+
url: '%s is not a valid %s',
|
|
28
|
+
hex: '%s is not a valid %s',
|
|
29
|
+
},
|
|
30
|
+
string: {
|
|
31
|
+
len: '%s must be exactly %s characters',
|
|
32
|
+
min: '%s must be at least %s characters',
|
|
33
|
+
max: '%s cannot be longer than %s characters',
|
|
34
|
+
range: '%s must be between %s and %s characters',
|
|
35
|
+
},
|
|
36
|
+
number: {
|
|
37
|
+
len: '%s must equal %s',
|
|
38
|
+
min: '%s cannot be less than %s',
|
|
39
|
+
max: '%s cannot be greater than %s',
|
|
40
|
+
range: '%s must be between %s and %s',
|
|
41
|
+
},
|
|
42
|
+
array: {
|
|
43
|
+
len: '%s must be exactly %s in length',
|
|
44
|
+
min: '%s cannot be less than %s in length',
|
|
45
|
+
max: '%s cannot be greater than %s in length',
|
|
46
|
+
range: '%s must be between %s and %s in length',
|
|
47
|
+
},
|
|
48
|
+
pattern: {
|
|
49
|
+
mismatch: '%s value %s does not match pattern %s',
|
|
50
|
+
},
|
|
51
|
+
clone() {
|
|
52
|
+
const cloned = JSON.parse(JSON.stringify(this));
|
|
53
|
+
cloned.clone = this.clone;
|
|
54
|
+
return cloned;
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
exports.newMessages = newMessages;
|
|
59
|
+
exports.messages = newMessages();
|