vest 4.0.2-dev-6e9534 → 4.0.2-dev-72921c

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.
@@ -1791,7 +1791,7 @@ function warn() {
1791
1791
  ctx.currentTest.warn();
1792
1792
  }
1793
1793
 
1794
- var VERSION = "4.0.2-dev-6e9534";
1794
+ var VERSION = "4.0.2-dev-72921c";
1795
1795
 
1796
1796
  Object.defineProperty(exports, 'enforce', {
1797
1797
  enumerable: true,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t,e=require("n4s"),r=require("context"),u=Object.assign,i=(n=0,function(){return""+n++});function o(n){return"function"==typeof n}function s(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return o(n)?n.apply(void 0,t):n}function c(n,t){var e;return null!==(e=s(n))&&void 0!==e?e: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 r.references.push(),e(n,s(t,u)),function(){return[r.references[n],function(t){return e(n,s(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,o(t=u[t][1])&&t(e,i),o(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function p(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),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.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(t||(t={}));var h=r.createContext((function(n,e){return e?null:u({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:t.DEFAULT,keys:{current:{},prev:{}}},testCursor:g()},n)}));function m(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function y(n){return!!Array.isArray(n)}function E(n){return null===n}var N=m(E);function b(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];y(u)?e.push(b(u,t)):(u=t(u),N(u)&&e.push(u))}return e}function C(n,t,e){return k(n,t)[d(t)]=e,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 e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=c(n[r],[]),n=n[r]}return n}function S(n){return void 0===n}function O(n){return E(n)||S(n)}function x(n){return String(n)===n}function P(n,t){return S(n)&&x(t)}function I(n,t){return n.length===Number(t)}function w(n){void 0===n&&(n=1);var t=[],e=function(r,u){var i=e.get(r);return i?i[1]:(u=u(),t.unshift([r.concat(),u]),function(n,t){return n.length>Number(t)}(t,n)&&(t.length=n),u)};return e.invalidate=function(n){var e=t.findIndex((function(t){var e=t[0];return I(n,e.length)&&n.every((function(n,t){return n===e[t]}))}));-1<e&&t.splice(e,1)},e.get=function(n){return t[t.findIndex((function(t){var e=t[0];return I(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))]||null},e}function F(){return h.useX().stateRef}function W(){return F().suiteId()[0]}function X(){return F().testCallbacks()}function _(){return F().optionalFields()}function A(){return F().testObjects()}function D(){(0,A()[1])((function(n){return{prev:n.prev,current:v(n.current)}}))}function L(n){(0,A()[1])((function(t){return{prev:t.prev,current:v(n(t.current))}}))}function U(){return T(b(A()[0].current,(function(n){return n.isPending()?n:null})))}var M,R=w();function G(){var n=A()[0].current;return R([n],(function(){return T(n)}))}!function(n){n.Error="error",n.Warning="warning"}(M||(M={}));var j=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=i(),this.severity=M.Error,this.status=H,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){P(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===M.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=M.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(K)},n.prototype.cancel=function(){this.setStatus(z),D()},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.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},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===H},n.prototype.isFailing=function(){return this.status===V},n.prototype.isCanceled=function(){return this.status===z},n.prototype.isSkipped=function(){return this.status===K},n.prototype.isPassing=function(){return this.status===q},n.prototype.isWarning=function(){return this.status===B},n}(),H="UNTESTED",K="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,e){if(n=void 0===(n=n.type)?t.DEFAULT:n,o(e)){var r={current:{},prev:{}},u=Q();return h.run({isolate:{type:n,keys:r}},(function(){h.useX().testCursor.addLevel(),r.prev=v(k(A()[0].prev,Q())).reduce((function(n,t){return t instanceof j&&!O(t.key)?(n[t.key]=t,n):n}),{}),L((function(n){return C(n,u,[])}));var n=e();return h.useX().testCursor.removeLevel(),$(),n}))}}function tn(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function en(n){if(n){if(function(n){return"number"==typeof n}(n))return 0===n;if(tn(n,"length"))return I(n,0);if("object"==typeof n)return I(Object.keys(n),0)}return!0}var rn=m(en);function un(n,t){return!!t&&!on(n,t)}function on(n,t){return!(!t||n.fieldName!==t)}function sn(n){var t=U();return!en(t)&&(n?t.some((function(t){return on(t,n)})):rn(t))}function cn(n,t){function e(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e("errorCount","errors"):t.isWarning()&&e("warnCount","warnings")),i}var an=function(){return(an=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};function fn(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function ln(n,t){return function(n,t){return!!n!=!!t}("warnings"===n,t.warns())}function pn(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){return function(n,t,e,r){return!!(function(n,t){return!(!t||n.groupName===t)}(n,e)||un(n,r)||ln(t,n))}(e,n,u,i)||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),an({},i&&((r={})[i]=[],r)))}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,G(),{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,e){return t||a("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),pn(n,G(),{group:t,fieldName:e})}function Nn(n,t,e){return!(!n.hasFailures()||un(n,e)||ln(t,n))}function bn(n){return Tn("errors",n)}function Cn(n){return Tn("warnings",n)}function Tn(n,t){return G().some((function(e){return Nn(e,n,t)}))}function kn(n,t){return On("errors",n,t)}function Sn(n,t){return On("warnings",n,t)}function On(n,t,e){return G().some((function(r){return t===r.groupName&&Nn(r,n,e)}))}function xn(n,t){return!!function(n){var t=G().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(t)||!n.hasErrors(t)&&(!(en(G())||function(n,t){return!!t&&en(n.tests[t])}(n,t)||function(n){var t=_()[0];return rn(U().filter((function(e){return!un(e,n)&&!0!==t[e.fieldName]})))}(t))&&function(n){var t=G(),e=_()[0];return t.every((function(t){return!!un(t,n)||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(t))}var Pn=w(20);function In(){var n=G(),t={stateRef:F()};return Pn([n],h.bind(t,(function(){var n=F().suiteName()[0];return u(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return G().forEach((function(t){var e=t.fieldName,r=t.groupName;n.tests[e]=cn(n.tests,t),r&&(n.groups[r]=n.groups[r]||{},n.groups[r][e]=cn(n.groups[r],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,bn),hasErrorsByGroup:h.bind(t,kn),hasWarnings:h.bind(t,Cn),hasWarningsByGroup:h.bind(t,Sn),isValid:h.bind(t,(function(n){return xn(In(),n)})),suiteName:n})})))}var wn=w(20);function Fn(){var n=G(),t={stateRef:F()};return wn([n],h.bind(t,(function(){return u({},In(),{done:h.bind(t,An)})})))}function Wn(n,t,e){return!(o(n)&&(!t||e.tests[t]&&!en(e.tests[t].testCount)))}function Xn(n){return!(sn()&&(!n||sn(n)))}var _n,An=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=Fn(),Wn(e,n,t))return t;var r=function(){return e(In())};return Xn(n)?(r(),t):(Dn(r,n),t)};function Dn(n,t){var e=h.bind({},n);(0,X()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function Ln(n){return n.forEach((function(n){return n()}))}function Un(){var n=function(){var n={};return{emit:function(t,e){n[t]&&n[t].forEach((function(n){n(e)}))},on:function(t,e){return n[t]||(n[t]=[]),n[t].push(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(_n.TEST_COMPLETED,(function(n){n.isCanceled()||(n.done(),function(n){var t=X()[0].fieldCallbacks;n&&!sn(n)&&y(t[n])&&Ln(t[n])}(n.fieldName),function(){var n=X()[0].doneCallbacks;sn()||Ln(n)}())})),n.on(_n.SUITE_COMPLETED,(function(){!function(){var n=_()[0];if(!en(n)){var t={};L((function(e){return b(e,(function(e){var r=e.fieldName;if(t.hasOwnProperty(r))t[e.fieldName]&&e.omit();else{var u=n[r];o(u)&&(t[r]=u(),t[e.fieldName]&&e.omit())}return e}))}))}}()})),n.on(_n.REMOVE_FIELD,(function(n){G().forEach((function(t){on(t,n)&&(t.cancel(),function(n){L((function(t){return b(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n}function Mn(){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"}(_n||(_n={}));function Rn(n){return Kn(0,"tests",n)}function Gn(n){return Kn(1,"tests",n)}function jn(){return!!h.useX().skipped}function Hn(n){var t=n.fieldName;if(n=n.groupName,jn())return!0;var e=h.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=h.useX().exclusion.groups;if(tn(t,n))return!1===t[n];for(var e in t)if(!0===t[e])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!i&&(!!Vn(u)||!1===u[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)||!i&&(!!Vn(u)&&!s(e[t]))}function Kn(n,t,e){var r=h.useX("hook called outside of a running suite.");e&&v(e).forEach((function(e){x(e)&&(r.exclusion[t][e]=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+".")}Rn.group=function(n){return Kn(0,"groups",n)},Gn.group=function(n){return Kn(1,"groups",n)};var qn=m(x);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,e=n.message;if(Yn(t)){var r=Mn().emit,u=F(),i=h.bind({stateRef:u},(function(){D(),r(_n.TEST_COMPLETED,n)}));u=h.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=x(t)?t:e,n.fail(),i())}));try{t.then(i,u)}catch(n){u()}}}function Qn(n){var t=Mn(),e=function(n){return h.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){P(n.message,e)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{Yn(e)?(n.asyncTest=e,n.setPending(),Jn(n)):t.emit(_n.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 e=A()[0].prev;return en(e)?($n(n),n):(e=function(n){var t=Q();return function(n,t){return k(n,t)[d(t)]}(n,t)}(e),O(n.key)?(function(n,t){return rn(n)&&!zn(n,t)}(e,n)&&(function(n,e){h.useX().isolate.type===t.EACH||f("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+e.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.')}(e,n),function(){var n=A(),t=n[1],e=n[0].prev;n=k(e,Q());var r=Z();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),e=null),$n(n=c(e,n)),n):($n(n=function(n,t){var e=function(n){return h.useX().isolate.keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=h.useX().isolate.keys.current;O(e[n])?e[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();L((function(e){return C(e,t,n)}))}function nt(n){var t=Zn(n);return h.useX().omitted?(t.omit(),$(),t):Hn(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=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=o(t[1])?t:fn([void 0],t);t=r[0],e=r[1],r=r[2],qn(n)&&rt("fieldName","string"),o(e)||rt("Test callback","function");var u=h.useX();return nt(t=new j(n,e,{message:t,groupName:u.groupName,key:r}))}var et=u(tt,{memo:function(n){var t=w(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=Z();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[W(),e,u].concat(i),E(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):nt(r[1])}}(tt)});function rt(n,t){a("Incompatible params passed to test function. "+n+" must be a "+t)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return e.enforce}}),exports.VERSION="4.0.2-dev-6e9534",exports.context=h,exports.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],o(r)||a("vest.create: Expected callback to be a function.");var s=Un(),c=l();return n={stateRef:p(c,{suiteId:i(),suiteName:n}),bus:s},u(h.bind(n,(function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return c.reset(),nn({type:t.SUITE},(function(){r.apply(void 0,n)})),s.emit(_n.SUITE_COMPLETED),Fn()})),{get:h.bind(n,In),reset:c.reset,remove:h.bind(n,(function(n){s.emit(_n.REMOVE_FIELD,n)}))})},exports.each=function(n,e){o(e)||a("callback must be a function"),nn({type:t.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},exports.group=function(n,e){x(n)||Bn("name must be a string"),o(e)||Bn("callback must be a function"),nn({type:t.GROUP},(function(){h.run({groupName:n},e)}))},exports.include=function(n){function t(t){var e=h.useX(),r=e.exclusion;e.inclusion[n]=function(){return tn(r.tests,n)?c(r.tests[n],!0):x(t)?!!r.tests[t]:s(t,s(In))}}var e=h.useX();return n?(e.inclusion[n]=c(e.exclusion.tests[n],!0),{when:t}):{when:t}},exports.omitWhen=function(n,e){nn({type:t.OMIT_WHEN},(function(){h.run({omitted:s(n,s(In))},(function(){return e()}))}))},exports.only=Rn,exports.optional=function(n){(0,_()[1])((function(t){if(y(n)||x(n))v(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},exports.skip=Gn,exports.skipWhen=function(n,e){nn({type:t.SKIP_WHEN},(function(){h.run({skipped:s(n,s(In))},(function(){return e()}))}))},exports.test=et,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()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t,e=require("n4s"),r=require("context"),u=Object.assign,i=(n=0,function(){return""+n++});function o(n){return"function"==typeof n}function s(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return o(n)?n.apply(void 0,t):n}function c(n,t){var e;return null!==(e=s(n))&&void 0!==e?e: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 r.references.push(),e(n,s(t,u)),function(){return[r.references[n],function(t){return e(n,s(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,o(t=u[t][1])&&t(e,i),o(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function p(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),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.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(t||(t={}));var h=r.createContext((function(n,e){return e?null:u({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:t.DEFAULT,keys:{current:{},prev:{}}},testCursor:g()},n)}));function m(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function y(n){return!!Array.isArray(n)}function E(n){return null===n}var N=m(E);function b(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];y(u)?e.push(b(u,t)):(u=t(u),N(u)&&e.push(u))}return e}function C(n,t,e){return k(n,t)[d(t)]=e,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 e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=c(n[r],[]),n=n[r]}return n}function S(n){return void 0===n}function O(n){return E(n)||S(n)}function x(n){return String(n)===n}function P(n,t){return S(n)&&x(t)}function I(n,t){return n.length===Number(t)}function w(n){void 0===n&&(n=1);var t=[],e=function(r,u){var i=e.get(r);return i?i[1]:(u=u(),t.unshift([r.concat(),u]),function(n,t){return n.length>Number(t)}(t,n)&&(t.length=n),u)};return e.invalidate=function(n){var e=t.findIndex((function(t){var e=t[0];return I(n,e.length)&&n.every((function(n,t){return n===e[t]}))}));-1<e&&t.splice(e,1)},e.get=function(n){return t[t.findIndex((function(t){var e=t[0];return I(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))]||null},e}function F(){return h.useX().stateRef}function W(){return F().suiteId()[0]}function X(){return F().testCallbacks()}function _(){return F().optionalFields()}function A(){return F().testObjects()}function D(){(0,A()[1])((function(n){return{prev:n.prev,current:v(n.current)}}))}function L(n){(0,A()[1])((function(t){return{prev:t.prev,current:v(n(t.current))}}))}function U(){return T(b(A()[0].current,(function(n){return n.isPending()?n:null})))}var M,R=w();function G(){var n=A()[0].current;return R([n],(function(){return T(n)}))}!function(n){n.Error="error",n.Warning="warning"}(M||(M={}));var j=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=i(),this.severity=M.Error,this.status=H,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){P(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===M.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=M.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(K)},n.prototype.cancel=function(){this.setStatus(z),D()},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.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},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===H},n.prototype.isFailing=function(){return this.status===V},n.prototype.isCanceled=function(){return this.status===z},n.prototype.isSkipped=function(){return this.status===K},n.prototype.isPassing=function(){return this.status===q},n.prototype.isWarning=function(){return this.status===B},n}(),H="UNTESTED",K="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,e){if(n=void 0===(n=n.type)?t.DEFAULT:n,o(e)){var r={current:{},prev:{}},u=Q();return h.run({isolate:{type:n,keys:r}},(function(){h.useX().testCursor.addLevel(),r.prev=v(k(A()[0].prev,Q())).reduce((function(n,t){return t instanceof j&&!O(t.key)?(n[t.key]=t,n):n}),{}),L((function(n){return C(n,u,[])}));var n=e();return h.useX().testCursor.removeLevel(),$(),n}))}}function tn(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function en(n){if(n){if(function(n){return"number"==typeof n}(n))return 0===n;if(tn(n,"length"))return I(n,0);if("object"==typeof n)return I(Object.keys(n),0)}return!0}var rn=m(en);function un(n,t){return!!t&&!on(n,t)}function on(n,t){return!(!t||n.fieldName!==t)}function sn(n){var t=U();return!en(t)&&(n?t.some((function(t){return on(t,n)})):rn(t))}function cn(n,t){function e(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e("errorCount","errors"):t.isWarning()&&e("warnCount","warnings")),i}var an=function(){return(an=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};function fn(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function ln(n,t){return function(n,t){return!!n!=!!t}("warnings"===n,t.warns())}function pn(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){return function(n,t,e,r){return!!(function(n,t){return!(!t||n.groupName===t)}(n,e)||un(n,r)||ln(t,n))}(e,n,u,i)||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),an({},i&&((r={})[i]=[],r)))}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,G(),{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,e){return t||a("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),pn(n,G(),{group:t,fieldName:e})}function Nn(n,t,e){return!(!n.hasFailures()||un(n,e)||ln(t,n))}function bn(n){return Tn("errors",n)}function Cn(n){return Tn("warnings",n)}function Tn(n,t){return G().some((function(e){return Nn(e,n,t)}))}function kn(n,t){return On("errors",n,t)}function Sn(n,t){return On("warnings",n,t)}function On(n,t,e){return G().some((function(r){return t===r.groupName&&Nn(r,n,e)}))}function xn(n,t){return!!function(n){var t=G().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(t)||!n.hasErrors(t)&&(!(en(G())||function(n,t){return!!t&&en(n.tests[t])}(n,t)||function(n){var t=_()[0];return rn(U().filter((function(e){return!un(e,n)&&!0!==t[e.fieldName]})))}(t))&&function(n){var t=G(),e=_()[0];return t.every((function(t){return!!un(t,n)||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(t))}var Pn=w(20);function In(){var n=G(),t={stateRef:F()};return Pn([n],h.bind(t,(function(){var n=F().suiteName()[0];return u(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return G().forEach((function(t){var e=t.fieldName,r=t.groupName;n.tests[e]=cn(n.tests,t),r&&(n.groups[r]=n.groups[r]||{},n.groups[r][e]=cn(n.groups[r],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,bn),hasErrorsByGroup:h.bind(t,kn),hasWarnings:h.bind(t,Cn),hasWarningsByGroup:h.bind(t,Sn),isValid:h.bind(t,(function(n){return xn(In(),n)})),suiteName:n})})))}var wn=w(20);function Fn(){var n=G(),t={stateRef:F()};return wn([n],h.bind(t,(function(){return u({},In(),{done:h.bind(t,An)})})))}function Wn(n,t,e){return!(o(n)&&(!t||e.tests[t]&&!en(e.tests[t].testCount)))}function Xn(n){return!(sn()&&(!n||sn(n)))}var _n,An=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=Fn(),Wn(e,n,t))return t;var r=function(){return e(In())};return Xn(n)?(r(),t):(Dn(r,n),t)};function Dn(n,t){var e=h.bind({},n);(0,X()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function Ln(n){return n.forEach((function(n){return n()}))}function Un(){var n=function(){var n={};return{emit:function(t,e){n[t]&&n[t].forEach((function(n){n(e)}))},on:function(t,e){return n[t]||(n[t]=[]),n[t].push(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(_n.TEST_COMPLETED,(function(n){n.isCanceled()||(n.done(),function(n){var t=X()[0].fieldCallbacks;n&&!sn(n)&&y(t[n])&&Ln(t[n])}(n.fieldName),function(){var n=X()[0].doneCallbacks;sn()||Ln(n)}())})),n.on(_n.SUITE_COMPLETED,(function(){!function(){var n=_()[0];if(!en(n)){var t={};L((function(e){return b(e,(function(e){var r=e.fieldName;if(t.hasOwnProperty(r))t[e.fieldName]&&e.omit();else{var u=n[r];o(u)&&(t[r]=u(),t[e.fieldName]&&e.omit())}return e}))}))}}()})),n.on(_n.REMOVE_FIELD,(function(n){G().forEach((function(t){on(t,n)&&(t.cancel(),function(n){L((function(t){return b(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n}function Mn(){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"}(_n||(_n={}));function Rn(n){return Kn(0,"tests",n)}function Gn(n){return Kn(1,"tests",n)}function jn(){return!!h.useX().skipped}function Hn(n){var t=n.fieldName;if(n=n.groupName,jn())return!0;var e=h.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=h.useX().exclusion.groups;if(tn(t,n))return!1===t[n];for(var e in t)if(!0===t[e])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!i&&(!!Vn(u)||!1===u[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)||!i&&(!!Vn(u)&&!s(e[t]))}function Kn(n,t,e){var r=h.useX("hook called outside of a running suite.");e&&v(e).forEach((function(e){x(e)&&(r.exclusion[t][e]=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+".")}Rn.group=function(n){return Kn(0,"groups",n)},Gn.group=function(n){return Kn(1,"groups",n)};var qn=m(x);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,e=n.message;if(Yn(t)){var r=Mn().emit,u=F(),i=h.bind({stateRef:u},(function(){D(),r(_n.TEST_COMPLETED,n)}));u=h.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=x(t)?t:e,n.fail(),i())}));try{t.then(i,u)}catch(n){u()}}}function Qn(n){var t=Mn(),e=function(n){return h.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){P(n.message,e)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{Yn(e)?(n.asyncTest=e,n.setPending(),Jn(n)):t.emit(_n.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 e=A()[0].prev;return en(e)?($n(n),n):(e=function(n){var t=Q();return function(n,t){return k(n,t)[d(t)]}(n,t)}(e),O(n.key)?(function(n,t){return rn(n)&&!zn(n,t)}(e,n)&&(function(n,e){h.useX().isolate.type===t.EACH||f("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+e.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.')}(e,n),function(){var n=A(),t=n[1],e=n[0].prev;n=k(e,Q());var r=Z();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),e=null),$n(n=c(e,n)),n):($n(n=function(n,t){var e=function(n){return h.useX().isolate.keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=h.useX().isolate.keys.current;O(e[n])?e[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();L((function(e){return C(e,t,n)}))}function nt(n){var t=Zn(n);return h.useX().omitted?(t.omit(),$(),t):Hn(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=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=o(t[1])?t:fn([void 0],t);t=r[0],e=r[1],r=r[2],qn(n)&&rt("fieldName","string"),o(e)||rt("Test callback","function");var u=h.useX();return nt(t=new j(n,e,{message:t,groupName:u.groupName,key:r}))}var et=u(tt,{memo:function(n){var t=w(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=Z();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[W(),e,u].concat(i),E(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):nt(r[1])}}(tt)});function rt(n,t){a("Incompatible params passed to test function. "+n+" must be a "+t)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return e.enforce}}),exports.VERSION="4.0.2-dev-72921c",exports.context=h,exports.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],o(r)||a("vest.create: Expected callback to be a function.");var s=Un(),c=l();return n={stateRef:p(c,{suiteId:i(),suiteName:n}),bus:s},u(h.bind(n,(function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return c.reset(),nn({type:t.SUITE},(function(){r.apply(void 0,n)})),s.emit(_n.SUITE_COMPLETED),Fn()})),{get:h.bind(n,In),reset:c.reset,remove:h.bind(n,(function(n){s.emit(_n.REMOVE_FIELD,n)}))})},exports.each=function(n,e){o(e)||a("callback must be a function"),nn({type:t.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},exports.group=function(n,e){x(n)||Bn("name must be a string"),o(e)||Bn("callback must be a function"),nn({type:t.GROUP},(function(){h.run({groupName:n},e)}))},exports.include=function(n){function t(t){var e=h.useX(),r=e.exclusion;e.inclusion[n]=function(){return tn(r.tests,n)?c(r.tests[n],!0):x(t)?!!r.tests[t]:s(t,s(In))}}var e=h.useX();return n?(e.inclusion[n]=c(e.exclusion.tests[n],!0),{when:t}):{when:t}},exports.omitWhen=function(n,e){nn({type:t.OMIT_WHEN},(function(){h.run({omitted:s(n,s(In))},(function(){return e()}))}))},exports.only=Rn,exports.optional=function(n){(0,_()[1])((function(t){if(y(n)||x(n))v(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},exports.skip=Gn,exports.skipWhen=function(n,e){nn({type:t.SKIP_WHEN},(function(){h.run({skipped:s(n,s(In))},(function(){return e()}))}))},exports.test=et,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()};
@@ -1787,6 +1787,6 @@ function warn() {
1787
1787
  ctx.currentTest.warn();
1788
1788
  }
1789
1789
 
1790
- var VERSION = "4.0.2-dev-6e9534";
1790
+ var VERSION = "4.0.2-dev-72921c";
1791
1791
 
1792
1792
  export { VERSION, context, create, each, group, include, omitWhen, only, optional, skip, skipWhen, test, warn };
@@ -1 +1 @@
1
- import{createContext as t}from"context";export{enforce}from"n4s";var n,e=Object.assign,r=(n=0,function(){return""+n++});function u(t){return"function"==typeof t}function i(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return u(t)?t.apply(void 0,n):t}function o(t,n){var e;return null!==(e=i(t))&&void 0!==e?e:n}function s(t,n){throw Error(o(n,t))}function a(t,n){setTimeout((function(){s(t,n)}),0)}function c(t){function n(t,n,u){return r.references.push(),e(t,i(n,u)),function(){return[r.references[t],function(n){return e(t,i(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,u(n=o[n][1])&&n(e,i),u(t)&&t()}var r={references:[]},o=[];return{registerStateKey:function(t,e){var r=o.length;return o.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],o.forEach((function(e,r){return n(r,e[0],t[r])}))}}}var f,l=f||(f={});function p(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function v(t){return(t=[].concat(t))[t.length-1]}function d(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return v(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,v(n)},removeLevel:function(){n.pop()},reset:t}}l[l.DEFAULT=0]="DEFAULT",l[l.SUITE=1]="SUITE",l[l.EACH=2]="EACH",l[l.SKIP_WHEN=3]="SKIP_WHEN",l[l.OMIT_WHEN=4]="OMIT_WHEN",l[l.GROUP=5]="GROUP";var g=t((function(t,n){return n?null:e({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:f.DEFAULT,keys:{current:{},prev:{}}},testCursor:d()},t)}));function h(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}var m=h((function(t){return null===t}));function y(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(y(u,n)):(u=n(u),m(u)&&e.push(u))}return e}function E(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(E(n)):[].concat(t).concat(n)}),[])}function N(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=o(t[r],[]),t=t[r]}return t}function b(t){return null==t}function C(t){return String(t)===t}function T(t){function n(r,u){var i=n.get(r);return i?i[1]:(u=u(),e.unshift([r.concat(),u]),e.length>Number(t)&&(e.length=t),u)}void 0===t&&(t=1);var e=[];return n.invalidate=function(t){var n=e.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}));-1<n&&e.splice(n,1)},n.get=function(t){return e[e.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}))]||null},n}function k(){return g.useX().stateRef}function O(){return k().testObjects()}function S(){(0,O()[1])((function(t){return{prev:t.prev,current:[].concat(t.current)}}))}function P(t){(0,O()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function w(){return E(y(O()[0].current,(function(t){return t.isPending()?t:null})))}var I=T();function F(){var t=O()[0].current;return I([t],(function(){return E(t)}))}var A,X=A||(A={});X.Error="error",X.Warning="warning";var D=function(){function t(t,n,e){var u=void 0===e?{}:e;e=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=r(),this.severity=A.Error,this.status=L,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&C(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==G||(this.status=t)},t.prototype.warns=function(){return this.severity===A.Warning},t.prototype.setPending=function(){this.setStatus(M)},t.prototype.fail=function(){this.setStatus(this.warns()?_:W)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(U)},t.prototype.warn=function(){this.severity=A.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(x)},t.prototype.cancel=function(){this.setStatus(R),S()},t.prototype.omit=function(){this.setStatus(G)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.status===M},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.status===G},t.prototype.isUntested=function(){return this.status===L},t.prototype.isFailing=function(){return this.status===W},t.prototype.isCanceled=function(){return this.status===R},t.prototype.isSkipped=function(){return this.status===x},t.prototype.isPassing=function(){return this.status===U},t.prototype.isWarning=function(){return this.status===_},t}(),L="UNTESTED",x="SKIPPED",W="FAILED",_="WARNING",U="PASSING",M="PENDING",R="CANCELED",G="OMITTED";function j(){return g.useX().testCursor.getCursor()}function H(){return g.useX().testCursor.next()}function K(t,n){if(t=void 0===(t=t.type)?f.DEFAULT:t,u(n)){var e={current:{},prev:{}},r=j();return g.run({isolate:{type:t,keys:e}},(function(){g.useX().testCursor.addLevel(),e.prev=function(){var t=O()[0].prev;return[].concat(N(t,j())).reduce((function(t,n){return n instanceof D&&!b(n.key)?(t[n.key]=n,t):t}),{})}(),P((function(t){return N(t,r)[v(r)]=[],t}));var t=n();return g.useX().testCursor.removeLevel(),H(),t}))}}function V(t){if(t){if("number"==typeof t)return 0===t;if(Object.prototype.hasOwnProperty.call(t,"length"))return t.length===Number(0);if("object"==typeof t)return Object.keys(t).length===Number(0)}return!0}var B=h(V);function Y(t,n){return!(!n||t.fieldName!==n)}function q(t){var n=w();return!V(n)&&(t?n.some((function(n){return Y(n,t)})):B(n))}function z(t,n){function e(t,n){i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||{errorCount:0,warnCount:0,testCount:0};var i=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e("errorCount","errors"):n.isWarning()&&e("warnCount","warnings")),i}function J(){return(J=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var u in n=arguments[e])Object.prototype.hasOwnProperty.call(n,u)&&(t[u]=n[u]);return t}).apply(this,arguments)}function Q(t,n,e){if(e||2===arguments.length)for(var r,u=0,i=n.length;u<i;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return t.concat(r||Array.prototype.slice.call(n))}function Z(t,n,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return n.reduce((function(n,e){if(u&&e.groupName!==u)var r=!0;else i&&!Y(e,i)?r=!0:(r=e.warns(),r="warnings"===t!=!!r);return r||!e.hasFailures()||(n[e.fieldName]=(n[e.fieldName]||[]).concat(e.message||[])),n}),J({},i&&((r={})[i]=[],r)))}function $(t){return nt("errors",t)}function tt(t){return nt("warnings",t)}function nt(t,n){return t=Z(t,F(),{fieldName:n}),n?t[n]:t}function et(t,n){return t=ut("errors",t,n),n?t[n]:t}function rt(t,n){return t=ut("warnings",t,n),n?t[n]:t}function ut(t,n,e){return n||s("get"+t[0].toUpperCase()+t.slice(1)+"ByGroup requires a group name. Received `"+n+"` instead."),Z(t,F(),{group:n,fieldName:e})}function it(t,n,e){return(e=!t.hasFailures()||e&&!Y(t,e))||(e="warnings"===n!=!!(t=t.warns())),!e}function ot(t){return at("errors",t)}function st(t){return at("warnings",t)}function at(t,n){return F().some((function(e){return it(e,t,n)}))}function ct(t,n){return lt("errors",t,n)}function ft(t,n){return lt("warnings",t,n)}function lt(t,n,e){return F().some((function(r){return n===r.groupName&&it(r,t,e)}))}var pt=T(20);function vt(){var t=F(),n={stateRef:k()};return pt([t],g.bind(n,(function(){var t=k().suiteName()[0];return e(function(){var t={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return F().forEach((function(n){var e=n.fieldName,r=n.groupName;t.tests[e]=z(t.tests,n),r&&(t.groups[r]=t.groups[r]||{},t.groups[r][e]=z(t.groups[r],n))})),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(t)}(),{getErrors:g.bind(n,$),getErrorsByGroup:g.bind(n,et),getWarnings:g.bind(n,tt),getWarningsByGroup:g.bind(n,rt),hasErrors:g.bind(n,ot),hasErrorsByGroup:g.bind(n,ct),hasWarnings:g.bind(n,st),hasWarningsByGroup:g.bind(n,ft),isValid:g.bind(n,(function(t){var n=vt(),e=F().reduce((function(t,n){return t[n.fieldName]||n.isOmitted()&&(t[n.fieldName]=!0),t}),{});return(e=!!t&&!!e[t])?t=!0:n.hasErrors(t)?t=!1:t=!(V(e=F())||t&&V(n.tests[t])||function(t){var n=k().optionalFields()[0];return B(w().filter((function(e){return!(t&&!Y(e,t))&&!0!==n[e.fieldName]})))}(t))&&function(t){var n=F(),e=k().optionalFields()[0];return n.every((function(n){return!(!t||Y(n,t))||!0===e[n.fieldName]||n.isTested()||n.isOmitted()}))}(t),t})),suiteName:t})})))}var dt=T(20);function gt(){var t=F(),n={stateRef:k()};return dt([t],g.bind(n,(function(){return e({},vt(),{done:g.bind(n,yt)})})))}function ht(t,n,e){return!(u(t)&&(!n||e.tests[n]&&!V(e.tests[n].testCount)))}function mt(t){return!(q()&&(!t||q(t)))}function yt(){function t(){return r(vt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=gt(),ht(r,n,e)?e:mt(n)?(t(),e):(Et(t,n),e)}function Et(t,n){var e=g.bind({},t);(0,k().testCallbacks()[1])((function(t){return n?t.fieldCallbacks[n]=(t.fieldCallbacks[n]||[]).concat(e):t.doneCallbacks.push(e),t}))}function Nt(t){return t.forEach((function(t){return t()}))}function bt(){var t=function(){var t={};return{emit:function(n,e){t[n]&&t[n].forEach((function(t){t(e)}))},on:function(n,e){return t[n]||(t[n]=[]),t[n].push(e),{off:function(){t[n]=t[n].filter((function(t){return t!==e}))}}}}}();return t.on(Tt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var n=k().testCallbacks()[0].fieldCallbacks;t&&!q(t)&&Array.isArray(n[t])&&Nt(n[t]),t=k().testCallbacks()[0].doneCallbacks,q()||Nt(t)}})),t.on(Tt.SUITE_COMPLETED,(function(){!function(){var t=k().optionalFields()[0];if(!V(t)){var n={};P((function(e){return y(e,(function(e){var r=e.fieldName;if(n.hasOwnProperty(r))n[e.fieldName]&&e.omit();else{var i=t[r];u(i)&&(n[r]=i(),n[e.fieldName]&&e.omit())}return e}))}))}}()})),t.on(Tt.REMOVE_FIELD,(function(t){F().forEach((function(n){Y(n,t)&&(n.cancel(),function(t){P((function(n){return y(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t}function Ct(){var t=g.useX();return t.bus||s(),t.bus}var Tt,kt=Tt||(Tt={});function Ot(t){return Pt(0,"tests",t)}function St(t){return Pt(1,"tests",t)}function Pt(t,n,e){var r=g.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){C(e)&&(r.exclusion[n][e]=0===t)}))}function wt(t){for(var n in t)if(!0===t[n])return!0;return!1}function It(t){s("Wrong arguments passed to group. Group "+t+".")}kt.TEST_COMPLETED="test_completed",kt.REMOVE_FIELD="remove_field",kt.SUITE_COMPLETED="suite_completed",Ot.group=function(t){return Pt(0,"groups",t)},St.group=function(t){return Pt(1,"groups",t)};var Ft=h(C);function At(t){var n=t.asyncTest,e=t.message;if(n&&u(n.then)){var r=Ct().emit,i=k(),o=g.bind({stateRef:i},(function(){S(),r(Tt.TEST_COMPLETED,t)}));i=g.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=C(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function Xt(t){var n=j();P((function(e){return N(e,n)[v(n)]=t,e}))}function Dt(t){var n=O()[0].prev;if(V(n))Xt(t),n=t;else{var e=j();if(n=N(n,e)[v(e)],b(t.key))!B(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(g.useX().isolate.type!==f.EACH&&a("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+t.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.'),function(){var t=O(),n=t[1],e=t[0].prev;t=N(e,j());var r=g.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),Xt(n=o(n,t));else{n=t.key;var r=g.useX().isolate.keys.prev[n];e=t,r&&(e=r),r=e;var c=g.useX().isolate.keys.current;b(c[n])?c[n]=r:a('Encountered the same test key "'+n+"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."),Xt(n=e)}}if(g.useX().omitted)return n.omit(),H(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,g.useX().skipped)return!0;var e=g.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,o=u[n];if(!1===o)return!0;if(o=!0===o,t){t:{var s=g.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(s,t))var a=!1===s[t];else{for(a in s)if(!0===s[a]){a=!0;break t}a=!1}}if(a)return!0;if(!0===r.groups[t])return!(o||!wt(u)&&!1!==u[n])}r=g.useX().exclusion;t:{for(c in(a=g.useX().exclusion).groups)if(a.groups[c]){var c=!0;break t}c=!1}return!(!c||t&&t in r.groups&&r.groups[t])||!o&&!!wt(u)&&!i(e[n])}(t))return n.skip(!!g.useX().skipped),H(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),Xt(t),H(),t.isUntested()){n=Ct(),e=function(t){return g.run({currentTest:t},(function(){try{var n=t.testFn()}catch(e){n=e,void 0===t.message&&C(n)&&(t.message=e),n=!1}return!1===n&&t.fail(),n}))}(t);try{e&&u(e.then)?(t.asyncTest=e,t.setPending(),At(t)):n.emit(Tt.TEST_COMPLETED,t)}catch(n){s("Your test function "+t.fieldName+' returned a value. Only "false" or Promise returns are supported.')}}else(n=t.asyncTest)&&u(n.then)&&(t.setPending(),At(t));return t}function Lt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var r=u(n[1])?n:Q([void 0],n);n=r[0],e=r[1],r=r[2],Ft(t)&&Wt("fieldName","string"),u(e)||Wt("Test callback","function");var i=g.useX();return Dt(n=new D(t,e,{message:n,groupName:i.groupName,key:r}))}var xt=e(Lt,{memo:function(t){var n=T(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=g.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[k().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):Dt(r[1])}}(Lt)});function Wt(t,n){s("Incompatible params passed to test function. "+t+" must be a "+n)}var _t="4.0.2-dev-6e9534";function Ut(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var i=(t=t.reverse())[0];t=t[1],u(i)||s("vest.create: Expected callback to be a function.");var o=bt(),a=c();return t={stateRef:p(a,{suiteId:r(),suiteName:t}),bus:o},e(g.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return a.reset(),K({type:f.SUITE},(function(){i.apply(void 0,t)})),o.emit(Tt.SUITE_COMPLETED),gt()})),{get:g.bind(t,vt),reset:a.reset,remove:g.bind(t,(function(t){o.emit(Tt.REMOVE_FIELD,t)}))})}function Mt(t,n){u(n)||s("callback must be a function"),K({type:f.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function Rt(t,n){C(t)||It("name must be a string"),u(n)||It("callback must be a function"),K({type:f.GROUP},(function(){g.run({groupName:t},n)}))}function Gt(t){function n(n){var e=g.useX(),r=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(r.tests,t)?o(r.tests[t],!0):C(n)?!!r.tests[n]:i(n,i(vt))}}var e=g.useX();return t?(e.inclusion[t]=o(e.exclusion.tests[t],!0),{when:n}):{when:n}}function jt(t,n){K({type:f.OMIT_WHEN},(function(){g.run({omitted:i(t,i(vt))},(function(){return n()}))}))}function Ht(t){(0,k().optionalFields()[1])((function(n){if(Array.isArray(t)||C(t))[].concat(t).forEach((function(t){n[t]=!0}));else for(var e in t)n[e]=t[e];return n}))}function Kt(t,n){K({type:f.SKIP_WHEN},(function(){g.run({skipped:i(t,i(vt))},(function(){return n()}))}))}function Vt(){var t=g.useX("warn hook called outside of a running suite.");t.currentTest||s("warn called outside of a test."),t.currentTest.warn()}export{_t as VERSION,g as context,Ut as create,Mt as each,Rt as group,Gt as include,jt as omitWhen,Ot as only,Ht as optional,St as skip,Kt as skipWhen,xt as test,Vt as warn};
1
+ import{createContext as t}from"context";export{enforce}from"n4s";var n,e=Object.assign,r=(n=0,function(){return""+n++});function u(t){return"function"==typeof t}function i(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return u(t)?t.apply(void 0,n):t}function o(t,n){var e;return null!==(e=i(t))&&void 0!==e?e:n}function s(t,n){throw Error(o(n,t))}function a(t,n){setTimeout((function(){s(t,n)}),0)}function c(t){function n(t,n,u){return r.references.push(),e(t,i(n,u)),function(){return[r.references[t],function(n){return e(t,i(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,u(n=o[n][1])&&n(e,i),u(t)&&t()}var r={references:[]},o=[];return{registerStateKey:function(t,e){var r=o.length;return o.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],o.forEach((function(e,r){return n(r,e[0],t[r])}))}}}var f,l=f||(f={});function p(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function v(t){return(t=[].concat(t))[t.length-1]}function d(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return v(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,v(n)},removeLevel:function(){n.pop()},reset:t}}l[l.DEFAULT=0]="DEFAULT",l[l.SUITE=1]="SUITE",l[l.EACH=2]="EACH",l[l.SKIP_WHEN=3]="SKIP_WHEN",l[l.OMIT_WHEN=4]="OMIT_WHEN",l[l.GROUP=5]="GROUP";var g=t((function(t,n){return n?null:e({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:f.DEFAULT,keys:{current:{},prev:{}}},testCursor:d()},t)}));function h(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}var m=h((function(t){return null===t}));function y(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(y(u,n)):(u=n(u),m(u)&&e.push(u))}return e}function E(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(E(n)):[].concat(t).concat(n)}),[])}function N(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=o(t[r],[]),t=t[r]}return t}function b(t){return null==t}function C(t){return String(t)===t}function T(t){function n(r,u){var i=n.get(r);return i?i[1]:(u=u(),e.unshift([r.concat(),u]),e.length>Number(t)&&(e.length=t),u)}void 0===t&&(t=1);var e=[];return n.invalidate=function(t){var n=e.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}));-1<n&&e.splice(n,1)},n.get=function(t){return e[e.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}))]||null},n}function k(){return g.useX().stateRef}function O(){return k().testObjects()}function S(){(0,O()[1])((function(t){return{prev:t.prev,current:[].concat(t.current)}}))}function P(t){(0,O()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function w(){return E(y(O()[0].current,(function(t){return t.isPending()?t:null})))}var I=T();function F(){var t=O()[0].current;return I([t],(function(){return E(t)}))}var A,X=A||(A={});X.Error="error",X.Warning="warning";var D=function(){function t(t,n,e){var u=void 0===e?{}:e;e=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=r(),this.severity=A.Error,this.status=L,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&C(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==G||(this.status=t)},t.prototype.warns=function(){return this.severity===A.Warning},t.prototype.setPending=function(){this.setStatus(M)},t.prototype.fail=function(){this.setStatus(this.warns()?_:W)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(U)},t.prototype.warn=function(){this.severity=A.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(x)},t.prototype.cancel=function(){this.setStatus(R),S()},t.prototype.omit=function(){this.setStatus(G)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.status===M},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.status===G},t.prototype.isUntested=function(){return this.status===L},t.prototype.isFailing=function(){return this.status===W},t.prototype.isCanceled=function(){return this.status===R},t.prototype.isSkipped=function(){return this.status===x},t.prototype.isPassing=function(){return this.status===U},t.prototype.isWarning=function(){return this.status===_},t}(),L="UNTESTED",x="SKIPPED",W="FAILED",_="WARNING",U="PASSING",M="PENDING",R="CANCELED",G="OMITTED";function j(){return g.useX().testCursor.getCursor()}function H(){return g.useX().testCursor.next()}function K(t,n){if(t=void 0===(t=t.type)?f.DEFAULT:t,u(n)){var e={current:{},prev:{}},r=j();return g.run({isolate:{type:t,keys:e}},(function(){g.useX().testCursor.addLevel(),e.prev=function(){var t=O()[0].prev;return[].concat(N(t,j())).reduce((function(t,n){return n instanceof D&&!b(n.key)?(t[n.key]=n,t):t}),{})}(),P((function(t){return N(t,r)[v(r)]=[],t}));var t=n();return g.useX().testCursor.removeLevel(),H(),t}))}}function V(t){if(t){if("number"==typeof t)return 0===t;if(Object.prototype.hasOwnProperty.call(t,"length"))return t.length===Number(0);if("object"==typeof t)return Object.keys(t).length===Number(0)}return!0}var B=h(V);function Y(t,n){return!(!n||t.fieldName!==n)}function q(t){var n=w();return!V(n)&&(t?n.some((function(n){return Y(n,t)})):B(n))}function z(t,n){function e(t,n){i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||{errorCount:0,warnCount:0,testCount:0};var i=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e("errorCount","errors"):n.isWarning()&&e("warnCount","warnings")),i}function J(){return(J=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var u in n=arguments[e])Object.prototype.hasOwnProperty.call(n,u)&&(t[u]=n[u]);return t}).apply(this,arguments)}function Q(t,n,e){if(e||2===arguments.length)for(var r,u=0,i=n.length;u<i;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return t.concat(r||Array.prototype.slice.call(n))}function Z(t,n,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return n.reduce((function(n,e){if(u&&e.groupName!==u)var r=!0;else i&&!Y(e,i)?r=!0:(r=e.warns(),r="warnings"===t!=!!r);return r||!e.hasFailures()||(n[e.fieldName]=(n[e.fieldName]||[]).concat(e.message||[])),n}),J({},i&&((r={})[i]=[],r)))}function $(t){return nt("errors",t)}function tt(t){return nt("warnings",t)}function nt(t,n){return t=Z(t,F(),{fieldName:n}),n?t[n]:t}function et(t,n){return t=ut("errors",t,n),n?t[n]:t}function rt(t,n){return t=ut("warnings",t,n),n?t[n]:t}function ut(t,n,e){return n||s("get"+t[0].toUpperCase()+t.slice(1)+"ByGroup requires a group name. Received `"+n+"` instead."),Z(t,F(),{group:n,fieldName:e})}function it(t,n,e){return(e=!t.hasFailures()||e&&!Y(t,e))||(e="warnings"===n!=!!(t=t.warns())),!e}function ot(t){return at("errors",t)}function st(t){return at("warnings",t)}function at(t,n){return F().some((function(e){return it(e,t,n)}))}function ct(t,n){return lt("errors",t,n)}function ft(t,n){return lt("warnings",t,n)}function lt(t,n,e){return F().some((function(r){return n===r.groupName&&it(r,t,e)}))}var pt=T(20);function vt(){var t=F(),n={stateRef:k()};return pt([t],g.bind(n,(function(){var t=k().suiteName()[0];return e(function(){var t={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return F().forEach((function(n){var e=n.fieldName,r=n.groupName;t.tests[e]=z(t.tests,n),r&&(t.groups[r]=t.groups[r]||{},t.groups[r][e]=z(t.groups[r],n))})),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(t)}(),{getErrors:g.bind(n,$),getErrorsByGroup:g.bind(n,et),getWarnings:g.bind(n,tt),getWarningsByGroup:g.bind(n,rt),hasErrors:g.bind(n,ot),hasErrorsByGroup:g.bind(n,ct),hasWarnings:g.bind(n,st),hasWarningsByGroup:g.bind(n,ft),isValid:g.bind(n,(function(t){var n=vt(),e=F().reduce((function(t,n){return t[n.fieldName]||n.isOmitted()&&(t[n.fieldName]=!0),t}),{});return(e=!!t&&!!e[t])?t=!0:n.hasErrors(t)?t=!1:t=!(V(e=F())||t&&V(n.tests[t])||function(t){var n=k().optionalFields()[0];return B(w().filter((function(e){return!(t&&!Y(e,t))&&!0!==n[e.fieldName]})))}(t))&&function(t){var n=F(),e=k().optionalFields()[0];return n.every((function(n){return!(!t||Y(n,t))||!0===e[n.fieldName]||n.isTested()||n.isOmitted()}))}(t),t})),suiteName:t})})))}var dt=T(20);function gt(){var t=F(),n={stateRef:k()};return dt([t],g.bind(n,(function(){return e({},vt(),{done:g.bind(n,yt)})})))}function ht(t,n,e){return!(u(t)&&(!n||e.tests[n]&&!V(e.tests[n].testCount)))}function mt(t){return!(q()&&(!t||q(t)))}function yt(){function t(){return r(vt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=gt(),ht(r,n,e)?e:mt(n)?(t(),e):(Et(t,n),e)}function Et(t,n){var e=g.bind({},t);(0,k().testCallbacks()[1])((function(t){return n?t.fieldCallbacks[n]=(t.fieldCallbacks[n]||[]).concat(e):t.doneCallbacks.push(e),t}))}function Nt(t){return t.forEach((function(t){return t()}))}function bt(){var t=function(){var t={};return{emit:function(n,e){t[n]&&t[n].forEach((function(t){t(e)}))},on:function(n,e){return t[n]||(t[n]=[]),t[n].push(e),{off:function(){t[n]=t[n].filter((function(t){return t!==e}))}}}}}();return t.on(Tt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var n=k().testCallbacks()[0].fieldCallbacks;t&&!q(t)&&Array.isArray(n[t])&&Nt(n[t]),t=k().testCallbacks()[0].doneCallbacks,q()||Nt(t)}})),t.on(Tt.SUITE_COMPLETED,(function(){!function(){var t=k().optionalFields()[0];if(!V(t)){var n={};P((function(e){return y(e,(function(e){var r=e.fieldName;if(n.hasOwnProperty(r))n[e.fieldName]&&e.omit();else{var i=t[r];u(i)&&(n[r]=i(),n[e.fieldName]&&e.omit())}return e}))}))}}()})),t.on(Tt.REMOVE_FIELD,(function(t){F().forEach((function(n){Y(n,t)&&(n.cancel(),function(t){P((function(n){return y(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t}function Ct(){var t=g.useX();return t.bus||s(),t.bus}var Tt,kt=Tt||(Tt={});function Ot(t){return Pt(0,"tests",t)}function St(t){return Pt(1,"tests",t)}function Pt(t,n,e){var r=g.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){C(e)&&(r.exclusion[n][e]=0===t)}))}function wt(t){for(var n in t)if(!0===t[n])return!0;return!1}function It(t){s("Wrong arguments passed to group. Group "+t+".")}kt.TEST_COMPLETED="test_completed",kt.REMOVE_FIELD="remove_field",kt.SUITE_COMPLETED="suite_completed",Ot.group=function(t){return Pt(0,"groups",t)},St.group=function(t){return Pt(1,"groups",t)};var Ft=h(C);function At(t){var n=t.asyncTest,e=t.message;if(n&&u(n.then)){var r=Ct().emit,i=k(),o=g.bind({stateRef:i},(function(){S(),r(Tt.TEST_COMPLETED,t)}));i=g.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=C(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function Xt(t){var n=j();P((function(e){return N(e,n)[v(n)]=t,e}))}function Dt(t){var n=O()[0].prev;if(V(n))Xt(t),n=t;else{var e=j();if(n=N(n,e)[v(e)],b(t.key))!B(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(g.useX().isolate.type!==f.EACH&&a("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+t.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.'),function(){var t=O(),n=t[1],e=t[0].prev;t=N(e,j());var r=g.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),Xt(n=o(n,t));else{n=t.key;var r=g.useX().isolate.keys.prev[n];e=t,r&&(e=r),r=e;var c=g.useX().isolate.keys.current;b(c[n])?c[n]=r:a('Encountered the same test key "'+n+"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."),Xt(n=e)}}if(g.useX().omitted)return n.omit(),H(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,g.useX().skipped)return!0;var e=g.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,o=u[n];if(!1===o)return!0;if(o=!0===o,t){t:{var s=g.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(s,t))var a=!1===s[t];else{for(a in s)if(!0===s[a]){a=!0;break t}a=!1}}if(a)return!0;if(!0===r.groups[t])return!(o||!wt(u)&&!1!==u[n])}r=g.useX().exclusion;t:{for(c in(a=g.useX().exclusion).groups)if(a.groups[c]){var c=!0;break t}c=!1}return!(!c||t&&t in r.groups&&r.groups[t])||!o&&!!wt(u)&&!i(e[n])}(t))return n.skip(!!g.useX().skipped),H(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),Xt(t),H(),t.isUntested()){n=Ct(),e=function(t){return g.run({currentTest:t},(function(){try{var n=t.testFn()}catch(e){n=e,void 0===t.message&&C(n)&&(t.message=e),n=!1}return!1===n&&t.fail(),n}))}(t);try{e&&u(e.then)?(t.asyncTest=e,t.setPending(),At(t)):n.emit(Tt.TEST_COMPLETED,t)}catch(n){s("Your test function "+t.fieldName+' returned a value. Only "false" or Promise returns are supported.')}}else(n=t.asyncTest)&&u(n.then)&&(t.setPending(),At(t));return t}function Lt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var r=u(n[1])?n:Q([void 0],n);n=r[0],e=r[1],r=r[2],Ft(t)&&Wt("fieldName","string"),u(e)||Wt("Test callback","function");var i=g.useX();return Dt(n=new D(t,e,{message:n,groupName:i.groupName,key:r}))}var xt=e(Lt,{memo:function(t){var n=T(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=g.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[k().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):Dt(r[1])}}(Lt)});function Wt(t,n){s("Incompatible params passed to test function. "+t+" must be a "+n)}var _t="4.0.2-dev-72921c";function Ut(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var i=(t=t.reverse())[0];t=t[1],u(i)||s("vest.create: Expected callback to be a function.");var o=bt(),a=c();return t={stateRef:p(a,{suiteId:r(),suiteName:t}),bus:o},e(g.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return a.reset(),K({type:f.SUITE},(function(){i.apply(void 0,t)})),o.emit(Tt.SUITE_COMPLETED),gt()})),{get:g.bind(t,vt),reset:a.reset,remove:g.bind(t,(function(t){o.emit(Tt.REMOVE_FIELD,t)}))})}function Mt(t,n){u(n)||s("callback must be a function"),K({type:f.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function Rt(t,n){C(t)||It("name must be a string"),u(n)||It("callback must be a function"),K({type:f.GROUP},(function(){g.run({groupName:t},n)}))}function Gt(t){function n(n){var e=g.useX(),r=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(r.tests,t)?o(r.tests[t],!0):C(n)?!!r.tests[n]:i(n,i(vt))}}var e=g.useX();return t?(e.inclusion[t]=o(e.exclusion.tests[t],!0),{when:n}):{when:n}}function jt(t,n){K({type:f.OMIT_WHEN},(function(){g.run({omitted:i(t,i(vt))},(function(){return n()}))}))}function Ht(t){(0,k().optionalFields()[1])((function(n){if(Array.isArray(t)||C(t))[].concat(t).forEach((function(t){n[t]=!0}));else for(var e in t)n[e]=t[e];return n}))}function Kt(t,n){K({type:f.SKIP_WHEN},(function(){g.run({skipped:i(t,i(vt))},(function(){return n()}))}))}function Vt(){var t=g.useX("warn hook called outside of a running suite.");t.currentTest||s("warn called outside of a test."),t.currentTest.warn()}export{_t as VERSION,g as context,Ut as create,Mt as each,Rt as group,Gt as include,jt as omitWhen,Ot as only,Ht as optional,St as skip,Kt as skipWhen,xt as test,Vt as warn};
@@ -214,6 +214,19 @@
214
214
  }
215
215
  var isFalsy = bindNot(isTruthy);
216
216
 
217
+ function isValueOf(value, objectToCheck) {
218
+ if (isNullish(objectToCheck)) {
219
+ return false;
220
+ }
221
+ for (var key in objectToCheck) {
222
+ if (objectToCheck[key] === value) {
223
+ return true;
224
+ }
225
+ }
226
+ return false;
227
+ }
228
+ var isNotValueOf = bindNot(isValueOf);
229
+
217
230
  function lessThan(value, lt) {
218
231
  return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
219
232
  }
@@ -300,6 +313,7 @@
300
313
  isNotNumeric: isNotNumeric,
301
314
  isNotString: isNotString,
302
315
  isNotUndefined: isNotUndefined,
316
+ isNotValueOf: isNotValueOf,
303
317
  isNull: isNull,
304
318
  isNullish: isNullish,
305
319
  isNumber: isNumber,
@@ -309,6 +323,7 @@
309
323
  isString: isStringValue,
310
324
  isTruthy: isTruthy,
311
325
  isUndefined: isUndefined,
326
+ isValueOf: isValueOf,
312
327
  lengthEquals: lengthEquals,
313
328
  lengthNotEquals: lengthNotEquals,
314
329
  lessThan: lessThan,
@@ -634,7 +649,7 @@
634
649
  // Only on the first rule access - start the chain of calls
635
650
  target[ruleName] = genEnforceLazy(ruleName);
636
651
  });
637
- return target;
652
+ return assign(enforceEager, target);
638
653
  }
639
654
  return new Proxy(assign(enforceEager, target), {
640
655
  get: function (target, key) {
@@ -1 +1 @@
1
- "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).compose=t()}(this,(function(){function n(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 t(n){return"function"==typeof n}function r(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function e(n,t){var e;return null!==(e=r(n))&&void 0!==e?e:t}function u(n,t){throw Error(e(t,n))}function i(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function o(n){return"number"==typeof n}function s(n,t){return n.length===Number(t)}function a(n){if(n){if(o(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return s(n,0);if("object"==typeof n)return s(Object.keys(n),0)}return!0}function f(n){return null===n}function c(n){return void 0===n}function l(n){return null===n||c(n)}function N(n){return String(n)===n}function h(n,t){return N(n)&&N(t)&&n.endsWith(t)}function p(n,t){return n===t}function v(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function g(n,t){return v(n)&&v(t)&&Number(n)>Number(t)}function m(n,t){return v(n)&&v(t)&&Number(n)>=Number(t)}function d(n){return!!Array.isArray(n)}function y(n,t){return!!(d(t)||N(t)&&N(n))&&-1!==t.indexOf(n)}function b(n,t){return v(n)&&v(t)&&Number(n)<=Number(t)}function x(n,t,r){return m(n,t)&&b(n,r)}function E(n){return l(n)||N(n)&&!n.trim()}function O(n){return!!n===n}function w(n){return Number.isNaN(n)}function T(n){return!!v(n)&&0>Number(n)}function q(n){return!!n}function j(n,t){return v(n)&&v(t)&&Number(n)<Number(t)}function S(n,t){return t instanceof RegExp?t.test(n):!!N(t)&&new RegExp(t).test(n)}function A(n,t){return v(n)&&v(t)&&Number(n)===Number(t)}function B(n,t){return N(n)&&N(t)&&n.startsWith(t)}function P(n){for(var r in an){var e=an[r];t(e)&&n(r,e)}}function W(){return null}function k(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||Array.prototype.slice.call(t))}function F(){try{return t(Proxy)}catch(n){return!1}}function I(n,t){return n={pass:n},t&&(n.message=t),n}function J(n,t,e){for(var i=[],o=3;o<arguments.length;o++)i[o-3]=arguments[o];return O(n)||n&&O(n.pass)||u("Incorrect return value for rule: "+JSON.stringify(n)),O(n)?I(n):I(n.pass,r.apply(void 0,k([n.message,t,e],i)))}function R(n){function t(t,r,e){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=J.apply(void 0,k([fn.run({value:n},(function(){return r.apply(void 0,k([n],i))})),e,n],i))).pass){if(!a(o.message))throw o.message;u("enforce/"+e+" failed with "+JSON.stringify(n))}return t}}var r={};if(!F())return P((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=an[r])return t(e,n,r)}});return e}function U(t){var u,i=[];return function t(o){return function(){for(var s=[],a=0;a<arguments.length;a++)s[a]=arguments[a];var f=an[o];i.push((function(n){return J.apply(void 0,k([f.apply(void 0,k([n],s)),o,n],s))}));var c={run:function(t){return e(n(i,(function(n,e){var i,o=fn.run({value:t},(function(){return n(t)}));o.pass||e(I(!!o.pass,null!==(i=r(u,t,o.message))&&void 0!==i?i:o.message))})),I(!0))},test:function(n){return c.run(n).pass},message:function(n){return n&&(u=n),c}};return F()?c=new Proxy(c,{get:function(n,r){return an[r]?t(r):n[r]}}):(P((function(n){c[n]=t(n)})),c)}}(t)}var X,z=i(o),C=i(s),M=i(a),D=Object.assign,G=i(f),H=i(c),K=i(l),L=i(h),Q=i(p),V=i(v),Y=i(d),Z=i(y),$=i(x),_=i(E),nn=i(O),tn=i(w),rn=i(T),en=i(N),un=i(q),on=i(S),sn=i(A),an={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:L,doesNotStartWith:i(B),endsWith:h,equals:p,greaterThan:g,greaterThanOrEquals:m,gt:g,gte:m,inside:y,isArray:d,isBetween:x,isBlank:E,isBoolean:O,isEmpty:a,isEven:function(n){return!!v(n)&&0==n%2},isFalsy:un,isNaN:w,isNegative:T,isNotArray:Y,isNotBetween:$,isNotBlank:_,isNotBoolean:nn,isNotEmpty:M,isNotNaN:tn,isNotNull:G,isNotNullish:K,isNotNumber:z,isNotNumeric:V,isNotString:en,isNotUndefined:H,isNull:f,isNullish:l,isNumber:o,isNumeric:v,isOdd:function(n){return!!v(n)&&0!=n%2},isPositive:rn,isString:N,isTruthy:q,isUndefined:c,lengthEquals:s,lengthNotEquals:C,lessThan:j,lessThanOrEquals:b,longerThan:function(n,t){return n.length>Number(t)},longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:j,lte:b,matches:S,notEquals:Q,notInside:Z,notMatches:on,numberEquals:A,numberNotEquals:sn,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:B},fn=function(n){function t(t,e){var u,s,a=i();return t=D({},a||{},null!==(u=r(n,t,a))&&void 0!==u?u:t),u=o.ctx=Object.freeze(t),o.ancestry.unshift(u),e=e(u),o.ancestry.shift(),o.ctx=null!==(s=o.ancestry[0])&&void 0!==s?s:null,e}function i(){return o.ctx}var o={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:i,useX:function(n){var t;return null!==(t=o.ctx)&&void 0!==t?t:u(e(n,"Context was used after it was closed"))}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?D(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:D(r,{parent:W})}));return X={context:function(){return fn.useX()},extend:function(n){D(an,n)}},F()?new Proxy(D(R,X),{get:function(n,t){return t in n?n[t]:an[t]?U(t):void 0}}):P((function(n){X[n]=U(n)})),function(){function t(t){return fn.run({value:t},(function(){return e(n(r,(function(n,r){try{var e=n.run(t)}catch(n){e=I(!1)}e.pass||r(e)})),I(!0))}))}for(var r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];return Object.assign((function(n){if(!(n=t(n)).pass){if(!a(n.message))throw n.message;u()}}),{run:t,test:function(n){return t(n).pass}})}}));
1
+ "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).compose=t()}(this,(function(){function n(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 t(n){return"function"==typeof n}function r(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function e(n,t){var e;return null!==(e=r(n))&&void 0!==e?e:t}function u(n,t){throw Error(e(t,n))}function i(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function o(n){return"number"==typeof n}function s(n,t){return n.length===Number(t)}function f(n){if(n){if(o(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return s(n,0);if("object"==typeof n)return s(Object.keys(n),0)}return!0}function a(n){return null===n}function c(n){return void 0===n}function l(n){return null===n||c(n)}function N(n){return String(n)===n}function h(n,t){return N(n)&&N(t)&&n.endsWith(t)}function p(n,t){return n===t}function v(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function g(n,t){return v(n)&&v(t)&&Number(n)>Number(t)}function m(n,t){return v(n)&&v(t)&&Number(n)>=Number(t)}function d(n){return!!Array.isArray(n)}function y(n,t){return!!(d(t)||N(t)&&N(n))&&-1!==t.indexOf(n)}function b(n,t){return v(n)&&v(t)&&Number(n)<=Number(t)}function x(n,t,r){return m(n,t)&&b(n,r)}function E(n){return l(n)||N(n)&&!n.trim()}function O(n){return!!n===n}function w(n){return Number.isNaN(n)}function T(n){return!!v(n)&&0>Number(n)}function q(n){return!!n}function j(n,t){if(l(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function S(n,t){return v(n)&&v(t)&&Number(n)<Number(t)}function A(n,t){return t instanceof RegExp?t.test(n):!!N(t)&&new RegExp(t).test(n)}function B(n,t){return v(n)&&v(t)&&Number(n)===Number(t)}function P(n,t){return N(n)&&N(t)&&n.startsWith(t)}function W(n){for(var r in cn){var e=cn[r];t(e)&&n(r,e)}}function k(){return null}function F(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||Array.prototype.slice.call(t))}function I(){try{return t(Proxy)}catch(n){return!1}}function J(n,t){return n={pass:n},t&&(n.message=t),n}function R(n,t,e){for(var i=[],o=3;o<arguments.length;o++)i[o-3]=arguments[o];return O(n)||n&&O(n.pass)||u("Incorrect return value for rule: "+JSON.stringify(n)),O(n)?J(n):J(n.pass,r.apply(void 0,F([n.message,t,e],i)))}function U(n){function t(t,r,e){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=R.apply(void 0,F([ln.run({value:n},(function(){return r.apply(void 0,F([n],i))})),e,n],i))).pass){if(!f(o.message))throw o.message;u("enforce/"+e+" failed with "+JSON.stringify(n))}return t}}var r={};if(!I())return W((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=cn[r])return t(e,n,r)}});return e}function V(t){var u,i=[];return function t(o){return function(){for(var s=[],f=0;f<arguments.length;f++)s[f]=arguments[f];var a=cn[o];i.push((function(n){return R.apply(void 0,F([a.apply(void 0,F([n],s)),o,n],s))}));var c={run:function(t){return e(n(i,(function(n,e){var i,o=ln.run({value:t},(function(){return n(t)}));o.pass||e(J(!!o.pass,null!==(i=r(u,t,o.message))&&void 0!==i?i:o.message))})),J(!0))},test:function(n){return c.run(n).pass},message:function(n){return n&&(u=n),c}};return I()?c=new Proxy(c,{get:function(n,r){return cn[r]?t(r):n[r]}}):(W((function(n){c[n]=t(n)})),c)}}(t)}var X,z=i(o),C=i(s),M=i(f),D=Object.assign,G=i(a),H=i(c),K=i(l),L=i(h),Q=i(p),Y=i(v),Z=i(d),$=i(y),_=i(x),nn=i(E),tn=i(O),rn=i(w),en=i(T),un=i(N),on=i(q),sn=i(j),fn=i(A),an=i(B),cn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:L,doesNotStartWith:i(P),endsWith:h,equals:p,greaterThan:g,greaterThanOrEquals:m,gt:g,gte:m,inside:y,isArray:d,isBetween:x,isBlank:E,isBoolean:O,isEmpty:f,isEven:function(n){return!!v(n)&&0==n%2},isFalsy:on,isNaN:w,isNegative:T,isNotArray:Z,isNotBetween:_,isNotBlank:nn,isNotBoolean:tn,isNotEmpty:M,isNotNaN:rn,isNotNull:G,isNotNullish:K,isNotNumber:z,isNotNumeric:Y,isNotString:un,isNotUndefined:H,isNotValueOf:sn,isNull:a,isNullish:l,isNumber:o,isNumeric:v,isOdd:function(n){return!!v(n)&&0!=n%2},isPositive:en,isString:N,isTruthy:q,isUndefined:c,isValueOf:j,lengthEquals:s,lengthNotEquals:C,lessThan:S,lessThanOrEquals:b,longerThan:function(n,t){return n.length>Number(t)},longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:S,lte:b,matches:A,notEquals:Q,notInside:$,notMatches:fn,numberEquals:B,numberNotEquals:an,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:P},ln=function(n){function t(t,e){var u,s,f=i();return t=D({},f||{},null!==(u=r(n,t,f))&&void 0!==u?u:t),u=o.ctx=Object.freeze(t),o.ancestry.unshift(u),e=e(u),o.ancestry.shift(),o.ctx=null!==(s=o.ancestry[0])&&void 0!==s?s:null,e}function i(){return o.ctx}var o={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:i,useX:function(n){var t;return null!==(t=o.ctx)&&void 0!==t?t:u(e(n,"Context was used after it was closed"))}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?D(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:D(r,{parent:k})}));return X={context:function(){return ln.useX()},extend:function(n){D(cn,n)}},I()?new Proxy(D(U,X),{get:function(n,t){return t in n?n[t]:cn[t]?V(t):void 0}}):(W((function(n){X[n]=V(n)})),D(U,X)),function(){function t(t){return ln.run({value:t},(function(){return e(n(r,(function(n,r){try{var e=n.run(t)}catch(n){e=J(!1)}e.pass||r(e)})),J(!0))}))}for(var r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];return Object.assign((function(n){if(!(n=t(n)).pass){if(!f(n.message))throw n.message;u()}}),{run:t,test:function(n){return t(n).pass}})}}));
@@ -261,6 +261,19 @@
261
261
  }
262
262
  var isFalsy = bindNot(isTruthy);
263
263
 
264
+ function isValueOf(value, objectToCheck) {
265
+ if (isNullish(objectToCheck)) {
266
+ return false;
267
+ }
268
+ for (var key in objectToCheck) {
269
+ if (objectToCheck[key] === value) {
270
+ return true;
271
+ }
272
+ }
273
+ return false;
274
+ }
275
+ var isNotValueOf = bindNot(isValueOf);
276
+
264
277
  function lessThan(value, lt) {
265
278
  return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
266
279
  }
@@ -347,6 +360,7 @@
347
360
  isNotNumeric: isNotNumeric,
348
361
  isNotString: isNotString,
349
362
  isNotUndefined: isNotUndefined,
363
+ isNotValueOf: isNotValueOf,
350
364
  isNull: isNull,
351
365
  isNullish: isNullish,
352
366
  isNumber: isNumber,
@@ -356,6 +370,7 @@
356
370
  isString: isStringValue,
357
371
  isTruthy: isTruthy,
358
372
  isUndefined: isUndefined,
373
+ isValueOf: isValueOf,
359
374
  lengthEquals: lengthEquals,
360
375
  lengthNotEquals: lengthNotEquals,
361
376
  lessThan: lessThan,
@@ -671,7 +686,7 @@
671
686
  // Only on the first rule access - start the chain of calls
672
687
  target[ruleName] = genEnforceLazy(ruleName);
673
688
  });
674
- return target;
689
+ return assign(enforceEager, target);
675
690
  }
676
691
  return new Proxy(assign(enforceEager, target), {
677
692
  get: function (target, key) {
@@ -1 +1 @@
1
- "use strict";!function(n){"function"==typeof define&&define.amd?define(n):n()}((function(){function n(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 t(n){return"function"==typeof n}function r(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function e(n,t){var e;return null!==(e=r(n))&&void 0!==e?e:t}function u(n,t){return n={pass:n},t&&(n.message=t),n}function i(n,t){try{return n.run(t)}catch(n){return u(!1)}}function o(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function f(n){return null===n}function s(n){return void 0===n}function a(n){return null===n||s(n)}function c(n){return String(n)===n}function l(n,t){return c(n)&&c(t)&&n.endsWith(t)}function N(n,t){return n===t}function h(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function v(n,t){return h(n)&&h(t)&&Number(n)>Number(t)}function p(n,t){return h(n)&&h(t)&&Number(n)>=Number(t)}function g(n){return!!Array.isArray(n)}function m(n,t){return!!(g(t)||c(t)&&c(n))&&-1!==t.indexOf(n)}function y(n,t){return h(n)&&h(t)&&Number(n)<=Number(t)}function d(n,t,r){return p(n,t)&&y(n,r)}function b(n){return a(n)||c(n)&&!n.trim()}function O(n){return!!n===n}function E(n){return"number"==typeof n}function x(n,t){return n.length===Number(t)}function w(n){if(n){if(E(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return x(n,0);if("object"==typeof n)return x(Object.keys(n),0)}return!0}function q(n){return Number.isNaN(n)}function T(n){return!!h(n)&&0>Number(n)}function S(n){return!!n}function A(n,t){return h(n)&&h(t)&&Number(n)<Number(t)}function B(n,t){return n.length>Number(t)}function P(n,t){return t instanceof RegExp?t.test(n):!!c(t)&&new RegExp(t).test(n)}function W(n,t){return h(n)&&h(t)&&Number(n)===Number(t)}function j(n,t){return c(n)&&c(t)&&n.startsWith(t)}function k(n){for(var r in cn){var e=cn[r];t(e)&&n(r,e)}}function F(n,t){throw Error(e(t,n))}function I(){return null}function J(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||Array.prototype.slice.call(t))}function R(){try{return t(Proxy)}catch(n){return!1}}function U(n,t,e){for(var i=[],o=3;o<arguments.length;o++)i[o-3]=arguments[o];return O(n)||n&&O(n.pass)||F("Incorrect return value for rule: "+JSON.stringify(n)),O(n)?u(n):u(n.pass,r.apply(void 0,J([n.message,t,e],i)))}function X(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=U.apply(void 0,J([ln.run({value:n},(function(){return r.apply(void 0,J([n],u))})),e,n],u))).pass){if(!w(i.message))throw i.message;F("enforce/"+e+" failed with "+JSON.stringify(n))}return t}}var r={};if(!R())return k((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=cn[r])return t(e,n,r)}});return e}function z(t){var i,o=[];return function t(f){return function(){for(var s=[],a=0;a<arguments.length;a++)s[a]=arguments[a];var c=cn[f];o.push((function(n){return U.apply(void 0,J([c.apply(void 0,J([n],s)),f,n],s))}));var l={run:function(t){return e(n(o,(function(n,e){var o,f=ln.run({value:t},(function(){return n(t)}));f.pass||e(u(!!f.pass,null!==(o=r(i,t,f.message))&&void 0!==o?o:f.message))})),u(!0))},test:function(n){return l.run(n).pass},message:function(n){return n&&(i=n),l}};return R()?l=new Proxy(l,{get:function(n,r){return cn[r]?t(r):n[r]}}):(k((function(n){l[n]=t(n)})),l)}}(t)}var C,M=Object.assign,D=o(f),G=o(s),H=o(a),K=o(l),L=o(N),Q=o(h),V=o(g),Y=o(m),Z=o(d),$=o(b),_=o(O),nn=o(E),tn=o(x),rn=o(w),en=o(q),un=o(T),on=o(c),fn=o(S),sn=o(P),an=o(W),cn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:K,doesNotStartWith:o(j),endsWith:l,equals:N,greaterThan:v,greaterThanOrEquals:p,gt:v,gte:p,inside:m,isArray:g,isBetween:d,isBlank:b,isBoolean:O,isEmpty:w,isEven:function(n){return!!h(n)&&0==n%2},isFalsy:fn,isNaN:q,isNegative:T,isNotArray:V,isNotBetween:Z,isNotBlank:$,isNotBoolean:_,isNotEmpty:rn,isNotNaN:en,isNotNull:D,isNotNullish:H,isNotNumber:nn,isNotNumeric:Q,isNotString:on,isNotUndefined:G,isNull:f,isNullish:a,isNumber:E,isNumeric:h,isOdd:function(n){return!!h(n)&&0!=n%2},isPositive:un,isString:c,isTruthy:S,isUndefined:s,lengthEquals:x,lengthNotEquals:tn,lessThan:A,lessThanOrEquals:y,longerThan:B,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:A,lte:y,matches:P,notEquals:L,notInside:Y,notMatches:sn,numberEquals:W,numberNotEquals:an,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:j},ln=function(n){function t(t,e){var o,f,s=u();return t=M({},s||{},null!==(o=r(n,t,s))&&void 0!==o?o:t),o=i.ctx=Object.freeze(t),i.ancestry.unshift(o),e=e(o),i.ancestry.shift(),i.ctx=null!==(f=i.ancestry[0])&&void 0!==f?f:null,e}function u(){return i.ctx}var i={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:u,useX:function(n){var t;return null!==(t=i.ctx)&&void 0!==t?t:F(e(n,"Context was used after it was closed"))}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?M(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:M(r,{parent:I})}));(C={context:function(){return ln.useX()},extend:function(n){M(cn,n)}},R()?new Proxy(M(X,C),{get:function(n,t){return t in n?n[t]:cn[t]?z(t):void 0}}):(k((function(n){C[n]=z(n)})),C)).extend({allOf:function(t){for(var r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];return e(n(r,(function(n,r){(n=i(n,t)).pass||r(n)})),u(!0))},anyOf:function(t){for(var r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];return e(n(r,(function(n,r){(n=i(n,t)).pass&&r(n)})),u(!1))},noneOf:function(t){for(var r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];return e(n(r,(function(n,r){i(n,t).pass&&r(u(!1))})),u(!0))},oneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(B(e,1))return!1;(t=i(t,n)).pass&&e.push(t)})),u(x(e,1))}})}));
1
+ "use strict";!function(n){"function"==typeof define&&define.amd?define(n):n()}((function(){function n(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 t(n){return"function"==typeof n}function r(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function e(n,t){var e;return null!==(e=r(n))&&void 0!==e?e:t}function u(n,t){return n={pass:n},t&&(n.message=t),n}function i(n,t){try{return n.run(t)}catch(n){return u(!1)}}function o(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function f(n){return null===n}function a(n){return void 0===n}function s(n){return null===n||a(n)}function c(n){return String(n)===n}function l(n,t){return c(n)&&c(t)&&n.endsWith(t)}function N(n,t){return n===t}function v(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function h(n,t){return v(n)&&v(t)&&Number(n)>Number(t)}function p(n,t){return v(n)&&v(t)&&Number(n)>=Number(t)}function g(n){return!!Array.isArray(n)}function m(n,t){return!!(g(t)||c(t)&&c(n))&&-1!==t.indexOf(n)}function y(n,t){return v(n)&&v(t)&&Number(n)<=Number(t)}function d(n,t,r){return p(n,t)&&y(n,r)}function b(n){return s(n)||c(n)&&!n.trim()}function O(n){return!!n===n}function E(n){return"number"==typeof n}function x(n,t){return n.length===Number(t)}function w(n){if(n){if(E(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return x(n,0);if("object"==typeof n)return x(Object.keys(n),0)}return!0}function q(n){return Number.isNaN(n)}function T(n){return!!v(n)&&0>Number(n)}function S(n){return!!n}function A(n,t){if(s(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function B(n,t){return v(n)&&v(t)&&Number(n)<Number(t)}function P(n,t){return n.length>Number(t)}function W(n,t){return t instanceof RegExp?t.test(n):!!c(t)&&new RegExp(t).test(n)}function j(n,t){return v(n)&&v(t)&&Number(n)===Number(t)}function k(n,t){return c(n)&&c(t)&&n.startsWith(t)}function F(n){for(var r in Nn){var e=Nn[r];t(e)&&n(r,e)}}function I(n,t){throw Error(e(t,n))}function J(){return null}function R(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||Array.prototype.slice.call(t))}function U(){try{return t(Proxy)}catch(n){return!1}}function V(n,t,e){for(var i=[],o=3;o<arguments.length;o++)i[o-3]=arguments[o];return O(n)||n&&O(n.pass)||I("Incorrect return value for rule: "+JSON.stringify(n)),O(n)?u(n):u(n.pass,r.apply(void 0,R([n.message,t,e],i)))}function X(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=V.apply(void 0,R([vn.run({value:n},(function(){return r.apply(void 0,R([n],u))})),e,n],u))).pass){if(!w(i.message))throw i.message;I("enforce/"+e+" failed with "+JSON.stringify(n))}return t}}var r={};if(!U())return F((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=Nn[r])return t(e,n,r)}});return e}function z(t){var i,o=[];return function t(f){return function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];var c=Nn[f];o.push((function(n){return V.apply(void 0,R([c.apply(void 0,R([n],a)),f,n],a))}));var l={run:function(t){return e(n(o,(function(n,e){var o,f=vn.run({value:t},(function(){return n(t)}));f.pass||e(u(!!f.pass,null!==(o=r(i,t,f.message))&&void 0!==o?o:f.message))})),u(!0))},test:function(n){return l.run(n).pass},message:function(n){return n&&(i=n),l}};return U()?l=new Proxy(l,{get:function(n,r){return Nn[r]?t(r):n[r]}}):(F((function(n){l[n]=t(n)})),l)}}(t)}var C,M=Object.assign,D=o(f),G=o(a),H=o(s),K=o(l),L=o(N),Q=o(v),Y=o(g),Z=o(m),$=o(d),_=o(b),nn=o(O),tn=o(E),rn=o(x),en=o(w),un=o(q),on=o(T),fn=o(c),an=o(S),sn=o(A),cn=o(W),ln=o(j),Nn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:K,doesNotStartWith:o(k),endsWith:l,equals:N,greaterThan:h,greaterThanOrEquals:p,gt:h,gte:p,inside:m,isArray:g,isBetween:d,isBlank:b,isBoolean:O,isEmpty:w,isEven:function(n){return!!v(n)&&0==n%2},isFalsy:an,isNaN:q,isNegative:T,isNotArray:Y,isNotBetween:$,isNotBlank:_,isNotBoolean:nn,isNotEmpty:en,isNotNaN:un,isNotNull:D,isNotNullish:H,isNotNumber:tn,isNotNumeric:Q,isNotString:fn,isNotUndefined:G,isNotValueOf:sn,isNull:f,isNullish:s,isNumber:E,isNumeric:v,isOdd:function(n){return!!v(n)&&0!=n%2},isPositive:on,isString:c,isTruthy:S,isUndefined:a,isValueOf:A,lengthEquals:x,lengthNotEquals:rn,lessThan:B,lessThanOrEquals:y,longerThan:P,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:B,lte:y,matches:W,notEquals:L,notInside:Z,notMatches:cn,numberEquals:j,numberNotEquals:ln,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:k},vn=function(n){function t(t,e){var o,f,a=u();return t=M({},a||{},null!==(o=r(n,t,a))&&void 0!==o?o:t),o=i.ctx=Object.freeze(t),i.ancestry.unshift(o),e=e(o),i.ancestry.shift(),i.ctx=null!==(f=i.ancestry[0])&&void 0!==f?f:null,e}function u(){return i.ctx}var i={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:u,useX:function(n){var t;return null!==(t=i.ctx)&&void 0!==t?t:I(e(n,"Context was used after it was closed"))}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?M(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:M(r,{parent:J})}));(C={context:function(){return vn.useX()},extend:function(n){M(Nn,n)}},U()?new Proxy(M(X,C),{get:function(n,t){return t in n?n[t]:Nn[t]?z(t):void 0}}):(F((function(n){C[n]=z(n)})),M(X,C))).extend({allOf:function(t){for(var r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];return e(n(r,(function(n,r){(n=i(n,t)).pass||r(n)})),u(!0))},anyOf:function(t){for(var r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];return e(n(r,(function(n,r){(n=i(n,t)).pass&&r(n)})),u(!1))},noneOf:function(t){for(var r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];return e(n(r,(function(n,r){i(n,t).pass&&r(u(!1))})),u(!0))},oneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(P(e,1))return!1;(t=i(t,n)).pass&&e.push(t)})),u(x(e,1))}})}));
@@ -194,6 +194,19 @@
194
194
  }
195
195
  var isFalsy = bindNot(isTruthy);
196
196
 
197
+ function isValueOf(value, objectToCheck) {
198
+ if (isNullish(objectToCheck)) {
199
+ return false;
200
+ }
201
+ for (var key in objectToCheck) {
202
+ if (objectToCheck[key] === value) {
203
+ return true;
204
+ }
205
+ }
206
+ return false;
207
+ }
208
+ var isNotValueOf = bindNot(isValueOf);
209
+
197
210
  function lessThan(value, lt) {
198
211
  return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
199
212
  }
@@ -280,6 +293,7 @@
280
293
  isNotNumeric: isNotNumeric,
281
294
  isNotString: isNotString,
282
295
  isNotUndefined: isNotUndefined,
296
+ isNotValueOf: isNotValueOf,
283
297
  isNull: isNull,
284
298
  isNullish: isNullish,
285
299
  isNumber: isNumber,
@@ -289,6 +303,7 @@
289
303
  isString: isStringValue,
290
304
  isTruthy: isTruthy,
291
305
  isUndefined: isUndefined,
306
+ isValueOf: isValueOf,
292
307
  lengthEquals: lengthEquals,
293
308
  lengthNotEquals: lengthNotEquals,
294
309
  lessThan: lessThan,
@@ -634,7 +649,7 @@
634
649
  // Only on the first rule access - start the chain of calls
635
650
  target[ruleName] = genEnforceLazy(ruleName);
636
651
  });
637
- return target;
652
+ return assign(enforceEager, target);
638
653
  }
639
654
  return new Proxy(assign(enforceEager, target), {
640
655
  get: function (target, key) {
@@ -1 +1 @@
1
- "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).schema={})}(this,(function(n){function t(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 r(n){return"function"==typeof n}function e(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function u(n){return null===n}function i(n){return void 0===n}function o(n){return null===n||i(n)}function a(n){return String(n)===n}function s(n,t){return a(n)&&a(t)&&n.endsWith(t)}function f(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function l(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function p(n,t){return c(n)&&c(t)&&Number(n)>=Number(t)}function v(n){return!!Array.isArray(n)}function N(n,t){return!!(v(t)||a(t)&&a(n))&&-1!==t.indexOf(n)}function h(n,t){return c(n)&&c(t)&&Number(n)<=Number(t)}function y(n,t,r){return p(n,t)&&h(n,r)}function d(n){return o(n)||a(n)&&!n.trim()}function m(n){return!!n===n}function g(n){return"number"==typeof n}function b(n,t){return n.length===Number(t)}function x(n){if(n){if(g(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return b(n,0);if("object"==typeof n)return b(Object.keys(n),0)}return!0}function O(n){return Number.isNaN(n)}function E(n){return!!c(n)&&0>Number(n)}function w(n){return!!n}function T(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function q(n,t){return t instanceof RegExp?t.test(n):!!a(t)&&new RegExp(t).test(n)}function j(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function P(n,t){return a(n)&&a(t)&&n.startsWith(t)}function A(n){for(var t in ln){var e=ln[t];r(e)&&n(t,e)}}function S(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return r(n)?n.apply(void 0,t):n}function B(n,t){var r;return null!==(r=S(n))&&void 0!==r?r:t}function W(n,t){throw Error(B(t,n))}function k(){return null}function F(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||Array.prototype.slice.call(t))}function I(){try{return r(Proxy)}catch(n){return!1}}function J(n,t){return n={pass:n},t&&(n.message=t),n}function M(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return m(n)||n&&m(n.pass)||W("Incorrect return value for rule: "+JSON.stringify(n)),m(n)?J(n):J(n.pass,S.apply(void 0,F([n.message,t,r],e)))}function R(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=M.apply(void 0,F([pn.run({value:n},(function(){return r.apply(void 0,F([n],u))})),e,n],u))).pass){if(!x(i.message))throw i.message;W("enforce/"+e+" failed with "+JSON.stringify(n))}return t}}var r={};if(!I())return A((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=ln[r])return t(e,n,r)}});return e}function U(n){var r,e=[];return function n(u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];var a=ln[u];e.push((function(n){return M.apply(void 0,F([a.apply(void 0,F([n],i)),u,n],i))}));var s={run:function(n){return B(t(e,(function(t,e){var u,i=pn.run({value:n},(function(){return t(n)}));i.pass||e(J(!!i.pass,null!==(u=S(r,n,i.message))&&void 0!==u?u:i.message))})),J(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(r=n),s}};return I()?s=new Proxy(s,{get:function(t,r){return ln[r]?n(r):t[r]}}):(A((function(t){s[t]=n(t)})),s)}}(n)}function X(n,t){try{return n.run(t)}catch(n){return J(!1)}}function _(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=pn.run({value:e,set:!0,meta:{key:r}},(function(){return X(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return J(!0)}var z,C=Object.assign,D=e(u),G=e(i),H=e(o),K=e(s),L=e(f),Q=e(c),V=e(v),Y=e(N),Z=e(y),$=e(d),nn=e(m),tn=e(g),rn=e(b),en=e(x),un=e(O),on=e(E),an=e(a),sn=e(w),fn=e(q),cn=e(j),ln={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:K,doesNotStartWith:e(P),endsWith:s,equals:f,greaterThan:l,greaterThanOrEquals:p,gt:l,gte:p,inside:N,isArray:v,isBetween:y,isBlank:d,isBoolean:m,isEmpty:x,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:sn,isNaN:O,isNegative:E,isNotArray:V,isNotBetween:Z,isNotBlank:$,isNotBoolean:nn,isNotEmpty:en,isNotNaN:un,isNotNull:D,isNotNullish:H,isNotNumber:tn,isNotNumeric:Q,isNotString:an,isNotUndefined:G,isNull:u,isNullish:o,isNumber:g,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:on,isString:a,isTruthy:w,isUndefined:i,lengthEquals:b,lengthNotEquals:rn,lessThan:T,lessThanOrEquals:h,longerThan:function(n,t){return n.length>Number(t)},longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:T,lte:h,matches:q,notEquals:L,notInside:Y,notMatches:fn,numberEquals:j,numberNotEquals:cn,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:P},pn=function(n){function t(t,u){var i,o,a=r();return t=C({},a||{},null!==(i=S(n,t,a))&&void 0!==i?i:t),i=e.ctx=Object.freeze(t),e.ancestry.unshift(i),u=u(i),e.ancestry.shift(),e.ctx=null!==(o=e.ancestry[0])&&void 0!==o?o:null,u}function r(){return e.ctx}var e={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:r,useX:function(n){var t;return null!==(t=e.ctx)&&void 0!==t?t:W(B(n,"Context was used after it was closed"))}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?C(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:C(r,{parent:k})})),vn=(z={context:function(){return pn.useX()},extend:function(n){C(ln,n)}},I()?new Proxy(C(R,z),{get:function(n,t){return t in n?n[t]:ln[t]?U(t):void 0}}):(A((function(n){z[n]=U(n)})),z));vn.extend({isArrayOf:function(n,r){return B(t(n,(function(n,t,e){(e=pn.run({value:n,set:!0,meta:{index:e}},(function(){return X(r,n)}))).pass||t(e)})),J(!0))},loose:_,optional:function(n,t){return o(n)?J(!0):X(t,n)},shape:function(n,t){var r=_(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return J(!1);return J(!0)}}),n.partial=function(n){var t,r={};for(t in n)r[t]=vn.optional(n[t]);return r},Object.defineProperty(n,"__esModule",{value:!0})}));
1
+ "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).schema={})}(this,(function(n){function t(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 r(n){return"function"==typeof n}function e(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function u(n){return null===n}function i(n){return void 0===n}function o(n){return null===n||i(n)}function a(n){return String(n)===n}function f(n,t){return a(n)&&a(t)&&n.endsWith(t)}function s(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function l(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function p(n,t){return c(n)&&c(t)&&Number(n)>=Number(t)}function v(n){return!!Array.isArray(n)}function N(n,t){return!!(v(t)||a(t)&&a(n))&&-1!==t.indexOf(n)}function h(n,t){return c(n)&&c(t)&&Number(n)<=Number(t)}function y(n,t,r){return p(n,t)&&h(n,r)}function d(n){return o(n)||a(n)&&!n.trim()}function m(n){return!!n===n}function g(n){return"number"==typeof n}function b(n,t){return n.length===Number(t)}function x(n){if(n){if(g(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return b(n,0);if("object"==typeof n)return b(Object.keys(n),0)}return!0}function O(n){return Number.isNaN(n)}function E(n){return!!c(n)&&0>Number(n)}function w(n){return!!n}function T(n,t){if(o(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function q(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function j(n,t){return t instanceof RegExp?t.test(n):!!a(t)&&new RegExp(t).test(n)}function P(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function A(n,t){return a(n)&&a(t)&&n.startsWith(t)}function S(n){for(var t in vn){var e=vn[t];r(e)&&n(t,e)}}function B(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return r(n)?n.apply(void 0,t):n}function W(n,t){var r;return null!==(r=B(n))&&void 0!==r?r:t}function k(n,t){throw Error(W(t,n))}function F(){return null}function I(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||Array.prototype.slice.call(t))}function J(){try{return r(Proxy)}catch(n){return!1}}function M(n,t){return n={pass:n},t&&(n.message=t),n}function R(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return m(n)||n&&m(n.pass)||k("Incorrect return value for rule: "+JSON.stringify(n)),m(n)?M(n):M(n.pass,B.apply(void 0,I([n.message,t,r],e)))}function U(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=R.apply(void 0,I([Nn.run({value:n},(function(){return r.apply(void 0,I([n],u))})),e,n],u))).pass){if(!x(i.message))throw i.message;k("enforce/"+e+" failed with "+JSON.stringify(n))}return t}}var r={};if(!J())return S((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=vn[r])return t(e,n,r)}});return e}function V(n){var r,e=[];return function n(u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];var a=vn[u];e.push((function(n){return R.apply(void 0,I([a.apply(void 0,I([n],i)),u,n],i))}));var f={run:function(n){return W(t(e,(function(t,e){var u,i=Nn.run({value:n},(function(){return t(n)}));i.pass||e(M(!!i.pass,null!==(u=B(r,n,i.message))&&void 0!==u?u:i.message))})),M(!0))},test:function(n){return f.run(n).pass},message:function(n){return n&&(r=n),f}};return J()?f=new Proxy(f,{get:function(t,r){return vn[r]?n(r):t[r]}}):(S((function(t){f[t]=n(t)})),f)}}(n)}function X(n,t){try{return n.run(t)}catch(n){return M(!1)}}function _(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=Nn.run({value:e,set:!0,meta:{key:r}},(function(){return X(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return M(!0)}var z,C=Object.assign,D=e(u),G=e(i),H=e(o),K=e(f),L=e(s),Q=e(c),Y=e(v),Z=e(N),$=e(y),nn=e(d),tn=e(m),rn=e(g),en=e(b),un=e(x),on=e(O),an=e(E),fn=e(a),sn=e(w),cn=e(T),ln=e(j),pn=e(P),vn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:K,doesNotStartWith:e(A),endsWith:f,equals:s,greaterThan:l,greaterThanOrEquals:p,gt:l,gte:p,inside:N,isArray:v,isBetween:y,isBlank:d,isBoolean:m,isEmpty:x,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:sn,isNaN:O,isNegative:E,isNotArray:Y,isNotBetween:$,isNotBlank:nn,isNotBoolean:tn,isNotEmpty:un,isNotNaN:on,isNotNull:D,isNotNullish:H,isNotNumber:rn,isNotNumeric:Q,isNotString:fn,isNotUndefined:G,isNotValueOf:cn,isNull:u,isNullish:o,isNumber:g,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:an,isString:a,isTruthy:w,isUndefined:i,isValueOf:T,lengthEquals:b,lengthNotEquals:en,lessThan:q,lessThanOrEquals:h,longerThan:function(n,t){return n.length>Number(t)},longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:q,lte:h,matches:j,notEquals:L,notInside:Z,notMatches:ln,numberEquals:P,numberNotEquals:pn,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:A},Nn=function(n){function t(t,u){var i,o,a=r();return t=C({},a||{},null!==(i=B(n,t,a))&&void 0!==i?i:t),i=e.ctx=Object.freeze(t),e.ancestry.unshift(i),u=u(i),e.ancestry.shift(),e.ctx=null!==(o=e.ancestry[0])&&void 0!==o?o:null,u}function r(){return e.ctx}var e={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:r,useX:function(n){var t;return null!==(t=e.ctx)&&void 0!==t?t:k(W(n,"Context was used after it was closed"))}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?C(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:C(r,{parent:F})})),hn=(z={context:function(){return Nn.useX()},extend:function(n){C(vn,n)}},J()?new Proxy(C(U,z),{get:function(n,t){return t in n?n[t]:vn[t]?V(t):void 0}}):(S((function(n){z[n]=V(n)})),C(U,z)));hn.extend({isArrayOf:function(n,r){return W(t(n,(function(n,t,e){(e=Nn.run({value:n,set:!0,meta:{index:e}},(function(){return X(r,n)}))).pass||t(e)})),M(!0))},loose:_,optional:function(n,t){return o(n)?M(!0):X(t,n)},shape:function(n,t){var r=_(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return M(!1);return M(!0)}}),n.partial=function(n){var t,r={};for(t in n)r[t]=hn.optional(n[t]);return r},Object.defineProperty(n,"__esModule",{value:!0})}));
@@ -179,6 +179,19 @@
179
179
  }
180
180
  var isFalsy = bindNot(isTruthy);
181
181
 
182
+ function isValueOf(value, objectToCheck) {
183
+ if (isNullish(objectToCheck)) {
184
+ return false;
185
+ }
186
+ for (var key in objectToCheck) {
187
+ if (objectToCheck[key] === value) {
188
+ return true;
189
+ }
190
+ }
191
+ return false;
192
+ }
193
+ var isNotValueOf = bindNot(isValueOf);
194
+
182
195
  function lessThan(value, lt) {
183
196
  return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
184
197
  }
@@ -265,6 +278,7 @@
265
278
  isNotNumeric: isNotNumeric,
266
279
  isNotString: isNotString,
267
280
  isNotUndefined: isNotUndefined,
281
+ isNotValueOf: isNotValueOf,
268
282
  isNull: isNull,
269
283
  isNullish: isNullish,
270
284
  isNumber: isNumber,
@@ -274,6 +288,7 @@
274
288
  isString: isStringValue,
275
289
  isTruthy: isTruthy,
276
290
  isUndefined: isUndefined,
291
+ isValueOf: isValueOf,
277
292
  lengthEquals: lengthEquals,
278
293
  lengthNotEquals: lengthNotEquals,
279
294
  lessThan: lessThan,
@@ -647,7 +662,7 @@
647
662
  // Only on the first rule access - start the chain of calls
648
663
  target[ruleName] = genEnforceLazy(ruleName);
649
664
  });
650
- return target;
665
+ return assign(enforceEager, target);
651
666
  }
652
667
  return new Proxy(assign(enforceEager, target), {
653
668
  get: function (target, key) {
@@ -2311,7 +2326,7 @@
2311
2326
  ctx.currentTest.warn();
2312
2327
  }
2313
2328
 
2314
- var VERSION = "4.0.2-dev-6e9534";
2329
+ var VERSION = "4.0.2-dev-72921c";
2315
2330
 
2316
2331
  exports.VERSION = VERSION;
2317
2332
  exports.context = context;
@@ -1 +1 @@
1
- "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return"function"==typeof n}function e(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function r(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function a(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function l(n,t){return c(n)&&c(t)&&Number(n)>=Number(t)}function p(n){return!!Array.isArray(n)}function d(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function v(n,t){return c(n)&&c(t)&&Number(n)<=Number(t)}function h(n,t,e){return l(n,t)&&v(n,e)}function g(n){return i(n)||o(n)&&!n.trim()}function m(n){return!!n===n}function y(n){return"number"==typeof n}function N(n,t){return n.length===Number(t)}function E(n){if(n){if(y(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return N(n,0);if("object"==typeof n)return N(Object.keys(n),0)}return!0}function b(n){return Number.isNaN(n)}function C(n){return!!c(n)&&0>Number(n)}function T(n){return!!n}function O(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function k(n,t){return n.length>Number(t)}function w(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function S(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function P(n,t){return o(n)&&o(t)&&n.startsWith(t)}function x(n){for(var e in lt){var r=lt[e];t(r)&&n(e,r)}}function I(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return t(n)?n.apply(void 0,e):n}function F(n,t){var e;return null!==(e=I(n))&&void 0!==e?e:t}function W(n,t){throw Error(F(t,n))}function X(n,t){setTimeout((function(){W(n,t)}),0)}function A(n){function t(t,u){var i,o,s=e();return t=Bn({},s||{},null!==(i=I(n,t,s))&&void 0!==i?i:t),i=r.ctx=Object.freeze(t),r.ancestry.unshift(i),u=u(i),r.ancestry.shift(),r.ctx=null!==(o=r.ancestry[0])&&void 0!==o?o:null,u}function e(){return r.ctx}var r={ancestry:[]};return{bind:function(n,e){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return t(n,(function(){return e.apply(void 0,r)}))}},run:t,use:e,useX:function(n){var t;return null!==(t=r.ctx)&&void 0!==t?t:W(F(n,"Context was used after it was closed"))}}}function _(){return null}function D(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function L(){try{return t(Proxy)}catch(n){return!1}}function U(n,t){return n={pass:n},t&&(n.message=t),n}function R(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return m(n)||n&&m(n.pass)||W("Incorrect return value for rule: "+JSON.stringify(n)),m(n)?U(n):U(n.pass,I.apply(void 0,D([n.message,t,e],r)))}function M(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=R.apply(void 0,D([pt.run({value:n},(function(){return e.apply(void 0,D([n],u))})),r,n],u))).pass){if(!E(i.message))throw i.message;W("enforce/"+r+" failed with "+JSON.stringify(n))}return t}}var e={};if(!L())return x((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=lt[e])return t(r,n,e)}});return r}function j(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function G(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=lt[r];e.push((function(n){return R.apply(void 0,D([o.apply(void 0,D([n],u)),r,n],u))}));var s={run:function(n){return F(j(e,(function(e,r){var u,i=pt.run({value:n},(function(){return e(n)}));i.pass||r(U(!!i.pass,null!==(u=I(t,n,i.message))&&void 0!==u?u:i.message))})),U(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return L()?s=new Proxy(s,{get:function(t,e){return lt[e]?n(e):t[e]}}):(x((function(t){s[t]=n(t)})),s)}}(n)}function q(n){function e(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(e,r){var o=u.references[e];u.references[e]=r,t(e=i[e][1])&&e(r,o),t(n)&&n()}var u={references:[]},i=[];return{registerStateKey:function(n,t){var r=i.length;return i.push([n,t]),e(r,n)},reset:function(){var n=u.references;u.references=[],i.forEach((function(t,r){return e(r,t[0],n[r])}))}}}function B(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function H(n){return(n=[].concat(n))[n.length-1]}function K(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return H(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,H(t)},removeLevel:function(){t.pop()},reset:n}}function V(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(V(u,t)):(u=t(u),Hn(u)&&e.push(u))}return e}function Y(n){return[].concat(n).reduce((function(n,t){return p(t)?n.concat(Y(t)):[].concat(n).concat(t)}),[])}function J(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=F(n[r],[]),n=n[r]}return n}function z(n){void 0===n&&(n=1);var t=[],e=function(r,u){var i=e.get(r);return i?i[1]:(u=u(),t.unshift([r.concat(),u]),k(t,n)&&(t.length=n),u)};return e.invalidate=function(n){var e=t.findIndex((function(t){var e=t[0];return N(n,e.length)&&n.every((function(n,t){return n===e[t]}))}));-1<e&&t.splice(e,1)},e.get=function(n){return t[t.findIndex((function(t){var e=t[0];return N(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))]||null},e}function Q(){return mt.useX().stateRef}function Z(){return Q().testObjects()}function $(){(0,Z()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function nn(n){(0,Z()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function tn(){return Y(V(Z()[0].current,(function(n){return n.isPending()?n:null})))}function en(){var n=Z()[0].current;return yt([n],(function(){return Y(n)}))}function rn(){return mt.useX().testCursor.getCursor()}function un(){return mt.useX().testCursor.next()}function on(n,e){if(n=void 0===(n=n.type)?Gn.DEFAULT:n,t(e)){var r={current:{},prev:{}},u=rn();return mt.run({isolate:{type:n,keys:r}},(function(){mt.useX().testCursor.addLevel(),r.prev=function(){var n=Z()[0].prev;return[].concat(J(n,rn())).reduce((function(n,t){return t instanceof Et&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),nn((function(n){return J(n,u)[H(u)]=[],n}));var n=e();return mt.useX().testCursor.removeLevel(),un(),n}))}}function sn(n,t){return!(!t||n.fieldName!==t)}function an(n){var t=tn();return!E(t)&&(n?t.some((function(t){return sn(t,n)})):ut(t))}function cn(n,t){function e(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e("errorCount","errors"):t.isWarning()&&e("warnCount","warnings")),i}function fn(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){if(u&&e.groupName!==u)var r=!0;else i&&!sn(e,i)?r=!0:(r=e.warns(),r="warnings"===n!=!!r);return r||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),dt({},i&&((r={})[i]=[],r)))}function ln(n){return dn("errors",n)}function pn(n){return dn("warnings",n)}function dn(n,t){return n=fn(n,en(),{fieldName:t}),t?n[t]:n}function vn(n,t){return n=gn("errors",n,t),t?n[t]:n}function hn(n,t){return n=gn("warnings",n,t),t?n[t]:n}function gn(n,t,e){return t||W("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),fn(n,en(),{group:t,fieldName:e})}function mn(n,t,e){return(e=!n.hasFailures()||e&&!sn(n,e))||(e="warnings"===t!=!!(n=n.warns())),!e}function yn(n){return En("errors",n)}function Nn(n){return En("warnings",n)}function En(n,t){return en().some((function(e){return mn(e,n,t)}))}function bn(n,t){return Tn("errors",n,t)}function Cn(n,t){return Tn("warnings",n,t)}function Tn(n,t,e){return en().some((function(r){return t===r.groupName&&mn(r,n,e)}))}function On(){var n=en(),t={stateRef:Q()};return xt([n],mt.bind(t,(function(){var n=Q().suiteName()[0];return Bn(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return en().forEach((function(t){var e=t.fieldName,r=t.groupName;n.tests[e]=cn(n.tests,t),r&&(n.groups[r]=n.groups[r]||{},n.groups[r][e]=cn(n.groups[r],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:mt.bind(t,ln),getErrorsByGroup:mt.bind(t,vn),getWarnings:mt.bind(t,pn),getWarningsByGroup:mt.bind(t,hn),hasErrors:mt.bind(t,yn),hasErrorsByGroup:mt.bind(t,bn),hasWarnings:mt.bind(t,Nn),hasWarningsByGroup:mt.bind(t,Cn),isValid:mt.bind(t,(function(n){var t=On(),e=en().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(e=!!n&&!!e[n])?n=!0:t.hasErrors(n)?n=!1:n=!(E(e=en())||n&&E(t.tests[n])||function(n){var t=Q().optionalFields()[0];return ut(tn().filter((function(e){return!(n&&!sn(e,n))&&!0!==t[e.fieldName]})))}(n))&&function(n){var t=en(),e=Q().optionalFields()[0];return t.every((function(t){return!(!n||sn(t,n))||!0===e[t.fieldName]||t.isTested()||t.isOmitted()}))}(n),n})),suiteName:n})})))}function kn(){var n=en(),t={stateRef:Q()};return It([n],mt.bind(t,(function(){return Bn({},On(),{done:mt.bind(t,Ft)})})))}function wn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!E(r.tests[e].testCount)))}function Sn(n){return!(an()&&(!n||an(n)))}function Pn(n,t){var e=mt.bind({},n);(0,Q().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function xn(n){return n.forEach((function(n){return n()}))}function In(){var n=function(){var n={};return{emit:function(t,e){n[t]&&n[t].forEach((function(n){n(e)}))},on:function(t,e){return n[t]||(n[t]=[]),n[t].push(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(Nt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var t=Q().testCallbacks()[0].fieldCallbacks;n&&!an(n)&&p(t[n])&&xn(t[n]),n=Q().testCallbacks()[0].doneCallbacks,an()||xn(n)}})),n.on(Nt.SUITE_COMPLETED,(function(){!function(){var n=Q().optionalFields()[0];if(!E(n)){var e={};nn((function(r){return V(r,(function(r){var u=r.fieldName;if(e.hasOwnProperty(u))e[r.fieldName]&&r.omit();else{var i=n[u];t(i)&&(e[u]=i(),e[r.fieldName]&&r.omit())}return r}))}))}}()})),n.on(Nt.REMOVE_FIELD,(function(n){en().forEach((function(t){sn(t,n)&&(t.cancel(),function(n){nn((function(t){return V(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n}function Fn(){var n=mt.useX();return n.bus||W(),n.bus}function Wn(n){return An(0,"tests",n)}function Xn(n){return An(1,"tests",n)}function An(n,t,e){var r=mt.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function _n(n){for(var t in n)if(!0===n[t])return!0;return!1}function Dn(n){W("Wrong arguments passed to group. Group "+n+".")}function Ln(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Fn().emit,i=Q(),s=mt.bind({stateRef:i},(function(){$(),u(Nt.TEST_COMPLETED,n)}));i=mt.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=o(t)?t:r,n.fail(),s())}));try{e.then(s,i)}catch(n){i()}}}function Un(n){var t=rn();nn((function(e){return J(e,t)[H(t)]=n,e}))}function Rn(n){var e=Z()[0].prev;if(E(e))Un(n),e=n;else{var r=rn();if(e=J(e,r)[H(r)],i(n.key))!ut(r=e)||r.fieldName===n.fieldName&&r.groupName===n.groupName||(mt.useX().isolate.type!==Gn.EACH&&X("Vest Critical Error: Tests called in different order than previous run.\n expected: "+e.fieldName+"\n received: "+n.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.'),function(){var n=Z(),t=n[1],e=n[0].prev;n=J(e,rn());var r=mt.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),e=null),Un(e=F(e,n));else{e=n.key;var s=mt.useX().isolate.keys.prev[e];r=n,s&&(r=s),s=r;var a=mt.useX().isolate.keys.current;i(a[e])?a[e]=s:X('Encountered the same test key "'+e+"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."),Un(e=r)}}if(mt.useX().omitted)return e.omit(),un(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,mt.useX().skipped)return!0;var e=mt.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){n:{var o=mt.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(o,n))var s=!1===o[n];else{for(s in o)if(!0===o[s]){s=!0;break n}s=!1}}if(s)return!0;if(!0===r.groups[n])return!(i||!_n(u)&&!1!==u[t])}r=mt.useX().exclusion;n:{for(a in(s=mt.useX().exclusion).groups)if(s.groups[a]){var a=!0;break n}a=!1}return!(!a||n&&n in r.groups&&r.groups[n])||!i&&!!_n(u)&&!I(e[t])}(n))return e.skip(!!mt.useX().skipped),un(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),Un(n),un(),n.isUntested()){e=Fn(),r=function(n){return mt.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){t=e,u(n.message)&&o(t)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),Ln(n)):e.emit(Nt.TEST_COMPLETED,n)}catch(t){W("Your test function "+n.fieldName+' returned a value. Only "false" or Promise returns are supported.')}}else(e=n.asyncTest)&&t(e.then)&&(n.setPending(),Ln(n));return n}function Mn(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:D([void 0],e);e=u[0],r=u[1],u=u[2],st(n)&&jn("fieldName","string"),t(r)||jn("Test callback","function");var i=mt.useX();return Rn(e=new Et(n,r,{message:e,groupName:i.groupName,key:u}))}function jn(n,t){W("Incompatible params passed to test function. "+n+" must be a "+t)}var Gn,qn,Bn=Object.assign,Hn=e(r),Kn=e(u),Vn=e(i),Yn=e(s),Jn=e(a),zn=e(c),Qn=e(p),Zn=e(d),$n=e(h),nt=e(g),tt=e(m),et=e(y),rt=e(N),ut=e(E),it=e(b),ot=e(C),st=e(o),at=e(T),ct=e(w),ft=e(S),lt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Yn,doesNotStartWith:e(P),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:l,gt:f,gte:l,inside:d,isArray:p,isBetween:h,isBlank:g,isBoolean:m,isEmpty:E,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:at,isNaN:b,isNegative:C,isNotArray:Qn,isNotBetween:$n,isNotBlank:nt,isNotBoolean:tt,isNotEmpty:ut,isNotNaN:it,isNotNull:Hn,isNotNullish:Vn,isNotNumber:et,isNotNumeric:zn,isNotString:st,isNotUndefined:Kn,isNull:r,isNullish:i,isNumber:y,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:ot,isString:o,isTruthy:T,isUndefined:u,lengthEquals:N,lengthNotEquals:rt,lessThan:O,lessThanOrEquals:v,longerThan:k,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:O,lte:v,matches:w,notEquals:Jn,notInside:Zn,notMatches:ct,numberEquals:S,numberNotEquals:ft,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:P},pt=A((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?Bn(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:Bn(e,{parent:_})})),dt=function(){return(dt=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)},vt=(qn={context:function(){return pt.useX()},extend:function(n){Bn(lt,n)}},L()?new Proxy(Bn(M,qn),{get:function(n,t){return t in n?n[t]:lt[t]?G(t):void 0}}):(x((function(n){qn[n]=G(n)})),qn)),ht=function(n){return function(){return""+n++}}(0);!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.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(Gn||(Gn={}));var gt,mt=A((function(n,t){return t?null:Bn({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:Gn.DEFAULT,keys:{current:{},prev:{}}},testCursor:K()},n)})),yt=z();!function(n){n.Error="error",n.Warning="warning"}(gt||(gt={}));var Nt,Et=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=ht(),this.severity=gt.Error,this.status=bt,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,u(this.message)&&o(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Pt||(this.status=n)},n.prototype.warns=function(){return this.severity===gt.Warning},n.prototype.setPending=function(){this.setStatus(wt)},n.prototype.fail=function(){this.setStatus(this.warns()?Ot:Tt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(kt)},n.prototype.warn=function(){this.severity=gt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(Ct)},n.prototype.cancel=function(){this.setStatus(St),$()},n.prototype.omit=function(){this.setStatus(Pt)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.status===wt},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===Pt},n.prototype.isUntested=function(){return this.status===bt},n.prototype.isFailing=function(){return this.status===Tt},n.prototype.isCanceled=function(){return this.status===St},n.prototype.isSkipped=function(){return this.status===Ct},n.prototype.isPassing=function(){return this.status===kt},n.prototype.isWarning=function(){return this.status===Ot},n}(),bt="UNTESTED",Ct="SKIPPED",Tt="FAILED",Ot="WARNING",kt="PASSING",wt="PENDING",St="CANCELED",Pt="OMITTED",xt=z(20),It=z(20),Ft=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=kn(),wn(e,n,t))return t;var r=function(){return e(On())};return Sn(n)?(r(),t):(Pn(r,n),t)};!function(n){n.TEST_COMPLETED="test_completed",n.REMOVE_FIELD="remove_field",n.SUITE_COMPLETED="suite_completed"}(Nt||(Nt={})),Wn.group=function(n){return An(0,"groups",n)},Xn.group=function(n){return An(1,"groups",n)};var Wt=Bn(Mn,{memo:function(n){var t=z(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=mt.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[Q().suiteId()[0],e,u].concat(i),null===(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):Rn(r[1])}}(Mn)});n.VERSION="4.0.2-dev-6e9534",n.context=mt,n.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],t(r)||W("vest.create: Expected callback to be a function.");var u=In(),i=q();return n={stateRef:B(i,{suiteId:ht(),suiteName:n}),bus:u},Bn(mt.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),on({type:Gn.SUITE},(function(){r.apply(void 0,n)})),u.emit(Nt.SUITE_COMPLETED),kn()})),{get:mt.bind(n,On),reset:i.reset,remove:mt.bind(n,(function(n){u.emit(Nt.REMOVE_FIELD,n)}))})},n.each=function(n,e){t(e)||W("callback must be a function"),on({type:Gn.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.enforce=vt,n.group=function(n,e){o(n)||Dn("name must be a string"),t(e)||Dn("callback must be a function"),on({type:Gn.GROUP},(function(){mt.run({groupName:n},e)}))},n.include=function(n){function t(t){var e=mt.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?F(r.tests[n],!0):o(t)?!!r.tests[t]:I(t,I(On))}}var e=mt.useX();return n?(e.inclusion[n]=F(e.exclusion.tests[n],!0),{when:t}):{when:t}},n.omitWhen=function(n,t){on({type:Gn.OMIT_WHEN},(function(){mt.run({omitted:I(n,I(On))},(function(){return t()}))}))},n.only=Wn,n.optional=function(n){(0,Q().optionalFields()[1])((function(t){if(p(n)||o(n))[].concat(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},n.skip=Xn,n.skipWhen=function(n,t){on({type:Gn.SKIP_WHEN},(function(){mt.run({skipped:I(n,I(On))},(function(){return t()}))}))},n.test=Wt,n.warn=function(){var n=mt.useX("warn hook called outside of a running suite.");n.currentTest||W("warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
1
+ "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return"function"==typeof n}function e(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function r(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function a(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function l(n,t){return c(n)&&c(t)&&Number(n)>=Number(t)}function p(n){return!!Array.isArray(n)}function d(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function v(n,t){return c(n)&&c(t)&&Number(n)<=Number(t)}function h(n,t,e){return l(n,t)&&v(n,e)}function g(n){return i(n)||o(n)&&!n.trim()}function m(n){return!!n===n}function y(n){return"number"==typeof n}function N(n,t){return n.length===Number(t)}function E(n){if(n){if(y(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return N(n,0);if("object"==typeof n)return N(Object.keys(n),0)}return!0}function b(n){return Number.isNaN(n)}function C(n){return!!c(n)&&0>Number(n)}function T(n){return!!n}function O(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function k(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function w(n,t){return n.length>Number(t)}function S(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function P(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function x(n,t){return o(n)&&o(t)&&n.startsWith(t)}function I(n){for(var e in dt){var r=dt[e];t(r)&&n(e,r)}}function F(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return t(n)?n.apply(void 0,e):n}function W(n,t){var e;return null!==(e=F(n))&&void 0!==e?e:t}function X(n,t){throw Error(W(t,n))}function A(n,t){setTimeout((function(){X(n,t)}),0)}function _(n){function t(t,u){var i,o,s=e();return t=Hn({},s||{},null!==(i=F(n,t,s))&&void 0!==i?i:t),i=r.ctx=Object.freeze(t),r.ancestry.unshift(i),u=u(i),r.ancestry.shift(),r.ctx=null!==(o=r.ancestry[0])&&void 0!==o?o:null,u}function e(){return r.ctx}var r={ancestry:[]};return{bind:function(n,e){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return t(n,(function(){return e.apply(void 0,r)}))}},run:t,use:e,useX:function(n){var t;return null!==(t=r.ctx)&&void 0!==t?t:X(W(n,"Context was used after it was closed"))}}}function D(){return null}function L(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function U(){try{return t(Proxy)}catch(n){return!1}}function R(n,t){return n={pass:n},t&&(n.message=t),n}function M(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return m(n)||n&&m(n.pass)||X("Incorrect return value for rule: "+JSON.stringify(n)),m(n)?R(n):R(n.pass,F.apply(void 0,L([n.message,t,e],r)))}function j(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=M.apply(void 0,L([vt.run({value:n},(function(){return e.apply(void 0,L([n],u))})),r,n],u))).pass){if(!E(i.message))throw i.message;X("enforce/"+r+" failed with "+JSON.stringify(n))}return t}}var e={};if(!U())return I((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=dt[e])return t(r,n,e)}});return r}function G(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function q(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=dt[r];e.push((function(n){return M.apply(void 0,L([o.apply(void 0,L([n],u)),r,n],u))}));var s={run:function(n){return W(G(e,(function(e,r){var u,i=vt.run({value:n},(function(){return e(n)}));i.pass||r(R(!!i.pass,null!==(u=F(t,n,i.message))&&void 0!==u?u:i.message))})),R(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return U()?s=new Proxy(s,{get:function(t,e){return dt[e]?n(e):t[e]}}):(I((function(t){s[t]=n(t)})),s)}}(n)}function B(n){function e(n,t,e){return u.references.push(),r(n,F(t,e)),function(){return[u.references[n],function(t){return r(n,F(t,u.references[n]))}]}}function r(e,r){var o=u.references[e];u.references[e]=r,t(e=i[e][1])&&e(r,o),t(n)&&n()}var u={references:[]},i=[];return{registerStateKey:function(n,t){var r=i.length;return i.push([n,t]),e(r,n)},reset:function(){var n=u.references;u.references=[],i.forEach((function(t,r){return e(r,t[0],n[r])}))}}}function H(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function K(n){return(n=[].concat(n))[n.length-1]}function V(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return K(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,K(t)},removeLevel:function(){t.pop()},reset:n}}function Y(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(Y(u,t)):(u=t(u),Kn(u)&&e.push(u))}return e}function J(n){return[].concat(n).reduce((function(n,t){return p(t)?n.concat(J(t)):[].concat(n).concat(t)}),[])}function z(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=W(n[r],[]),n=n[r]}return n}function Q(n){void 0===n&&(n=1);var t=[],e=function(r,u){var i=e.get(r);return i?i[1]:(u=u(),t.unshift([r.concat(),u]),w(t,n)&&(t.length=n),u)};return e.invalidate=function(n){var e=t.findIndex((function(t){var e=t[0];return N(n,e.length)&&n.every((function(n,t){return n===e[t]}))}));-1<e&&t.splice(e,1)},e.get=function(n){return t[t.findIndex((function(t){var e=t[0];return N(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))]||null},e}function Z(){return Nt.useX().stateRef}function $(){return Z().testObjects()}function nn(){(0,$()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function tn(n){(0,$()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function en(){return J(Y($()[0].current,(function(n){return n.isPending()?n:null})))}function rn(){var n=$()[0].current;return Et([n],(function(){return J(n)}))}function un(){return Nt.useX().testCursor.getCursor()}function on(){return Nt.useX().testCursor.next()}function sn(n,e){if(n=void 0===(n=n.type)?qn.DEFAULT:n,t(e)){var r={current:{},prev:{}},u=un();return Nt.run({isolate:{type:n,keys:r}},(function(){Nt.useX().testCursor.addLevel(),r.prev=function(){var n=$()[0].prev;return[].concat(z(n,un())).reduce((function(n,t){return t instanceof Ct&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),tn((function(n){return z(n,u)[K(u)]=[],n}));var n=e();return Nt.useX().testCursor.removeLevel(),on(),n}))}}function an(n,t){return!(!t||n.fieldName!==t)}function cn(n){var t=en();return!E(t)&&(n?t.some((function(t){return an(t,n)})):it(t))}function fn(n,t){function e(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e("errorCount","errors"):t.isWarning()&&e("warnCount","warnings")),i}function ln(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){if(u&&e.groupName!==u)var r=!0;else i&&!an(e,i)?r=!0:(r=e.warns(),r="warnings"===n!=!!r);return r||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),ht({},i&&((r={})[i]=[],r)))}function pn(n){return vn("errors",n)}function dn(n){return vn("warnings",n)}function vn(n,t){return n=ln(n,rn(),{fieldName:t}),t?n[t]:n}function hn(n,t){return n=mn("errors",n,t),t?n[t]:n}function gn(n,t){return n=mn("warnings",n,t),t?n[t]:n}function mn(n,t,e){return t||X("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),ln(n,rn(),{group:t,fieldName:e})}function yn(n,t,e){return(e=!n.hasFailures()||e&&!an(n,e))||(e="warnings"===t!=!!(n=n.warns())),!e}function Nn(n){return bn("errors",n)}function En(n){return bn("warnings",n)}function bn(n,t){return rn().some((function(e){return yn(e,n,t)}))}function Cn(n,t){return On("errors",n,t)}function Tn(n,t){return On("warnings",n,t)}function On(n,t,e){return rn().some((function(r){return t===r.groupName&&yn(r,n,e)}))}function kn(){var n=rn(),t={stateRef:Z()};return Ft([n],Nt.bind(t,(function(){var n=Z().suiteName()[0];return Hn(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return rn().forEach((function(t){var e=t.fieldName,r=t.groupName;n.tests[e]=fn(n.tests,t),r&&(n.groups[r]=n.groups[r]||{},n.groups[r][e]=fn(n.groups[r],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:Nt.bind(t,pn),getErrorsByGroup:Nt.bind(t,hn),getWarnings:Nt.bind(t,dn),getWarningsByGroup:Nt.bind(t,gn),hasErrors:Nt.bind(t,Nn),hasErrorsByGroup:Nt.bind(t,Cn),hasWarnings:Nt.bind(t,En),hasWarningsByGroup:Nt.bind(t,Tn),isValid:Nt.bind(t,(function(n){var t=kn(),e=rn().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(e=!!n&&!!e[n])?n=!0:t.hasErrors(n)?n=!1:n=!(E(e=rn())||n&&E(t.tests[n])||function(n){var t=Z().optionalFields()[0];return it(en().filter((function(e){return!(n&&!an(e,n))&&!0!==t[e.fieldName]})))}(n))&&function(n){var t=rn(),e=Z().optionalFields()[0];return t.every((function(t){return!(!n||an(t,n))||!0===e[t.fieldName]||t.isTested()||t.isOmitted()}))}(n),n})),suiteName:n})})))}function wn(){var n=rn(),t={stateRef:Z()};return Wt([n],Nt.bind(t,(function(){return Hn({},kn(),{done:Nt.bind(t,Xt)})})))}function Sn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!E(r.tests[e].testCount)))}function Pn(n){return!(cn()&&(!n||cn(n)))}function xn(n,t){var e=Nt.bind({},n);(0,Z().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function In(n){return n.forEach((function(n){return n()}))}function Fn(){var n=function(){var n={};return{emit:function(t,e){n[t]&&n[t].forEach((function(n){n(e)}))},on:function(t,e){return n[t]||(n[t]=[]),n[t].push(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(bt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var t=Z().testCallbacks()[0].fieldCallbacks;n&&!cn(n)&&p(t[n])&&In(t[n]),n=Z().testCallbacks()[0].doneCallbacks,cn()||In(n)}})),n.on(bt.SUITE_COMPLETED,(function(){!function(){var n=Z().optionalFields()[0];if(!E(n)){var e={};tn((function(r){return Y(r,(function(r){var u=r.fieldName;if(e.hasOwnProperty(u))e[r.fieldName]&&r.omit();else{var i=n[u];t(i)&&(e[u]=i(),e[r.fieldName]&&r.omit())}return r}))}))}}()})),n.on(bt.REMOVE_FIELD,(function(n){rn().forEach((function(t){an(t,n)&&(t.cancel(),function(n){tn((function(t){return Y(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n}function Wn(){var n=Nt.useX();return n.bus||X(),n.bus}function Xn(n){return _n(0,"tests",n)}function An(n){return _n(1,"tests",n)}function _n(n,t,e){var r=Nt.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Dn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Ln(n){X("Wrong arguments passed to group. Group "+n+".")}function Un(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Wn().emit,i=Z(),s=Nt.bind({stateRef:i},(function(){nn(),u(bt.TEST_COMPLETED,n)}));i=Nt.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=o(t)?t:r,n.fail(),s())}));try{e.then(s,i)}catch(n){i()}}}function Rn(n){var t=un();tn((function(e){return z(e,t)[K(t)]=n,e}))}function Mn(n){var e=$()[0].prev;if(E(e))Rn(n),e=n;else{var r=un();if(e=z(e,r)[K(r)],i(n.key))!it(r=e)||r.fieldName===n.fieldName&&r.groupName===n.groupName||(Nt.useX().isolate.type!==qn.EACH&&A("Vest Critical Error: Tests called in different order than previous run.\n expected: "+e.fieldName+"\n received: "+n.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.'),function(){var n=$(),t=n[1],e=n[0].prev;n=z(e,un());var r=Nt.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),e=null),Rn(e=W(e,n));else{e=n.key;var s=Nt.useX().isolate.keys.prev[e];r=n,s&&(r=s),s=r;var a=Nt.useX().isolate.keys.current;i(a[e])?a[e]=s:A('Encountered the same test key "'+e+"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."),Rn(e=r)}}if(Nt.useX().omitted)return e.omit(),on(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,Nt.useX().skipped)return!0;var e=Nt.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){n:{var o=Nt.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(o,n))var s=!1===o[n];else{for(s in o)if(!0===o[s]){s=!0;break n}s=!1}}if(s)return!0;if(!0===r.groups[n])return!(i||!Dn(u)&&!1!==u[t])}r=Nt.useX().exclusion;n:{for(a in(s=Nt.useX().exclusion).groups)if(s.groups[a]){var a=!0;break n}a=!1}return!(!a||n&&n in r.groups&&r.groups[n])||!i&&!!Dn(u)&&!F(e[t])}(n))return e.skip(!!Nt.useX().skipped),on(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),Rn(n),on(),n.isUntested()){e=Wn(),r=function(n){return Nt.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){t=e,u(n.message)&&o(t)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),Un(n)):e.emit(bt.TEST_COMPLETED,n)}catch(t){X("Your test function "+n.fieldName+' returned a value. Only "false" or Promise returns are supported.')}}else(e=n.asyncTest)&&t(e.then)&&(n.setPending(),Un(n));return n}function jn(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:L([void 0],e);e=u[0],r=u[1],u=u[2],at(n)&&Gn("fieldName","string"),t(r)||Gn("Test callback","function");var i=Nt.useX();return Mn(e=new Ct(n,r,{message:e,groupName:i.groupName,key:u}))}function Gn(n,t){X("Incompatible params passed to test function. "+n+" must be a "+t)}var qn,Bn,Hn=Object.assign,Kn=e(r),Vn=e(u),Yn=e(i),Jn=e(s),zn=e(a),Qn=e(c),Zn=e(p),$n=e(d),nt=e(h),tt=e(g),et=e(m),rt=e(y),ut=e(N),it=e(E),ot=e(b),st=e(C),at=e(o),ct=e(T),ft=e(O),lt=e(S),pt=e(P),dt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Jn,doesNotStartWith:e(x),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:l,gt:f,gte:l,inside:d,isArray:p,isBetween:h,isBlank:g,isBoolean:m,isEmpty:E,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:ct,isNaN:b,isNegative:C,isNotArray:Zn,isNotBetween:nt,isNotBlank:tt,isNotBoolean:et,isNotEmpty:it,isNotNaN:ot,isNotNull:Kn,isNotNullish:Yn,isNotNumber:rt,isNotNumeric:Qn,isNotString:at,isNotUndefined:Vn,isNotValueOf:ft,isNull:r,isNullish:i,isNumber:y,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:st,isString:o,isTruthy:T,isUndefined:u,isValueOf:O,lengthEquals:N,lengthNotEquals:ut,lessThan:k,lessThanOrEquals:v,longerThan:w,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:k,lte:v,matches:S,notEquals:zn,notInside:$n,notMatches:lt,numberEquals:P,numberNotEquals:pt,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:x},vt=_((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?Hn(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:Hn(e,{parent:D})})),ht=function(){return(ht=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)},gt=(Bn={context:function(){return vt.useX()},extend:function(n){Hn(dt,n)}},U()?new Proxy(Hn(j,Bn),{get:function(n,t){return t in n?n[t]:dt[t]?q(t):void 0}}):(I((function(n){Bn[n]=q(n)})),Hn(j,Bn))),mt=function(n){return function(){return""+n++}}(0);!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.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(qn||(qn={}));var yt,Nt=_((function(n,t){return t?null:Hn({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:qn.DEFAULT,keys:{current:{},prev:{}}},testCursor:V()},n)})),Et=Q();!function(n){n.Error="error",n.Warning="warning"}(yt||(yt={}));var bt,Ct=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=mt(),this.severity=yt.Error,this.status=Tt,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,u(this.message)&&o(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==It||(this.status=n)},n.prototype.warns=function(){return this.severity===yt.Warning},n.prototype.setPending=function(){this.setStatus(Pt)},n.prototype.fail=function(){this.setStatus(this.warns()?wt:kt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(St)},n.prototype.warn=function(){this.severity=yt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(Ot)},n.prototype.cancel=function(){this.setStatus(xt),nn()},n.prototype.omit=function(){this.setStatus(It)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.status===Pt},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===It},n.prototype.isUntested=function(){return this.status===Tt},n.prototype.isFailing=function(){return this.status===kt},n.prototype.isCanceled=function(){return this.status===xt},n.prototype.isSkipped=function(){return this.status===Ot},n.prototype.isPassing=function(){return this.status===St},n.prototype.isWarning=function(){return this.status===wt},n}(),Tt="UNTESTED",Ot="SKIPPED",kt="FAILED",wt="WARNING",St="PASSING",Pt="PENDING",xt="CANCELED",It="OMITTED",Ft=Q(20),Wt=Q(20),Xt=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=wn(),Sn(e,n,t))return t;var r=function(){return e(kn())};return Pn(n)?(r(),t):(xn(r,n),t)};!function(n){n.TEST_COMPLETED="test_completed",n.REMOVE_FIELD="remove_field",n.SUITE_COMPLETED="suite_completed"}(bt||(bt={})),Xn.group=function(n){return _n(0,"groups",n)},An.group=function(n){return _n(1,"groups",n)};var At=Hn(jn,{memo:function(n){var t=Q(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=Nt.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[Z().suiteId()[0],e,u].concat(i),null===(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):Mn(r[1])}}(jn)});n.VERSION="4.0.2-dev-72921c",n.context=Nt,n.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],t(r)||X("vest.create: Expected callback to be a function.");var u=Fn(),i=B();return n={stateRef:H(i,{suiteId:mt(),suiteName:n}),bus:u},Hn(Nt.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),sn({type:qn.SUITE},(function(){r.apply(void 0,n)})),u.emit(bt.SUITE_COMPLETED),wn()})),{get:Nt.bind(n,kn),reset:i.reset,remove:Nt.bind(n,(function(n){u.emit(bt.REMOVE_FIELD,n)}))})},n.each=function(n,e){t(e)||X("callback must be a function"),sn({type:qn.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.enforce=gt,n.group=function(n,e){o(n)||Ln("name must be a string"),t(e)||Ln("callback must be a function"),sn({type:qn.GROUP},(function(){Nt.run({groupName:n},e)}))},n.include=function(n){function t(t){var e=Nt.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?W(r.tests[n],!0):o(t)?!!r.tests[t]:F(t,F(kn))}}var e=Nt.useX();return n?(e.inclusion[n]=W(e.exclusion.tests[n],!0),{when:t}):{when:t}},n.omitWhen=function(n,t){sn({type:qn.OMIT_WHEN},(function(){Nt.run({omitted:F(n,F(kn))},(function(){return t()}))}))},n.only=Xn,n.optional=function(n){(0,Z().optionalFields()[1])((function(t){if(p(n)||o(n))[].concat(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},n.skip=An,n.skipWhen=function(n,t){sn({type:qn.SKIP_WHEN},(function(){Nt.run({skipped:F(n,F(kn))},(function(){return t()}))}))},n.test=At,n.warn=function(){var n=Nt.useX("warn hook called outside of a running suite.");n.currentTest||X("warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.0.2-dev-6e9534",
2
+ "version": "4.0.2-dev-72921c",
3
3
  "license": "MIT",
4
4
  "name": "vest",
5
5
  "author": "ealush",
@@ -37,6 +37,7 @@ declare function isNumeric(value: string | number): boolean;
37
37
  declare function isStringValue(v: unknown): v is string;
38
38
  declare function isTruthy(value: unknown): boolean;
39
39
  declare function isUndefined(value?: unknown): boolean;
40
+ declare function isValueOf(value: any, objectToCheck: any): boolean;
40
41
  declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
41
42
  declare function lessThan(value: string | number, lt: string | number): boolean;
42
43
  declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
@@ -79,6 +80,7 @@ declare const baseRules: {
79
80
  isNotNumeric: (value: string | number) => boolean;
80
81
  isNotString: (v: unknown) => boolean;
81
82
  isNotUndefined: (value?: unknown) => boolean;
83
+ isNotValueOf: (value: any, objectToCheck: any) => boolean;
82
84
  isNull: typeof isNull;
83
85
  isNullish: typeof isNullish;
84
86
  isNumber: typeof isNumber;
@@ -88,6 +90,7 @@ declare const baseRules: {
88
90
  isString: typeof isStringValue;
89
91
  isTruthy: typeof isTruthy;
90
92
  isUndefined: typeof isUndefined;
93
+ isValueOf: typeof isValueOf;
91
94
  lengthEquals: typeof lengthEquals;
92
95
  lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
93
96
  lessThan: typeof lessThan;
@@ -37,6 +37,7 @@ declare function isNumeric(value: string | number): boolean;
37
37
  declare function isStringValue(v: unknown): v is string;
38
38
  declare function isTruthy(value: unknown): boolean;
39
39
  declare function isUndefined(value?: unknown): boolean;
40
+ declare function isValueOf(value: any, objectToCheck: any): boolean;
40
41
  declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
41
42
  declare function lessThan(value: string | number, lt: string | number): boolean;
42
43
  declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
@@ -79,6 +80,7 @@ declare const baseRules: {
79
80
  isNotNumeric: (value: string | number) => boolean;
80
81
  isNotString: (v: unknown) => boolean;
81
82
  isNotUndefined: (value?: unknown) => boolean;
83
+ isNotValueOf: (value: any, objectToCheck: any) => boolean;
82
84
  isNull: typeof isNull;
83
85
  isNullish: typeof isNullish;
84
86
  isNumber: typeof isNumber;
@@ -88,6 +90,7 @@ declare const baseRules: {
88
90
  isString: typeof isStringValue;
89
91
  isTruthy: typeof isTruthy;
90
92
  isUndefined: typeof isUndefined;
93
+ isValueOf: typeof isValueOf;
91
94
  lengthEquals: typeof lengthEquals;
92
95
  lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
93
96
  lessThan: typeof lessThan;
@@ -37,6 +37,7 @@ declare function isNumeric(value: string | number): boolean;
37
37
  declare function isStringValue(v: unknown): v is string;
38
38
  declare function isTruthy(value: unknown): boolean;
39
39
  declare function isUndefined(value?: unknown): boolean;
40
+ declare function isValueOf(value: any, objectToCheck: any): boolean;
40
41
  declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
41
42
  declare function lessThan(value: string | number, lt: string | number): boolean;
42
43
  declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
@@ -79,6 +80,7 @@ declare const baseRules: {
79
80
  isNotNumeric: (value: string | number) => boolean;
80
81
  isNotString: (v: unknown) => boolean;
81
82
  isNotUndefined: (value?: unknown) => boolean;
83
+ isNotValueOf: (value: any, objectToCheck: any) => boolean;
82
84
  isNull: typeof isNull;
83
85
  isNullish: typeof isNullish;
84
86
  isNumber: typeof isNumber;
@@ -88,6 +90,7 @@ declare const baseRules: {
88
90
  isString: typeof isStringValue;
89
91
  isTruthy: typeof isTruthy;
90
92
  isUndefined: typeof isUndefined;
93
+ isValueOf: typeof isValueOf;
91
94
  lengthEquals: typeof lengthEquals;
92
95
  lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
93
96
  lessThan: typeof lessThan;
package/types/vest.d.ts CHANGED
@@ -314,5 +314,5 @@ declare const test: typeof testBase & {
314
314
  * Sets a running test to warn only mode.
315
315
  */
316
316
  declare function warn(): void;
317
- declare const VERSION = "4.0.2-dev-6e9534";
317
+ declare const VERSION = "4.0.2-dev-72921c";
318
318
  export { test, create, each, only, skip, warn, group, optional, skipWhen, omitWhen, enforce, VERSION, context, include };