vest 4.0.0-dev-31f012 → 4.0.0-dev-e266d9
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/CHANGELOG.md +70 -52
- package/README.md +2 -112
- package/dist/cjs/compose.js +7 -0
- package/dist/cjs/compounds.js +7 -0
- package/dist/cjs/enforce/compose.development.js +139 -0
- package/dist/cjs/enforce/compose.production.js +1 -0
- package/dist/cjs/enforce/compounds.development.js +132 -0
- package/dist/cjs/enforce/compounds.production.js +1 -0
- package/dist/cjs/enforce/package.json +1 -0
- package/dist/cjs/enforce/schema.development.js +144 -0
- package/dist/cjs/enforce/schema.production.js +1 -0
- package/dist/cjs/schema.js +7 -0
- package/dist/cjs/vest.development.js +504 -1034
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/enforce/compose.development.js +137 -0
- package/dist/es/enforce/compose.production.js +1 -0
- package/dist/es/enforce/compounds.development.js +130 -0
- package/dist/es/enforce/compounds.production.js +1 -0
- package/dist/es/enforce/package.json +1 -0
- package/dist/es/enforce/schema.development.js +140 -0
- package/dist/es/enforce/schema.production.js +1 -0
- package/dist/es/vest.development.js +497 -1033
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +143 -0
- package/dist/umd/enforce/compose.production.js +1 -0
- package/dist/umd/enforce/compounds.development.js +136 -0
- package/dist/umd/enforce/compounds.production.js +1 -0
- package/dist/umd/enforce/schema.development.js +148 -0
- package/dist/umd/enforce/schema.production.js +1 -0
- package/dist/umd/vest.development.js +1693 -2226
- package/dist/umd/vest.production.js +1 -1
- package/enforce/compose/package.json +7 -0
- package/enforce/compounds/package.json +7 -0
- package/enforce/schema/package.json +7 -0
- package/package.json +107 -13
- package/testUtils/mockThrowError.ts +16 -0
- package/types/enforce/compose.d.ts +134 -0
- package/types/enforce/compounds.d.ts +146 -0
- package/types/enforce/schema.d.ts +151 -0
- package/types/vest.d.ts +31 -203
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=function(){return(n=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};function t(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||t)}var r=Object.assign;function e(n){return"function"==typeof n}function u(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function i(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return e(n)?n.apply(void 0,t):n}function o(n,t){var r;return null!==(r=i(n))&&void 0!==r?r:t}function s(n,t){return n={pass:n},t&&(n.message=t),n}function a(){return s(!1)}function c(){return s(!0)}function f(n){return o(n,a())}function l(n){return o(n,c())}function p(n,t){try{return n.run(t)}catch(n){return a()}}function v(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return l(u(t,(function(t,r){(t=p(t,n)).pass||r(t)})))}function d(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return f(u(t,(function(t,r){(t=p(t,n)).pass&&r(t)})))}function h(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return l(u(t,(function(t,r){p(t,n).pass&&r(a())})))}function g(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function m(n,t){return n.length===Number(t)}var y=g(m);function N(n,t){return n.length>Number(t)}function E(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(N(e,1))return!1;(t=p(t,n)).pass&&e.push(t)})),s(m(e,1))}function b(n){return null===n}var C=g(b);function T(n){return void 0===n}var O=g(T);function S(n,t){return T(n)||b(n)?c():p(t,n)}function w(n){return String(n)===n}function x(n,t){return w(n)&&w(t)&&n.endsWith(t)}var P=g(x);function F(n,t){return n===t}var I=g(F);function k(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}var A=g(k);function D(n,t){return k(n)&&k(t)&&Number(n)>Number(t)}function L(n,t){return k(n)&&k(t)&&Number(n)>=Number(t)}function W(n){return!!Array.isArray(n)}var U=g(W);function R(n,t){return!!(W(t)||w(t)&&w(n))&&-1!==t.indexOf(n)}var _=g(R);function X(n,t){return k(n)&&k(t)&&Number(n)<=Number(t)}function M(n,t,r){return L(n,t)&&X(n,r)}var G=g(M);function j(n){return w(n)&&!n.trim()}var q=g(j);function B(n){return!!n===n}var K=g(B);function H(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function V(n){return"number"==typeof n}var J=g(V);function z(n){if(n){if(V(n))return 0===n;if(H(n,"length"))return m(n,0);if("object"==typeof n)return m(Object.keys(n),0)}return!0}var Y=g(z),Q=function(n){return!!k(n)&&0==n%2};function Z(n){return Number.isNaN(n)}var $=g(Z);function nn(n){return!!k(n)&&0>Number(n)}var tn=g(nn),rn=function(n){return!!k(n)&&0!=n%2},en=g(w);function un(n){return!!n}var on=g(un);function sn(n,t){return k(n)&&k(t)&&Number(n)<Number(t)}function an(n,t){return n.length>=Number(t)}function cn(n,t){return t instanceof RegExp?t.test(n):!!w(t)&&new RegExp(t).test(n)}var fn=g(cn);function ln(n,t){return k(n)&&k(t)&&Number(n)===Number(t)}var pn=g(ln);function vn(n,t){try{return t(n)}catch(n){return!1}}function dn(n,t){return n.length<Number(t)}function hn(n,t){return n.length<=Number(t)}function gn(n,t){return w(n)&&w(t)&&n.startsWith(t)}var mn=g(gn);function yn(n,t){throw Error(o(t,n))}function Nn(n){function t(t,i){var o,s,a=e();return t=r({},a||{},null!==(o=null==n?void 0:n(t,a))&&void 0!==o?o:t),o=u.ctx=Object.freeze(t),u.ancestry.unshift(o),i=i(o),u.ancestry.shift(),u.ctx=null!==(s=u.ancestry[0])&&void 0!==s?s:null,i}function e(){return u.ctx}var u={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:e,useX:function(n){var t;return null!==(t=u.ctx)&&void 0!==t?t:yn(o(n,"Context was used after it was closed"))}}}var En=Nn((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return function(n){return n?{value:n.value,meta:n.meta,parent:n.parent}:n}(t)}}):t:r(e,{parent:bn})}));function bn(){return null}function Cn(n,t){return l(u(n,(function(n,r,e){(e=En.run({value:n,set:!0,meta:{index:e}},(function(){return p(t,n)}))).pass||r(e)})))}function Tn(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=En.run({value:e,set:!0,meta:{key:r}},(function(){return p(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return c()}function On(n,t){var r=Tn(n,t);if(!r.pass)return r;for(var e in n)if(!H(t,e))return a();return c()}var Sn=r({condition:vn,doesNotEndWith:P,doesNotStartWith:mn,endsWith:x,equals:F,greaterThan:D,greaterThanOrEquals:L,gt:D,gte:L,inside:R,isArray:W,isBetween:M,isBlank:j,isBoolean:B,isEmpty:z,isEven:Q,isFalsy:on,isNaN:Z,isNegative:nn,isNotArray:U,isNotBetween:G,isNotBlank:q,isNotBoolean:K,isNotEmpty:Y,isNotNaN:$,isNotNull:C,isNotNumber:J,isNotNumeric:A,isNotString:en,isNotUndefined:O,isNull:b,isNumber:V,isNumeric:k,isOdd:rn,isPositive:tn,isString:w,isTruthy:un,isUndefined:T,lengthEquals:m,lengthNotEquals:y,lessThan:sn,lessThanOrEquals:X,longerThan:N,longerThanOrEquals:an,lt:sn,lte:X,matches:cn,notEquals:I,notInside:_,notMatches:fn,numberEquals:ln,numberNotEquals:pn,shorterThan:dn,shorterThanOrEquals:hn,startsWith:gn},{allOf:v,anyOf:d,noneOf:h,oneOf:E,optional:S},{shape:On,loose:Tn,isArrayOf:Cn});function wn(n){return Sn[n]}function xn(n){for(var t in Sn){var r=wn(t);e(r)&&n(t,r)}}function Pn(){try{return e(Proxy)}catch(n){return!1}}function Fn(n,r,e){for(var u=[],o=3;o<arguments.length;o++)u[o-3]=arguments[o];return In(n),B(n)?s(n):s(n.pass,i.apply(void 0,t([n.message,r,e],u)))}function In(n){B(n)||n&&B(n.pass)||yn("Incorrect return value for rule: "+JSON.stringify(n))}function kn(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=Fn.apply(void 0,t([En.run({value:n},(function(){return e.apply(void 0,t([n],i))})),u,n],i))).pass){if(!z(o.message))throw o.message;yn("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!Pn())return xn((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=wn(t))return r(u,n,t)}});return u}function An(n){var r,e=[];return function n(o){return function(){for(var a=[],c=0;c<arguments.length;c++)a[c]=arguments[c];var f=wn(o);e.push((function(n){return Fn.apply(void 0,t([f.apply(void 0,t([n],a)),o,n],a))}));var p={run:function(n){return l(u(e,(function(t,e){var u,o=En.run({value:n},(function(){return t(n)}));o.pass||e(s(!!o.pass,null!==(u=i(r,n,o.message))&&void 0!==u?u:o.message))})))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return Pn()?p=new Proxy(p,{get:function(t,r){return wn(r)?n(r):t[r]}}):(xn((function(t){p[t]=n(t)})),p)}}(n)}function Dn(n){var t,r={};for(t in n)r[t]=Un.optional(n[t]);return r}var Ln,Wn,Un=(Ln=n({context:function(){return En.useX()},extend:function(n){r(Sn,n)}},{partial:Dn}),Pn()?new Proxy(r(kn,Ln),{get:function(n,t){return t in n?n[t]:wn(t)?An(t):void 0}}):(xn((function(n){Ln[n]=An(n)})),Ln)),Rn=function(n){return function(){return""+n++}}(0);function _n(n,t){return t=t.suiteId,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function Xn(n){return[].concat(n)}function Mn(n){return(n=Xn(n))[n.length-1]}function Gn(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return Mn(t)},getCursor:function(){return Xn(t)},next:function(){return t[t.length-1]++,Mn(t)},removeLevel:function(){t.pop()},reset:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.GROUP=4]="GROUP"}(Wn||(Wn={}));var jn=Nn((function(n,t){return t?null:r({},{isolate:{type:Wn.DEFAULT},testCursor:Gn(),exclusion:{tests:{},groups:{}}},n)}));function qn(n,t){for(var r=[],e=0;e<n.length;e++){var u=n[e];W(u)?r.push(qn(u,t)):(u=t(u),C(u)&&r.push(u))}return r}function Bn(n,t,r){return Hn(n,t)[Mn(t)]=r,n}function Kn(n){return Xn(n).reduce((function(n,t){return W(t)?n.concat(Kn(t)):Xn(n).concat(t)}),[])}function Hn(n,t){var r=0;for(t=t.slice(0,-1);r<t.length;r++){var e=t[r];n[e]=o(n[e],[]),n=n[e]}return n}function Vn(n){void 0===n&&(n=1);var t=[],r=function(e,u){var i=r.get(e);return i?i[1]:(u=u(),t.unshift([e.concat(),u]),N(t,n)&&(t.length=n),u)};return r.invalidate=function(n){var r=t.findIndex((function(t){var r=t[0];return m(n,r.length)&&n.every((function(n,t){return n===r[t]}))}));-1<r&&t.splice(r,1)},r.get=function(n){return t[t.findIndex((function(t){var r=t[0];return m(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},r}function Jn(){return jn.useX().stateRef}function zn(){return Jn().suiteId()}function Yn(){return Jn().testCallbacks()}function Qn(){return Jn().optionalFields()}function Zn(){return Jn().testObjects()}function $n(){(0,Zn()[1])((function(n){return{prev:n.prev,current:Xn(n.current)}}))}function nt(n){(0,Zn()[1])((function(t){return{prev:t.prev,current:Xn(n(t.current))}}))}function tt(){return Kn(qn(Zn()[0].current,(function(n){return n.isPending()?n:null})))}var rt=Vn();function et(){var n=Zn()[0].current;return rt([n],(function(){return Kn(n)}))}function ut(){return jn.useX().testCursor.getCursor()}function it(){return jn.useX().testCursor.cursorAt()}function ot(){return jn.useX().testCursor.next()}function st(n,t){if(n=void 0===(n=n.type)?Wn.DEFAULT:n,e(t)){var r=ut();return jn.run({isolate:{type:n}},(function(){jn.useX().testCursor.addLevel(),nt((function(n){return Bn(n,r,[])}));var n=t();return jn.useX().testCursor.removeLevel(),ot(),n}))}}function at(n,t){return!!t&&!ct(n,t)}function ct(n,t){return!(!t||n.fieldName!==t)}function ft(n){var t=tt();return!z(t)&&(n?t.some((function(t){return ct(t,n)})):Y(t))}function lt(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function pt(n,t){return function(n,t){return!!n!=!!t}("warnings"===n,t.warns)}function vt(t,r,e){var u;void 0===e&&(e={});var i=(e=e||{}).group,o=e.fieldName;return r.reduce((function(n,r){return function(n,t,r,e){return!!(function(n,t){return!(!t||n.groupName===t)}(n,r)||at(n,e)||pt(t,n))}(r,t,i,o)||!r.hasFailures()||(n[r.fieldName]=(n[r.fieldName]||[]).concat(r.message||[])),n}),n({},o&&((u={})[o]=[],u)))}function dt(n,t){return t?n[t]:n}function ht(n){return mt("errors",n)}function gt(n){return mt("warnings",n)}function mt(n,t){return dt(n=vt(n,et(),{fieldName:t}),t)}function yt(n,t){return dt(n=Et("errors",n,t),t)}function Nt(n,t){return dt(n=Et("warnings",n,t),t)}function Et(n,t,r){return t||yn("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),vt(n,et(),{group:t,fieldName:r})}function bt(n,t,r){return!(!n.hasFailures()||at(n,r)||pt(t,n))}function Ct(n){return Ot("errors",n)}function Tt(n){return Ot("warnings",n)}function Ot(n,t){return et().some((function(r){return bt(r,n,t)}))}function St(n,t){return xt("errors",n,t)}function wt(n,t){return xt("warnings",n,t)}function xt(n,t,r){return et().some((function(e){return t===e.groupName&&bt(e,n,r)}))}function Pt(n,t){return!!function(n){var t=et().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(t)||!n.hasErrors(t)&&(!(z(et())||function(n,t){return!!t&&z(n.tests[t])}(n,t)||function(n){var t=Qn()[0];return Y(tt().filter((function(r){return!at(r,n)&&!0!==t[r.fieldName]})))}(t))&&function(n){var t=et(),r=Qn()[0];return t.every((function(t){return!!at(t,n)||(!0===r[t.fieldName]||t.isTested()||t.isOmitted())}))}(t))}var Ft=Vn(20);function It(){var n=et(),t={stateRef:Jn()};return Ft([n],jn.bind(t,(function(){return r(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return et().forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=lt(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=lt(n.groups[e],t))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(n)}(),{getErrors:jn.bind(t,ht),getErrorsByGroup:jn.bind(t,yt),getWarnings:jn.bind(t,gt),getWarningsByGroup:jn.bind(t,Nt),hasErrors:jn.bind(t,Ct),hasErrorsByGroup:jn.bind(t,St),hasWarnings:jn.bind(t,Tt),hasWarningsByGroup:jn.bind(t,wt),isValid:jn.bind(t,(function(n){return Pt(It(),n)}))})})))}var kt=Vn(20);function At(){var n=et(),t={stateRef:Jn()};return kt([n],jn.bind(t,(function(){return r({},It(),{done:jn.bind(t,Ut)})})))}function Dt(n,t,r){return!(e(n)&&(!t||r.tests[t]&&0!==r.tests[t].testCount))}function Lt(n){return!(ft()&&(!n||ft(n)))}var Wt,Ut=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=At(),Dt(r,n,t))return t;var e=function(){return r(It())};return Lt(n)?(e(),t):(Rt(e,n),t)};function Rt(n,t){var r=jn.bind({},n);(0,Yn()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function _t(n){return n.forEach((function(n){return n()}))}function Xt(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(Wt.TEST_COMPLETED,(function(n){n.isCanceled()||(n.done(),function(n){var t=Yn()[0].fieldCallbacks;n&&!ft(n)&&W(t[n])&&_t(t[n])}(n.fieldName),function(){var n=Yn()[0].doneCallbacks;ft()||_t(n)}())})),n.on(Wt.SUITE_COMPLETED,(function(){!function(){var n=Qn()[0];if(!z(n)){var t={};nt((function(r){return qn(r,(function(r){var u=r.fieldName;if(t.hasOwnProperty(u))t[r.fieldName]&&r.omit();else{var i=n[u];e(i)&&(t[u]=i(),t[r.fieldName]&&r.omit())}return r}))}))}}()})),n.on(Wt.REMOVE_FIELD,(function(n){et().forEach((function(t){ct(t,n)&&(t.cancel(),function(n){nt((function(t){return qn(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n}function Mt(){var n=jn.useX();return n.bus||yn(),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.REMOVE_FIELD="remove_field",n.SUITE_COMPLETED="suite_completed"}(Wt||(Wt={}));function Gt(n){return Bt(0,"tests",n)}function jt(n){return Bt(1,"tests",n)}function qt(n){var t=n.fieldName;n=n.groupName;var r=jn.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){if(function(n){var t=jn.useX().exclusion.groups;if(H(t,n))return!1===t[n];for(var r in t)if(!0===t[r])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!u&&(!!Kt(e)||!1===e[t])}return!u&&Kt(e)}function Bt(n,t,r){var e=jn.useX("hook called outside of a running suite.");r&&Xn(r).forEach((function(r){w(r)&&(e.exclusion[t][r]=0===n)}))}function Kt(n){for(var t in n)if(!0===n[t])return!0;return!1}Gt.group=function(n){return Bt(0,"groups",n)},jt.group=function(n){return Bt(1,"groups",n)};function Ht(n){yn("Wrong arguments passed to group. Group "+n+".")}function Vt(n,t){return T(n)&&w(t)}var Jt=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=Rn(),this.warns=!1,this.status=zt,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){Vt(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==rr||(this.status=n)},n.prototype.setPending=function(){this.setStatus(nr)},n.prototype.fail=function(){this.setStatus(this.warns?Zt:Qt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus($t)},n.prototype.warn=function(){this.warns=!0},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(){this.isPending()||this.setStatus(Yt)},n.prototype.cancel=function(){this.setStatus(tr),$n()},n.prototype.omit=function(){this.setStatus(rr)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===nr},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===rr},n.prototype.isUntested=function(){return this.status===zt},n.prototype.isFailing=function(){return this.status===Qt},n.prototype.isCanceled=function(){return this.status===tr},n.prototype.isSkipped=function(){return this.status===Yt},n.prototype.isPassing=function(){return this.status===$t},n.prototype.isWarning=function(){return this.status===Zt},n}(),zt="UNTESTED",Yt="SKIPPED",Qt="FAILED",Zt="WARNING",$t="PASSING",nr="PENDING",tr="CANCELED",rr="OMITTED";function er(n){return n&&e(n.then)}function ur(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function ir(n){var t=n.asyncTest,r=n.message;if(er(t)){var e=Mt().emit,u=Jn(),i=jn.bind({stateRef:u},(function(){$n(),e(Wt.TEST_COMPLETED,n)}));u=jn.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=w(t)?t:r,n.fail(),i())}));try{t.then(i,u)}catch(n){u()}}}function or(n){var t=Mt(),r=function(n){return jn.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){Vt(n.message,r)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{er(r)?(n.asyncTest=r,n.setPending(),ir(n)):t.emit(Wt.TEST_COMPLETED,n)}catch(t){yn("Your test function "+n.fieldName+' returned a value. Only "false" or Promise returns are supported.')}}function sr(n){var t=Zn(),r=t[1],e=t[0].prev;if(z(e))return ar(n),n;if(function(n,t){return Y(n)&&!ur(n,t)}(t=function(n){var t=ut();return function(n,t){return Hn(n,t)[Mn(t)]}(n,t)}(e),n)){!function(n,t){jn.useX().isolate.type===Wn.EACH||function(n,t){setTimeout((function(){yn(n,t)}),0)}("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+t.fieldName+"\n This happens when you conditionally call your tests using if/else.\n This might lead to incorrect validation results.\n Replacing if/else with skipWhen solves these issues.")}(t,n),t=Hn(e,ut());var u=it();t.splice(u),r((function(n){return{prev:e,current:n.current}})),t=null}return ar(n=o(t,n)),n}function ar(n){var t=ut();nt((function(r){return Bn(r,t,n)}))}function cr(n){var t=sr(n);return qt(n)?(n.skip(),ot(),t):(function(n,t){t!==n&&ur(n,t)&&n.isPending()&&n.cancel()}(t,n),ar(n),ot(),function(n){n.isUntested()?or(n):er(n.asyncTest)&&(n.setPending(),ir(n))}(n),n)}function fr(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=jn.useX();return cr(t=new Jt(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var lr=r(fr,{each:function(n){return function(r){return W(r)||yn("test.each: Expected table to be an array."),function(e){for(var u=[],o=1;o<arguments.length;o++)u[o-1]=arguments[o];var s=(u=u.reverse())[0],a=u[1];return st({type:Wn.EACH},(function(){return r.map((function(r){return r=Xn(r),n(i.apply(void 0,t([e],r)),i.apply(void 0,t([a],r)),(function(){return s.apply(void 0,r)}))}))}))}}}(fr),memo:function(n){var t=Vn(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=zn()[0];var i=it(),o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),b(u=t.get(e))?t(e,(function(){return n(r,s,o)})):u[1].isCanceled()?(t.invalidate(e),t(e,(function(){return n(r,s,o)}))):cr(u[1])}}(fr)});exports.VERSION="4.0.0-dev-31f012",exports.create=function(n){e(n)||yn("vest.create: Expected callback to be a function.");var t=Xt(),u=function(n){function t(n,t,e){return u.references.push(),r(n,i(t,e)),function(){return[u.references[n],function(t){return r(n,i(t,u.references[n]))}]}}function r(t,r){var i=u.references[t];u.references[t]=r,e(t=o[t][1])&&t(r,i),e(n)&&n()}var u={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){var n=u.references;u.references=[],o.forEach((function(r,e){return t(e,r[0],n[e])}))}}}(),o={stateRef:_n(u,{suiteId:Rn()}),bus:t};return r(jn.bind(o,(function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];return u.reset(),st({type:Wn.SUITE},(function(){n.apply(void 0,r)})),t.emit(Wt.SUITE_COMPLETED),At()})),{get:jn.bind(o,It),reset:u.reset,remove:jn.bind(o,(function(n){t.emit(Wt.REMOVE_FIELD,n)}))})},exports.enforce=Un,exports.group=function(n,t){w(n)||Ht("name must be a string"),e(t)||Ht("callback must be a function"),st({type:Wn.GROUP},(function(){jn.run({groupName:n},t)}))},exports.only=Gt,exports.optional=function(n){(0,Qn()[1])((function(t){if(W(n)||w(n))Xn(n).forEach((function(n){t[n]=!0}));else for(var r in n)t[r]=n[r];return t}))},exports.skip=jt,exports.skipWhen=function(n,t){st({type:Wn.SKIP_WHEN},(function(){jn.run({skipped:i(n)},(function(){return t()}))}))},exports.test=lr,exports.warn=function(){var n=jn.useX("warn hook called outside of a running suite.");n.currentTest||yn("warn called outside of a test."),n.currentTest.warn()};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t,r=require("n4s"),e=require("context"),u=Object.assign,i=(n=0,function(){return""+n++});function o(n){return"function"==typeof n}function s(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(n)?n.apply(void 0,t):n}function c(n,t){var r;return null!==(r=s(n))&&void 0!==r?r:t}function a(n,t){throw Error(c(t,n))}function f(n,t){setTimeout((function(){a(n,t)}),0)}function l(n){function t(n,t,u){return e.references.push(),r(n,s(t,u)),function(){return[e.references[n],function(t){return r(n,s(t,e.references[n]))}]}}function r(t,r){var i=e.references[t];e.references[t]=r,o(t=u[t][1])&&t(r,i),o(n)&&n()}var e={references:[]},u=[];return{registerStateKey:function(n,r){var e=u.length;return u.push([n,r]),t(e,n)},reset:function(){var n=e.references;e.references=[],u.forEach((function(r,e){return t(e,r[0],n[e])}))}}}function p(n,t){var r=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(r),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function v(n){return[].concat(n)}function d(n){return(n=v(n))[n.length-1]}function g(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return d(t)},getCursor:function(){return v(t)},next:function(){return t[t.length-1]++,d(t)},removeLevel:function(){t.pop()},reset:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.GROUP=4]="GROUP"}(t||(t={}));var h=e.createContext((function(n,r){return r?null:u({},{exclusion:{tests:{},groups:{}},isolate:{type:t.DEFAULT,keys:{current:{},prev:{}}},testCursor:g()},n)}));function m(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function y(n){return!!Array.isArray(n)}function E(n){return null===n}var b=m(E);function C(n,t){for(var r=[],e=0;e<n.length;e++){var u=n[e];y(u)?r.push(C(u,t)):(u=t(u),b(u)&&r.push(u))}return r}function N(n,t,r){return k(n,t)[d(t)]=r,n}function T(n){return v(n).reduce((function(n,t){return y(t)?n.concat(T(t)):v(n).concat(t)}),[])}function k(n,t){var r=0;for(t=t.slice(0,-1);r<t.length;r++){var e=t[r];n[e]=c(n[e],[]),n=n[e]}return n}function S(n){return void 0===n}function P(n){return E(n)||S(n)}function O(n){return String(n)===n}function w(n,t){return S(n)&&O(t)}function x(n,t){return n.length===Number(t)}function I(n){void 0===n&&(n=1);var t=[],r=function(e,u){var i=r.get(e);return i?i[1]:(u=u(),t.unshift([e.concat(),u]),function(n,t){return n.length>Number(t)}(t,n)&&(t.length=n),u)};return r.invalidate=function(n){var r=t.findIndex((function(t){var r=t[0];return x(n,r.length)&&n.every((function(n,t){return n===r[t]}))}));-1<r&&t.splice(r,1)},r.get=function(n){return t[t.findIndex((function(t){var r=t[0];return x(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},r}function F(){return h.useX().stateRef}function D(){return F().suiteId()[0]}function L(){return F().testCallbacks()}function U(){return F().optionalFields()}function X(){return F().testObjects()}function _(){(0,X()[1])((function(n){return{prev:n.prev,current:v(n.current)}}))}function A(n){(0,X()[1])((function(t){return{prev:t.prev,current:v(n(t.current))}}))}function W(){return T(C(X()[0].current,(function(n){return n.isPending()?n:null})))}var R,G=I();function M(){var n=X()[0].current;return G([n],(function(){return T(n)}))}!function(n){n.Error="error",n.Warning="warning"}(R||(R={}));var j=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message;var u=e.groupName;e=e.key,this.key=null,this.id=i(),this.severity=R.Error,this.status=K,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),r&&(this.message=r),e&&(this.key=e)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){w(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==J||(this.status=n)},n.prototype.warns=function(){return this.severity===R.Warning},n.prototype.setPending=function(){this.setStatus(Y)},n.prototype.fail=function(){this.setStatus(this.warns()?B:V)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(q)},n.prototype.warn=function(){this.severity=R.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(H)},n.prototype.cancel=function(){this.setStatus(z),_()},n.prototype.omit=function(){this.setStatus(J)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===Y},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===J},n.prototype.isUntested=function(){return this.status===K},n.prototype.isFailing=function(){return this.status===V},n.prototype.isCanceled=function(){return this.status===z},n.prototype.isSkipped=function(){return this.status===H},n.prototype.isPassing=function(){return this.status===q},n.prototype.isWarning=function(){return this.status===B},n}(),K="UNTESTED",H="SKIPPED",V="FAILED",B="WARNING",q="PASSING",Y="PENDING",z="CANCELED",J="OMITTED";function Q(){return h.useX().testCursor.getCursor()}function Z(){return h.useX().testCursor.cursorAt()}function $(){return h.useX().testCursor.next()}function nn(n,r){if(n=void 0===(n=n.type)?t.DEFAULT:n,o(r)){var e={current:{},prev:{}},u=Q();return h.run({isolate:{type:n,keys:e}},(function(){h.useX().testCursor.addLevel(),e.prev=v(k(X()[0].prev,Q())).reduce((function(n,t){return t instanceof j&&!P(t.key)?(n[t.key]=t,n):n}),{}),A((function(n){return N(n,u,[])}));var n=r();return h.useX().testCursor.removeLevel(),$(),n}))}}function tn(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function rn(n){if(n){if(function(n){return"number"==typeof n}(n))return 0===n;if(tn(n,"length"))return x(n,0);if("object"==typeof n)return x(Object.keys(n),0)}return!0}var en=m(rn);function un(n,t){return!!t&&!on(n,t)}function on(n,t){return!(!t||n.fieldName!==t)}function sn(n){var t=W();return!rn(t)&&(n?t.some((function(t){return on(t,n)})):en(t))}function cn(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}var an=function(){return(an=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};function fn(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||t)}function ln(n,t){return function(n,t){return!!n!=!!t}("warnings"===n,t.warns())}function pn(n,t,r){var e;void 0===r&&(r={});var u=(r=r||{}).group,i=r.fieldName;return t.reduce((function(t,r){return function(n,t,r,e){return!!(function(n,t){return!(!t||n.groupName===t)}(n,r)||un(n,e)||ln(t,n))}(r,n,u,i)||!r.hasFailures()||(t[r.fieldName]=(t[r.fieldName]||[]).concat(r.message||[])),t}),an({},i&&((e={})[i]=[],e)))}function vn(n,t){return t?n[t]:n}function dn(n){return hn("errors",n)}function gn(n){return hn("warnings",n)}function hn(n,t){return vn(n=pn(n,M(),{fieldName:t}),t)}function mn(n,t){return vn(n=En("errors",n,t),t)}function yn(n,t){return vn(n=En("warnings",n,t),t)}function En(n,t,r){return t||a("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),pn(n,M(),{group:t,fieldName:r})}function bn(n,t,r){return!(!n.hasFailures()||un(n,r)||ln(t,n))}function Cn(n){return Tn("errors",n)}function Nn(n){return Tn("warnings",n)}function Tn(n,t){return M().some((function(r){return bn(r,n,t)}))}function kn(n,t){return Pn("errors",n,t)}function Sn(n,t){return Pn("warnings",n,t)}function Pn(n,t,r){return M().some((function(e){return t===e.groupName&&bn(e,n,r)}))}function On(n,t){return!!function(n){var t=M().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(t)||!n.hasErrors(t)&&(!(rn(M())||function(n,t){return!!t&&rn(n.tests[t])}(n,t)||function(n){var t=U()[0];return en(W().filter((function(r){return!un(r,n)&&!0!==t[r.fieldName]})))}(t))&&function(n){var t=M(),r=U()[0];return t.every((function(t){return!!un(t,n)||(!0===r[t.fieldName]||t.isTested()||t.isOmitted())}))}(t))}var wn=I(20);function xn(){var n=M(),t={stateRef:F()};return wn([n],h.bind(t,(function(){var n=F().suiteName()[0];return u(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return M().forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=cn(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=cn(n.groups[e],t))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(n)}(),{getErrors:h.bind(t,dn),getErrorsByGroup:h.bind(t,mn),getWarnings:h.bind(t,gn),getWarningsByGroup:h.bind(t,yn),hasErrors:h.bind(t,Cn),hasErrorsByGroup:h.bind(t,kn),hasWarnings:h.bind(t,Nn),hasWarningsByGroup:h.bind(t,Sn),isValid:h.bind(t,(function(n){return On(xn(),n)})),suiteName:n})})))}var In=I(20);function Fn(){var n=M(),t={stateRef:F()};return In([n],h.bind(t,(function(){return u({},xn(),{done:h.bind(t,Xn)})})))}function Dn(n,t,r){return!(o(n)&&(!t||r.tests[t]&&!rn(r.tests[t].testCount)))}function Ln(n){return!(sn()&&(!n||sn(n)))}var Un,Xn=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=Fn(),Dn(r,n,t))return t;var e=function(){return r(xn())};return Ln(n)?(e(),t):(_n(e,n),t)};function _n(n,t){var r=h.bind({},n);(0,L()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function An(n){return n.forEach((function(n){return n()}))}function Wn(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(Un.TEST_COMPLETED,(function(n){n.isCanceled()||(n.done(),function(n){var t=L()[0].fieldCallbacks;n&&!sn(n)&&y(t[n])&&An(t[n])}(n.fieldName),function(){var n=L()[0].doneCallbacks;sn()||An(n)}())})),n.on(Un.SUITE_COMPLETED,(function(){!function(){var n=U()[0];if(!rn(n)){var t={};A((function(r){return C(r,(function(r){var e=r.fieldName;if(t.hasOwnProperty(e))t[r.fieldName]&&r.omit();else{var u=n[e];o(u)&&(t[e]=u(),t[r.fieldName]&&r.omit())}return r}))}))}}()})),n.on(Un.REMOVE_FIELD,(function(n){M().forEach((function(t){on(t,n)&&(t.cancel(),function(n){A((function(t){return C(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n}function Rn(){var n=h.useX();return n.bus||a(),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.REMOVE_FIELD="remove_field",n.SUITE_COMPLETED="suite_completed"}(Un||(Un={}));function Gn(n){return Hn(0,"tests",n)}function Mn(n){return Hn(1,"tests",n)}function jn(){return!!h.useX().skipped}function Kn(n){var t=n.fieldName;if(n=n.groupName,jn())return!0;var r=h.useX().exclusion,e=r.tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){if(function(n){var t=h.useX().exclusion.groups;if(tn(t,n))return!1===t[n];for(var r in t)if(!0===t[r])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!u&&(!!Vn(e)||!1===e[t])}return!!function(n){var t=h.useX().exclusion;return!!function(){var n,t=h.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}()&&(!n||(!(n in t.groups)||!t.groups[n]))}(n)||!u&&Vn(e)}function Hn(n,t,r){var e=h.useX("hook called outside of a running suite.");r&&v(r).forEach((function(r){O(r)&&(e.exclusion[t][r]=0===n)}))}function Vn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Bn(n){a("Wrong arguments passed to group. Group "+n+".")}Gn.group=function(n){return Hn(0,"groups",n)},Mn.group=function(n){return Hn(1,"groups",n)};var qn=m(O);function Yn(n){return n&&o(n.then)}function zn(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function Jn(n){var t=n.asyncTest,r=n.message;if(Yn(t)){var e=Rn().emit,u=F(),i=h.bind({stateRef:u},(function(){_(),e(Un.TEST_COMPLETED,n)}));u=h.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=O(t)?t:r,n.fail(),i())}));try{t.then(i,u)}catch(n){u()}}}function Qn(n){var t=Rn(),r=function(n){return h.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){w(n.message,r)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{Yn(r)?(n.asyncTest=r,n.setPending(),Jn(n)):t.emit(Un.TEST_COMPLETED,n)}catch(t){a("Your test function "+n.fieldName+' returned a value. Only "false" or Promise returns are supported.')}}function Zn(n){var r=X()[0].prev;return rn(r)?($n(n),n):(r=function(n){var t=Q();return function(n,t){return k(n,t)[d(t)]}(n,t)}(r),P(n.key)?(function(n,t){return en(n)&&!zn(n,t)}(r,n)&&(function(n,r){h.useX().isolate.type===t.EACH||f("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+r.fieldName+'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')}(r,n),function(){var n=X(),t=n[1],r=n[0].prev;n=k(r,Q());var e=Z();n.splice(e),t((function(n){return{prev:r,current:n.current}}))}(),r=null),$n(n=c(r,n)),n):($n(n=function(n,t){var r=function(n){return h.useX().isolate.keys.prev[n]}(n);return r&&(t=r),function(n,t){var r=h.useX().isolate.keys.current;P(r[n])?r[n]=t:f('Encountered the same test key "'+n+"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")}(n,t),t}(n.key,n)),n))}function $n(n){var t=Q();A((function(r){return N(r,t,n)}))}function nt(n){var t=Zn(n);return Kn(n)?(t.skip(jn()),$(),t):(function(n,t){t!==n&&zn(n,t)&&n.isPending()&&n.cancel()}(t,n),$n(n),$(),function(n){n.isUntested()?Qn(n):Yn(n.asyncTest)&&(n.setPending(),Jn(n))}(n),n)}function tt(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=o(t[1])?t:fn([void 0],t);t=e[0],r=e[1],e=e[2],qn(n)&&et("fieldName","string"),o(r)||et("Test callback","function");var u=h.useX();return nt(t=new j(n,r,{message:t,groupName:u.groupName,key:e}))}var rt=u(tt,{memo:function(n){var t=I(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=Z();var i=(e=e.reverse())[0],o=e[1],s=e[2];return u=[D(),r,u].concat(i),E(e=t.get(u))?t(u,(function(){return n(r,s,o)})):e[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(r,s,o)}))):nt(e[1])}}(tt)});function et(n,t){a("Incompatible params passed to test function. "+n+" must be a "+t)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return r.enforce}}),exports.VERSION="4.0.0-dev-e266d9",exports.create=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var e=(n=n.reverse())[0];n=n[1],o(e)||a("vest.create: Expected callback to be a function.");var s=Wn(),c=l();return n={stateRef:p(c,{suiteId:i(),suiteName:n}),bus:s},u(h.bind(n,(function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return c.reset(),nn({type:t.SUITE},(function(){e.apply(void 0,n)})),s.emit(Un.SUITE_COMPLETED),Fn()})),{get:h.bind(n,xn),reset:c.reset,remove:h.bind(n,(function(n){s.emit(Un.REMOVE_FIELD,n)}))})},exports.each=function(n,r){o(r)||a("callback must be a function"),nn({type:t.EACH},(function(){n.forEach((function(n,t){r(n,t)}))}))},exports.group=function(n,r){O(n)||Bn("name must be a string"),o(r)||Bn("callback must be a function"),nn({type:t.GROUP},(function(){h.run({groupName:n},r)}))},exports.only=Gn,exports.optional=function(n){(0,U()[1])((function(t){if(y(n)||O(n))v(n).forEach((function(n){t[n]=!0}));else for(var r in n)t[r]=n[r];return t}))},exports.skip=Mn,exports.skipWhen=function(n,r){nn({type:t.SKIP_WHEN},(function(){h.run({skipped:s(n,s(xn))},(function(){return r()}))}))},exports.test=rt,exports.warn=function(){var n=h.useX("warn hook called outside of a running suite.");n.currentTest||a("warn called outside of a test."),n.currentTest.warn()};
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { ctx } from 'n4s';
|
|
2
|
+
|
|
3
|
+
function mapFirst(array, callback) {
|
|
4
|
+
var broke = false;
|
|
5
|
+
var breakoutValue = null;
|
|
6
|
+
for (var i = 0; i < array.length; i++) {
|
|
7
|
+
callback(array[i], breakout, i);
|
|
8
|
+
if (broke) {
|
|
9
|
+
return breakoutValue;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function breakout(value) {
|
|
13
|
+
broke = true;
|
|
14
|
+
breakoutValue = value;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function isFunction(value) {
|
|
19
|
+
return typeof value === 'function';
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function optionalFunctionValue(value) {
|
|
23
|
+
var args = [];
|
|
24
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
25
|
+
args[_i - 1] = arguments[_i];
|
|
26
|
+
}
|
|
27
|
+
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function defaultTo(callback, defaultValue) {
|
|
31
|
+
var _a;
|
|
32
|
+
return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Throws a timed out error.
|
|
37
|
+
*/
|
|
38
|
+
function throwError(devMessage, productionMessage) {
|
|
39
|
+
throw new Error(devMessage );
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* A safe hasOwnProperty access
|
|
44
|
+
*/
|
|
45
|
+
function hasOwnProperty(obj, key) {
|
|
46
|
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function isNumber(value) {
|
|
50
|
+
return Boolean(typeof value === 'number');
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function lengthEquals(value, arg1) {
|
|
54
|
+
return value.length === Number(arg1);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function isEmpty(value) {
|
|
58
|
+
if (!value) {
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
else if (isNumber(value)) {
|
|
62
|
+
return value === 0;
|
|
63
|
+
}
|
|
64
|
+
else if (hasOwnProperty(value, 'length')) {
|
|
65
|
+
return lengthEquals(value, 0);
|
|
66
|
+
}
|
|
67
|
+
else if (typeof value === 'object') {
|
|
68
|
+
return lengthEquals(Object.keys(value), 0);
|
|
69
|
+
}
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function ruleReturn(pass, message) {
|
|
74
|
+
var output = { pass: pass };
|
|
75
|
+
if (message) {
|
|
76
|
+
output.message = message;
|
|
77
|
+
}
|
|
78
|
+
return output;
|
|
79
|
+
}
|
|
80
|
+
function failing() {
|
|
81
|
+
return ruleReturn(false);
|
|
82
|
+
}
|
|
83
|
+
function passing() {
|
|
84
|
+
return ruleReturn(true);
|
|
85
|
+
}
|
|
86
|
+
function defaultToPassing(callback) {
|
|
87
|
+
return defaultTo(callback, passing());
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function runLazyRule(lazyRule, currentValue) {
|
|
91
|
+
try {
|
|
92
|
+
return lazyRule.run(currentValue);
|
|
93
|
+
}
|
|
94
|
+
catch (_a) {
|
|
95
|
+
return failing();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* eslint-disable max-lines-per-function */
|
|
100
|
+
function compose() {
|
|
101
|
+
var composites = [];
|
|
102
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
103
|
+
composites[_i] = arguments[_i];
|
|
104
|
+
}
|
|
105
|
+
return Object.assign(function (value) {
|
|
106
|
+
var res = run(value);
|
|
107
|
+
if (!res.pass) {
|
|
108
|
+
if (isEmpty(res.message)) {
|
|
109
|
+
throwError();
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
// Explicitly throw a string so that vest.test can pick it up as the validation error message
|
|
113
|
+
throw res.message;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}, {
|
|
117
|
+
run: run,
|
|
118
|
+
test: function (value) { return run(value).pass; }
|
|
119
|
+
});
|
|
120
|
+
function run(value) {
|
|
121
|
+
return ctx.run({ value: value }, function () {
|
|
122
|
+
return defaultToPassing(mapFirst(composites, function (composite, breakout) {
|
|
123
|
+
/* HACK: Just a small white lie. ~~HELP WANTED~~.
|
|
124
|
+
The ideal is that instead of `TLazyRuleRunners` We would simply use `TLazy` to begin with.
|
|
125
|
+
The problem is that lazy rules can't really be passed to this function due to some generic hell
|
|
126
|
+
so we're limiting it to a small set of functions.
|
|
127
|
+
*/
|
|
128
|
+
var res = runLazyRule(composite, value);
|
|
129
|
+
if (!res.pass) {
|
|
130
|
+
breakout(res);
|
|
131
|
+
}
|
|
132
|
+
}));
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export default compose;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ctx as n}from"n4s";function r(n,r){function t(n){e=!0,u=n}for(var e=!1,u=null,o=0;o<n.length;o++)if(r(n[o],t,o),e)return u}function t(n,r){var t;return null!==(t=function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];return"function"==typeof n?n.apply(void 0,r):n}(n))&&void 0!==t?t:r}function e(n){if(n){if("number"==typeof n)return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return n.length===Number(0);if("object"==typeof n)return Object.keys(n).length===Number(0)}return!0}function u(n,r){return n={pass:n},r&&(n.message=r),n}export default function(){function o(e){return n.run({value:e},(function(){return t(r(f,(function(n,r){try{var t=n.run(e)}catch(n){t=u(!1)}t.pass||r(t)})),u(!0))}))}for(var f=[],i=0;i<arguments.length;i++)f[i]=arguments[i];return Object.assign((function(n){if(!(n=o(n)).pass){if(e(n.message))throw Error(t(void 0,void 0));throw n.message}}),{run:o,test:function(n){return o(n).pass}})}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { enforce } from 'n4s';
|
|
2
|
+
|
|
3
|
+
function mapFirst(array, callback) {
|
|
4
|
+
var broke = false;
|
|
5
|
+
var breakoutValue = null;
|
|
6
|
+
for (var i = 0; i < array.length; i++) {
|
|
7
|
+
callback(array[i], breakout, i);
|
|
8
|
+
if (broke) {
|
|
9
|
+
return breakoutValue;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function breakout(value) {
|
|
13
|
+
broke = true;
|
|
14
|
+
breakoutValue = value;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function isFunction(value) {
|
|
19
|
+
return typeof value === 'function';
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function optionalFunctionValue(value) {
|
|
23
|
+
var args = [];
|
|
24
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
25
|
+
args[_i - 1] = arguments[_i];
|
|
26
|
+
}
|
|
27
|
+
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function defaultTo(callback, defaultValue) {
|
|
31
|
+
var _a;
|
|
32
|
+
return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function ruleReturn(pass, message) {
|
|
36
|
+
var output = { pass: pass };
|
|
37
|
+
if (message) {
|
|
38
|
+
output.message = message;
|
|
39
|
+
}
|
|
40
|
+
return output;
|
|
41
|
+
}
|
|
42
|
+
function failing() {
|
|
43
|
+
return ruleReturn(false);
|
|
44
|
+
}
|
|
45
|
+
function passing() {
|
|
46
|
+
return ruleReturn(true);
|
|
47
|
+
}
|
|
48
|
+
function defaultToFailing(callback) {
|
|
49
|
+
return defaultTo(callback, failing());
|
|
50
|
+
}
|
|
51
|
+
function defaultToPassing(callback) {
|
|
52
|
+
return defaultTo(callback, passing());
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function runLazyRule(lazyRule, currentValue) {
|
|
56
|
+
try {
|
|
57
|
+
return lazyRule.run(currentValue);
|
|
58
|
+
}
|
|
59
|
+
catch (_a) {
|
|
60
|
+
return failing();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function allOf(value) {
|
|
65
|
+
var rules = [];
|
|
66
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
67
|
+
rules[_i - 1] = arguments[_i];
|
|
68
|
+
}
|
|
69
|
+
return defaultToPassing(mapFirst(rules, function (rule, breakout) {
|
|
70
|
+
var res = runLazyRule(rule, value);
|
|
71
|
+
if (!res.pass) {
|
|
72
|
+
breakout(res);
|
|
73
|
+
}
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function anyOf(value) {
|
|
78
|
+
var rules = [];
|
|
79
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
80
|
+
rules[_i - 1] = arguments[_i];
|
|
81
|
+
}
|
|
82
|
+
return defaultToFailing(mapFirst(rules, function (rule, breakout) {
|
|
83
|
+
var res = runLazyRule(rule, value);
|
|
84
|
+
if (res.pass) {
|
|
85
|
+
breakout(res);
|
|
86
|
+
}
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function noneOf(value) {
|
|
91
|
+
var rules = [];
|
|
92
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
93
|
+
rules[_i - 1] = arguments[_i];
|
|
94
|
+
}
|
|
95
|
+
return defaultToPassing(mapFirst(rules, function (rule, breakout) {
|
|
96
|
+
var res = runLazyRule(rule, value);
|
|
97
|
+
if (res.pass) {
|
|
98
|
+
breakout(failing());
|
|
99
|
+
}
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function lengthEquals(value, arg1) {
|
|
104
|
+
return value.length === Number(arg1);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function longerThan(value, arg1) {
|
|
108
|
+
return value.length > Number(arg1);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
var REQUIRED_COUNT = 1;
|
|
112
|
+
function oneOf(value) {
|
|
113
|
+
var rules = [];
|
|
114
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
115
|
+
rules[_i - 1] = arguments[_i];
|
|
116
|
+
}
|
|
117
|
+
var passing = [];
|
|
118
|
+
rules.some(function (rule) {
|
|
119
|
+
if (longerThan(passing, REQUIRED_COUNT)) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
var res = runLazyRule(rule, value);
|
|
123
|
+
if (res.pass) {
|
|
124
|
+
passing.push(res);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
return ruleReturn(lengthEquals(passing, REQUIRED_COUNT));
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
enforce.extend({ allOf: allOf, anyOf: anyOf, noneOf: noneOf, oneOf: oneOf });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{enforce as n}from"n4s";function r(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,f=0;f<n.length;f++)if(r(n[f],t,f),u)return e}function t(n,r){var t;return null!==(t=function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];return"function"==typeof n?n.apply(void 0,r):n}(n))&&void 0!==t?t:r}function u(n,r){return n={pass:n},r&&(n.message=r),n}function e(n,r){try{return n.run(r)}catch(n){return u(!1)}}n.extend({allOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return t(r(f,(function(r,t){(r=e(r,n)).pass||t(r)})),u(!0))},anyOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return t(r(f,(function(r,t){(r=e(r,n)).pass&&t(r)})),u(!1))},noneOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return t(r(f,(function(r,t){e(r,n).pass&&t(u(!1))})),u(!0))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var f=[];return r.some((function(r){if(f.length>Number(1))return!1;(r=e(r,n)).pass&&f.push(r)})),u(f.length===Number(1))}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { ctx, enforce } from 'n4s';
|
|
2
|
+
|
|
3
|
+
function mapFirst(array, callback) {
|
|
4
|
+
var broke = false;
|
|
5
|
+
var breakoutValue = null;
|
|
6
|
+
for (var i = 0; i < array.length; i++) {
|
|
7
|
+
callback(array[i], breakout, i);
|
|
8
|
+
if (broke) {
|
|
9
|
+
return breakoutValue;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function breakout(value) {
|
|
13
|
+
broke = true;
|
|
14
|
+
breakoutValue = value;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function isFunction(value) {
|
|
19
|
+
return typeof value === 'function';
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function optionalFunctionValue(value) {
|
|
23
|
+
var args = [];
|
|
24
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
25
|
+
args[_i - 1] = arguments[_i];
|
|
26
|
+
}
|
|
27
|
+
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function defaultTo(callback, defaultValue) {
|
|
31
|
+
var _a;
|
|
32
|
+
return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function ruleReturn(pass, message) {
|
|
36
|
+
var output = { pass: pass };
|
|
37
|
+
if (message) {
|
|
38
|
+
output.message = message;
|
|
39
|
+
}
|
|
40
|
+
return output;
|
|
41
|
+
}
|
|
42
|
+
function failing() {
|
|
43
|
+
return ruleReturn(false);
|
|
44
|
+
}
|
|
45
|
+
function passing() {
|
|
46
|
+
return ruleReturn(true);
|
|
47
|
+
}
|
|
48
|
+
function defaultToPassing(callback) {
|
|
49
|
+
return defaultTo(callback, passing());
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function runLazyRule(lazyRule, currentValue) {
|
|
53
|
+
try {
|
|
54
|
+
return lazyRule.run(currentValue);
|
|
55
|
+
}
|
|
56
|
+
catch (_a) {
|
|
57
|
+
return failing();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function isArrayOf(inputArray, currentRule) {
|
|
62
|
+
return defaultToPassing(mapFirst(inputArray, function (currentValue, breakout, index) {
|
|
63
|
+
var res = ctx.run({ value: currentValue, set: true, meta: { index: index } }, function () { return runLazyRule(currentRule, currentValue); });
|
|
64
|
+
if (!res.pass) {
|
|
65
|
+
breakout(res);
|
|
66
|
+
}
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function loose(inputObject, shapeObject) {
|
|
71
|
+
var _loop_1 = function (key) {
|
|
72
|
+
var currentValue = inputObject[key];
|
|
73
|
+
var currentRule = shapeObject[key];
|
|
74
|
+
var res = ctx.run({ value: currentValue, set: true, meta: { key: key } }, function () {
|
|
75
|
+
return runLazyRule(currentRule, currentValue);
|
|
76
|
+
});
|
|
77
|
+
if (!res.pass) {
|
|
78
|
+
return { value: res };
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
for (var key in shapeObject) {
|
|
82
|
+
var state_1 = _loop_1(key);
|
|
83
|
+
if (typeof state_1 === "object")
|
|
84
|
+
return state_1.value;
|
|
85
|
+
}
|
|
86
|
+
return passing();
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function isNull(value) {
|
|
90
|
+
return value === null;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function isUndefined(value) {
|
|
94
|
+
return value === undefined;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function isNullish(value) {
|
|
98
|
+
return isNull(value) || isUndefined(value);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function optional(value, ruleChain) {
|
|
102
|
+
if (isNullish(value)) {
|
|
103
|
+
return passing();
|
|
104
|
+
}
|
|
105
|
+
return runLazyRule(ruleChain, value);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* A safe hasOwnProperty access
|
|
110
|
+
*/
|
|
111
|
+
function hasOwnProperty(obj, key) {
|
|
112
|
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function shape(inputObject, shapeObject) {
|
|
116
|
+
var baseRes = loose(inputObject, shapeObject);
|
|
117
|
+
if (!baseRes.pass) {
|
|
118
|
+
return baseRes;
|
|
119
|
+
}
|
|
120
|
+
for (var key in inputObject) {
|
|
121
|
+
if (!hasOwnProperty(shapeObject, key)) {
|
|
122
|
+
return failing();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return passing();
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Help needed improving the typings of this file.
|
|
129
|
+
// Ideally, we'd be able to extend IShapeObject, but that's not possible.
|
|
130
|
+
function partial(shapeObject) {
|
|
131
|
+
var output = {};
|
|
132
|
+
for (var key in shapeObject) {
|
|
133
|
+
output[key] = enforce.optional(shapeObject[key]);
|
|
134
|
+
}
|
|
135
|
+
return output;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
enforce.extend({ isArrayOf: isArrayOf, loose: loose, optional: optional, shape: shape });
|
|
139
|
+
|
|
140
|
+
export { partial };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ctx as n,enforce as r}from"n4s";function t(n,r){return n={pass:n},r&&(n.message=r),n}function u(n,r){try{return n.run(r)}catch(n){return t(!1)}}function e(r,e){function o(t){var o=r[t],i=e[t];if(!(t=n.run({value:o,set:!0,meta:{key:t}},(function(){return u(i,o)}))).pass)return{value:t}}for(var i in e){var a=o(i);if("object"==typeof a)return a.value}return t(!0)}r.extend({isArrayOf:function(r,e){return function(n,r){var t;return null!==(t=function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];return"function"==typeof n?n.apply(void 0,r):n}(n))&&void 0!==t?t:r}(function(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,o=0;o<n.length;o++)if(r(n[o],t,o),u)return e}(r,(function(r,t,o){(o=n.run({value:r,set:!0,meta:{index:o}},(function(){return u(e,r)}))).pass||t(o)})),t(!0))},loose:e,optional:function(n,r){return null==n?t(!0):u(r,n)},shape:function(n,r){var u=e(n,r);if(!u.pass)return u;for(var o in n)if(!Object.prototype.hasOwnProperty.call(r,o))return t(!1);return t(!0)}});export function partial(n){var t,u={};for(t in n)u[t]=r.optional(n[t]);return u}
|