vest 4.2.2 → 4.2.3-dev-87ebfa

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 (34) hide show
  1. package/dist/cjs/classnames.development.js +21 -8
  2. package/dist/cjs/classnames.production.js +1 -1
  3. package/dist/cjs/enforce/compose.development.js +27 -59
  4. package/dist/cjs/enforce/compose.production.js +1 -1
  5. package/dist/cjs/promisify.development.js +21 -8
  6. package/dist/cjs/promisify.production.js +1 -1
  7. package/dist/cjs/vest.development.js +312 -304
  8. package/dist/cjs/vest.production.js +1 -1
  9. package/dist/es/classnames.development.js +21 -8
  10. package/dist/es/classnames.production.js +1 -1
  11. package/dist/es/enforce/compose.development.js +27 -59
  12. package/dist/es/enforce/compose.production.js +1 -1
  13. package/dist/es/promisify.development.js +21 -8
  14. package/dist/es/promisify.production.js +1 -1
  15. package/dist/es/vest.development.js +312 -304
  16. package/dist/es/vest.production.js +1 -1
  17. package/dist/umd/classnames.development.js +21 -8
  18. package/dist/umd/classnames.production.js +1 -1
  19. package/dist/umd/enforce/compose.development.js +73 -83
  20. package/dist/umd/enforce/compose.production.js +1 -1
  21. package/dist/umd/enforce/compounds.development.js +18 -20
  22. package/dist/umd/enforce/compounds.production.js +1 -1
  23. package/dist/umd/enforce/schema.development.js +18 -20
  24. package/dist/umd/enforce/schema.production.js +1 -1
  25. package/dist/umd/promisify.development.js +21 -8
  26. package/dist/umd/promisify.production.js +1 -1
  27. package/dist/umd/vest.development.js +269 -268
  28. package/dist/umd/vest.production.js +1 -1
  29. package/package.json +3 -3
  30. package/testUtils/mockThrowError.ts +3 -6
  31. package/types/classnames.d.ts +2 -1
  32. package/types/parser.d.ts +2 -1
  33. package/types/promisify.d.ts +2 -1
  34. package/types/vest.d.ts +56 -55
@@ -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 N(n){return!!n===n}function m(n){return"number"==typeof n}function y(n,t){return n.length===Number(t)}function E(n){if(n){if(m(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return y(n,0);if("object"==typeof n)return y(Object.keys(n),0)}return!0}function b(n,t){return n in t}function S(n){return Number.isNaN(n)}function T(n){return!!c(n)&&0>Number(n)}function C(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 R(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function I(n,t){return n.length>Number(t)}function k(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function A(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function _(n,t){return o(n)&&o(t)&&n.startsWith(t)}function F(n){for(var e in Nt){var r=Nt[e];t(r)&&n(e,r)}}function L(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=L(n))&&void 0!==e?e:t}function P(n,t){throw Error(w(t,n))}function W(n,t){setTimeout((function(){P(n,t)}),0)}function x(n){function t(t,u){var i,o,s=e();return t=Jn({},s||{},null!==(i=L(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:P(w(n,"Context was used after it was closed"))}}}function G(){return null}function X(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 D(n,t){return n={pass:n},t&&(n.message=t),n}function q(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return N(n)||n&&N(n.pass)||P("Incorrect return value for rule: "+JSON.stringify(n)),N(n)?D(n):D(n.pass,L.apply(void 0,X([n.message,t,e],r,!1)))}function K(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=q.apply(void 0,X([mt.run({value:n},(function(){return e.apply(void 0,X([n],u,!1))})),r,n],u,!1))).pass){if(!E(i.message))throw i.message;P("enforce/".concat(r," failed with ").concat(JSON.stringify(n)))}return t}}var e={};if(!U())return F((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=Nt[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 B(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=Nt[r];e.push((function(n){return q.apply(void 0,X([o.apply(void 0,X([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return w(j(e,(function(e,r){var u,i=mt.run({value:n},(function(){return e(n)}));i.pass||r(D(!!i.pass,null!==(u=L(t,n,i.message))&&void 0!==u?u:i.message))})),D(!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 Nt[e]?n(e):t[e]}}):(F((function(t){s[t]=n(t)})),s)}}(n)}function H(n){function t(n){return e.findIndex((function(t){var e=t[0];return y(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]),I(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 M(n){return(n=[].concat(n))[n.length-1]}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),Yn(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 Y(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 z(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return M(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,M(t)},removeLevel:function(){t.pop()},reset:n}}function Q(){return Tt.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 J(V(Z()[0].current,(function(n){return n.isPending()?n:null})))}function en(){var n=Z()[0].current;return Ct([n],(function(){return J(n)}))}function rn(n){function e(n,t,e){return u.references.push(),r(n,L(t,e)),function(){return[u.references[n],function(t){return r(n,L(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 un(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 on(){return Tt.useX().testCursor.getCursor()}function sn(){return Tt.useX().testCursor.next()}function an(n,e){if(n=void 0===(n=n.type)?Hn.DEFAULT:n,t(e)){var r={current:{},prev:{}},u=on();return Tt.run({isolate:{type:n,keys:r}},(function(){Tt.useX().testCursor.addLevel(),r.prev=function(){var n=Z()[0].prev;return[].concat(Y(n,on())).reduce((function(n,t){return t instanceof Rt&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),nn((function(n){return Y(n,u)[M(u)]=[],n}));var n=e();return Tt.useX().testCursor.removeLevel(),sn(),n}))}}function cn(n,t){function e(n){i[n===Ot.ERRORS?"errorCount":"warnCount"]++,u&&(i[n]=(i[n]||[]).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(Ot.ERRORS):t.isWarning()&&e(Ot.WARNINGS)),i}function fn(n,t){return!(!t||n.fieldName!==t)}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&&!fn(e,i)?r=!0:(r=e.warns(),r=n===Ot.WARNINGS!=!!r);return r||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),yt({},i&&((r={})[i]=[],r)))}function pn(n){return vn(Ot.ERRORS,n)}function dn(n){return vn(Ot.WARNINGS,n)}function vn(n,t){return n=ln(n,en(),{fieldName:t}),t?n[t]:n}function hn(n,t){return n=Nn(Ot.ERRORS,n,t),t?n[t]:n}function gn(n,t){return n=Nn(Ot.WARNINGS,n,t),t?n[t]:n}function Nn(n,t,e){return t||P("get".concat(n[0].toUpperCase()).concat(n.slice(1),"ByGroup requires a group name. Received `").concat(t,"` instead.")),ln(n,en(),{group:t,fieldName:e})}function mn(n,t,e){return(e=!n.hasFailures()||e&&!fn(n,e))||(n=n.warns(),e=t===Ot.WARNINGS!=!!n),!e}function yn(n){return bn(Ot.ERRORS,n)}function En(n){return bn(Ot.WARNINGS,n)}function bn(n,t){return en().some((function(e){return mn(e,n,t)}))}function Sn(n,t){return Cn(Ot.ERRORS,n,t)}function Tn(n,t){return Cn(Ot.WARNINGS,n,t)}function Cn(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],Tt.bind(t,(function(){var n=Q().suiteName()[0];return Jn(function(){var n=en(),t=Jn({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{}});return n.forEach((function(n){var e=n.fieldName,r=n.groupName;t.tests[e]=cn(t.tests,n),r&&(t.groups[r]=t.groups[r]||{},t.groups[r][e]=cn(t.groups[r],n))})),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)}(),{getErrors:Tt.bind(t,pn),getErrorsByGroup:Tt.bind(t,hn),getWarnings:Tt.bind(t,dn),getWarningsByGroup:Tt.bind(t,gn),hasErrors:Tt.bind(t,yn),hasErrorsByGroup:Tt.bind(t,Sn),hasWarnings:Tt.bind(t,En),hasWarningsByGroup:Tt.bind(t,Tn),isValid:Tt.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 at(tn().filter((function(e){return!(n&&!fn(e,n))&&!0!==t[e.fieldName]})))}(n))&&function(n){var t=en(),e=Q().optionalFields()[0];return t.every((function(t){return!(!n||fn(t,n))||!0===e[t.fieldName]||t.isTested()||t.isOmitted()}))}(n),n})),suiteName:n})})))}function Rn(n){var t=tn();return!E(t)&&(n?t.some((function(t){return fn(t,n)})):at(t))}function In(){var n=en(),t={stateRef:Q()};return Gt([n],Tt.bind(t,(function(){return Jn({},On(),{done:Tt.bind(t,Xt)})})))}function kn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!E(r.tests[e].testCount)))}function An(n){return!(Rn()&&(!n||Rn(n)))}function _n(n,t){var e=Tt.bind({},n);(0,Q().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function Fn(n){return n.forEach((function(n){return n()}))}function Ln(){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(Wt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=Q().testCallbacks()[0].fieldCallbacks;t&&!Rn(t)&&p(e[t])&&Fn(e[t]),Rn()||n.emit(Wt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Wt.SUITE_CALLBACK_DONE_RUNNING,(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(Wt.ALL_RUNNING_TESTS_FINISHED,(function(){Fn(Q().testCallbacks()[0].doneCallbacks)})),n.on(Wt.REMOVE_FIELD,(function(n){en().forEach((function(t){fn(t,n)&&(t.cancel(),function(n){nn((function(t){return V(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Wt.RESET_FIELD,(function(n){en().forEach((function(t){fn(t,n)&&t.reset()}))})),n}function wn(){var n=Tt.useX();return n.bus||P(),n.bus}function Pn(n){return xn(0,"tests",n)}function Wn(n){return xn(1,"tests",n)}function xn(n,t,e){var r=Tt.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Gn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Xn(n){P("Wrong arguments passed to group. Group ".concat(n,"."))}function Un(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=wn().emit,i=Q(),s=Tt.bind({stateRef:i},(function(){$(),u(Wt.TEST_COMPLETED,n)}));i=Tt.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 Dn(n){var t=Z()[0].prev;if(E(t))return qn(n),n;var e=on();if(t=Y(t,e)[M(e)],!i(n.key)){t=n.key,(e=Tt.useX().isolate.keys.prev[t])&&(n=e),e=n;var r=Tt.useX().isolate.keys.current;return i(r[t])?r[t]=e:W('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),qn(n),n}return!at(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(Tt.useX().isolate.type===Hn.EACH||W("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(),t=n[1],e=n[0].prev;n=Y(e,on());var r=Tt.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),qn(n=w(t,n)),n}function qn(n){var t=on();nn((function(e){return Y(e,t)[M(t)]=n,e}))}function Kn(n){var e=Vn.EAGER;if(e=!(Tt.useX().mode[0]!==e||!yn(n.fieldName)))return n.skip(),Dn(n),sn(),n;if(e=Dn(n),Tt.useX().omitted)return e.omit(),sn(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,Tt.useX().skipped)return!0;var e=Tt.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=Tt.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||!Gn(u)&&!1!==u[t])}r=Tt.useX().exclusion;n:{for(a in(s=Tt.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&&!!Gn(u)&&!L(e[t])}(n))return e.skip(!!Tt.useX().skipped),sn(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),qn(n),sn(),n.isUntested()){e=wn();var r=function(n){return Tt.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(Wt.TEST_COMPLETED,n)}catch(t){P("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(),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:X([void 0],e,!0);e=u[0],r=u[1],u=u[2],pt(n)&&Bn("fieldName","string"),t(r)||Bn("Test callback","function");var i=Tt.useX();return Kn(e=new Rt(n,r,{message:e,groupName:i.groupName,key:u}))}function Bn(n,t){P("Incompatible params passed to test function. ".concat(n," must be a ").concat(t))}var Hn,Mn,Vn,Jn=Object.assign,Yn=e(r),zn=e(u),Qn=e(i),Zn=e(s),$n=e(a),nt=e(c),tt=e(p),et=e(d),rt=e(h),ut=e(g),it=e(N),ot=e(m),st=e(y),at=e(E),ct=e(b),ft=e(S),lt=e(T),pt=e(o),dt=e(C),vt=e(O),ht=e(k),gt=e(A),Nt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Zn,doesNotStartWith:e(_),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:l,gt:f,gte:l,inside:d,isArray:p,isBetween:h,isBlank:g,isBoolean:N,isEmpty:E,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:dt,isKeyOf:b,isNaN:S,isNegative:T,isNotArray:tt,isNotBetween:rt,isNotBlank:ut,isNotBoolean:it,isNotEmpty:at,isNotKeyOf:ct,isNotNaN:ft,isNotNull:Yn,isNotNullish:Qn,isNotNumber:ot,isNotNumeric:nt,isNotString:pt,isNotUndefined:zn,isNotValueOf:vt,isNull:r,isNullish:i,isNumber:m,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:lt,isString:o,isTruthy:C,isUndefined:u,isValueOf:O,lengthEquals:y,lengthNotEquals:st,lessThan:R,lessThanOrEquals:v,longerThan:I,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:R,lte:v,matches:k,notEquals:$n,notInside:et,notMatches:ht,numberEquals:A,numberNotEquals:gt,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:_},mt=x((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?Jn(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:Jn(e,{parent:G})})),yt=function(){return(yt=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)},Et=(Mn={context:function(){return mt.useX()},extend:function(n){Jn(Nt,n)}},U()?new Proxy(Jn(K,Mn),{get:function(n,t){return t in n?n[t]:Nt[t]?B(t):void 0}}):(F((function(n){Mn[n]=B(n)})),Jn(K,Mn))),bt=function(n){return function(){return"".concat(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"}(Hn||(Hn={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(Vn||(Vn={}));var St,Tt=x((function(n,t){return t?null:Jn({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:Hn.DEFAULT,keys:{current:{},prev:{}}},mode:[Vn.ALL],testCursor:z()},n)})),Ct=H();!function(n){n.Error="error",n.Warning="warning"}(St||(St={}));var Ot,Rt=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=bt(),this.severity=St.Error,this.status=It,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===St.Warning},n.prototype.setPending=function(){this.setStatus(Lt)},n.prototype.fail=function(){this.setStatus(this.warns()?_t:At)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Ft)},n.prototype.warn=function(){this.severity=St.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(wt),$()},n.prototype.reset=function(){this.status=It,$()},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.statusEquals(Lt)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Pt)},n.prototype.isUntested=function(){return this.statusEquals(It)},n.prototype.isFailing=function(){return this.statusEquals(At)},n.prototype.isCanceled=function(){return this.statusEquals(wt)},n.prototype.isSkipped=function(){return this.statusEquals(kt)},n.prototype.isPassing=function(){return this.statusEquals(Ft)},n.prototype.isWarning=function(){return this.statusEquals(_t)},n.prototype.statusEquals=function(n){return this.status===n},n}(),It="UNTESTED",kt="SKIPPED",At="FAILED",_t="WARNING",Ft="PASSING",Lt="PENDING",wt="CANCELED",Pt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Ot||(Ot={}));var Wt,xt=H(20),Gt=H(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=In(),kn(e,n,t))return t;var r=function(){return e(On())};return An(n)?(r(),t):(_n(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"}(Wt||(Wt={})),Pn.group=function(n){return xn(0,"groups",n)},Wn.group=function(n){return xn(1,"groups",n)};var Ut=Jn(jn,{memo:function(n){var t=H(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=Tt.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)}))):Kn(r[1])}}(jn)});n.VERSION="4.2.2",n.context=Tt,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)||P("vest.create: Expected callback to be a function.");var u=Ln(),i=rn();return n={stateRef:un(i,{suiteId:bt(),suiteName:n}),bus:u},Jn(Tt.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),an({type:Hn.SUITE},(function(){r.apply(void 0,n)})),u.emit(Wt.SUITE_CALLBACK_DONE_RUNNING),In()})),{get:Tt.bind(n,On),remove:Tt.bind(n,(function(n){u.emit(Wt.REMOVE_FIELD,n)})),reset:i.reset,resetField:Tt.bind(n,(function(n){u.emit(Wt.RESET_FIELD,n)}))})},n.each=function(n,e){t(e)||P("each callback must be a function"),an({type:Hn.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=Vn.EAGER;Tt.useX().mode[0]=n},n.enforce=Et,n.group=function(n,e){o(n)||Xn("name must be a string"),t(e)||Xn("callback must be a function"),an({type:Hn.GROUP},(function(){Tt.run({groupName:n},e)}))},n.include=function(n){function t(t){var e=Tt.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]:L(t,L(On))}}var e=Tt.useX();return n?(e.inclusion[n]=w(e.exclusion.tests[n],!0),{when:t}):{when:t}},n.omitWhen=function(n,t){an({type:Hn.OMIT_WHEN},(function(){Tt.run({omitted:!!Tt.useX().omitted||L(n,L(On))},(function(){return t()}))}))},n.only=Pn,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=Wn,n.skipWhen=function(n,t){an({type:Hn.SKIP_WHEN},(function(){Tt.run({skipped:!!Tt.useX().skipped||L(n,L(On))},(function(){return t()}))}))},n.test=Ut,n.warn=function(){var n=Tt.useX("warn hook called outside of a running suite.");n.currentTest||P("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 N(n){return i(n)||o(n)&&!n.trim()}function g(n){return!!n===n}function m(n){return"number"==typeof n}function y(n,t){return n.length===Number(t)}function E(n){if(n){if(m(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return y(n,0);if("object"==typeof n)return y(Object.keys(n),0)}return!0}function b(n,t){return n in t}function S(n){return Number.isNaN(n)}function O(n){return!!c(n)&&0>Number(n)}function R(n){return!!n}function T(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function C(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function I(n,t){return n.length>Number(t)}function k(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function A(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function _(n,t){return o(n)&&o(t)&&n.startsWith(t)}function w(n){for(var e in mt){var r=mt[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 L(n,t){var e;return null!==(e=F(n))&&void 0!==e?e:t}function W(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?F(t):t)}function P(n){function t(t,u){var i,o,s=e();return t=Yn({},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){return W(r.ctx,L(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 G(){try{return t(Proxy)}catch(n){return!1}}function X(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 W(g(n)||n&&g(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),g(n)?X(n):X(n.pass,F.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 W((i=D.apply(void 0,U([yt.run({value:n},(function(){return e.apply(void 0,U([n],u,!1))})),r,n],u,!1))).pass,E(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var e={};if(!G())return w((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=mt[e])return t(r,n,e)}});return r}function K(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 j(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=mt[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 L(K(e,(function(e,r){var u,i=yt.run({value:n},(function(){return e(n)}));i.pass||r(X(!!i.pass,null!==(u=F(t,n,i.message))&&void 0!==u?u:i.message))})),X(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return G()?s=new Proxy(s,{get:function(t,e){return mt[e]?n(e):t[e]}}):(w((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 M(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 M(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,M(t)},removeLevel:function(){t.pop()},reset:n}}function J(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(J(u,t)):(u=t(u),zn(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 z(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=L(n[r],[]),n=n[r]}return n}function Q(n){setTimeout((function(){throw Error(n)}),0)}function Z(n){function t(n){return e.findIndex((function(t){var e=t[0];return y(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]),I(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 $(){return Rt.useX().stateRef}function nn(){return $().testObjects()}function tn(){(0,nn()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function en(n){(0,nn()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function rn(){return Y(J(nn()[0].current,(function(n){return n.isPending()?n:null})))}function un(){var n=nn()[0].current;return Tt([n],(function(){return Y(n)}))}function on(){return Rt.useX().testCursor.getCursor()}function sn(){return Rt.useX().testCursor.next()}function an(n,e){if(n=void 0===(n=n.type)?Mn.DEFAULT:n,t(e)){var r={current:{},prev:{}},u=on();return Rt.run({isolate:{type:n,keys:r}},(function(){Rt.useX().testCursor.addLevel(),r.prev=function(){var n=nn()[0].prev;return[].concat(z(n,on())).reduce((function(n,t){return t instanceof kt&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),en((function(n){return z(n,u)[M(u)]=[],n}));var n=e();return Rt.useX().testCursor.removeLevel(),sn(),n}))}}function cn(n,t){function e(n){i[n===Ct.ERRORS?It.ERROR_COUNT:It.WARN_COUNT]++,u&&(i[n]=(i[n]||[]).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(Ct.ERRORS):t.isWarning()&&e(Ct.WARNINGS)),i}function fn(n,t){return!(!t||n.fieldName!==t)}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&&!fn(e,i)?r=!0:(r=e.warns(),r=n===Ct.WARNINGS!=!!r);return r||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),Et({},i&&((r={})[i]=[],r)))}function pn(n){return vn(Ct.ERRORS,n)}function dn(n){return vn(Ct.WARNINGS,n)}function vn(n,t){return n=ln(n,un(),{fieldName:t}),t?n[t]:n}function hn(n,t){return n=gn(Ct.ERRORS,n,t),t?n[t]:n}function Nn(n,t){return n=gn(Ct.WARNINGS,n,t),t?n[t]:n}function gn(n,t,e){return W(t,"get".concat(n[0].toUpperCase()).concat(n.slice(1),"ByGroup requires a group name. Received `").concat(t,"` instead.")),ln(n,un(),{group:t,fieldName:e})}function mn(n,t,e){return(e=!n.hasFailures()||e&&!fn(n,e))||(n=n.warns(),e=t===Ct.WARNINGS!=!!n),!e}function yn(n){return bn(Ct.ERRORS,n)}function En(n){return bn(Ct.WARNINGS,n)}function bn(n,t){return un().some((function(e){return mn(e,n,t)}))}function Sn(n,t){return Rn(Ct.ERRORS,n,t)}function On(n,t){return Rn(Ct.WARNINGS,n,t)}function Rn(n,t,e){return un().some((function(r){return t===r.groupName&&mn(r,n,e)}))}function Tn(n){var t=un().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(t=!!n&&!!t[n])||!yn(n)&&(!(E(t=un())||function(n){var t=un();return!!n&&!t.find((function(t){return t.fieldName===n}))}(n)||function(n){var t=$().optionalFields()[0];return ct(rn().filter((function(e){return!(n&&!fn(e,n))&&!0!==t[e.fieldName]})))}(n))&&function(n){var t=un(),e=$().optionalFields()[0];return t.every((function(t){return!(!n||fn(t,n))||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(n))}function Cn(){var n=un(),t={stateRef:$()};return Gt([n],Rt.bind(t,(function(){var n=$().suiteName()[0];return Yn(function(){var n=un(),t=Yn({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{}});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=cn(e,t),e=n.groups;var r=t.groupName;return r&&(e[r]=e[r]||{},e[r][t.fieldName]=cn(e[r],t)),n}),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}(t)}(),{getErrors:Rt.bind(t,pn),getErrorsByGroup:Rt.bind(t,hn),getWarnings:Rt.bind(t,dn),getWarningsByGroup:Rt.bind(t,Nn),hasErrors:Rt.bind(t,yn),hasErrorsByGroup:Rt.bind(t,Sn),hasWarnings:Rt.bind(t,En),hasWarningsByGroup:Rt.bind(t,On),isValid:Rt.bind(t,Tn),suiteName:n})})))}function In(n){var t=rn();return!E(t)&&(n?t.some((function(t){return fn(t,n)})):ct(t))}function kn(){var n=un(),t={stateRef:$()};return Xt([n],Rt.bind(t,(function(){return Yn({},Cn(),{done:Rt.bind(t,Dt)})})))}function An(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!E(r.tests[e].testCount)))}function _n(n){return!(In()&&(!n||In(n)))}function wn(n,t){var e=Rt.bind({},n);(0,$().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function Fn(n){return n.forEach((function(n){return n()}))}function Ln(){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(Ut.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=$().testCallbacks()[0].fieldCallbacks;t&&!In(t)&&p(e[t])&&Fn(e[t]),In()||n.emit(Ut.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Ut.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var n=$().optionalFields()[0];if(!E(n)){var e={};en((function(r){return J(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(Ut.ALL_RUNNING_TESTS_FINISHED,(function(){Fn($().testCallbacks()[0].doneCallbacks)})),n.on(Ut.REMOVE_FIELD,(function(n){un().forEach((function(t){fn(t,n)&&(t.cancel(),function(n){en((function(t){return J(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Ut.RESET_FIELD,(function(n){un().forEach((function(t){fn(t,n)&&t.reset()}))})),n}function Wn(){var n=Rt.useX();return W(n.bus),n.bus}function Pn(n){return Un(0,"tests",n)}function xn(n){return Un(1,"tests",n)}function Un(n,t,e){var r=Rt.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Gn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Xn(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function Dn(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Wn().emit,i=$(),s=Rt.bind({stateRef:i},(function(){tn(),u(Ut.TEST_COMPLETED,n)}));i=Rt.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 qn(n){var t=nn()[0].prev;if(E(t))return Kn(n),n;var e=on();if(t=z(t,e)[M(e)],!i(n.key)){t=n.key,(e=Rt.useX().isolate.keys.prev[t])&&(n=e),e=n;var r=Rt.useX().isolate.keys.current;return i(r[t])?r[t]=e:Q('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Kn(n),n}return!ct(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(Rt.useX().isolate.type===Mn.EACH||Q("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=nn(),t=n[1],e=n[0].prev;n=z(e,on());var r=Rt.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),Kn(n=L(t,n)),n}function Kn(n){var t=on();en((function(e){return z(e,t)[M(t)]=n,e}))}function jn(n){var e=Jn.EAGER;if(e=!(Rt.useX().mode[0]!==e||!yn(n.fieldName)))return n.skip(),qn(n),sn(),n;if(e=qn(n),Rt.useX().omitted)return e.omit(),sn(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,Rt.useX().skipped)return!0;var e=Rt.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=Rt.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||!Gn(u)&&!1!==u[t])}r=Rt.useX().exclusion;n:{for(a in(s=Rt.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&&!!Gn(u)&&!F(e[t])}(n))return e.skip(!!Rt.useX().skipped),sn(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),Kn(n),sn(),n.isUntested()){e=Wn();var r=function(n){return Rt.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(),Dn(n)):e.emit(Ut.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(),Dn(n));return n}function Bn(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],W(o(n),Hn("fieldName","string")),W(t(r),Hn("Test callback","function"));var i=Rt.useX();return jn(e=new kt(n,r,{message:e,groupName:i.groupName,key:u}))}function Hn(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var Mn,Vn,Jn,Yn=Object.assign,zn=e(r),Qn=e(u),Zn=e(i),$n=e(s),nt=e(a),tt=e(c),et=e(p),rt=e(d),ut=e(h),it=e(N),ot=e(g),st=e(m),at=e(y),ct=e(E),ft=e(b),lt=e(S),pt=e(O),dt=e(o),vt=e(R),ht=e(T),Nt=e(k),gt=e(A),mt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:$n,doesNotStartWith:e(_),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:l,gt:f,gte:l,inside:d,isArray:p,isBetween:h,isBlank:N,isBoolean:g,isEmpty:E,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:vt,isKeyOf:b,isNaN:S,isNegative:O,isNotArray:et,isNotBetween:ut,isNotBlank:it,isNotBoolean:ot,isNotEmpty:ct,isNotKeyOf:ft,isNotNaN:lt,isNotNull:zn,isNotNullish:Zn,isNotNumber:st,isNotNumeric:tt,isNotString:dt,isNotUndefined:Qn,isNotValueOf:ht,isNull:r,isNullish:i,isNumber:m,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:pt,isString:o,isTruthy:R,isUndefined:u,isValueOf:T,lengthEquals:y,lengthNotEquals:at,lessThan:C,lessThanOrEquals:v,longerThan:I,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:C,lte:v,matches:k,notEquals:nt,notInside:rt,notMatches:Nt,numberEquals:A,numberNotEquals:gt,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:_},yt=P((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?Yn(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:Yn(e,{parent:x})})),Et=function(){return(Et=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)},bt=(Vn={context:function(){return yt.useX()},extend:function(n){Yn(mt,n)}},G()?new Proxy(Yn(q,Vn),{get:function(n,t){return t in n?n[t]:mt[t]?j(t):void 0}}):(w((function(n){Vn[n]=j(n)})),Yn(q,Vn))),St=function(n){return function(){return"".concat(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"}(Mn||(Mn={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(Jn||(Jn={}));var Ot,Rt=P((function(n,t){return t?null:Yn({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:Mn.DEFAULT,keys:{current:{},prev:{}}},mode:[Jn.ALL],testCursor:V()},n)})),Tt=Z();!function(n){n.Error="error",n.Warning="warning"}(Ot||(Ot={}));var Ct,It,kt=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=St(),this.severity=Ot.Error,this.status=At,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!==xt||(this.status=n)},n.prototype.warns=function(){return this.severity===Ot.Warning},n.prototype.setPending=function(){this.setStatus(Wt)},n.prototype.fail=function(){this.setStatus(this.warns()?Ft:wt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Lt)},n.prototype.warn=function(){this.severity=Ot.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(_t)},n.prototype.cancel=function(){this.setStatus(Pt),tn()},n.prototype.reset=function(){this.status=At,tn()},n.prototype.omit=function(){this.setStatus(xt)},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(Wt)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(xt)},n.prototype.isUntested=function(){return this.statusEquals(At)},n.prototype.isFailing=function(){return this.statusEquals(wt)},n.prototype.isCanceled=function(){return this.statusEquals(Pt)},n.prototype.isSkipped=function(){return this.statusEquals(_t)},n.prototype.isPassing=function(){return this.statusEquals(Lt)},n.prototype.isWarning=function(){return this.statusEquals(Ft)},n.prototype.statusEquals=function(n){return this.status===n},n}(),At="UNTESTED",_t="SKIPPED",wt="FAILED",Ft="WARNING",Lt="PASSING",Wt="PENDING",Pt="CANCELED",xt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Ct||(Ct={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(It||(It={}));var Ut,Gt=Z(20),Xt=Z(20),Dt=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(),An(e,n,t))return t;var r=function(){return e(Cn())};return _n(n)?(r(),t):(wn(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"}(Ut||(Ut={})),Pn.group=function(n){return Un(0,"groups",n)},xn.group=function(n){return Un(1,"groups",n)};var qt=Yn(Bn,{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=Rt.useX().testCursor.cursorAt();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)}))):jn(r[1])}}(Bn)});n.VERSION="4.2.3-dev-87ebfa",n.context=Rt,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],W(t(r),"vest.create: Expected callback to be a function.");var u=Ln(),i=B();return n={stateRef:H(i,{suiteId:St(),suiteName:n}),bus:u},Yn(Rt.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),an({type:Mn.SUITE},(function(){r.apply(void 0,n)})),u.emit(Ut.SUITE_CALLBACK_DONE_RUNNING),kn()})),{get:Rt.bind(n,Cn),remove:Rt.bind(n,(function(n){u.emit(Ut.REMOVE_FIELD,n)})),reset:i.reset,resetField:Rt.bind(n,(function(n){u.emit(Ut.RESET_FIELD,n)}))})},n.each=function(n,e){W(t(e),"each callback must be a function"),an({type:Mn.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=Jn.EAGER;Rt.useX().mode[0]=n},n.enforce=bt,n.group=function(n,e){W(o(n),Xn("name must be a string")),W(t(e),Xn("callback must be a function")),an({type:Mn.GROUP},(function(){Rt.run({groupName:n},e)}))},n.include=function(n){function t(t){var e=Rt.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?L(r.tests[n],!0):o(t)?!!r.tests[t]:F(t,F(Cn))}}var e=Rt.useX();return n?(e.inclusion[n]=L(e.exclusion.tests[n],!0),{when:t}):{when:t}},n.omitWhen=function(n,t){an({type:Mn.OMIT_WHEN},(function(){Rt.run({omitted:!!Rt.useX().omitted||F(n,F(Cn))},(function(){return t()}))}))},n.only=Pn,n.optional=function(n){(0,$().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){an({type:Mn.SKIP_WHEN},(function(){Rt.run({skipped:!!Rt.useX().skipped||F(n,F(Cn))},(function(){return t()}))}))},n.test=qt,n.warn=function(){var n=Rt.useX("warn hook called outside of a running suite.");W(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.2.2",
2
+ "version": "4.2.3-dev-87ebfa",
3
3
  "license": "MIT",
4
4
  "name": "vest",
5
5
  "author": "ealush",
@@ -20,8 +20,8 @@
20
20
  "url": "https://github.com/ealush/vest.git/issues"
21
21
  },
22
22
  "dependencies": {
23
- "context": "^2.0.1",
24
- "n4s": "^4.1.2"
23
+ "context": "dev",
24
+ "n4s": "dev"
25
25
  },
26
26
  "homepage": "https://vestjs.dev/",
27
27
  "exports": {
@@ -1,16 +1,13 @@
1
1
  export default function mockThrowError() {
2
- const throwErrorDeferred = jest.fn();
3
- const throwError = jest.fn();
2
+ const deferThrow = jest.fn();
4
3
  jest.resetModules();
5
4
  jest.mock('throwError', () => ({
6
- throwErrorDeferred,
7
- default: throwError,
5
+ deferThrow,
8
6
  }));
9
7
  const vest = require('vest');
10
8
 
11
9
  return {
12
- throwErrorDeferred,
13
- throwError,
10
+ deferThrow,
14
11
  vest,
15
12
  };
16
13
  }
@@ -2,8 +2,9 @@
2
2
  * Reads the testObjects list and gets full validation result from it.
3
3
  */
4
4
  declare function genTestsSummary(): TTestSummary;
5
+ type TGroups = Record<string, TTestGroup>;
5
6
  type TTestSummary = {
6
- groups: Record<string, TTestGroup>;
7
+ groups: TGroups;
7
8
  tests: TTestGroup;
8
9
  } & TTestSummaryBase;
9
10
  type TTestGroup = Record<string, TSingleTestSummary>;
package/types/parser.d.ts CHANGED
@@ -2,8 +2,9 @@
2
2
  * Reads the testObjects list and gets full validation result from it.
3
3
  */
4
4
  declare function genTestsSummary(): TTestSummary;
5
+ type TGroups = Record<string, TTestGroup>;
5
6
  type TTestSummary = {
6
- groups: Record<string, TTestGroup>;
7
+ groups: TGroups;
7
8
  tests: TTestGroup;
8
9
  } & TTestSummaryBase;
9
10
  type TTestGroup = Record<string, TSingleTestSummary>;
@@ -2,8 +2,9 @@
2
2
  * Reads the testObjects list and gets full validation result from it.
3
3
  */
4
4
  declare function genTestsSummary(): TTestSummary;
5
+ type TGroups = Record<string, TTestGroup>;
5
6
  type TTestSummary = {
6
- groups: Record<string, TTestGroup>;
7
+ groups: TGroups;
7
8
  tests: TTestGroup;
8
9
  } & TTestSummaryBase;
9
10
  type TTestGroup = Record<string, TSingleTestSummary>;
package/types/vest.d.ts CHANGED
@@ -1,59 +1,11 @@
1
1
  import { enforce } from 'n4s';
2
- declare enum TestSeverity {
3
- Error = "error",
4
- Warning = "warning"
5
- }
6
- declare class VestTest {
7
- fieldName: string;
8
- testFn: TTestFn;
9
- asyncTest?: TAsyncTest;
10
- groupName?: string;
11
- message?: string;
12
- key?: null | string;
13
- id: string;
14
- severity: TestSeverity;
15
- status: KStatus;
16
- constructor(fieldName: string, testFn: TTestFn, { message, groupName, key }?: {
17
- message?: string;
18
- groupName?: string;
19
- key?: string;
20
- });
21
- run(): TTestResult;
22
- setStatus(status: KStatus): void;
23
- warns(): boolean;
24
- setPending(): void;
25
- fail(): void;
26
- done(): void;
27
- warn(): void;
28
- isFinalStatus(): boolean;
29
- skip(force?: boolean): void;
30
- cancel(): void;
31
- reset(): void;
32
- omit(): void;
33
- valueOf(): boolean;
34
- hasFailures(): boolean;
35
- isNonActionable(): boolean;
36
- isPending(): boolean;
37
- isTested(): boolean;
38
- isOmitted(): boolean;
39
- isUntested(): boolean;
40
- isFailing(): boolean;
41
- isCanceled(): boolean;
42
- isSkipped(): boolean;
43
- isPassing(): boolean;
44
- isWarning(): boolean;
45
- statusEquals(status: KStatus): boolean;
46
- }
47
- type TAsyncTest = Promise<string | void>;
48
- type TTestResult = TAsyncTest | boolean | void;
49
- type TTestFn = () => TTestResult;
50
- type KStatus = "UNTESTED" | "SKIPPED" | "FAILED" | "WARNING" | "PASSING" | "PENDING" | "CANCELED" | "OMITTED";
51
2
  /**
52
3
  * Reads the testObjects list and gets full validation result from it.
53
4
  */
54
5
  declare function genTestsSummary(): TTestSummary;
6
+ type TGroups = Record<string, TTestGroup>;
55
7
  type TTestSummary = {
56
- groups: Record<string, TTestGroup>;
8
+ groups: TGroups;
57
9
  tests: TTestGroup;
58
10
  } & TTestSummaryBase;
59
11
  type TTestGroup = Record<string, TSingleTestSummary>;
@@ -113,7 +65,7 @@ type CreateProperties = {
113
65
  remove: (fieldName: string) => void;
114
66
  };
115
67
  type CB = (...args: any[]) => void;
116
- type SuiteReturnType<T extends CB> = {
68
+ type Suite<T extends CB> = {
117
69
  (...args: Parameters<T>): SuiteRunResult;
118
70
  } & CreateProperties;
119
71
  /**
@@ -127,8 +79,57 @@ type SuiteReturnType<T extends CB> = {
127
79
  * });
128
80
  * });
129
81
  */
130
- declare function create<T extends CB>(suiteName: string, suiteCallback: T): SuiteReturnType<T>;
131
- declare function create<T extends CB>(suiteCallback: T): SuiteReturnType<T>;
82
+ declare function create<T extends CB>(suiteName: string, suiteCallback: T): Suite<T>;
83
+ declare function create<T extends CB>(suiteCallback: T): Suite<T>;
84
+ declare enum TestSeverity {
85
+ Error = "error",
86
+ Warning = "warning"
87
+ }
88
+ declare class VestTest {
89
+ fieldName: string;
90
+ testFn: TTestFn;
91
+ asyncTest?: TAsyncTest;
92
+ groupName?: string;
93
+ message?: string;
94
+ key?: null | string;
95
+ id: string;
96
+ severity: TestSeverity;
97
+ status: KStatus;
98
+ constructor(fieldName: string, testFn: TTestFn, { message, groupName, key }?: {
99
+ message?: string;
100
+ groupName?: string;
101
+ key?: string;
102
+ });
103
+ run(): TTestResult;
104
+ setStatus(status: KStatus): void;
105
+ warns(): boolean;
106
+ setPending(): void;
107
+ fail(): void;
108
+ done(): void;
109
+ warn(): void;
110
+ isFinalStatus(): boolean;
111
+ skip(force?: boolean): void;
112
+ cancel(): void;
113
+ reset(): void;
114
+ omit(): void;
115
+ valueOf(): boolean;
116
+ hasFailures(): boolean;
117
+ isNonActionable(): boolean;
118
+ isPending(): boolean;
119
+ isTested(): boolean;
120
+ isOmitted(): boolean;
121
+ isUntested(): boolean;
122
+ isFailing(): boolean;
123
+ isCanceled(): boolean;
124
+ isSkipped(): boolean;
125
+ isPassing(): boolean;
126
+ isWarning(): boolean;
127
+ statusEquals(status: KStatus): boolean;
128
+ }
129
+ type TAsyncTest = Promise<string | void>;
130
+ type TTestResult = TAsyncTest | boolean | void;
131
+ type TTestFn = () => TTestResult;
132
+ type KStatus = "UNTESTED" | "SKIPPED" | "FAILED" | "WARNING" | "PASSING" | "PENDING" | "CANCELED" | "OMITTED";
132
133
  declare function createCursor(): {
133
134
  addLevel: () => void;
134
135
  cursorAt: () => number;
@@ -344,6 +345,6 @@ declare const test: typeof testBase & {
344
345
  * Sets a running test to warn only mode.
345
346
  */
346
347
  declare function warn(): void;
347
- declare const VERSION = "4.2.2";
348
+ declare const VERSION = "4.2.3-dev-87ebfa";
348
349
  export { test, create, each, only, skip, warn, group, optional, skipWhen, omitWhen, enforce, VERSION, context, include, eager };
349
- export type { SuiteResult, SuiteRunResult, VestTest };
350
+ export type { SuiteResult, SuiteRunResult, VestTest, Suite };