vest 4.4.0-dev-08ec91 → 4.4.2-dev-afe5de

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.
Files changed (49) hide show
  1. package/dist/cjs/classnames.development.js +9 -60
  2. package/dist/cjs/classnames.production.js +1 -1
  3. package/dist/cjs/enforce/compose.development.js +6 -53
  4. package/dist/cjs/enforce/compose.production.js +1 -1
  5. package/dist/cjs/enforce/compounds.development.js +16 -71
  6. package/dist/cjs/enforce/compounds.production.js +1 -1
  7. package/dist/cjs/enforce/schema.development.js +6 -58
  8. package/dist/cjs/enforce/schema.production.js +1 -1
  9. package/dist/cjs/parser.development.js +8 -59
  10. package/dist/cjs/parser.production.js +1 -1
  11. package/dist/cjs/promisify.development.js +2 -26
  12. package/dist/cjs/promisify.production.js +1 -1
  13. package/dist/cjs/vest.development.js +176 -390
  14. package/dist/cjs/vest.production.js +1 -1
  15. package/dist/es/classnames.development.js +1 -52
  16. package/dist/es/classnames.production.js +1 -1
  17. package/dist/es/enforce/compose.development.js +4 -51
  18. package/dist/es/enforce/compose.production.js +1 -1
  19. package/dist/es/enforce/compounds.development.js +11 -66
  20. package/dist/es/enforce/compounds.production.js +1 -1
  21. package/dist/es/enforce/schema.development.js +2 -54
  22. package/dist/es/enforce/schema.production.js +1 -1
  23. package/dist/es/parser.development.js +1 -52
  24. package/dist/es/parser.production.js +1 -1
  25. package/dist/es/promisify.development.js +1 -25
  26. package/dist/es/promisify.production.js +1 -1
  27. package/dist/es/vest.development.js +101 -315
  28. package/dist/es/vest.production.js +1 -1
  29. package/dist/umd/classnames.development.js +13 -13
  30. package/dist/umd/classnames.production.js +1 -1
  31. package/dist/umd/enforce/compose.development.js +122 -122
  32. package/dist/umd/enforce/compose.production.js +1 -1
  33. package/dist/umd/enforce/compounds.development.js +181 -185
  34. package/dist/umd/enforce/compounds.production.js +1 -1
  35. package/dist/umd/enforce/schema.development.js +133 -133
  36. package/dist/umd/enforce/schema.production.js +1 -1
  37. package/dist/umd/parser.development.js +13 -13
  38. package/dist/umd/parser.production.js +1 -1
  39. package/dist/umd/vest.development.js +361 -376
  40. package/dist/umd/vest.production.js +1 -1
  41. package/package.json +4 -3
  42. package/testUtils/mockThrowError.ts +2 -1
  43. package/testUtils/suiteDummy.ts +1 -1
  44. package/testUtils/testObjects.ts +2 -17
  45. package/types/enforce/compose.d.ts +14 -30
  46. package/types/enforce/compounds.d.ts +14 -30
  47. package/types/enforce/schema.d.ts +14 -30
  48. package/types/vest.d.ts +14 -15
  49. package/testUtils/itWithContext.ts +0 -23
@@ -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 c(n,t){return n===t}function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}function l(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}function d(n,t){return l(n,t)||f(n,t)}function p(n){return!!Array.isArray(n)}function v(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function h(n,t){return a(n)&&a(t)&&Number(n)<Number(t)}function g(n,t){return l(n,t)||h(n,t)}function N(n,t,e){return d(n,t)&&g(n,e)}function m(n){return i(n)||o(n)&&!n.trim()}function E(n){return!!n===n}function y(n){return"number"==typeof n}function b(n,t){return l(n.length,t)}function R(n){return!n||(y(n)?0===n:Object.prototype.hasOwnProperty.call(n,"length")?b(n,0):"object"==typeof n&&b(Object.keys(n),0))}function O(n,t){return n in t}function S(n){return Number.isNaN(n)}function T(n){return f(n,0)}function C(n){return!!n}function I(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function _(n,t){return f(n.length,t)}function A(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function k(n,t){return o(n)&&o(t)&&n.startsWith(t)}function L(n){for(var e in Lt){var r=Lt[e];t(r)&&n(e,r)}}function w(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=w(n))&&void 0!==e?e:t}function F(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?w(t):t)}function P(n){function t(t,u){var i,o,s=e();return t=at({},s||{},null!==(i=w(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){return F(r.ctx,W(n,"Context was used after it was closed")),r.ctx}}}function x(){return null}function U(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 X(){try{return t(Proxy)}catch(n){return!1}}function G(n,t){return n={pass:n},t&&(n.message=t),n}function D(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return F(E(n)||n&&E(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),E(n)?G(n):G(n.pass,w.apply(void 0,U([n.message,t,e],r,!1)))}function q(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return F((i=D.apply(void 0,U([wt.run({value:n},(function(){return e.apply(void 0,U([n],u,!1))})),r,n],u,!1))).pass,R(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var e={};if(!X())return L((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 K(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 D.apply(void 0,U([o.apply(void 0,U([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return W(j(e,(function(e,r){var u,i=wt.run({value:n},(function(){return e(n)}));i.pass||r(G(!!i.pass,null!==(u=w(t,n,i.message))&&void 0!==u?u:i.message))})),G(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return X()?s=new Proxy(s,{get:function(t,e){return Lt[e]?n(e):t[e]}}):(L((function(t){s[t]=n(t)})),s)}}(n)}function B(n){function t(n){return e.findIndex((function(t){var e=t[0];return b(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),_(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function H(n){return(n=[].concat(n))[n.length-1]}function M(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(M(u,t)):(u=t(u),ft(u)&&e.push(u))}return e}function V(n){return[].concat(n).reduce((function(n,t){return p(t)?n.concat(V(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]=W(n[r],[]),n=n[r]}return n}function Y(){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 z(){return xt.useX().stateRef}function Q(n){return z().optionalFields()[0][n]}function Z(n,t){(0,z().optionalFields()[1])((function(e){var r;return at(e,((r={})[n]=w(t,e[n]),r))}))}function $(n){var t;return null===(t=Q(n))||void 0===t?void 0:t[0]}function nn(){tn((function(n){return n}))}function tn(n){(0,z().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function en(){return rn().filter((function(n){return n.isPending()}))}function rn(){var n=z().testObjects()[0].current;return Ut([n],(function(){return V(n)}))}function un(n){function e(n,t,e){return u.references.push(),r(n,w(t,e)),function(){return[u.references[n],function(t){return r(n,w(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 on(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 sn(n){setTimeout((function(){throw Error(n)}),0)}function cn(){return xt.useX().testCursor.getCursor()}function an(){return xt.useX().testCursor.next()}function fn(n,e){n=void 0===(n=n.type)?ot.DEFAULT:n,F(t(e));var r={current:{},prev:{}},u=cn();return xt.run({isolate:{type:n,keys:r}},(function(){xt.useX().testCursor.addLevel(),r.prev=function(){var n=z().testObjects()[0].prev;return[].concat(J(n,cn())).reduce((function(n,t){return t instanceof Dt&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),tn((function(n){return J(n,u)[H(u)]=[],n}));var n=e();return xt.useX().testCursor.removeLevel(),an(),n}))}function ln(n){return n===Xt.ERRORS?Gt.ERROR_COUNT:Gt.WARN_COUNT}function dn(n,t){return!(!t||n.fieldName!==t)}function pn(n,t){return rn().some((function(e){return vn(e,n,t)}))}function vn(n,t,e){return(e=!n.hasFailures()||e&&!dn(n,e))||(n=n.warns(),e=t===Xt.WARNINGS!=!!n),!e}function hn(n){return!!gn(n)||!pn(Xt.ERRORS,n)&&(!R(rn())&&!function(n){return St(en().filter((function(t){return Nn(t,n)})))}(n)&&function(n){return rn().every((function(t){return!(!n||dn(t,n))||mn(t,n)}))}(n))}function gn(n){return!!n&&!0===(null===(t=Q(n))||void 0===t?void 0:t[1]);var t}function Nn(n,t){return!(t&&!dn(n,t))&&!0!==$(n.fieldName)}function mn(n,t){return!(!t||dn(n,t))||(!0===$(n.fieldName)||n.isTested()||n.isOmitted())}function En(){var n=xt.useX().summary;return F(n),n}function yn(){var n=rn(),t=at({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=bn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&hn(t.fieldName);var r=n.groups,u=t.groupName;return u&&(r[u]=r[u]||{},r[u][t.fieldName]=bn(r[u],t),e=r[u][t.fieldName],!1===r[u][t.fieldName].valid?t=!1:t=!!gn(t=t.fieldName)||!function(n,t,e){return rn().some((function(r){return!zt(r,t)&&vn(r,n,e)}))}(Xt.ERRORS,u,t)&&!function(n,t){return St(en().filter((function(e){return!zt(e,n)&&Nn(e,t)})))}(u,t)&&function(n,t){return rn().every((function(e){return!!zt(e,n)||mn(e,t)}))}(u,t),e.valid=t),n}),t),t.valid=hn(),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}(t)}function bn(n,t){function e(n){var t=ln(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||at({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(Xt.ERRORS):t.isWarning()&&e(Xt.WARNINGS)),i}function Rn(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}function On(n,t){var e,r={},u=ln(t);for(e in n)T(n[e][u])&&(r[e]=n[e][t]||[]);return r}function Sn(n){return Cn(Xt.ERRORS,n)}function Tn(n){return Cn(Xt.WARNINGS,n)}function Cn(n,t){var e=En().tests;return t?Rn(e,n,t):On(e,n)}function In(n,t){return An(n,Xt.ERRORS,t)}function _n(n,t){return An(n,Xt.WARNINGS,t)}function An(n,t,e){return n=En().groups[n],e?Rn(n,t,e):On(n,t)}function kn(n){return wn(Gt.ERROR_COUNT,n)}function Ln(n){return wn(Gt.WARN_COUNT,n)}function wn(n,t){var e,r=En();return T(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function Wn(n,t){return Pn(Xt.ERRORS,n,t)}function Fn(n,t){return Pn(Xt.WARNINGS,n,t)}function Pn(n,t,e){var r,u,i=En();if(n=ln(n),!(t=i.groups[t]))return!1;if(e)return T(null===(r=t[e])||void 0===r?void 0:r[n]);for(var o in t)if(T(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function xn(n){var t=En();return n?!!Xn(t.tests,n):t.valid}function Un(n,t){if(!(n=En().groups[n]))return!1;if(t)return Xn(n,t);for(var e in n)if(!Xn(n,e))return!1;return!0}function Xn(n,t){var e;return!(null===(e=n[t])||void 0===e||!e.valid)}function Gn(){var n=rn(),t={stateRef:z()};return Qt([n],xt.bind(t,(function(){var n=yn(),t=z().suiteName()[0],e={summary:n};return at(n,{getErrors:xt.bind(e,Sn),getErrorsByGroup:xt.bind(e,In),getWarnings:xt.bind(e,Tn),getWarningsByGroup:xt.bind(e,_n),hasErrors:xt.bind(e,kn),hasErrorsByGroup:xt.bind(e,Wn),hasWarnings:xt.bind(e,Ln),hasWarningsByGroup:xt.bind(e,Fn),isValid:xt.bind(e,xn),isValidByGroup:xt.bind(e,Un),suiteName:t})})))}function Dn(n){var t=en();return!R(t)&&(n?t.some((function(t){return dn(t,n)})):St(t))}function qn(){var n=rn(),t={stateRef:z()};return Zt([n],xt.bind(t,(function(){return at({},Gn(),{done:xt.bind(t,$t)})})))}function jn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!R(r.tests[e].testCount)))}function Kn(n){return!(Dn()&&(!n||Dn(n)))}function Bn(n,t){(0,z().testCallbacks()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Hn(n){return n.forEach((function(n){return n()}))}function Mn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==e}))}}}}}();return n.on(Yt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=z().testCallbacks()[0].fieldCallbacks;t&&!Dn(t)&&p(e[t])&&Hn(e[t]),Dn()||n.emit(Yt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Yt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){e[n.fieldName]&&(n.omit(),Z(n.fieldName,(function(n){return[n[0],!0]})))}if(!R(z().optionalFields()[0])){var e={};tn((function(r){return M(r,(function(r){if(Object.prototype.hasOwnProperty.call(e,r.fieldName))n(r);else{var u=$(r.fieldName);t(u)&&(e[r.fieldName]=u(),n(r))}return r}))}))}}()})),n.on(Yt.ALL_RUNNING_TESTS_FINISHED,(function(){Hn(z().testCallbacks()[0].doneCallbacks)})),n.on(Yt.REMOVE_FIELD,(function(n){rn().forEach((function(t){dn(t,n)&&(t.cancel(),function(n){tn((function(t){return M(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Yt.RESET_FIELD,(function(n){rn().forEach((function(t){dn(t,n)&&t.reset()}))})),n}function Vn(){var n=xt.useX();return F(n.bus),n.bus}function Jn(n){return zn(0,"tests",n)}function Yn(n){return zn(1,"tests",n)}function zn(n,t,e){var r=xt.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Qn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Zn(){var n,t=xt.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function $n(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function nt(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Vn().emit,i=z(),s=xt.bind({stateRef:i},(function(){nn(),u(Yt.TEST_COMPLETED,n)}));i=xt.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 tt(n){var t=z().testObjects()[0].prev;if(R(t))return et(n),n;var e=cn();if(t=J(t,e)[H(e)],!i(n.key)){t=n.key,(e=xt.useX().isolate.keys.prev[t])&&(n=e),e=n;var r=xt.useX().isolate.keys.current;return i(r[t])?r[t]=e:sn('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),et(n),n}return!St(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(xt.useX().isolate.type===ot.EACH||sn("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(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().testObjects(),t=n[1],e=n[0].prev;n=J(e,cn());var r=xt.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),et(n=W(t,n)),n}function et(n){var t=cn();tn((function(e){return J(e,t)[H(t)]=n,e}))}function rt(n){var e=ct.EAGER;if(e=!(xt.useX().mode[0]!==e||!pn(Xt.ERRORS,n.fieldName)))return n.skip(),tt(n),an(),n;if(e=tt(n),xt.useX().omitted)return e.omit(),an(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,xt.useX().skipped)return!0;var e=xt.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){var o=xt.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,n)?!1===o[n]:Zn())return!0;if(!0===r.groups[n])return!(i||!Qn(u)&&!1!==u[t])}return!!(n=!!Zn()&&!n)||!i&&!!Qn(u)&&!w(e[t])}(n))return e.skip(!!xt.useX().skipped),an(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),et(n),an(),n.isUntested()){e=Vn();var r=function(n){return xt.run({currentTest:n},(function(){return n.run()}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),nt(n)):e.emit(Yt.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}else(e=n.asyncTest)&&t(e.then)&&(n.setPending(),nt(n));return n}function ut(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:U([void 0],e,!0);e=u[0],r=u[1],u=u[2],F(o(n),it("fieldName","string")),F(t(r),it("Test callback","function"));var i=xt.useX();return rt(e=new Dt(n,r,{message:e,groupName:i.groupName,key:u}))}function it(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var ot,st,ct,at=Object.assign,ft=e(r),lt=e(u),dt=e(i),pt=e(s),vt=e(c),ht=e(a),gt=e(l),Nt=e(p),mt=e(v),Et=e(N),yt=e(m),bt=e(E),Rt=e(y),Ot=e(b),St=e(R),Tt=e(O),Ct=e(S),It=e(o),_t=e(C),At=e(I),kt=e(A),Lt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:pt,doesNotStartWith:e(k),endsWith:s,equals:c,greaterThan:f,greaterThanOrEquals:d,gt:f,gte:d,inside:v,isArray:p,isBetween:N,isBlank:m,isBoolean:E,isEmpty:R,isEven:function(n){return!!a(n)&&0==n%2},isFalsy:_t,isKeyOf:O,isNaN:S,isNegative:function(n){return h(n,0)},isNotArray:Nt,isNotBetween:Et,isNotBlank:yt,isNotBoolean:bt,isNotEmpty:St,isNotKeyOf:Tt,isNotNaN:Ct,isNotNull:ft,isNotNullish:dt,isNotNumber:Rt,isNotNumeric:ht,isNotString:It,isNotUndefined:lt,isNotValueOf:At,isNull:r,isNullish:i,isNumber:y,isNumeric:a,isOdd:function(n){return!!a(n)&&0!=n%2},isPositive:T,isString:o,isTruthy:C,isUndefined:u,isValueOf:I,lengthEquals:b,lengthNotEquals:Ot,lessThan:h,lessThanOrEquals:g,longerThan:_,longerThanOrEquals:function(n,t){return d(n.length,t)},lt:h,lte:g,matches:A,notEquals:vt,notInside:mt,notMatches:kt,numberEquals:l,numberNotEquals:gt,shorterThan:function(n,t){return h(n.length,t)},shorterThanOrEquals:function(n,t){return g(n.length,t)},startsWith:k},wt=P((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?at(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:at(e,{parent:x})})),Wt=function(){function n(){if(!X())return L((function(n){t[n]=K(n)})),at(q,t)}var t={context:function(){return wt.useX()},extend:function(t){at(Lt,t),n()}};return n(),new Proxy(at(q,t),{get:function(n,t){return t in n?n[t]:Lt[t]?K(t):void 0}})}(),Ft=(st=0,function(){return"".concat(st++)});!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"}(ot||(ot={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(ct||(ct={}));var Pt,xt=P((function(n,t){return t?null:at({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:ot.DEFAULT,keys:{current:{},prev:{}}},mode:[ct.ALL],testCursor:Y()},n)})),Ut=B();!function(n){n.Error="error",n.Warning="warning"}(Pt||(Pt={}));var Xt,Gt,Dt=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=Ft(),this.severity=Pt.Error,this.status=qt,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!==Jt||(this.status=n)},n.prototype.warns=function(){return this.severity===Pt.Warning},n.prototype.setPending=function(){this.setStatus(Mt)},n.prototype.fail=function(){this.setStatus(this.warns()?Bt:Kt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Ht)},n.prototype.warn=function(){this.severity=Pt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(jt)},n.prototype.cancel=function(){this.setStatus(Vt),nn()},n.prototype.reset=function(){this.status=qt,nn()},n.prototype.omit=function(){this.setStatus(Jt)},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.statusEquals(Mt)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Jt)},n.prototype.isUntested=function(){return this.statusEquals(qt)},n.prototype.isFailing=function(){return this.statusEquals(Kt)},n.prototype.isCanceled=function(){return this.statusEquals(Vt)},n.prototype.isSkipped=function(){return this.statusEquals(jt)},n.prototype.isPassing=function(){return this.statusEquals(Ht)},n.prototype.isWarning=function(){return this.statusEquals(Bt)},n.prototype.statusEquals=function(n){return this.status===n},n}(),qt="UNTESTED",jt="SKIPPED",Kt="FAILED",Bt="WARNING",Ht="PASSING",Mt="PENDING",Vt="CANCELED",Jt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Xt||(Xt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Gt||(Gt={}));var Yt,zt=e((function(n,t){return n.groupName===t})),Qt=B(1),Zt=B(20),$t=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=qn(),jn(e,n,t))return t;var r=function(){return e(Gn())};return Kn(n)?(r(),t):(Bn(r,n),t)};!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Yt||(Yt={})),Jn.group=function(n){return zn(0,"groups",n)},Yn.group=function(n){return zn(1,"groups",n)};var ne=at(ut,{memo:function(n){var t=B(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=xt.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)}))):rt(r[1])}}(ut)});n.VERSION="4.4.0-dev-08ec91",n.context=xt,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],F(t(r),"vest.create: Expected callback to be a function.");var u=Mn(),i=un();return n={stateRef:on(i,{suiteId:Ft(),suiteName:n}),bus:u},at(xt.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),fn({type:ot.SUITE},(function(){r.apply(void 0,n)})),u.emit(Yt.SUITE_CALLBACK_DONE_RUNNING),qn()})),{get:xt.bind(n,Gn),remove:xt.bind(n,(function(n){u.emit(Yt.REMOVE_FIELD,n)})),reset:i.reset,resetField:xt.bind(n,(function(n){u.emit(Yt.RESET_FIELD,n)}))})},n.each=function(n,e){F(t(e),"each callback must be a function"),fn({type:ot.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=ct.EAGER;xt.useX().mode[0]=n},n.enforce=Wt,n.group=function(n,e){F(o(n),$n("name must be a string")),F(t(e),$n("callback must be a function")),fn({type:ot.GROUP},(function(){xt.run({groupName:n},e)}))},n.include=function(n){var t=xt.useX(),e=t.inclusion;return t=t.exclusion,F(o(n)),e[n]=W(t.tests[n],!0),{when:function(t){var e=xt.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]:w(t,w(Gn))}}}},n.omitWhen=function(n,t){fn({type:ot.OMIT_WHEN},(function(){xt.run({omitted:!!xt.useX().omitted||w(n,w(Gn))},(function(){return t()}))}))},n.only=Jn,n.optional=function(n){if(p(n)||o(n))[].concat(n).forEach((function(n){Z(n,[!0,!1])}));else for(var t in n)Z(t,[n[t],!1])},n.skip=Yn,n.skipWhen=function(n,t){fn({type:ot.SKIP_WHEN},(function(){xt.run({skipped:!!xt.useX().skipped||w(n,w(Gn))},(function(){return t()}))}))},n.test=ne,n.warn=function(){var n=xt.useX("warn hook called outside of a running suite.");F(n.currentTest,"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(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function e(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function r(n,t){return e(n)&&e(t)&&Number(n)===Number(t)}function u(n,t){return r(n.length,t)}function i(n,t){return e(n)&&e(t)&&Number(n)>Number(t)}function o(n,t){return i(n.length,t)}function s(n){function t(n){return e.findIndex((function(t){var e=t[0];return u(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),o(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function a(n){return null===n}function c(n){return void 0===n}function f(n){return null===n||c(n)}function l(n){return"function"==typeof n}function d(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return l(n)?n.apply(void 0,t):n}function p(n,t){var e;return null!==(e=d(n))&&void 0!==e?e:d(t)}function v(n){return!!Array.isArray(n)}function h(n){return(n=[].concat(n))[n.length-1]}function N(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];v(u)?e.push(N(u,t)):(u=t(u),pt(u)&&e.push(u))}return e}function g(n){return[].concat(n).reduce((function(n,t){return v(t)?n.concat(g(t)):[].concat(n).concat(t)}),[])}function E(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=p(n[r],[]),n=n[r]}return n}function m(n){return n.forEach((function(n){return n()}))}function y(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?d(t):t)}function b(n){return String(n)===n}function R(n){return!!n===n}function S(n){setTimeout((function(){throw Error(n)}),0)}function O(n,t){function e(n,t){n&&(r=!0,u=t)}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function T(n){return!n||(Object.prototype.hasOwnProperty.call(n,"length")?u(n,0):"object"==typeof n&&u(Object.keys(n),0))}function C(n){return i(n,0)}function I(n,t){return b(n)&&b(t)&&n.endsWith(t)}function _(n,t){return n===t}function k(n,t){return r(n,t)||i(n,t)}function A(n,t){return!!(v(t)||b(t)&&b(n))&&-1!==t.indexOf(n)}function w(n,t){return e(n)&&e(t)&&Number(n)<Number(t)}function W(n,t){return r(n,t)||w(n,t)}function x(n,t,e){return k(n,t)&&W(n,e)}function F(n){return f(n)||b(n)&&!n.trim()}function L(n,t){return n in t}function P(n){return Number.isNaN(n)}function U(n){return"number"==typeof n}function G(n){return!!n}function D(n,t){if(f(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function X(n,t){return t instanceof RegExp?t.test(n):!!b(t)&&new RegExp(t).test(n)}function q(n,t){return b(n)&&b(t)&&n.startsWith(t)}function j(n){for(var t in xt){var e=xt[t];l(e)&&n(t,e)}}function K(n){function t(t,u){var i,o,s=e();return t=gt({},s||{},null!==(i=d(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=e();return y(t,p(n,"Context was used after it was closed")),t}}}function B(){return null}function H(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 M(){try{return l(Proxy)}catch(n){return!1}}function V(n,t){return n={pass:n},t&&(n.message=t),n}function J(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return y(R(n)||n&&R(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),R(n)?V(n):V(n.pass,d.apply(void 0,H([n.message,t,e],r,!1)))}function Y(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return y((i=Ft.run({value:n},(function(){return J.apply(void 0,H([e.apply(void 0,H([n],u,!1)),r,n],u,!1))}))).pass,f(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(d(i.message))),t}}var e={};if(!M())return j((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=xt[e])return t(r,n,e)}});return r}function z(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=xt[r];e.push((function(n){return J.apply(void 0,H([o.apply(void 0,H([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return p(O(e,(function(e,r){var u,i=Ft.run({value:n},(function(){return e(n)}));r(!i.pass,V(!!i.pass,null!==(u=d(t,n,i.message))&&void 0!==u?u:i.message))})),V(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return M()?s=new Proxy(s,{get:function(t,e){return xt[e]?n(e):t[e]}}):(j((function(t){s[t]=n(t)})),s)}}(n)}function Q(){var n=0;return{current:function(){return n},next:function(){n++}}}function Z(n,t){return void 0===t&&(t=[]),{cursor:Q(),keys:{current:{},prev:{}},path:t,type:n}}function $(){return Ut.useX().stateRef}function nn(n){return $().optionalFields()[0][n]}function tn(n,t){(0,$().optionalFields()[1])((function(e){var r;return gt(e,((r={})[n]=d(t,e[n]),r))}))}function en(n){var t;return null===(t=nn(n))||void 0===t?void 0:t[0]}function rn(){un((function(n){return n}))}function un(n){(0,$().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function on(){return sn().filter((function(n){return n.isPending()}))}function sn(){var n=$().testObjects()[0].current;return Gt([n],(function(){return g(n)}))}function an(n){function t(n,t,u){return r.references.push(),e(n,d(t,u)),function(){return[r.references[n],function(t){return e(n,d(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,l(t=u[t][1])&&t(e,i),l(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 cn(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 fn(n,t){n=void 0===(n=n.type)?st.DEFAULT:n,y(l(t));var e=Z(n,dn());return n=Ut.run({isolate:e},(function(){return e.keys.prev=function(){var n=$().testObjects()[0].prev;return[].concat(E(n,dn())).reduce((function(n,t){return t instanceof qt&&!f(t.key)?(n[t.key]=t,n):n}),{})}(),un((function(n){var t=e.path;return E(n,t)[h(t)]=[],n})),t()})),ln().cursor.next(),n}function ln(){return Ut.useX().isolate}function dn(){var n=ln();return n.path.concat(n.cursor.current())}function pn(n){return n===Dt.ERRORS?Xt.ERROR_COUNT:Xt.WARN_COUNT}function vn(n,t){return!(!t||n.fieldName!==t)}function hn(n,t){return sn().some((function(e){return Nn(e,n,t)}))}function Nn(n,t,e){return(e=!n.hasFailures()||e&&!vn(n,e))||(n=n.warns(),e=t===Dt.WARNINGS!=!!n),!e}function gn(n){return!!En(n)||!hn(Dt.ERRORS,n)&&(!T(sn())&&!function(n){return mt(on().filter((function(t){return mn(t,n)})))}(n)&&function(n){return sn().every((function(t){return!(!n||vn(t,n))||yn(t,n)}))}(n))}function En(n){return!!n&&!0===(null===(t=nn(n))||void 0===t?void 0:t[1]);var t}function mn(n,t){return!(t&&!vn(n,t))&&!0!==en(n.fieldName)}function yn(n,t){return!(!t||vn(n,t))||(!0===en(n.fieldName)||n.isTested()||n.isOmitted())}function bn(){var n=Ut.useX().summary;return y(n),n}function Rn(){var n=sn(),t=gt({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=Sn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&gn(t.fieldName);var r=n.groups,u=t.groupName;return u&&(r[u]=r[u]||{},r[u][t.fieldName]=Sn(r[u],t),e=r[u][t.fieldName],!1===r[u][t.fieldName].valid?t=!1:t=!!En(t=t.fieldName)||!function(n,t,e){return sn().some((function(r){return!Qt(r,t)&&Nn(r,n,e)}))}(Dt.ERRORS,u,t)&&!function(n,t){return mt(on().filter((function(e){return!Qt(e,n)&&mn(e,t)})))}(u,t)&&function(n,t){return sn().every((function(e){return!!Qt(e,n)||yn(e,t)}))}(u,t),e.valid=t),n}),t),t.valid=gn(),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}(t)}function Sn(n,t){function e(n){var t=pn(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||gt({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(Dt.ERRORS):t.isWarning()&&e(Dt.WARNINGS)),i}function On(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}function Tn(n,t){var e,r={},u=pn(t);for(e in n)C(n[e][u])&&(r[e]=n[e][t]||[]);return r}function Cn(n){return _n(Dt.ERRORS,n)}function In(n){return _n(Dt.WARNINGS,n)}function _n(n,t){var e=bn().tests;return t?On(e,n,t):Tn(e,n)}function kn(n,t){return wn(n,Dt.ERRORS,t)}function An(n,t){return wn(n,Dt.WARNINGS,t)}function wn(n,t,e){return n=bn().groups[n],e?On(n,t,e):Tn(n,t)}function Wn(n){return Fn(Xt.ERROR_COUNT,n)}function xn(n){return Fn(Xt.WARN_COUNT,n)}function Fn(n,t){var e,r=bn();return C(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function Ln(n,t){return Un(Dt.ERRORS,n,t)}function Pn(n,t){return Un(Dt.WARNINGS,n,t)}function Un(n,t,e){var r,u,i=bn();if(n=pn(n),!(t=i.groups[t]))return!1;if(e)return C(null===(r=t[e])||void 0===r?void 0:r[n]);for(var o in t)if(C(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function Gn(n){var t=bn();return n?!!Xn(t.tests,n):t.valid}function Dn(n,t){if(!(n=bn().groups[n]))return!1;if(t)return Xn(n,t);for(var e in n)if(!Xn(n,e))return!1;return!0}function Xn(n,t){var e;return!(null===(e=n[t])||void 0===e||!e.valid)}function qn(){var n=sn(),t={stateRef:$()};return Zt([n],Ut.bind(t,(function(){var n=Rn(),t=$().suiteName()[0],e={summary:n};return gt(n,{getErrors:Ut.bind(e,Cn),getErrorsByGroup:Ut.bind(e,kn),getWarnings:Ut.bind(e,In),getWarningsByGroup:Ut.bind(e,An),hasErrors:Ut.bind(e,Wn),hasErrorsByGroup:Ut.bind(e,Ln),hasWarnings:Ut.bind(e,xn),hasWarningsByGroup:Ut.bind(e,Pn),isValid:Ut.bind(e,Gn),isValidByGroup:Ut.bind(e,Dn),suiteName:t})})))}function jn(n){var t=on();return!T(t)&&(n?t.some((function(t){return vn(t,n)})):mt(t))}function Kn(){var n=sn(),t={stateRef:$()};return $t([n],Ut.bind(t,(function(){return gt({},qn(),{done:Ut.bind(t,ne)})})))}function Bn(n,t,e){return!(l(n)&&(!t||e.tests[t]&&!T(e.tests[t].testCount)))}function Hn(n){return!(jn()&&(!n||jn(n)))}function Mn(n,t){(0,$().testCallbacks()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Vn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==e}))}}}}}();return n.on(zt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=$().testCallbacks()[0].fieldCallbacks;t&&!jn(t)&&v(e[t])&&m(e[t]),jn()||n.emit(zt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(zt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){t[n.fieldName]&&(n.omit(),tn(n.fieldName,(function(n){return[n[0],!0]})))}if(!T($().optionalFields()[0])){var t={};un((function(e){return N(e,(function(e){if(Object.prototype.hasOwnProperty.call(t,e.fieldName))n(e);else{var r=en(e.fieldName);l(r)&&(t[e.fieldName]=r(),n(e))}return e}))}))}}()})),n.on(zt.ALL_RUNNING_TESTS_FINISHED,(function(){m($().testCallbacks()[0].doneCallbacks)})),n.on(zt.REMOVE_FIELD,(function(n){sn().forEach((function(t){vn(t,n)&&(t.cancel(),function(n){un((function(t){return N(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(zt.RESET_FIELD,(function(n){sn().forEach((function(t){vn(t,n)&&t.reset()}))})),n}function Jn(){var n=Ut.useX();return y(n.bus),n.bus}function Yn(n){return Qn(0,"tests",n)}function zn(n){return Qn(1,"tests",n)}function Qn(n,t,e){var r=Ut.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){b(e)&&(r.exclusion[t][e]=0===n)}))}function Zn(n){for(var t in n)if(!0===n[t])return!0;return!1}function $n(){var n,t=Ut.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function nt(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function tt(n){var t=n.asyncTest,e=n.message;if(t&&l(t.then)){var r=Jn().emit,u=$(),i=Ut.bind({stateRef:u},(function(){rn(),r(zt.TEST_COMPLETED,n)}));u=Ut.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=b(t)?t:e,n.fail(),i())}));try{t.then(i,u)}catch(n){u()}}}function et(n){var t=$().testObjects()[0].prev;if(T(t))return rt(n),n;var e=dn();if(t=E(t,e)[h(e)],!f(n.key)){t=n.key,(e=ln().keys.prev[t])&&(n=e),e=n;var r=ln().keys.current;return f(r[t])?r[t]=e:S('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),rt(n),n}return!mt(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(ln().type===st.EACH||S("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(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=ln().cursor.current();un((function(t){return t.splice(n),t}))}(),t=null),rt(n=p(t,n)),n}function rt(n){var t=dn();un((function(e){return E(e,t)[h(t)]=n,e}))}function ut(n){var t=ln().cursor,e=ct.EAGER;if(Ut.useX().mode[0]===e&&hn(Dt.ERRORS,n.fieldName))return n.skip(),et(n),t.next(),n;if(e=et(n),Ut.useX().omitted)return e.omit(),t.next(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,Ut.useX().skipped)return!0;var e=Ut.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){var o=Ut.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,n)?!1===o[n]:$n())return!0;if(!0===r.groups[n])return!(i||!Zn(u)&&!1!==u[t])}return!!(n=!!$n()&&!n)||!i&&!!Zn(u)&&!d(e[t])}(n))return e.skip(!!Ut.useX().skipped),t.next(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),rt(n),n.isUntested()){e=Jn();var r=function(n){return Ut.run({currentTest:n},(function(){return n.run()}))}(n);try{r&&l(r.then)?(n.asyncTest=r,n.setPending(),tt(n)):e.emit(zt.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}else(e=n.asyncTest)&&l(e.then)&&(n.setPending(),tt(n));return t.next(),n}function it(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=l(t[1])?t:H([void 0],t,!0);t=r[0],e=r[1],r=r[2],y(b(n),ot("fieldName","string")),y(l(e),ot("Test callback","function"));var u=Ut.useX();return ut(t=new qt(n,e,{message:t,groupName:u.groupName,key:r}))}function ot(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var st,at,ct,ft=t(e),lt=t(r),dt=t(u),pt=t(a),vt=t(c),ht=t(f),Nt=t(v),gt=Object.assign,Et=(at=0,function(){return"".concat(at++)}),mt=t(T),yt=t(I),bt=t(_),Rt=t(A),St=t(x),Ot=t(F),Tt=t(R),Ct=t(L),It=t(P),_t=t(U),kt=t(b),At=t(G),wt=t(D),Wt=t(X),xt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:yt,doesNotStartWith:t(q),endsWith:I,equals:_,greaterThan:i,greaterThanOrEquals:k,gt:i,gte:k,inside:A,isArray:v,isBetween:x,isBlank:F,isBoolean:R,isEmpty:T,isEven:function(n){return!!e(n)&&0==n%2},isFalsy:At,isKeyOf:L,isNaN:P,isNegative:function(n){return w(n,0)},isNotArray:Nt,isNotBetween:St,isNotBlank:Ot,isNotBoolean:Tt,isNotEmpty:mt,isNotKeyOf:Ct,isNotNaN:It,isNotNull:pt,isNotNullish:ht,isNotNumber:_t,isNotNumeric:ft,isNotString:kt,isNotUndefined:vt,isNotValueOf:wt,isNull:a,isNullish:f,isNumber:U,isNumeric:e,isOdd:function(n){return!!e(n)&&0!=n%2},isPositive:C,isString:b,isTruthy:G,isUndefined:c,isValueOf:D,lengthEquals:u,lengthNotEquals:dt,lessThan:w,lessThanOrEquals:W,longerThan:o,longerThanOrEquals:function(n,t){return k(n.length,t)},lt:w,lte:W,matches:X,notEquals:bt,notInside:Rt,notMatches:Wt,numberEquals:r,numberNotEquals:lt,shorterThan:function(n,t){return w(n.length,t)},shorterThanOrEquals:function(n,t){return W(n.length,t)},startsWith:q},Ft=K((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?gt(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:gt(e,{parent:B})})),Lt=function(){function n(){if(!M())return j((function(n){t[n]=z(n)})),gt(Y,t)}var t={context:function(){return Ft.useX()},extend:function(t){gt(xt,t),n()}};return n(),new Proxy(gt(Y,t),{get:function(n,t){return t in n?n[t]:xt[t]?z(t):void 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"}(st||(st={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(ct||(ct={}));var Pt,Ut=K((function(n,t){return t?null:gt({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:Z(st.DEFAULT),mode:[ct.ALL]},n)})),Gt=s();!function(n){n.Error="error",n.Warning="warning"}(Pt||(Pt={}));var Dt,Xt,qt=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=Et(),this.severity=Pt.Error,this.status=jt,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,c(this.message)&&b(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Yt||(this.status=n)},n.prototype.warns=function(){return this.severity===Pt.Warning},n.prototype.setPending=function(){this.setStatus(Vt)},n.prototype.fail=function(){this.setStatus(this.warns()?Ht:Bt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Mt)},n.prototype.warn=function(){this.severity=Pt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(Kt)},n.prototype.cancel=function(){this.setStatus(Jt),rn()},n.prototype.reset=function(){this.status=jt,rn()},n.prototype.omit=function(){this.setStatus(Yt)},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.statusEquals(Vt)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Yt)},n.prototype.isUntested=function(){return this.statusEquals(jt)},n.prototype.isFailing=function(){return this.statusEquals(Bt)},n.prototype.isCanceled=function(){return this.statusEquals(Jt)},n.prototype.isSkipped=function(){return this.statusEquals(Kt)},n.prototype.isPassing=function(){return this.statusEquals(Mt)},n.prototype.isWarning=function(){return this.statusEquals(Ht)},n.prototype.statusEquals=function(n){return this.status===n},n}(),jt="UNTESTED",Kt="SKIPPED",Bt="FAILED",Ht="WARNING",Mt="PASSING",Vt="PENDING",Jt="CANCELED",Yt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Dt||(Dt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Xt||(Xt={}));var zt,Qt=t((function(n,t){return n.groupName===t})),Zt=s(1),$t=s(20),ne=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(),Bn(e,n,t))return t;var r=function(){return e(qn())};return Hn(n)?(r(),t):(Mn(r,n),t)};!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(zt||(zt={})),Yn.group=function(n){return Qn(0,"groups",n)},zn.group=function(n){return Qn(1,"groups",n)};var te=gt(it,{memo:function(n){var t=s(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=ln().cursor.current();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[$().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)}))):ut(r[1])}}(it)});n.VERSION="4.4.2-dev-afe5de",n.context=Ut,n.create=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];n=n[1],y(l(e),"vest.create: Expected callback to be a function.");var r=Vn(),u=an();return n={stateRef:cn(u,{suiteId:Et(),suiteName:n}),bus:r},gt(Ut.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return u.reset(),fn({type:st.SUITE},(function(){e.apply(void 0,n)})),r.emit(zt.SUITE_CALLBACK_DONE_RUNNING),Kn()})),{get:Ut.bind(n,qn),remove:Ut.bind(n,(function(n){r.emit(zt.REMOVE_FIELD,n)})),reset:u.reset,resetField:Ut.bind(n,(function(n){r.emit(zt.RESET_FIELD,n)}))})},n.each=function(n,t){y(l(t),"each callback must be a function"),fn({type:st.EACH},(function(){n.forEach((function(n,e){t(n,e)}))}))},n.eager=function(){var n=ct.EAGER;Ut.useX().mode[0]=n},n.enforce=Lt,n.group=function(n,t){y(b(n),nt("name must be a string")),y(l(t),nt("callback must be a function")),fn({type:st.GROUP},(function(){Ut.run({groupName:n},t)}))},n.include=function(n){var t=Ut.useX(),e=t.inclusion;return t=t.exclusion,y(b(n)),e[n]=p(t.tests[n],!0),{when:function(t){var e=Ut.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?p(r.tests[n],!0):b(t)?!!r.tests[t]:d(t,d(qn))}}}},n.omitWhen=function(n,t){fn({type:st.OMIT_WHEN},(function(){Ut.run({omitted:!!Ut.useX().omitted||d(n,d(qn))},(function(){return t()}))}))},n.only=Yn,n.optional=function(n){if(v(n)||b(n))[].concat(n).forEach((function(n){tn(n,[!0,!1])}));else for(var t in n)tn(t,[n[t],!1])},n.skip=zn,n.skipWhen=function(n,t){fn({type:st.SKIP_WHEN},(function(){Ut.run({skipped:!!Ut.useX().skipped||d(n,d(qn))},(function(){return t()}))}))},n.test=te,n.warn=function(){var n=Ut.useX("warn hook called outside of a running suite.");y(n.currentTest,"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.4.0-dev-08ec91",
2
+ "version": "4.4.2-dev-afe5de",
3
3
  "license": "MIT",
4
4
  "name": "vest",
5
5
  "author": "ealush",
@@ -20,8 +20,9 @@
20
20
  "url": "https://github.com/ealush/vest.git/issues"
21
21
  },
22
22
  "dependencies": {
23
- "context": "dev",
24
- "n4s": "dev"
23
+ "context": "^2.0.7-dev-afe5de",
24
+ "n4s": "^4.1.8-dev-afe5de",
25
+ "vest-utils": "^0.0.4-dev-afe5de"
25
26
  },
26
27
  "homepage": "https://vestjs.dev/",
27
28
  "exports": {
@@ -1,7 +1,8 @@
1
1
  export default function mockThrowError() {
2
2
  const deferThrow = jest.fn();
3
3
  jest.resetModules();
4
- jest.mock('throwError', () => ({
4
+ jest.mock('vest-utils', () => ({
5
+ ...jest.requireActual('vest-utils'),
5
6
  deferThrow,
6
7
  }));
7
8
  const vest = require('vest');
@@ -1,4 +1,4 @@
1
- import asArray from '../../shared/src/asArray';
1
+ import asArray from 'asArray';
2
2
 
3
3
  import { dummyTest } from './testDummy';
4
4
 
@@ -1,21 +1,6 @@
1
1
  import VestTest from 'VestTest';
2
- import { useTestObjects } from 'stateHooks';
3
-
4
- export function emptyTestObjects(): void {
5
- const [, setTestObjects] = useTestObjects();
6
- setTestObjects(({ prev }) => ({ prev, current: [] }));
7
- }
8
-
9
- export function setTestObjects(...args: VestTest[]): void {
10
- const [, setTestObjects] = useTestObjects();
11
- setTestObjects(({ prev }) => ({ prev, current: [...args] }));
12
- }
2
+ import { useSetTests } from 'stateHooks';
13
3
 
14
4
  export function addTestObject(addedTests: VestTest[] | VestTest): void {
15
- const [, setTestObjects] = useTestObjects();
16
-
17
- setTestObjects(({ prev, current }) => ({
18
- prev,
19
- current: current.concat(addedTests),
20
- }));
5
+ useSetTests(tests => tests.concat(addedTests));
21
6
  }
@@ -17,36 +17,20 @@ type KBaseRules = keyof BaseRules;
17
17
  declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
18
18
  declare function endsWith(value: string, arg1: string): boolean;
19
19
  declare function equals(value: unknown, arg1: unknown): boolean;
20
- declare function greaterThan(value: number | string, gt: number | string): boolean;
21
20
  declare function greaterThanOrEquals(value: string | number, gte: string | number): boolean;
22
21
  declare function inside(value: unknown, arg1: string | unknown[]): boolean;
23
- // The module is named "isArrayValue" since it
24
- // is conflicting with a nested npm dependency.
25
- // We may need to revisit this in the future.
26
- declare function isArray(value: unknown): value is Array<unknown>;
27
22
  declare function isBetween(value: number | string, min: number | string, max: number | string): boolean;
28
23
  declare function isBlank(value: unknown): boolean;
29
- declare function isBoolean(value: unknown): value is boolean;
30
- declare function isEmpty(value: unknown): boolean;
31
24
  declare function isKeyOf(key: string | symbol | number, obj: any): boolean;
32
25
  declare function isNaN(value: unknown): boolean;
33
26
  declare function isNegative(value: number | string): boolean;
34
- declare function isNull(value: unknown): value is null;
35
- declare function isNullish(value: any): value is null | undefined;
36
27
  declare function isNumber(value: unknown): value is number;
37
- declare function isNumeric(value: string | number): boolean;
38
- declare function isPositive(value: number | string): boolean;
39
- declare function isStringValue(v: unknown): v is string;
40
28
  declare function isTruthy(value: unknown): boolean;
41
- declare function isUndefined(value?: unknown): boolean;
42
29
  declare function isValueOf(value: any, objectToCheck: any): boolean;
43
- declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
44
30
  declare function lessThan(value: string | number, lt: string | number): boolean;
45
31
  declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
46
- declare function longerThan(value: string | unknown[], arg1: string | number): boolean;
47
32
  declare function longerThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
48
33
  declare function matches(value: string, regex: RegExp | string): boolean;
49
- declare function numberEquals(value: string | number, eq: string | number): boolean;
50
34
  declare function shorterThan(value: string | unknown[], arg1: string | number): boolean;
51
35
  declare function shorterThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
52
36
  declare function startsWith(value: string, arg1: string): boolean;
@@ -56,16 +40,16 @@ declare const baseRules: {
56
40
  doesNotStartWith: (value: string, arg1: string) => boolean;
57
41
  endsWith: typeof endsWith;
58
42
  equals: typeof equals;
59
- greaterThan: typeof greaterThan;
43
+ greaterThan: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
60
44
  greaterThanOrEquals: typeof greaterThanOrEquals;
61
- gt: typeof greaterThan;
45
+ gt: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
62
46
  gte: typeof greaterThanOrEquals;
63
47
  inside: typeof inside;
64
- isArray: typeof isArray;
48
+ isArray: typeof import("packages/vest-utils/types/vest-utils").isArray;
65
49
  isBetween: typeof isBetween;
66
50
  isBlank: typeof isBlank;
67
- isBoolean: typeof isBoolean;
68
- isEmpty: typeof isEmpty;
51
+ isBoolean: typeof import("packages/vest-utils/types/vest-utils").isBoolean;
52
+ isEmpty: typeof import("packages/vest-utils/types/vest-utils").isEmpty;
69
53
  isEven: (value: any) => boolean;
70
54
  isFalsy: (value: unknown) => boolean;
71
55
  isKeyOf: typeof isKeyOf;
@@ -85,21 +69,21 @@ declare const baseRules: {
85
69
  isNotString: (v: unknown) => boolean;
86
70
  isNotUndefined: (value?: unknown) => boolean;
87
71
  isNotValueOf: (value: any, objectToCheck: any) => boolean;
88
- isNull: typeof isNull;
89
- isNullish: typeof isNullish;
72
+ isNull: typeof import("packages/vest-utils/types/vest-utils").isNull;
73
+ isNullish: typeof import("packages/vest-utils/types/vest-utils").isNullish;
90
74
  isNumber: typeof isNumber;
91
- isNumeric: typeof isNumeric;
75
+ isNumeric: typeof import("packages/vest-utils/types/vest-utils").isNumeric;
92
76
  isOdd: (value: any) => boolean;
93
- isPositive: typeof isPositive;
94
- isString: typeof isStringValue;
77
+ isPositive: typeof import("packages/vest-utils/types/vest-utils").isPositive;
78
+ isString: typeof import("packages/vest-utils/types/vest-utils").isStringValue;
95
79
  isTruthy: typeof isTruthy;
96
- isUndefined: typeof isUndefined;
80
+ isUndefined: typeof import("packages/vest-utils/types/vest-utils").isUndefined;
97
81
  isValueOf: typeof isValueOf;
98
- lengthEquals: typeof lengthEquals;
82
+ lengthEquals: typeof import("packages/vest-utils/types/vest-utils").lengthEquals;
99
83
  lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
100
84
  lessThan: typeof lessThan;
101
85
  lessThanOrEquals: typeof lessThanOrEquals;
102
- longerThan: typeof longerThan;
86
+ longerThan: typeof import("packages/vest-utils/types/vest-utils").longerThan;
103
87
  longerThanOrEquals: typeof longerThanOrEquals;
104
88
  lt: typeof lessThan;
105
89
  lte: typeof lessThanOrEquals;
@@ -107,7 +91,7 @@ declare const baseRules: {
107
91
  notEquals: (value: unknown, arg1: unknown) => boolean;
108
92
  notInside: (value: unknown, arg1: string | unknown[]) => boolean;
109
93
  notMatches: (value: string, regex: string | RegExp) => boolean;
110
- numberEquals: typeof numberEquals;
94
+ numberEquals: typeof import("packages/vest-utils/types/vest-utils").numberEquals;
111
95
  numberNotEquals: (value: string | number, eq: string | number) => boolean;
112
96
  shorterThan: typeof shorterThan;
113
97
  shorterThanOrEquals: typeof shorterThanOrEquals;
@@ -17,36 +17,20 @@ type KBaseRules = keyof BaseRules;
17
17
  declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
18
18
  declare function endsWith(value: string, arg1: string): boolean;
19
19
  declare function equals(value: unknown, arg1: unknown): boolean;
20
- declare function greaterThan(value: number | string, gt: number | string): boolean;
21
20
  declare function greaterThanOrEquals(value: string | number, gte: string | number): boolean;
22
21
  declare function inside(value: unknown, arg1: string | unknown[]): boolean;
23
- // The module is named "isArrayValue" since it
24
- // is conflicting with a nested npm dependency.
25
- // We may need to revisit this in the future.
26
- declare function isArray(value: unknown): value is Array<unknown>;
27
22
  declare function isBetween(value: number | string, min: number | string, max: number | string): boolean;
28
23
  declare function isBlank(value: unknown): boolean;
29
- declare function isBoolean(value: unknown): value is boolean;
30
- declare function isEmpty(value: unknown): boolean;
31
24
  declare function isKeyOf(key: string | symbol | number, obj: any): boolean;
32
25
  declare function isNaN(value: unknown): boolean;
33
26
  declare function isNegative(value: number | string): boolean;
34
- declare function isNull(value: unknown): value is null;
35
- declare function isNullish(value: any): value is null | undefined;
36
27
  declare function isNumber(value: unknown): value is number;
37
- declare function isNumeric(value: string | number): boolean;
38
- declare function isPositive(value: number | string): boolean;
39
- declare function isStringValue(v: unknown): v is string;
40
28
  declare function isTruthy(value: unknown): boolean;
41
- declare function isUndefined(value?: unknown): boolean;
42
29
  declare function isValueOf(value: any, objectToCheck: any): boolean;
43
- declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
44
30
  declare function lessThan(value: string | number, lt: string | number): boolean;
45
31
  declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
46
- declare function longerThan(value: string | unknown[], arg1: string | number): boolean;
47
32
  declare function longerThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
48
33
  declare function matches(value: string, regex: RegExp | string): boolean;
49
- declare function numberEquals(value: string | number, eq: string | number): boolean;
50
34
  declare function shorterThan(value: string | unknown[], arg1: string | number): boolean;
51
35
  declare function shorterThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
52
36
  declare function startsWith(value: string, arg1: string): boolean;
@@ -56,16 +40,16 @@ declare const baseRules: {
56
40
  doesNotStartWith: (value: string, arg1: string) => boolean;
57
41
  endsWith: typeof endsWith;
58
42
  equals: typeof equals;
59
- greaterThan: typeof greaterThan;
43
+ greaterThan: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
60
44
  greaterThanOrEquals: typeof greaterThanOrEquals;
61
- gt: typeof greaterThan;
45
+ gt: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
62
46
  gte: typeof greaterThanOrEquals;
63
47
  inside: typeof inside;
64
- isArray: typeof isArray;
48
+ isArray: typeof import("packages/vest-utils/types/vest-utils").isArray;
65
49
  isBetween: typeof isBetween;
66
50
  isBlank: typeof isBlank;
67
- isBoolean: typeof isBoolean;
68
- isEmpty: typeof isEmpty;
51
+ isBoolean: typeof import("packages/vest-utils/types/vest-utils").isBoolean;
52
+ isEmpty: typeof import("packages/vest-utils/types/vest-utils").isEmpty;
69
53
  isEven: (value: any) => boolean;
70
54
  isFalsy: (value: unknown) => boolean;
71
55
  isKeyOf: typeof isKeyOf;
@@ -85,21 +69,21 @@ declare const baseRules: {
85
69
  isNotString: (v: unknown) => boolean;
86
70
  isNotUndefined: (value?: unknown) => boolean;
87
71
  isNotValueOf: (value: any, objectToCheck: any) => boolean;
88
- isNull: typeof isNull;
89
- isNullish: typeof isNullish;
72
+ isNull: typeof import("packages/vest-utils/types/vest-utils").isNull;
73
+ isNullish: typeof import("packages/vest-utils/types/vest-utils").isNullish;
90
74
  isNumber: typeof isNumber;
91
- isNumeric: typeof isNumeric;
75
+ isNumeric: typeof import("packages/vest-utils/types/vest-utils").isNumeric;
92
76
  isOdd: (value: any) => boolean;
93
- isPositive: typeof isPositive;
94
- isString: typeof isStringValue;
77
+ isPositive: typeof import("packages/vest-utils/types/vest-utils").isPositive;
78
+ isString: typeof import("packages/vest-utils/types/vest-utils").isStringValue;
95
79
  isTruthy: typeof isTruthy;
96
- isUndefined: typeof isUndefined;
80
+ isUndefined: typeof import("packages/vest-utils/types/vest-utils").isUndefined;
97
81
  isValueOf: typeof isValueOf;
98
- lengthEquals: typeof lengthEquals;
82
+ lengthEquals: typeof import("packages/vest-utils/types/vest-utils").lengthEquals;
99
83
  lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
100
84
  lessThan: typeof lessThan;
101
85
  lessThanOrEquals: typeof lessThanOrEquals;
102
- longerThan: typeof longerThan;
86
+ longerThan: typeof import("packages/vest-utils/types/vest-utils").longerThan;
103
87
  longerThanOrEquals: typeof longerThanOrEquals;
104
88
  lt: typeof lessThan;
105
89
  lte: typeof lessThanOrEquals;
@@ -107,7 +91,7 @@ declare const baseRules: {
107
91
  notEquals: (value: unknown, arg1: unknown) => boolean;
108
92
  notInside: (value: unknown, arg1: string | unknown[]) => boolean;
109
93
  notMatches: (value: string, regex: string | RegExp) => boolean;
110
- numberEquals: typeof numberEquals;
94
+ numberEquals: typeof import("packages/vest-utils/types/vest-utils").numberEquals;
111
95
  numberNotEquals: (value: string | number, eq: string | number) => boolean;
112
96
  shorterThan: typeof shorterThan;
113
97
  shorterThanOrEquals: typeof shorterThanOrEquals;
@@ -17,36 +17,20 @@ type KBaseRules = keyof BaseRules;
17
17
  declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
18
18
  declare function endsWith(value: string, arg1: string): boolean;
19
19
  declare function equals(value: unknown, arg1: unknown): boolean;
20
- declare function greaterThan(value: number | string, gt: number | string): boolean;
21
20
  declare function greaterThanOrEquals(value: string | number, gte: string | number): boolean;
22
21
  declare function inside(value: unknown, arg1: string | unknown[]): boolean;
23
- // The module is named "isArrayValue" since it
24
- // is conflicting with a nested npm dependency.
25
- // We may need to revisit this in the future.
26
- declare function isArray(value: unknown): value is Array<unknown>;
27
22
  declare function isBetween(value: number | string, min: number | string, max: number | string): boolean;
28
23
  declare function isBlank(value: unknown): boolean;
29
- declare function isBoolean(value: unknown): value is boolean;
30
- declare function isEmpty(value: unknown): boolean;
31
24
  declare function isKeyOf(key: string | symbol | number, obj: any): boolean;
32
25
  declare function isNaN(value: unknown): boolean;
33
26
  declare function isNegative(value: number | string): boolean;
34
- declare function isNull(value: unknown): value is null;
35
- declare function isNullish(value: any): value is null | undefined;
36
27
  declare function isNumber(value: unknown): value is number;
37
- declare function isNumeric(value: string | number): boolean;
38
- declare function isPositive(value: number | string): boolean;
39
- declare function isStringValue(v: unknown): v is string;
40
28
  declare function isTruthy(value: unknown): boolean;
41
- declare function isUndefined(value?: unknown): boolean;
42
29
  declare function isValueOf(value: any, objectToCheck: any): boolean;
43
- declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
44
30
  declare function lessThan(value: string | number, lt: string | number): boolean;
45
31
  declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
46
- declare function longerThan(value: string | unknown[], arg1: string | number): boolean;
47
32
  declare function longerThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
48
33
  declare function matches(value: string, regex: RegExp | string): boolean;
49
- declare function numberEquals(value: string | number, eq: string | number): boolean;
50
34
  declare function shorterThan(value: string | unknown[], arg1: string | number): boolean;
51
35
  declare function shorterThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
52
36
  declare function startsWith(value: string, arg1: string): boolean;
@@ -56,16 +40,16 @@ declare const baseRules: {
56
40
  doesNotStartWith: (value: string, arg1: string) => boolean;
57
41
  endsWith: typeof endsWith;
58
42
  equals: typeof equals;
59
- greaterThan: typeof greaterThan;
43
+ greaterThan: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
60
44
  greaterThanOrEquals: typeof greaterThanOrEquals;
61
- gt: typeof greaterThan;
45
+ gt: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
62
46
  gte: typeof greaterThanOrEquals;
63
47
  inside: typeof inside;
64
- isArray: typeof isArray;
48
+ isArray: typeof import("packages/vest-utils/types/vest-utils").isArray;
65
49
  isBetween: typeof isBetween;
66
50
  isBlank: typeof isBlank;
67
- isBoolean: typeof isBoolean;
68
- isEmpty: typeof isEmpty;
51
+ isBoolean: typeof import("packages/vest-utils/types/vest-utils").isBoolean;
52
+ isEmpty: typeof import("packages/vest-utils/types/vest-utils").isEmpty;
69
53
  isEven: (value: any) => boolean;
70
54
  isFalsy: (value: unknown) => boolean;
71
55
  isKeyOf: typeof isKeyOf;
@@ -85,21 +69,21 @@ declare const baseRules: {
85
69
  isNotString: (v: unknown) => boolean;
86
70
  isNotUndefined: (value?: unknown) => boolean;
87
71
  isNotValueOf: (value: any, objectToCheck: any) => boolean;
88
- isNull: typeof isNull;
89
- isNullish: typeof isNullish;
72
+ isNull: typeof import("packages/vest-utils/types/vest-utils").isNull;
73
+ isNullish: typeof import("packages/vest-utils/types/vest-utils").isNullish;
90
74
  isNumber: typeof isNumber;
91
- isNumeric: typeof isNumeric;
75
+ isNumeric: typeof import("packages/vest-utils/types/vest-utils").isNumeric;
92
76
  isOdd: (value: any) => boolean;
93
- isPositive: typeof isPositive;
94
- isString: typeof isStringValue;
77
+ isPositive: typeof import("packages/vest-utils/types/vest-utils").isPositive;
78
+ isString: typeof import("packages/vest-utils/types/vest-utils").isStringValue;
95
79
  isTruthy: typeof isTruthy;
96
- isUndefined: typeof isUndefined;
80
+ isUndefined: typeof import("packages/vest-utils/types/vest-utils").isUndefined;
97
81
  isValueOf: typeof isValueOf;
98
- lengthEquals: typeof lengthEquals;
82
+ lengthEquals: typeof import("packages/vest-utils/types/vest-utils").lengthEquals;
99
83
  lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
100
84
  lessThan: typeof lessThan;
101
85
  lessThanOrEquals: typeof lessThanOrEquals;
102
- longerThan: typeof longerThan;
86
+ longerThan: typeof import("packages/vest-utils/types/vest-utils").longerThan;
103
87
  longerThanOrEquals: typeof longerThanOrEquals;
104
88
  lt: typeof lessThan;
105
89
  lte: typeof lessThanOrEquals;
@@ -107,7 +91,7 @@ declare const baseRules: {
107
91
  notEquals: (value: unknown, arg1: unknown) => boolean;
108
92
  notInside: (value: unknown, arg1: string | unknown[]) => boolean;
109
93
  notMatches: (value: string, regex: string | RegExp) => boolean;
110
- numberEquals: typeof numberEquals;
94
+ numberEquals: typeof import("packages/vest-utils/types/vest-utils").numberEquals;
111
95
  numberNotEquals: (value: string | number, eq: string | number) => boolean;
112
96
  shorterThan: typeof shorterThan;
113
97
  shorterThanOrEquals: typeof shorterThanOrEquals;
package/types/vest.d.ts CHANGED
@@ -138,13 +138,9 @@ type Suite<T extends CB> = {
138
138
  */
139
139
  declare function create<T extends CB>(suiteName: string, suiteCallback: T): Suite<T>;
140
140
  declare function create<T extends CB>(suiteCallback: T): Suite<T>;
141
- type Cursor = {
142
- addLevel: () => void;
143
- cursorAt: () => number;
144
- getCursor: () => number[];
145
- next: () => number;
146
- removeLevel: () => void;
147
- reset: () => void;
141
+ type IsolateCursor = {
142
+ current: () => number;
143
+ next: () => void;
148
144
  };
149
145
  declare enum IsolateTypes {
150
146
  DEFAULT = 0,
@@ -158,6 +154,12 @@ type IsolateKeys = {
158
154
  current: Record<string, VestTest>;
159
155
  prev: Record<string, VestTest>;
160
156
  };
157
+ type Isolate = {
158
+ type: IsolateTypes;
159
+ keys: IsolateKeys;
160
+ path: number[];
161
+ cursor: IsolateCursor;
162
+ };
161
163
  declare enum Modes {
162
164
  ALL = 0,
163
165
  EAGER = 1
@@ -186,9 +188,10 @@ type TestCallbacks = {
186
188
  doneCallbacks: Array<(res: SuiteResult) => void>;
187
189
  };
188
190
  type TestObjects = {
189
- prev: NestedArray<VestTest>;
190
- current: NestedArray<VestTest>;
191
+ prev: VestTests;
192
+ current: VestTests;
191
193
  };
194
+ type VestTests = NestedArray<VestTest>;
192
195
  declare const _default: {
193
196
  run: <R>(ctxRef: Partial<CTXType>, fn: (context: CTXType) => R) => R;
194
197
  bind: <Fn extends (...args: any[]) => any>(ctxRef: Partial<CTXType>, fn: Fn) => Fn;
@@ -196,11 +199,7 @@ declare const _default: {
196
199
  useX: (errorMessage?: string | undefined) => CTXType;
197
200
  };
198
201
  type CTXType = {
199
- isolate: {
200
- type: IsolateTypes;
201
- keys: IsolateKeys;
202
- };
203
- testCursor: Cursor;
202
+ isolate: Isolate;
204
203
  stateRef?: StateRef;
205
204
  exclusion: {
206
205
  tests: Record<string, boolean>;
@@ -350,6 +349,6 @@ declare const test: typeof testBase & {
350
349
  * Sets a running test to warn only mode.
351
350
  */
352
351
  declare function warn(): void;
353
- declare const VERSION = "4.4.0-dev-08ec91";
352
+ declare const VERSION = "4.4.2-dev-afe5de";
354
353
  export { test, create, each, only, skip, warn, group, optional, skipWhen, omitWhen, enforce, VERSION, context, include, eager };
355
354
  export type { SuiteResult, SuiteRunResult, SuiteSummary, VestTest, Suite };
@@ -1,23 +0,0 @@
1
- /* eslint-disable jest/valid-title */
2
- import optionalFunctionValue from 'optionalFunctionValue';
3
-
4
- import runCreateRef from './runCreateRef';
5
-
6
- import context from 'ctx';
7
- import { initBus } from 'vestBus';
8
-
9
- export default function itWithContext(
10
- str: string,
11
- cb: () => void,
12
- getCTX?: () => Record<string, any>
13
- ): void {
14
- return it(str, () =>
15
- context.run(
16
- optionalFunctionValue(getCTX) ?? {
17
- stateRef: runCreateRef(),
18
- bus: initBus(),
19
- },
20
- cb
21
- )
22
- );
23
- }