UNPKG

objectro

Version:

Transform and validate objects

7 lines (5 loc) 16.4 kB
/** * Objectro v1.1.0 * © Matt Scheurich <matt@lvl99.com> (Apache-2.0) */ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var e=function(t,e){return null!=t&&e in Object(t)},n=Array.isArray,r="object"==typeof t&&t&&t.Object===Object&&t,i=r,o="object"==typeof self&&self&&self.Object===Object&&self,a=i||o||Function("return this")(),u=a.Symbol,c=u,s=Object.prototype,l=s.hasOwnProperty,f=s.toString,p=c?c.toStringTag:void 0;var v=function(t){var e=l.call(t,p),n=t[p];try{t[p]=void 0;var r=!0}catch(t){}var i=f.call(t);return r&&(e?t[p]=n:delete t[p]),i},h=Object.prototype.toString;var d=v,y=function(t){return h.call(t)},g=u?u.toStringTag:void 0;var b=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":g&&g in Object(t)?d(t):y(t)};var _=function(t){return null!=t&&"object"==typeof t},m=b,j=_;var x=function(t){return"symbol"==typeof t||j(t)&&"[object Symbol]"==m(t)},O=n,w=x,S=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,A=/^\w*$/;var $=function(t,e){if(O(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!w(t))||(A.test(t)||!S.test(t)||null!=e&&t in Object(e))};var M=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},k=b,P=M;var E,R=function(t){if(!P(t))return!1;var e=k(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e},z=a["__core-js_shared__"],N=(E=/[^.]+$/.exec(z&&z.keys&&z.keys.IE_PROTO||""))?"Symbol(src)_1."+E:"";var V=function(t){return!!N&&N in t},T=Function.prototype.toString;var F=function(t){if(null!=t){try{return T.call(t)}catch(t){}try{return t+""}catch(t){}}return""},D=R,I=V,q=M,C=F,W=/^\[object .+?Constructor\]$/,B=Function.prototype,L=Object.prototype,G=B.toString,U=L.hasOwnProperty,H=RegExp("^"+G.call(U).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var J=function(t){return!(!q(t)||I(t))&&(D(t)?H:W).test(C(t))},K=function(t,e){return null==t?void 0:t[e]};var Q=function(t,e){var n=K(t,e);return J(n)?n:void 0},X=Q(Object,"create"),Y=X;var Z=function(){this.__data__=Y?Y(null):{},this.size=0};var tt=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},et=X,nt=Object.prototype.hasOwnProperty;var rt=function(t){var e=this.__data__;if(et){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return nt.call(e,t)?e[t]:void 0},it=X,ot=Object.prototype.hasOwnProperty;var at=X;var ut=Z,ct=tt,st=rt,lt=function(t){var e=this.__data__;return it?void 0!==e[t]:ot.call(e,t)},ft=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=at&&void 0===e?"__lodash_hash_undefined__":e,this};function pt(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}pt.prototype.clear=ut,pt.prototype.delete=ct,pt.prototype.get=st,pt.prototype.has=lt,pt.prototype.set=ft;var vt=pt;var ht=function(){this.__data__=[],this.size=0};var dt=function(t,e){return t===e||t!=t&&e!=e},yt=dt;var gt=function(t,e){for(var n=t.length;n--;)if(yt(t[n][0],e))return n;return-1},bt=gt,_t=Array.prototype.splice;var mt=function(t){var e=this.__data__,n=bt(e,t);return!(n<0)&&(n==e.length-1?e.pop():_t.call(e,n,1),--this.size,!0)},jt=gt;var xt=function(t){var e=this.__data__,n=jt(e,t);return n<0?void 0:e[n][1]},Ot=gt;var wt=gt;var St=function(t,e){var n=this.__data__,r=wt(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},At=ht,$t=mt,Mt=xt,kt=function(t){return Ot(this.__data__,t)>-1},Pt=St;function Et(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}Et.prototype.clear=At,Et.prototype.delete=$t,Et.prototype.get=Mt,Et.prototype.has=kt,Et.prototype.set=Pt;var Rt=Et,zt=Q(a,"Map"),Nt=vt,Vt=Rt,Tt=zt;var Ft=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};var Dt=function(t,e){var n=t.__data__;return Ft(e)?n["string"==typeof e?"string":"hash"]:n.map},It=Dt;var qt=Dt;var Ct=Dt;var Wt=Dt;var Bt=function(){this.size=0,this.__data__={hash:new Nt,map:new(Tt||Vt),string:new Nt}},Lt=function(t){var e=It(this,t).delete(t);return this.size-=e?1:0,e},Gt=function(t){return qt(this,t).get(t)},Ut=function(t){return Ct(this,t).has(t)},Ht=function(t,e){var n=Wt(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this};function Jt(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}Jt.prototype.clear=Bt,Jt.prototype.delete=Lt,Jt.prototype.get=Gt,Jt.prototype.has=Ut,Jt.prototype.set=Ht;var Kt=Jt;function Qt(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=t.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(Qt.Cache||Kt),n}Qt.Cache=Kt;var Xt=Qt;var Yt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Zt=/\\(\\)?/g,te=function(t){var e=Xt(t,(function(t){return 500===n.size&&n.clear(),t})),n=e.cache;return e}((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(Yt,(function(t,n,r,i){e.push(r?i.replace(Zt,"$1"):n||t)})),e}));var ee=function(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i},ne=ee,re=n,ie=x,oe=u?u.prototype:void 0,ae=oe?oe.toString:void 0;var ue=function t(e){if("string"==typeof e)return e;if(re(e))return ne(e,t)+"";if(ie(e))return ae?ae.call(e):"";var n=e+"";return"0"==n&&1/e==-Infinity?"-0":n},ce=ue;var se=function(t){return null==t?"":ce(t)},le=n,fe=$,pe=te,ve=se;var he=function(t,e){return le(t)?t:fe(t,e)?[t]:pe(ve(t))},de=b,ye=_;var ge=function(t){return ye(t)&&"[object Arguments]"==de(t)},be=_,_e=Object.prototype,me=_e.hasOwnProperty,je=_e.propertyIsEnumerable,xe=ge(function(){return arguments}())?ge:function(t){return be(t)&&me.call(t,"callee")&&!je.call(t,"callee")},Oe=/^(?:0|[1-9]\d*)$/;var we=function(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&Oe.test(t))&&t>-1&&t%1==0&&t<e};var Se=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991},Ae=x;var $e=function(t){if("string"==typeof t||Ae(t))return t;var e=t+"";return"0"==e&&1/t==-Infinity?"-0":e},Me=he,ke=xe,Pe=n,Ee=we,Re=Se,ze=$e;var Ne=function(t,e,n){for(var r=-1,i=(e=Me(e,t)).length,o=!1;++r<i;){var a=ze(e[r]);if(!(o=null!=t&&n(t,a)))break;t=t[a]}return o||++r!=i?o:!!(i=null==t?0:t.length)&&Re(i)&&Ee(a,i)&&(Pe(t)||ke(t))},Ve=e,Te=Ne;var Fe=function(t,e){return null!=t&&Te(t,e,Ve)},De=b,Ie=_;var qe=function(t){return"number"==typeof t||Ie(t)&&"[object Number]"==De(t)},Ce=qe;var We=function(t){return Ce(t)&&t!=+t},Be=/\s/;var Le=function(t){for(var e=t.length;e--&&Be.test(t.charAt(e)););return e},Ge=Le,Ue=/^\s+/;var He=function(t){return t?t.slice(0,Ge(t)+1).replace(Ue,""):t},Je=M,Ke=x,Qe=/^[-+]0x[0-9a-f]+$/i,Xe=/^0b[01]+$/i,Ye=/^0o[0-7]+$/i,Ze=parseInt;var tn=function(t){if("number"==typeof t)return t;if(Ke(t))return NaN;if(Je(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Je(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=He(t);var n=Xe.test(t);return n||Ye.test(t)?Ze(t.slice(2),n?2:8):Qe.test(t)?NaN:+t},en=1/0;var nn=function(t){return t?(t=tn(t))===en||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0};var rn=function(t){var e=nn(t),n=e%1;return e==e?n?e-n:e:0};var on=function(t){return"number"==typeof t&&t==rn(t)};const an=/\.|\[|\]\.?/,un=(t,e,n)=>{if(!M(t)||!fn(e))return n;const r=e instanceof Array&&1===e.length?e[0]:e,i=typeof r;if("string"===i&&(-1===String(r).indexOf(".")||-1===String(r).indexOf("["))||"number"===i&&Number(r)>-1)return r in t?t[r]:n;const o=String(e instanceof Array?e.join("."):e),a=(an.test(o)?o.split(an):[o]).filter((t=>!pn(t)));if(!a)return n;let u=t;const c=a.length;for(let t=0;t<c;t++)u=u[a[t]];return u},cn=(t,e,n)=>{if(!M(t)||!fn(e))return;const r=e instanceof Array&&1===e.length?e[0]:e,i=typeof r;if("string"===i&&(-1===String(r).indexOf(".")||-1===String(r).indexOf("["))||"number"===i&&Number(r)>-1)return void(t[r]=n);const o=String(e instanceof Array?e.join("."):e),a=(an.test(o)?o.split(an):[o]).filter((t=>!pn(t)));if(!a)return;const u=a.length>1?un(t,a.slice(0,-1)):t;cn(u,a.slice(-1)[0],n)};function sn(t,e,n){return void 0===n?Fe(t,e):Fe(t,e)&&(R(n)?!!n(un(t,e)):un(t,e)===n)}function ln(t){return!!t}const fn=t=>{const e=typeof t;return"string"===e||"number"===e&&t>-1||t instanceof Array&&t.length};function pn(t){return null==t||""===t||t instanceof Array&&0===t.length}function vn(t,...e){let n=!1,r=e.length;if(r)for(let i=0;i<r;i++)if(t.indexOf(e[i])>-1){n=!0;break}return n}function hn(t,...e){let n=!1,r=e.length,i=0;if(r)for(let o=0;o<r;o++)if(t.indexOf(e[o])>-1&&(i++,i===r)){n=!0;break}return n}var dn=he,yn=$e;var gn=function(t,e){for(var n=0,r=(e=dn(e,t)).length;null!=t&&n<r;)t=t[yn(e[n++])];return n&&n==r?t:void 0},bn=gn;var _n=function(t,e,n){var r=null==t?void 0:bn(t,e);return void 0===r?n:r},mn=Q,jn=function(){try{var t=mn(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();var xn=function(t,e,n){"__proto__"==e&&jn?jn(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n},On=dt,wn=Object.prototype.hasOwnProperty;var Sn=function(t,e,n){var r=t[e];wn.call(t,e)&&On(r,n)&&(void 0!==n||e in t)||xn(t,e,n)},An=he,$n=we,Mn=M,kn=$e;var Pn=function(t,e,n,r){if(!Mn(t))return t;for(var i=-1,o=(e=An(e,t)).length,a=o-1,u=t;null!=u&&++i<o;){var c=kn(e[i]),s=n;if("__proto__"===c||"constructor"===c||"prototype"===c)return t;if(i!=a){var l=u[c];void 0===(s=r?r(l,c,u):void 0)&&(s=Mn(l)?l:$n(e[i+1])?[]:{})}Sn(u,c,s),u=u[c]}return t},En=Pn;var Rn=function(t,e,n){return null==t?t:En(t,e,n)},zn=b,Nn=n,Vn=_;var Tn=function(t){return"string"==typeof t||!Nn(t)&&Vn(t)&&"[object String]"==zn(t)};var Fn=function(t,e){return function(n){return t(e(n))}},Dn=Fn(Object.getPrototypeOf,Object),In=b,qn=Dn,Cn=_,Wn=Function.prototype,Bn=Object.prototype,Ln=Wn.toString,Gn=Bn.hasOwnProperty,Un=Ln.call(Object);var Hn=function(t){if(!Cn(t)||"[object Object]"!=In(t))return!1;var e=qn(t);if(null===e)return!0;var n=Gn.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Ln.call(n)==Un},Jn=n;var Kn=function(){if(!arguments.length)return[];var t=arguments[0];return Jn(t)?t:[t]};const Qn=(t,e,n)=>sn(e,t)&&!pn(_n(e,t))?_n(e,t):_n(n,t);var Xn=se,Yn=/[\\^$.*+?()[\]{}|]/g,Zn=RegExp(Yn.source);var tr=function(t){return(t=Xn(t))&&Zn.test(t)?t.replace(Yn,"\\$&"):t},er=b,nr=_;var rr=function(t){return!0===t||!1===t||nr(t)&&"[object Boolean]"==er(t)},ir=R,or=Se;var ar=function(t){return null!=t&&or(t.length)&&!ir(t)},ur=Q(a,"DataView"),cr=zt,sr=Q(a,"Promise"),lr=Q(a,"Set"),fr=Q(a,"WeakMap"),pr=b,vr=F,hr="[object Map]",dr="[object Promise]",yr="[object Set]",gr="[object WeakMap]",br="[object DataView]",_r=vr(ur),mr=vr(cr),jr=vr(sr),xr=vr(lr),Or=vr(fr),wr=pr;(ur&&wr(new ur(new ArrayBuffer(1)))!=br||cr&&wr(new cr)!=hr||sr&&wr(sr.resolve())!=dr||lr&&wr(new lr)!=yr||fr&&wr(new fr)!=gr)&&(wr=function(t){var e=pr(t),n="[object Object]"==e?t.constructor:void 0,r=n?vr(n):"";if(r)switch(r){case _r:return br;case mr:return hr;case jr:return dr;case xr:return yr;case Or:return gr}return e});var Sr=wr,Ar=Sr,$r=_;var Mr=function(t){return $r(t)&&"[object Map]"==Ar(t)};var kr=function(t){return function(e){return t(e)}},Pr={};!function(t,e){var n=r,i=e&&!e.nodeType&&e,o=i&&t&&!t.nodeType&&t,a=o&&o.exports===i&&n.process,u=function(){try{var t=o&&o.require&&o.require("util").types;return t||a&&a.binding&&a.binding("util")}catch(t){}}();t.exports=u}({get exports(){return Pr},set exports(t){Pr=t}},Pr);var Er=Mr,Rr=kr,zr=Pr&&Pr.isMap,Nr=zr?Rr(zr):Er,Vr=Sr,Tr=_;var Fr=function(t){return Tr(t)&&"[object Set]"==Vr(t)},Dr=kr,Ir=Pr&&Pr.isSet,qr=Ir?Dr(Ir):Fr,Cr=b,Wr=_;var Br=function(t){return Wr(t)&&"[object RegExp]"==Cr(t)},Lr=kr,Gr=Pr&&Pr.isRegExp,Ur=Gr?Lr(Gr):Br,Hr=b,Jr=_;var Kr=function(t){return Jr(t)&&"[object Date]"==Hr(t)},Qr=kr,Xr=Pr&&Pr.isDate,Yr=Xr?Qr(Xr):Kr;var Zr=b,ti=_,ei=Hn;const ni={_depth:0,debug:!1,negateMatch:!1,matchAll:!1,skipMissingProps:!1,caseSensitive:!1,data:{}},ri=(t={})=>({...ni,...t}),ii=(t={})=>({...ni,...t,_depth:void 0!==t._depth&&t._depth>=0?t._depth+1:0}),oi={bool:rr,boolean:rr,string:Tn,number:qe,integer:on,float:function(t){return!We(t)&&qe(t)&&!on(t)&&t!==1/0},array:n,arrayLike:ar,map:Nr,set:qr,object:M,objectLike:_,plainObject:Hn,function:R,regExp:Ur,date:Yr,null:function(t){return null===t},undefined:function(t){return void 0===t},nan:We,nil:function(t){return null==t},error:function(t){if(!ti(t))return!1;var e=Zr(t);return"[object Error]"==e||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!ei(t)},truthy:ln,falsy:function(t){return!t}},ai={not:(t,e,n)=>ui(t,e,ii({...n,matchAll:!1,negateMatch:!sn(n,"negateMatch")||!n.negateMatch})),all:(t,e,n)=>ui(t,e,ii({...n,negateMatch:!1,matchAll:!0})),any:(t,e,n)=>ui(t,e,ii({...n,matchAll:!1})),eq:(t,e)=>t==e,eqs:(t,e)=>t===e,gt:(t,e)=>t>e,gte:(t,e)=>t>=e,lt:(t,e)=>t<e,lte:(t,e)=>t<=e,insideRange:(t,e)=>sn(e,"min")&&sn(e,"max")&&t>e.min&&t<e.max,withinRange:(t,e)=>sn(e,"min")&&sn(e,"max")&&t>=e.min&&t<=e.max,withinRangeMin:(t,e)=>sn(e,"min")&&sn(e,"max")&&t>=e.min&&t<e.max,withinRangeMax:(t,e)=>sn(e,"min")&&sn(e,"max")&&t>e.min&&t<=e.max,outsideRange:(t,e)=>sn(e,"min")&&sn(e,"max")&&t<e.min&&t>e.max,outerRange:(t,e)=>sn(e,"min")&&sn(e,"max")&&t<=e.min&&t>=e.max,outerRangeMin:(t,e)=>sn(e,"min")&&sn(e,"max")&&t<=e.min&&t>e.max,outerRangeMax:(t,e)=>sn(e,"min")&&sn(e,"max")&&t<e.min&&t>=e.max,re:(t,e,{caseSensitive:n=!1})=>(e instanceof RegExp?e:new RegExp(e,n?void 0:"i")).test(t),startsWith:(t,e,{caseSensitive:n=!1})=>new RegExp(`^${tr(`${e}`)}`,n?void 0:"i").test(t+""),endsWith:(t,e,{caseSensitive:n=!1})=>new RegExp(`${tr(`${e}`)}$`,n?void 0:"i").test(t+""),contains:(t,e,{caseSensitive:r=!1})=>n(t)||r?t.indexOf(e)>-1:new RegExp(`${tr(e)}`,"i").test(t),includesAny:(t,e)=>vn(Kn(t),...Kn(e)),includesAll:(t,e)=>hn(Kn(t),...Kn(e)),type:(t,e)=>sn(oi,e,R)&&oi[e](t),has:(t,e,r)=>{let i=!1,o=0,a=0;if(Tn(e)||n(e)){const n=Kn(e);if(o=n.length,sn(r,"matchAll",ln)){for(let e=0;e<o;e++){const i=n[e];!sn(r,"skipMissingProps",ln)||sn(t,i)||sn(r,`data.${i}`)?a+=sn(t,i)||sn(r,`data.${i}`)?1:0:o--}i=a===o}else for(let e=0;e<o;e++){const a=n[e];if(!sn(r,"skipMissingProps",ln)||sn(t,a)||sn(r,["data",a])){if(sn(t,a)||sn(r,["data",a])){i=!0;break}}else o--}}else if(M(e)){let u=Object.keys(e);o=u.length;for(let c=0;c<o;c++){let s=u[c];if(sn(r,"skipMissingProps",ln)&&!sn(t,s)&&!sn(r,["data",s])){o--;continue}let l=n(t)||sn(t,s)?_n(t,s):sn(r,["data",s])?_n(r,["data",s]):void 0,f=Kn(l),p=Kn(e[s]);if(i=sn(r,"matchAll",ln)?hn(f,...p):vn(f,...p),i){if(a++,!sn(r,"matchAll",ln))break;i=a===o}}}return i},match:(t,e,n)=>{let r=!1,i=0,o=0;if(M(e)){const a=Object.keys(e);o=a.length;for(let u=0;u<o;u++){const c=a[u];if(sn(n,"skipMissingProps",ln)&&!sn(t,c)&&!sn(n,`data.${c}`)){o--;continue}const s=_n(e,c);if(r=ui(sn(t,c)?_n(t,c):sn(n,`data.${c}`)?_n(n.data,c):void 0,s,ri({data:n.data||{}})),r){if(i++,!sn(n,"matchAll",ln))break;r=i===o}}}return r}};function ui(t,e,n){const r=ri({...n,_depth:_n(n,"_depth",0)});let i=1,o=0,a=!1;const u=({ruleName:t,ruleValue:e,input:n,options:r,isValid:i})=>{i&&o++,r.debug};if(R(e))a=e(t,e,r),a&&u({ruleName:"fn",ruleValue:e,input:t,options:r,isValid:a});else{const n=Object.keys(e);i=n.length;for(let c=0;c<i;c++){const s=n[c],l=e[s];if(R(l))a=l(t,l,r);else if(sn(ai,s,R)){a=(0,ai[s])(t,l,r)}if(a){if(u({ruleName:s,ruleValue:l,input:t,options:r,isValid:a}),!sn(r,"matchAll",ln)||o===i)break;a=!1}else u({ruleName:s,ruleValue:l,input:t,options:r,isValid:a})}}return sn(r,"negateMatch",ln)?!a:a}const ci=un,si=cn,li=function t(e,...r){let i=Object.freeze({...e}),o={};return r&&r.length?(r.forEach((r=>{if(Tn(r)){let t=Qn(r,e,o);void 0!==t&&Rn(o,r,t)}else Hn(r)&&Object.keys(r).forEach((a=>{let u=Qn(a,e,o),c=_n(r,a);if(R(c)){let t=c(u,a,i,o);void 0!==t&&(Hn(t)?o={...o,...t}:Rn(o,a,t))}else Hn(u)&&(Hn(c)||n(c))?Rn(o,a,t(u,...Kn(c))):Tn(c)&&void 0!==u&&Rn(o,c,u)}))})),o):{...e}},fi=ui;var pi={get:ci,set:si,transform:li,validate:fi};exports.default=pi,exports.get=ci,exports.set=si,exports.transform=li,exports.validate=fi;