vest 4.4.2 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/classnames.development.js +16 -90
- package/dist/cjs/classnames.production.js +1 -1
- package/dist/cjs/enforce/compose.development.js +5 -58
- package/dist/cjs/enforce/compose.production.js +1 -1
- package/dist/cjs/enforce/compounds.development.js +8 -51
- package/dist/cjs/enforce/compounds.production.js +1 -1
- package/dist/cjs/enforce/schema.development.js +5 -57
- package/dist/cjs/enforce/schema.production.js +1 -1
- package/dist/cjs/parser.development.js +15 -89
- package/dist/cjs/parser.production.js +1 -1
- package/dist/cjs/promisify.development.js +2 -26
- package/dist/cjs/promisify.production.js +1 -1
- package/dist/cjs/vest.development.js +197 -452
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/classnames.development.js +14 -88
- package/dist/es/classnames.production.js +1 -1
- package/dist/es/enforce/compose.development.js +1 -54
- package/dist/es/enforce/compose.production.js +1 -1
- package/dist/es/enforce/compounds.development.js +2 -45
- package/dist/es/enforce/compounds.production.js +1 -1
- package/dist/es/enforce/schema.development.js +1 -53
- package/dist/es/enforce/schema.production.js +1 -1
- package/dist/es/parser.development.js +14 -88
- package/dist/es/parser.production.js +1 -1
- package/dist/es/promisify.development.js +1 -25
- package/dist/es/promisify.production.js +1 -1
- package/dist/es/vest.development.js +131 -387
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/classnames.development.js +27 -56
- package/dist/umd/classnames.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +111 -94
- package/dist/umd/enforce/compose.production.js +1 -1
- package/dist/umd/enforce/compounds.development.js +185 -168
- package/dist/umd/enforce/compounds.production.js +1 -1
- package/dist/umd/enforce/schema.development.js +134 -117
- package/dist/umd/enforce/schema.production.js +1 -1
- package/dist/umd/parser.development.js +27 -56
- package/dist/umd/parser.production.js +1 -1
- package/dist/umd/vest.development.js +398 -386
- package/dist/umd/vest.production.js +1 -1
- package/package.json +4 -3
- package/testUtils/__tests__/partition.test.ts +21 -0
- package/testUtils/mockThrowError.ts +2 -1
- package/testUtils/partition.ts +13 -0
- package/testUtils/suiteDummy.ts +1 -1
- package/types/enforce/compose.d.ts +17 -32
- package/types/enforce/compounds.d.ts +17 -32
- package/types/enforce/schema.d.ts +17 -32
- package/types/parser.d.ts +8 -7
- package/types/promisify.d.ts +20 -35
- package/types/vest.d.ts +45 -60
|
@@ -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 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 c(n)&&c(t)&&Number(n)<Number(t)}function N(n,t){return l(n,t)||h(n,t)}function g(n,t,e){return d(n,t)&&N(n,e)}function E(n){return i(n)||o(n)&&!n.trim()}function m(n){return!!n===n}function y(n,t){return l(n.length,t)}function b(n){return!n||(Object.prototype.hasOwnProperty.call(n,"length")?y(n,0):"object"==typeof n&&y(Object.keys(n),0))}function R(n,t){return n in t}function S(n){return Number.isNaN(n)}function O(n){return"number"==typeof 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 k(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function A(n,t){return o(n)&&o(t)&&n.startsWith(t)}function w(n){for(var e in Wt){var r=Wt[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 x(n,t){var e;return null!==(e=W(n))&&void 0!==e?e:W(t)}function F(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?W(t):t)}function L(n){function t(t,u){var i,o,s=e();return t=ft({},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){var t=e();return F(t,x(n,"Context was used after it was closed")),t}}}function P(){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 D(n,t){return n={pass:n},t&&(n.message=t),n}function X(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return F(m(n)||n&&m(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),m(n)?D(n):D(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=[],o=0;o<arguments.length;o++)u[o]=arguments[o];return F((o=xt.run({value:n},(function(){return X.apply(void 0,U([e.apply(void 0,U([n],u,!1)),r,n],u,!1))}))).pass,i(o.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(W(o.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=Wt[e])return t(r,n,e)}});return r}function j(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 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=Wt[r];e.push((function(n){return X.apply(void 0,U([o.apply(void 0,U([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return x(j(e,(function(e,r){var u,i=xt.run({value:n},(function(){return e(n)}));r(!i.pass,D(!!i.pass,null!==(u=W(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 G()?s=new Proxy(s,{get:function(t,e){return Wt[e]?n(e):t[e]}}):(w((function(t){s[t]=n(t)})),s)}}(n)}function B(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]),_(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),lt(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]=x(n[r],[]),n=n[r]}return n}function Y(){var n=0;return{current:function(){return n},next:function(){n++}}}function z(n,t){return void 0===t&&(t=[]),{cursor:Y(),keys:{current:{},prev:{}},path:t,type:n}}function Q(){return Ut.useX().stateRef}function Z(n){return Q().optionalFields()[0][n]}function $(n,t){(0,Q().optionalFields()[1])((function(e){var r;return ft(e,((r={})[n]=W(t,e[n]),r))}))}function nn(n){var t;return null===(t=Z(n))||void 0===t?void 0:t[0]}function tn(){en((function(n){return n}))}function en(n){(0,Q().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function rn(){return un().filter((function(n){return n.isPending()}))}function un(){var n=Q().testObjects()[0].current;return Gt([n],(function(){return V(n)}))}function on(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 sn(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 an(n){setTimeout((function(){throw Error(n)}),0)}function cn(n,e){n=void 0===(n=n.type)?st.DEFAULT:n,F(t(e));var r=z(n,ln());return n=Ut.run({isolate:r},(function(){return r.keys.prev=function(){var n=Q().testObjects()[0].prev;return[].concat(J(n,ln())).reduce((function(n,t){return t instanceof qt&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),en((function(n){var t=r.path;return J(n,t)[H(t)]=[],n})),e()})),fn().cursor.next(),n}function fn(){return Ut.useX().isolate}function ln(){var n=fn();return n.path.concat(n.cursor.current())}function dn(n){return n===Dt.ERRORS?Xt.ERROR_COUNT:Xt.WARN_COUNT}function pn(n,t){return!(!t||n.fieldName!==t)}function vn(n,t){return un().some((function(e){return hn(e,n,t)}))}function hn(n,t,e){return(e=!n.hasFailures()||e&&!pn(n,e))||(n=n.warns(),e=t===Dt.WARNINGS!=!!n),!e}function Nn(n){return!!gn(n)||!vn(Dt.ERRORS,n)&&(!b(un())&&!function(n){return Ot(rn().filter((function(t){return En(t,n)})))}(n)&&function(n){return un().every((function(t){return!(!n||pn(t,n))||mn(t,n)}))}(n))}function gn(n){return!!n&&!0===(null===(t=Z(n))||void 0===t?void 0:t[1]);var t}function En(n,t){return!(t&&!pn(n,t))&&!0!==nn(n.fieldName)}function mn(n,t){return!(!t||pn(n,t))||(!0===nn(n.fieldName)||n.isTested()||n.isOmitted())}function yn(){var n=Ut.useX().summary;return F(n),n}function bn(){var n=un(),t=ft({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=Rn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&Nn(t.fieldName);var r=n.groups,u=t.groupName;return u&&(r[u]=r[u]||{},r[u][t.fieldName]=Rn(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 un().some((function(r){return!Qt(r,t)&&hn(r,n,e)}))}(Dt.ERRORS,u,t)&&!function(n,t){return Ot(rn().filter((function(e){return!Qt(e,n)&&En(e,t)})))}(u,t)&&function(n,t){return un().every((function(e){return!!Qt(e,n)||mn(e,t)}))}(u,t),e.valid=t),n}),t),t.valid=Nn(),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 Rn(n,t){function e(n){var t=dn(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||ft({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 Sn(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=dn(t);for(e in n)T(n[e][u])&&(r[e]=n[e][t]||[]);return r}function Tn(n){return In(Dt.ERRORS,n)}function Cn(n){return In(Dt.WARNINGS,n)}function In(n,t){var e=yn().tests;return t?Sn(e,n,t):On(e,n)}function _n(n,t){return An(n,Dt.ERRORS,t)}function kn(n,t){return An(n,Dt.WARNINGS,t)}function An(n,t,e){return n=yn().groups[n],e?Sn(n,t,e):On(n,t)}function wn(n){return xn(Xt.ERROR_COUNT,n)}function Wn(n){return xn(Xt.WARN_COUNT,n)}function xn(n,t){var e,r=yn();return T(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function Fn(n,t){return Pn(Dt.ERRORS,n,t)}function Ln(n,t){return Pn(Dt.WARNINGS,n,t)}function Pn(n,t,e){var r,u,i=yn();if(n=dn(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 Un(n){var t=yn();return n?!!Dn(t.tests,n):t.valid}function Gn(n,t){if(!(n=yn().groups[n]))return!1;if(t)return Dn(n,t);for(var e in n)if(!Dn(n,e))return!1;return!0}function Dn(n,t){var e;return!(null===(e=n[t])||void 0===e||!e.valid)}function Xn(){var n=un(),t={stateRef:Q()};return Zt([n],Ut.bind(t,(function(){var n=bn(),t=Q().suiteName()[0],e={summary:n};return ft(n,{getErrors:Ut.bind(e,Tn),getErrorsByGroup:Ut.bind(e,_n),getWarnings:Ut.bind(e,Cn),getWarningsByGroup:Ut.bind(e,kn),hasErrors:Ut.bind(e,wn),hasErrorsByGroup:Ut.bind(e,Fn),hasWarnings:Ut.bind(e,Wn),hasWarningsByGroup:Ut.bind(e,Ln),isValid:Ut.bind(e,Un),isValidByGroup:Ut.bind(e,Gn),suiteName:t})})))}function qn(n){var t=rn();return!b(t)&&(n?t.some((function(t){return pn(t,n)})):Ot(t))}function jn(){var n=un(),t={stateRef:Q()};return $t([n],Ut.bind(t,(function(){return ft({},Xn(),{done:Ut.bind(t,ne)})})))}function Kn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!b(r.tests[e].testCount)))}function Bn(n){return!(qn()&&(!n||qn(n)))}function Hn(n,t){(0,Q().testCallbacks()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Mn(n){return n.forEach((function(n){return n()}))}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=Q().testCallbacks()[0].fieldCallbacks;t&&!qn(t)&&p(e[t])&&Mn(e[t]),qn()||n.emit(zt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(zt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){e[n.fieldName]&&(n.omit(),$(n.fieldName,(function(n){return[n[0],!0]})))}if(!b(Q().optionalFields()[0])){var e={};en((function(r){return M(r,(function(r){if(Object.prototype.hasOwnProperty.call(e,r.fieldName))n(r);else{var u=nn(r.fieldName);t(u)&&(e[r.fieldName]=u(),n(r))}return r}))}))}}()})),n.on(zt.ALL_RUNNING_TESTS_FINISHED,(function(){Mn(Q().testCallbacks()[0].doneCallbacks)})),n.on(zt.REMOVE_FIELD,(function(n){un().forEach((function(t){pn(t,n)&&(t.cancel(),function(n){en((function(t){return M(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(zt.RESET_FIELD,(function(n){un().forEach((function(t){pn(t,n)&&t.reset()}))})),n}function Jn(){var n=Ut.useX();return F(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){o(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 e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Jn().emit,i=Q(),s=Ut.bind({stateRef:i},(function(){tn(),u(zt.TEST_COMPLETED,n)}));i=Ut.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 et(n){var t=Q().testObjects()[0].prev;if(b(t))return rt(n),n;var e=ln();if(t=J(t,e)[H(e)],!i(n.key)){t=n.key,(e=fn().keys.prev[t])&&(n=e),e=n;var r=fn().keys.current;return i(r[t])?r[t]=e:an('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!Ot(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(fn().type===st.EACH||an("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=fn().cursor.current();en((function(t){return t.splice(n),t}))}(),t=null),rt(n=x(t,n)),n}function rt(n){var t=ln();en((function(e){return J(e,t)[H(t)]=n,e}))}function ut(n){var e=fn().cursor,r=ct.EAGER;if(Ut.useX().mode[0]===r&&vn(Dt.ERRORS,n.fieldName))return n.skip(),et(n),e.next(),n;if(r=et(n),Ut.useX().omitted)return r.omit(),e.next(),r;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)&&!W(e[t])}(n))return r.skip(!!Ut.useX().skipped),e.next(),r;if(n!==r&&r.fieldName===n.fieldName&&r.groupName===n.groupName&&r.isPending()&&r.cancel(),rt(n),n.isUntested()){r=Jn();var u=function(n){return Ut.run({currentTest:n},(function(){return n.run()}))}(n);try{u&&t(u.then)?(n.asyncTest=u,n.setPending(),tt(n)):r.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(r=n.asyncTest)&&t(r.then)&&(n.setPending(),tt(n));return e.next(),n}function it(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),ot("fieldName","string")),F(t(r),ot("Test callback","function"));var i=Ut.useX();return ut(e=new qt(n,r,{message:e,groupName:i.groupName,key:u}))}function ot(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var st,at,ct,ft=Object.assign,lt=e(r),dt=e(u),pt=e(i),vt=e(s),ht=e(a),Nt=e(c),gt=e(l),Et=e(p),mt=e(v),yt=e(g),bt=e(E),Rt=e(m),St=e(y),Ot=e(b),Tt=e(R),Ct=e(S),It=e(O),_t=e(o),kt=e(C),At=e(I),wt=e(k),Wt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:vt,doesNotStartWith:e(A),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:d,gt:f,gte:d,inside:v,isArray:p,isBetween:g,isBlank:E,isBoolean:m,isEmpty:b,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:kt,isKeyOf:R,isNaN:S,isNegative:function(n){return h(n,0)},isNotArray:Et,isNotBetween:yt,isNotBlank:bt,isNotBoolean:Rt,isNotEmpty:Ot,isNotKeyOf:Tt,isNotNaN:Ct,isNotNull:lt,isNotNullish:pt,isNotNumber:It,isNotNumeric:Nt,isNotString:_t,isNotUndefined:dt,isNotValueOf:At,isNull:r,isNullish:i,isNumber:O,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:T,isString:o,isTruthy:C,isUndefined:u,isValueOf:I,lengthEquals:y,lengthNotEquals:St,lessThan:h,lessThanOrEquals:N,longerThan:_,longerThanOrEquals:function(n,t){return d(n.length,t)},lt:h,lte:N,matches:k,notEquals:ht,notInside:mt,notMatches:wt,numberEquals:l,numberNotEquals:gt,shorterThan:function(n,t){return h(n.length,t)},shorterThanOrEquals:function(n,t){return N(n.length,t)},startsWith:A},xt=L((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?ft(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:ft(e,{parent:P})})),Ft=function(){function n(){if(!G())return w((function(n){t[n]=K(n)})),ft(q,t)}var t={context:function(){return xt.useX()},extend:function(t){ft(Wt,t),n()}};return n(),new Proxy(ft(q,t),{get:function(n,t){return t in n?n[t]:Wt[t]?K(t):void 0}})}(),Lt=(at=0,function(){return"".concat(at++)});!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=L((function(n,t){return t?null:ft({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:z(st.DEFAULT),mode:[ct.ALL]},n)})),Gt=B();!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=Lt(),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,u(this.message)&&o(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),tn()},n.prototype.reset=function(){this.status=jt,tn()},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=e((function(n,t){return n.groupName===t})),Zt=B(1),$t=B(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=jn(),Kn(e,n,t))return t;var r=function(){return e(Xn())};return Bn(n)?(r(),t):(Hn(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=ft(it,{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=fn().cursor.current();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)}))):ut(r[1])}}(it)});n.VERSION="4.4.2",n.context=Ut,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=Vn(),i=on();return n={stateRef:sn(i,{suiteId:Lt(),suiteName:n}),bus:u},ft(Ut.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),cn({type:st.SUITE},(function(){r.apply(void 0,n)})),u.emit(zt.SUITE_CALLBACK_DONE_RUNNING),jn()})),{get:Ut.bind(n,Xn),remove:Ut.bind(n,(function(n){u.emit(zt.REMOVE_FIELD,n)})),reset:i.reset,resetField:Ut.bind(n,(function(n){u.emit(zt.RESET_FIELD,n)}))})},n.each=function(n,e){F(t(e),"each callback must be a function"),cn({type:st.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=ct.EAGER;Ut.useX().mode[0]=n},n.enforce=Ft,n.group=function(n,e){F(o(n),nt("name must be a string")),F(t(e),nt("callback must be a function")),cn({type:st.GROUP},(function(){Ut.run({groupName:n},e)}))},n.include=function(n){var t=Ut.useX(),e=t.inclusion;return t=t.exclusion,F(o(n)),e[n]=x(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)?x(r.tests[n],!0):o(t)?!!r.tests[t]:W(t,W(Xn))}}}},n.omitWhen=function(n,t){cn({type:st.OMIT_WHEN},(function(){Ut.run({omitted:!!Ut.useX().omitted||W(n,W(Xn))},(function(){return t()}))}))},n.only=Yn,n.optional=function(n){if(p(n)||o(n))[].concat(n).forEach((function(n){$(n,[!0,!1])}));else for(var t in n)$(t,[n[t],!1])},n.skip=zn,n.skipWhen=function(n,t){cn({type:st.SKIP_WHEN},(function(){Ut.run({skipped:!!Ut.useX().skipped||W(n,W(Xn))},(function(){return t()}))}))},n.test=te,n.warn=function(){var n=Ut.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 p(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 d(n,t){var e;return null!==(e=p(n))&&void 0!==e?e:p(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),$n(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]=d(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?p(t):t)}function R(n){return String(n)===n}function O(n){return!!n===n}function S(n){setTimeout((function(){throw Error(n)}),0)}function T(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 b(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 _(n,t){return R(n)&&R(t)&&n.endsWith(t)}function I(n,t){return n===t}function k(n,t){return r(n,t)||i(n,t)}function A(n,t){return!!(v(t)||R(t)&&R(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 U(n,t,e){return k(n,t)&&W(n,e)}function x(n){return f(n)||R(n)&&!n.trim()}function F(n,t){return n in t}function L(n){return Number.isNaN(n)}function P(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):!!R(t)&&new RegExp(t).test(n)}function q(n,t){return R(n)&&R(t)&&n.startsWith(t)}function j(n){for(var t in mt){var e=mt[t];l(e)&&n(t,e)}}function K(n){function t(t,u){var i,o,s=e();return t=rt({},s||{},null!==(i=p(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,d(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(O(n)||n&&O(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),O(n)?V(n):V(n.pass,p.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=yt.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(p(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=mt[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=mt[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 d(T(e,(function(e,r){var u,i=yt.run({value:n},(function(){return e(n)}));r(!i.pass,V(!!i.pass,null!==(u=p(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 mt[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 St.useX().stateRef}function nn(n){return $().optionalFields()[0][n]}function tn(n,t){(0,$().optionalFields()[1])((function(e){var r;return rt(e,((r={})[n]=p(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 Tt([n],(function(){return g(n)}))}function an(n){function t(n,t,u){return r.references.push(),e(n,p(t,u)),function(){return[r.references[n],function(t){return e(n,p(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(){return St.useX().isolate}function ln(){var n=fn();return n.path.concat(n.cursor.current())}function pn(n,t){n=void 0===(n=n.type)?Vn.DEFAULT:n,y(l(t));var e=Z(n,ln());return n=St.run({isolate:e},(function(){return e.keys.prev=function(){var n=$().testObjects()[0].prev;return[].concat(E(n,ln())).reduce((function(n,t){return t instanceof _t&&!f(t.key)?(n[t.key]=t,n):n}),{})}(),un((function(n){var t=e.path;return E(n,t)[h(t)]=[],n})),t()})),fn().cursor.next(),n}function dn(n,t){return!(!t||n.fieldName!==t)}function vn(n,t){return sn().some((function(e){return hn(e,n,t)}))}function hn(n,t,e){return(e=!n.hasFailures()||e&&!dn(n,e))||(n=n.warns(),e=t===bt.WARNINGS!=!!n),!e}function Nn(n){return!!gn(n)||!vn(bt.ERRORS,n)&&(!b(sn())&&!function(n){return it(on().filter((function(t){return En(t,n)})))}(n)&&function(n){return sn().every((function(t){return!(!n||dn(t,n))||mn(t,n)}))}(n))}function gn(n){return!!n&&!0===(null===(t=nn(n))||void 0===t?void 0:t[1]);var t}function En(n,t){return!(t&&!dn(n,t))&&!0!==en(n.fieldName)}function mn(n,t){return!(!t||dn(n,t))||(!0===en(n.fieldName)||n.isTested()||n.isOmitted())}function yn(){var n=sn(),t=rt({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=Rn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&Nn(t.fieldName);var r=n.groups,u=t.groupName;return u&&(r[u]=r[u]||{},r[u][t.fieldName]=Rn(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 sn().some((function(r){return!Pt(r,t)&&hn(r,n,e)}))}(bt.ERRORS,u,t)&&!function(n,t){return it(on().filter((function(e){return!Pt(e,n)&&En(e,t)})))}(u,t)&&function(n,t){return sn().every((function(e){return!!Pt(e,n)||mn(e,t)}))}(u,t),e.valid=t),n}),t),t.valid=Nn(),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 Rn(n,t){function e(n){i[n===bt.ERRORS?Ct.ERROR_COUNT:Ct.WARN_COUNT]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||rt({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(bt.ERRORS):t.isWarning()&&e(bt.WARNINGS)),i}function On(n,t,e){if(e){var r;n=(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}else{for(var u in r={},e=t===bt.ERRORS?Ct.ERROR_COUNT:Ct.WARN_COUNT,n)C(n[u][e])&&(r[u]=n[u][t]||[]);n=r}return n}function Sn(n){return{getErrors:function(t){return On(n.tests,bt.ERRORS,t)},getErrorsByGroup:function(t,e){return On(n.groups[t],bt.ERRORS,e)},getWarnings:function(t){return On(n.tests,bt.WARNINGS,t)},getWarningsByGroup:function(t,e){return On(n.groups[t],bt.WARNINGS,e)},hasErrors:function(t){return Cn(n,Ct.ERROR_COUNT,t)},hasErrorsByGroup:function(t,e){return bn(n,Ct.ERROR_COUNT,t,e)},hasWarnings:function(t){return Cn(n,Ct.WARN_COUNT,t)},hasWarningsByGroup:function(t,e){return bn(n,Ct.WARN_COUNT,t,e)},isValid:function(t){var e;return t?!(null===(e=n.tests[t])||void 0===e||!e.valid):n.valid},isValidByGroup:function(t,e){if(!(t=n.groups[t]))return!1;if(e)return Tn(t,e);for(var r in t)if(!Tn(t,r))return!1;return!0}}}function Tn(n,t){var e;return!(null===(e=n[t])||void 0===e||!e.valid)}function bn(n,t,e,r){var u,i;if(!(n=n.groups[e]))return!1;if(r)return C(null===(u=n[r])||void 0===u?void 0:u[t]);for(var o in n)if(C(null===(i=n[o])||void 0===i?void 0:i[t]))return!0;return!1}function Cn(n,t,e){var r;return C(n=e?null===(r=n.tests[e])||void 0===r?void 0:r[t]:n[t]||0)}function _n(){var n=sn(),t={stateRef:$()};return Gt([n],St.bind(t,(function(){var n=yn(),t=$().suiteName()[0];return rt(n,Sn(n),{suiteName:t})})))}function In(n){var t=on();return!b(t)&&(!n||t.some((function(t){return dn(t,n)})))}function kn(){var n=sn(),t={stateRef:$()};return Dt([n],St.bind(t,(function(){return rt({},_n(),{done:St.bind(t,Xt)})})))}function An(n,t,e){var u;return!!(!l(n)||t&&r(null===(u=e.tests[t])||void 0===u?void 0:u.testCount,0))}function wn(n){return!(In()&&(!n||In(n)))}function Wn(n,t){(0,$().testCallbacks()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Un(){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(Lt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=$().testCallbacks()[0].fieldCallbacks;t&&!In(t)&&v(e[t])&&m(e[t]),In()||n.emit(Lt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Lt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){t[n.fieldName]&&(n.omit(),tn(n.fieldName,(function(n){return[n[0],!0]})))}if(!b($().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(Lt.ALL_RUNNING_TESTS_FINISHED,(function(){m($().testCallbacks()[0].doneCallbacks)})),n.on(Lt.REMOVE_FIELD,(function(n){sn().forEach((function(t){dn(t,n)&&(t.cancel(),function(n){un((function(t){return N(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Lt.RESET_FIELD,(function(n){sn().forEach((function(t){dn(t,n)&&t.reset()}))})),n}function xn(){var n=St.useX();return y(n.bus),n.bus}function Fn(n){return Pn(0,"tests",n)}function Ln(n){return Pn(1,"tests",n)}function Pn(n,t,e){var r=St.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){R(e)&&(r.exclusion[t][e]=0===n)}))}function Gn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Dn(){var n,t=St.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function Xn(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function qn(n){var t=n.asyncTest,e=n.message;if(t&&l(t.then)){var r=xn().emit,u=$(),i=St.bind({stateRef:u},(function(){rn(),r(Lt.TEST_COMPLETED,n)}));u=St.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=R(t)?t:e,n.fail(),i())}));try{t.then(i,u)}catch(n){u()}}}function jn(n){var t=$().testObjects()[0].prev;if(b(t))return Kn(n),n;var e=ln();if(t=E(t,e)[h(e)],!f(n.key)){t=n.key,(e=fn().keys.prev[t])&&(n=e),e=n;var r=fn().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.")),Kn(n),n}return!it(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(fn().type===Vn.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=fn().cursor.current();un((function(t){return t.splice(n),t}))}(),t=null),Kn(n=d(t,n)),n}function Kn(n){var t=ln();un((function(e){return E(e,t)[h(t)]=n,e}))}function Bn(n){var t=fn().cursor,e=Yn.EAGER;if(St.useX().mode[0]===e&&vn(bt.ERRORS,n.fieldName))return n.skip(),jn(n),t.next(),n;if(e=jn(n),St.useX().omitted)return e.omit(),t.next(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,St.useX().skipped)return!0;var e=St.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=St.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,n)?!1===o[n]:Dn())return!0;if(!0===r.groups[n])return!(i||!Gn(u)&&!1!==u[t])}return!!(n=!!Dn()&&!n)||!i&&!!Gn(u)&&!p(e[t])}(n))return e.skip(!!St.useX().skipped),t.next(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),Kn(n),n.isUntested()){e=xn();var r=function(n){return St.run({currentTest:n},(function(){return n.run()}))}(n);try{r&&l(r.then)?(n.asyncTest=r,n.setPending(),qn(n)):e.emit(Lt.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(),qn(n));return t.next(),n}function Hn(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(R(n),Mn("fieldName","string")),y(l(e),Mn("Test callback","function"));var u=St.useX();return Bn(t=new _t(n,e,{message:t,groupName:u.groupName,key:r}))}function Mn(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var Vn,Jn,Yn,zn=t(e),Qn=t(r),Zn=t(u),$n=t(a),nt=t(c),tt=t(f),et=t(v),rt=Object.assign,ut=(Jn=0,function(){return"".concat(Jn++)}),it=t(b),ot=t(_),st=t(I),at=t(A),ct=t(U),ft=t(x),lt=t(O),pt=t(F),dt=t(L),vt=t(P),ht=t(R),Nt=t(G),gt=t(D),Et=t(X),mt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:ot,doesNotStartWith:t(q),endsWith:_,equals:I,greaterThan:i,greaterThanOrEquals:k,gt:i,gte:k,inside:A,isArray:v,isBetween:U,isBlank:x,isBoolean:O,isEmpty:b,isEven:function(n){return!!e(n)&&0==n%2},isFalsy:Nt,isKeyOf:F,isNaN:L,isNegative:function(n){return w(n,0)},isNotArray:et,isNotBetween:ct,isNotBlank:ft,isNotBoolean:lt,isNotEmpty:it,isNotKeyOf:pt,isNotNaN:dt,isNotNull:$n,isNotNullish:tt,isNotNumber:vt,isNotNumeric:zn,isNotString:ht,isNotUndefined:nt,isNotValueOf:gt,isNull:a,isNullish:f,isNumber:P,isNumeric:e,isOdd:function(n){return!!e(n)&&0!=n%2},isPositive:C,isString:R,isTruthy:G,isUndefined:c,isValueOf:D,lengthEquals:u,lengthNotEquals:Zn,lessThan:w,lessThanOrEquals:W,longerThan:o,longerThanOrEquals:function(n,t){return k(n.length,t)},lt:w,lte:W,matches:X,notEquals:st,notInside:at,notMatches:Et,numberEquals:r,numberNotEquals:Qn,shorterThan:function(n,t){return w(n.length,t)},shorterThanOrEquals:function(n,t){return W(n.length,t)},startsWith:q},yt=K((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?rt(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:rt(e,{parent:B})})),Rt=function(){function n(){if(!M())return j((function(n){t[n]=z(n)})),rt(Y,t)}var t={context:function(){return yt.useX()},extend:function(t){rt(mt,t),n()}};return n(),new Proxy(rt(Y,t),{get:function(n,t){return t in n?n[t]:mt[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"}(Vn||(Vn={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(Yn||(Yn={}));var Ot,St=K((function(n,t){return t?null:rt({exclusion:{tests:{},groups:{}},inclusion:{},isolate:Z(Vn.DEFAULT),mode:[Yn.ALL]},n)})),Tt=s();!function(n){n.Error="error",n.Warning="warning"}(Ot||(Ot={}));var bt,Ct,_t=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=ut(),this.severity=Ot.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,c(this.message)&&R(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Ft||(this.status=n)},n.prototype.warns=function(){return this.severity===Ot.Warning},n.prototype.setPending=function(){this.setStatus(Ut)},n.prototype.fail=function(){this.setStatus(this.warns()?wt:At)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Wt)},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(kt)},n.prototype.cancel=function(){this.setStatus(xt),rn()},n.prototype.reset=function(){this.status=It,rn()},n.prototype.omit=function(){this.setStatus(Ft)},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(Ut)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Ft)},n.prototype.isUntested=function(){return this.statusEquals(It)},n.prototype.isFailing=function(){return this.statusEquals(At)},n.prototype.isCanceled=function(){return this.statusEquals(xt)},n.prototype.isSkipped=function(){return this.statusEquals(kt)},n.prototype.isPassing=function(){return this.statusEquals(Wt)},n.prototype.isWarning=function(){return this.statusEquals(wt)},n.prototype.statusEquals=function(n){return this.status===n},n}(),It="UNTESTED",kt="SKIPPED",At="FAILED",wt="WARNING",Wt="PASSING",Ut="PENDING",xt="CANCELED",Ft="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(bt||(bt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Ct||(Ct={}));var Lt,Pt=t((function(n,t){return n.groupName===t})),Gt=s(1),Dt=s(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=kn(),An(e,n,t))return t;var r=function(){return e(_n())};return wn(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"}(Lt||(Lt={})),Fn.group=function(n){return Pn(0,"groups",n)},Ln.group=function(n){return Pn(1,"groups",n)};var qt=rt(Hn,{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=fn().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)}))):Bn(r[1])}}(Hn)});n.VERSION="4.5.0",n.context=St,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=Un(),u=an();return n={stateRef:cn(u,{suiteId:ut(),suiteName:n}),bus:r},rt(St.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return u.reset(),pn({type:Vn.SUITE},(function(){e.apply(void 0,n)})),r.emit(Lt.SUITE_CALLBACK_DONE_RUNNING),kn()})),{get:St.bind(n,_n),remove:St.bind(n,(function(n){r.emit(Lt.REMOVE_FIELD,n)})),reset:u.reset,resetField:St.bind(n,(function(n){r.emit(Lt.RESET_FIELD,n)}))})},n.each=function(n,t){y(l(t),"each callback must be a function"),pn({type:Vn.EACH},(function(){n.forEach((function(n,e){t(n,e)}))}))},n.eager=function(){var n=Yn.EAGER;St.useX().mode[0]=n},n.enforce=Rt,n.group=function(n,t){y(R(n),Xn("name must be a string")),y(l(t),Xn("callback must be a function")),pn({type:Vn.GROUP},(function(){St.run({groupName:n},t)}))},n.include=function(n){var t=St.useX(),e=t.inclusion;return t=t.exclusion,y(R(n)),e[n]=d(t.tests[n],!0),{when:function(t){var e=St.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?d(r.tests[n],!0):R(t)?!!r.tests[t]:p(t,p(_n))}}}},n.omitWhen=function(n,t){pn({type:Vn.OMIT_WHEN},(function(){St.run({omitted:!!St.useX().omitted||p(n,p(_n))},(function(){return t()}))}))},n.only=Fn,n.optional=function(n){if(v(n)||R(n))[].concat(n).forEach((function(n){tn(n,[!0,!1])}));else for(var t in n)tn(t,[n[t],!1])},n.skip=Ln,n.skipWhen=function(n,t){pn({type:Vn.SKIP_WHEN},(function(){St.run({skipped:!!St.useX().skipped||p(n,p(_n))},(function(){return t()}))}))},n.suiteSelectors=Sn,n.test=qt,n.warn=function(){var n=St.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.
|
|
2
|
+
"version": "4.5.0",
|
|
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": "^2.0.
|
|
24
|
-
"n4s": "^4.1.
|
|
23
|
+
"context": "^2.0.8",
|
|
24
|
+
"n4s": "^4.1.9",
|
|
25
|
+
"vest-utils": "^0.0.2"
|
|
25
26
|
},
|
|
26
27
|
"homepage": "https://vestjs.dev/",
|
|
27
28
|
"exports": {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { partition } from 'vest-utils';
|
|
2
|
+
|
|
3
|
+
describe('partition', () => {
|
|
4
|
+
it('Should correctly partition array', () => {
|
|
5
|
+
expect(partition([300, 200, 10, 50, 0, -500], v => v <= 100))
|
|
6
|
+
.toMatchInlineSnapshot(`
|
|
7
|
+
Array [
|
|
8
|
+
Array [
|
|
9
|
+
10,
|
|
10
|
+
50,
|
|
11
|
+
0,
|
|
12
|
+
-500,
|
|
13
|
+
],
|
|
14
|
+
Array [
|
|
15
|
+
300,
|
|
16
|
+
200,
|
|
17
|
+
],
|
|
18
|
+
]
|
|
19
|
+
`);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export default function partition<T>(
|
|
2
|
+
array: T[],
|
|
3
|
+
// eslint-disable-next-line no-unused-vars
|
|
4
|
+
predicate: (value: T, index: number, array: T[]) => boolean
|
|
5
|
+
): [T[], T[]] {
|
|
6
|
+
return array.reduce(
|
|
7
|
+
(partitions: [T[], T[]], value, number) => {
|
|
8
|
+
partitions[predicate(value, number, array) ? 0 : 1].push(value);
|
|
9
|
+
return partitions;
|
|
10
|
+
},
|
|
11
|
+
[[], []]
|
|
12
|
+
);
|
|
13
|
+
}
|
package/testUtils/suiteDummy.ts
CHANGED
|
@@ -3,6 +3,7 @@ type DropFirst<T extends unknown[]> = T extends [
|
|
|
3
3
|
...infer U
|
|
4
4
|
] ? U : never;
|
|
5
5
|
type Stringable = string | ((...args: any[]) => string);
|
|
6
|
+
type CB = (...args: any[]) => any;
|
|
6
7
|
type RuleReturn = boolean | {
|
|
7
8
|
pass: boolean;
|
|
8
9
|
message?: Stringable;
|
|
@@ -17,36 +18,20 @@ type KBaseRules = keyof BaseRules;
|
|
|
17
18
|
declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
|
|
18
19
|
declare function endsWith(value: string, arg1: string): boolean;
|
|
19
20
|
declare function equals(value: unknown, arg1: unknown): boolean;
|
|
20
|
-
declare function greaterThan(value: number | string, gt: number | string): boolean;
|
|
21
21
|
declare function greaterThanOrEquals(value: string | number, gte: string | number): boolean;
|
|
22
22
|
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
23
|
declare function isBetween(value: number | string, min: number | string, max: number | string): boolean;
|
|
28
24
|
declare function isBlank(value: unknown): boolean;
|
|
29
|
-
declare function isBoolean(value: unknown): value is boolean;
|
|
30
|
-
declare function isEmpty(value: unknown): boolean;
|
|
31
25
|
declare function isKeyOf(key: string | symbol | number, obj: any): boolean;
|
|
32
26
|
declare function isNaN(value: unknown): boolean;
|
|
33
27
|
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
28
|
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
29
|
declare function isTruthy(value: unknown): boolean;
|
|
41
|
-
declare function isUndefined(value?: unknown): value is undefined;
|
|
42
30
|
declare function isValueOf(value: any, objectToCheck: any): boolean;
|
|
43
|
-
declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
44
31
|
declare function lessThan(value: string | number, lt: string | number): boolean;
|
|
45
32
|
declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
|
|
46
|
-
declare function longerThan(value: string | unknown[], arg1: string | number): boolean;
|
|
47
33
|
declare function longerThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
48
34
|
declare function matches(value: string, regex: RegExp | string): boolean;
|
|
49
|
-
declare function numberEquals(value: string | number, eq: string | number): boolean;
|
|
50
35
|
declare function shorterThan(value: string | unknown[], arg1: string | number): boolean;
|
|
51
36
|
declare function shorterThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
52
37
|
declare function startsWith(value: string, arg1: string): boolean;
|
|
@@ -56,16 +41,16 @@ declare const baseRules: {
|
|
|
56
41
|
doesNotStartWith: (value: string, arg1: string) => boolean;
|
|
57
42
|
endsWith: typeof endsWith;
|
|
58
43
|
equals: typeof equals;
|
|
59
|
-
greaterThan: typeof greaterThan;
|
|
44
|
+
greaterThan: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
|
|
60
45
|
greaterThanOrEquals: typeof greaterThanOrEquals;
|
|
61
|
-
gt: typeof greaterThan;
|
|
46
|
+
gt: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
|
|
62
47
|
gte: typeof greaterThanOrEquals;
|
|
63
48
|
inside: typeof inside;
|
|
64
|
-
isArray: typeof isArray;
|
|
49
|
+
isArray: typeof import("packages/vest-utils/types/vest-utils").isArray;
|
|
65
50
|
isBetween: typeof isBetween;
|
|
66
51
|
isBlank: typeof isBlank;
|
|
67
|
-
isBoolean: typeof isBoolean;
|
|
68
|
-
isEmpty: typeof isEmpty;
|
|
52
|
+
isBoolean: typeof import("packages/vest-utils/types/vest-utils").isBoolean;
|
|
53
|
+
isEmpty: typeof import("packages/vest-utils/types/vest-utils").isEmpty;
|
|
69
54
|
isEven: (value: any) => boolean;
|
|
70
55
|
isFalsy: (value: unknown) => boolean;
|
|
71
56
|
isKeyOf: typeof isKeyOf;
|
|
@@ -85,21 +70,21 @@ declare const baseRules: {
|
|
|
85
70
|
isNotString: (v: unknown) => boolean;
|
|
86
71
|
isNotUndefined: (value?: unknown) => boolean;
|
|
87
72
|
isNotValueOf: (value: any, objectToCheck: any) => boolean;
|
|
88
|
-
isNull: typeof isNull;
|
|
89
|
-
isNullish: typeof isNullish;
|
|
73
|
+
isNull: typeof import("packages/vest-utils/types/vest-utils").isNull;
|
|
74
|
+
isNullish: typeof import("packages/vest-utils/types/vest-utils").isNullish;
|
|
90
75
|
isNumber: typeof isNumber;
|
|
91
|
-
isNumeric: typeof isNumeric;
|
|
76
|
+
isNumeric: typeof import("packages/vest-utils/types/vest-utils").isNumeric;
|
|
92
77
|
isOdd: (value: any) => boolean;
|
|
93
|
-
isPositive: typeof isPositive;
|
|
94
|
-
isString: typeof isStringValue;
|
|
78
|
+
isPositive: typeof import("packages/vest-utils/types/vest-utils").isPositive;
|
|
79
|
+
isString: typeof import("packages/vest-utils/types/vest-utils").isStringValue;
|
|
95
80
|
isTruthy: typeof isTruthy;
|
|
96
|
-
isUndefined: typeof isUndefined;
|
|
81
|
+
isUndefined: typeof import("packages/vest-utils/types/vest-utils").isUndefined;
|
|
97
82
|
isValueOf: typeof isValueOf;
|
|
98
|
-
lengthEquals: typeof lengthEquals;
|
|
83
|
+
lengthEquals: typeof import("packages/vest-utils/types/vest-utils").lengthEquals;
|
|
99
84
|
lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
|
|
100
85
|
lessThan: typeof lessThan;
|
|
101
86
|
lessThanOrEquals: typeof lessThanOrEquals;
|
|
102
|
-
longerThan: typeof longerThan;
|
|
87
|
+
longerThan: typeof import("packages/vest-utils/types/vest-utils").longerThan;
|
|
103
88
|
longerThanOrEquals: typeof longerThanOrEquals;
|
|
104
89
|
lt: typeof lessThan;
|
|
105
90
|
lte: typeof lessThanOrEquals;
|
|
@@ -107,13 +92,13 @@ declare const baseRules: {
|
|
|
107
92
|
notEquals: (value: unknown, arg1: unknown) => boolean;
|
|
108
93
|
notInside: (value: unknown, arg1: string | unknown[]) => boolean;
|
|
109
94
|
notMatches: (value: string, regex: string | RegExp) => boolean;
|
|
110
|
-
numberEquals: typeof numberEquals;
|
|
95
|
+
numberEquals: typeof import("packages/vest-utils/types/vest-utils").numberEquals;
|
|
111
96
|
numberNotEquals: (value: string | number, eq: string | number) => boolean;
|
|
112
97
|
shorterThan: typeof shorterThan;
|
|
113
98
|
shorterThanOrEquals: typeof shorterThanOrEquals;
|
|
114
99
|
startsWith: typeof startsWith;
|
|
115
100
|
};
|
|
116
|
-
type Rules<E =
|
|
101
|
+
type Rules<E> = n4s.EnforceCustomMatchers<Rules<E> & E> & Record<string, (...args: Args) => Rules<E> & E> & {
|
|
117
102
|
[P in KBaseRules]: (...args: DropFirst<Parameters<BaseRules[P]>> | Args) => Rules<E> & E;
|
|
118
103
|
};
|
|
119
104
|
/* eslint-disable @typescript-eslint/no-namespace, @typescript-eslint/no-empty-interface */
|
|
@@ -127,7 +112,7 @@ type LazyRules = n4s.IRules<LazyRuleMethods>;
|
|
|
127
112
|
type Lazy = LazyRules & LazyRuleMethods &
|
|
128
113
|
// This is a "catch all" hack to make TS happy while not
|
|
129
114
|
// losing type hints
|
|
130
|
-
Record<string,
|
|
115
|
+
Record<string, CB>;
|
|
131
116
|
type LazyRuleMethods = LazyRuleRunners & {
|
|
132
117
|
message: (message: LazyMessage) => Lazy;
|
|
133
118
|
};
|
|
@@ -3,6 +3,7 @@ type DropFirst<T extends unknown[]> = T extends [
|
|
|
3
3
|
...infer U
|
|
4
4
|
] ? U : never;
|
|
5
5
|
type Stringable = string | ((...args: any[]) => string);
|
|
6
|
+
type CB = (...args: any[]) => any;
|
|
6
7
|
type RuleReturn = boolean | {
|
|
7
8
|
pass: boolean;
|
|
8
9
|
message?: Stringable;
|
|
@@ -17,36 +18,20 @@ type KBaseRules = keyof BaseRules;
|
|
|
17
18
|
declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
|
|
18
19
|
declare function endsWith(value: string, arg1: string): boolean;
|
|
19
20
|
declare function equals(value: unknown, arg1: unknown): boolean;
|
|
20
|
-
declare function greaterThan(value: number | string, gt: number | string): boolean;
|
|
21
21
|
declare function greaterThanOrEquals(value: string | number, gte: string | number): boolean;
|
|
22
22
|
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
23
|
declare function isBetween(value: number | string, min: number | string, max: number | string): boolean;
|
|
28
24
|
declare function isBlank(value: unknown): boolean;
|
|
29
|
-
declare function isBoolean(value: unknown): value is boolean;
|
|
30
|
-
declare function isEmpty(value: unknown): boolean;
|
|
31
25
|
declare function isKeyOf(key: string | symbol | number, obj: any): boolean;
|
|
32
26
|
declare function isNaN(value: unknown): boolean;
|
|
33
27
|
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
28
|
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
29
|
declare function isTruthy(value: unknown): boolean;
|
|
41
|
-
declare function isUndefined(value?: unknown): value is undefined;
|
|
42
30
|
declare function isValueOf(value: any, objectToCheck: any): boolean;
|
|
43
|
-
declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
44
31
|
declare function lessThan(value: string | number, lt: string | number): boolean;
|
|
45
32
|
declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
|
|
46
|
-
declare function longerThan(value: string | unknown[], arg1: string | number): boolean;
|
|
47
33
|
declare function longerThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
48
34
|
declare function matches(value: string, regex: RegExp | string): boolean;
|
|
49
|
-
declare function numberEquals(value: string | number, eq: string | number): boolean;
|
|
50
35
|
declare function shorterThan(value: string | unknown[], arg1: string | number): boolean;
|
|
51
36
|
declare function shorterThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
52
37
|
declare function startsWith(value: string, arg1: string): boolean;
|
|
@@ -56,16 +41,16 @@ declare const baseRules: {
|
|
|
56
41
|
doesNotStartWith: (value: string, arg1: string) => boolean;
|
|
57
42
|
endsWith: typeof endsWith;
|
|
58
43
|
equals: typeof equals;
|
|
59
|
-
greaterThan: typeof greaterThan;
|
|
44
|
+
greaterThan: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
|
|
60
45
|
greaterThanOrEquals: typeof greaterThanOrEquals;
|
|
61
|
-
gt: typeof greaterThan;
|
|
46
|
+
gt: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
|
|
62
47
|
gte: typeof greaterThanOrEquals;
|
|
63
48
|
inside: typeof inside;
|
|
64
|
-
isArray: typeof isArray;
|
|
49
|
+
isArray: typeof import("packages/vest-utils/types/vest-utils").isArray;
|
|
65
50
|
isBetween: typeof isBetween;
|
|
66
51
|
isBlank: typeof isBlank;
|
|
67
|
-
isBoolean: typeof isBoolean;
|
|
68
|
-
isEmpty: typeof isEmpty;
|
|
52
|
+
isBoolean: typeof import("packages/vest-utils/types/vest-utils").isBoolean;
|
|
53
|
+
isEmpty: typeof import("packages/vest-utils/types/vest-utils").isEmpty;
|
|
69
54
|
isEven: (value: any) => boolean;
|
|
70
55
|
isFalsy: (value: unknown) => boolean;
|
|
71
56
|
isKeyOf: typeof isKeyOf;
|
|
@@ -85,21 +70,21 @@ declare const baseRules: {
|
|
|
85
70
|
isNotString: (v: unknown) => boolean;
|
|
86
71
|
isNotUndefined: (value?: unknown) => boolean;
|
|
87
72
|
isNotValueOf: (value: any, objectToCheck: any) => boolean;
|
|
88
|
-
isNull: typeof isNull;
|
|
89
|
-
isNullish: typeof isNullish;
|
|
73
|
+
isNull: typeof import("packages/vest-utils/types/vest-utils").isNull;
|
|
74
|
+
isNullish: typeof import("packages/vest-utils/types/vest-utils").isNullish;
|
|
90
75
|
isNumber: typeof isNumber;
|
|
91
|
-
isNumeric: typeof isNumeric;
|
|
76
|
+
isNumeric: typeof import("packages/vest-utils/types/vest-utils").isNumeric;
|
|
92
77
|
isOdd: (value: any) => boolean;
|
|
93
|
-
isPositive: typeof isPositive;
|
|
94
|
-
isString: typeof isStringValue;
|
|
78
|
+
isPositive: typeof import("packages/vest-utils/types/vest-utils").isPositive;
|
|
79
|
+
isString: typeof import("packages/vest-utils/types/vest-utils").isStringValue;
|
|
95
80
|
isTruthy: typeof isTruthy;
|
|
96
|
-
isUndefined: typeof isUndefined;
|
|
81
|
+
isUndefined: typeof import("packages/vest-utils/types/vest-utils").isUndefined;
|
|
97
82
|
isValueOf: typeof isValueOf;
|
|
98
|
-
lengthEquals: typeof lengthEquals;
|
|
83
|
+
lengthEquals: typeof import("packages/vest-utils/types/vest-utils").lengthEquals;
|
|
99
84
|
lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
|
|
100
85
|
lessThan: typeof lessThan;
|
|
101
86
|
lessThanOrEquals: typeof lessThanOrEquals;
|
|
102
|
-
longerThan: typeof longerThan;
|
|
87
|
+
longerThan: typeof import("packages/vest-utils/types/vest-utils").longerThan;
|
|
103
88
|
longerThanOrEquals: typeof longerThanOrEquals;
|
|
104
89
|
lt: typeof lessThan;
|
|
105
90
|
lte: typeof lessThanOrEquals;
|
|
@@ -107,13 +92,13 @@ declare const baseRules: {
|
|
|
107
92
|
notEquals: (value: unknown, arg1: unknown) => boolean;
|
|
108
93
|
notInside: (value: unknown, arg1: string | unknown[]) => boolean;
|
|
109
94
|
notMatches: (value: string, regex: string | RegExp) => boolean;
|
|
110
|
-
numberEquals: typeof numberEquals;
|
|
95
|
+
numberEquals: typeof import("packages/vest-utils/types/vest-utils").numberEquals;
|
|
111
96
|
numberNotEquals: (value: string | number, eq: string | number) => boolean;
|
|
112
97
|
shorterThan: typeof shorterThan;
|
|
113
98
|
shorterThanOrEquals: typeof shorterThanOrEquals;
|
|
114
99
|
startsWith: typeof startsWith;
|
|
115
100
|
};
|
|
116
|
-
type Rules<E =
|
|
101
|
+
type Rules<E> = n4s.EnforceCustomMatchers<Rules<E> & E> & Record<string, (...args: Args) => Rules<E> & E> & {
|
|
117
102
|
[P in KBaseRules]: (...args: DropFirst<Parameters<BaseRules[P]>> | Args) => Rules<E> & E;
|
|
118
103
|
};
|
|
119
104
|
/* eslint-disable @typescript-eslint/no-namespace, @typescript-eslint/no-empty-interface */
|
|
@@ -127,7 +112,7 @@ type LazyRules = n4s.IRules<LazyRuleMethods>;
|
|
|
127
112
|
type Lazy = LazyRules & LazyRuleMethods &
|
|
128
113
|
// This is a "catch all" hack to make TS happy while not
|
|
129
114
|
// losing type hints
|
|
130
|
-
Record<string,
|
|
115
|
+
Record<string, CB>;
|
|
131
116
|
type LazyRuleMethods = LazyRuleRunners & {
|
|
132
117
|
message: (message: LazyMessage) => Lazy;
|
|
133
118
|
};
|
|
@@ -3,6 +3,7 @@ type DropFirst<T extends unknown[]> = T extends [
|
|
|
3
3
|
...infer U
|
|
4
4
|
] ? U : never;
|
|
5
5
|
type Stringable = string | ((...args: any[]) => string);
|
|
6
|
+
type CB = (...args: any[]) => any;
|
|
6
7
|
type RuleReturn = boolean | {
|
|
7
8
|
pass: boolean;
|
|
8
9
|
message?: Stringable;
|
|
@@ -17,36 +18,20 @@ type KBaseRules = keyof BaseRules;
|
|
|
17
18
|
declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
|
|
18
19
|
declare function endsWith(value: string, arg1: string): boolean;
|
|
19
20
|
declare function equals(value: unknown, arg1: unknown): boolean;
|
|
20
|
-
declare function greaterThan(value: number | string, gt: number | string): boolean;
|
|
21
21
|
declare function greaterThanOrEquals(value: string | number, gte: string | number): boolean;
|
|
22
22
|
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
23
|
declare function isBetween(value: number | string, min: number | string, max: number | string): boolean;
|
|
28
24
|
declare function isBlank(value: unknown): boolean;
|
|
29
|
-
declare function isBoolean(value: unknown): value is boolean;
|
|
30
|
-
declare function isEmpty(value: unknown): boolean;
|
|
31
25
|
declare function isKeyOf(key: string | symbol | number, obj: any): boolean;
|
|
32
26
|
declare function isNaN(value: unknown): boolean;
|
|
33
27
|
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
28
|
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
29
|
declare function isTruthy(value: unknown): boolean;
|
|
41
|
-
declare function isUndefined(value?: unknown): value is undefined;
|
|
42
30
|
declare function isValueOf(value: any, objectToCheck: any): boolean;
|
|
43
|
-
declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
44
31
|
declare function lessThan(value: string | number, lt: string | number): boolean;
|
|
45
32
|
declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
|
|
46
|
-
declare function longerThan(value: string | unknown[], arg1: string | number): boolean;
|
|
47
33
|
declare function longerThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
48
34
|
declare function matches(value: string, regex: RegExp | string): boolean;
|
|
49
|
-
declare function numberEquals(value: string | number, eq: string | number): boolean;
|
|
50
35
|
declare function shorterThan(value: string | unknown[], arg1: string | number): boolean;
|
|
51
36
|
declare function shorterThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
52
37
|
declare function startsWith(value: string, arg1: string): boolean;
|
|
@@ -56,16 +41,16 @@ declare const baseRules: {
|
|
|
56
41
|
doesNotStartWith: (value: string, arg1: string) => boolean;
|
|
57
42
|
endsWith: typeof endsWith;
|
|
58
43
|
equals: typeof equals;
|
|
59
|
-
greaterThan: typeof greaterThan;
|
|
44
|
+
greaterThan: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
|
|
60
45
|
greaterThanOrEquals: typeof greaterThanOrEquals;
|
|
61
|
-
gt: typeof greaterThan;
|
|
46
|
+
gt: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
|
|
62
47
|
gte: typeof greaterThanOrEquals;
|
|
63
48
|
inside: typeof inside;
|
|
64
|
-
isArray: typeof isArray;
|
|
49
|
+
isArray: typeof import("packages/vest-utils/types/vest-utils").isArray;
|
|
65
50
|
isBetween: typeof isBetween;
|
|
66
51
|
isBlank: typeof isBlank;
|
|
67
|
-
isBoolean: typeof isBoolean;
|
|
68
|
-
isEmpty: typeof isEmpty;
|
|
52
|
+
isBoolean: typeof import("packages/vest-utils/types/vest-utils").isBoolean;
|
|
53
|
+
isEmpty: typeof import("packages/vest-utils/types/vest-utils").isEmpty;
|
|
69
54
|
isEven: (value: any) => boolean;
|
|
70
55
|
isFalsy: (value: unknown) => boolean;
|
|
71
56
|
isKeyOf: typeof isKeyOf;
|
|
@@ -85,21 +70,21 @@ declare const baseRules: {
|
|
|
85
70
|
isNotString: (v: unknown) => boolean;
|
|
86
71
|
isNotUndefined: (value?: unknown) => boolean;
|
|
87
72
|
isNotValueOf: (value: any, objectToCheck: any) => boolean;
|
|
88
|
-
isNull: typeof isNull;
|
|
89
|
-
isNullish: typeof isNullish;
|
|
73
|
+
isNull: typeof import("packages/vest-utils/types/vest-utils").isNull;
|
|
74
|
+
isNullish: typeof import("packages/vest-utils/types/vest-utils").isNullish;
|
|
90
75
|
isNumber: typeof isNumber;
|
|
91
|
-
isNumeric: typeof isNumeric;
|
|
76
|
+
isNumeric: typeof import("packages/vest-utils/types/vest-utils").isNumeric;
|
|
92
77
|
isOdd: (value: any) => boolean;
|
|
93
|
-
isPositive: typeof isPositive;
|
|
94
|
-
isString: typeof isStringValue;
|
|
78
|
+
isPositive: typeof import("packages/vest-utils/types/vest-utils").isPositive;
|
|
79
|
+
isString: typeof import("packages/vest-utils/types/vest-utils").isStringValue;
|
|
95
80
|
isTruthy: typeof isTruthy;
|
|
96
|
-
isUndefined: typeof isUndefined;
|
|
81
|
+
isUndefined: typeof import("packages/vest-utils/types/vest-utils").isUndefined;
|
|
97
82
|
isValueOf: typeof isValueOf;
|
|
98
|
-
lengthEquals: typeof lengthEquals;
|
|
83
|
+
lengthEquals: typeof import("packages/vest-utils/types/vest-utils").lengthEquals;
|
|
99
84
|
lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
|
|
100
85
|
lessThan: typeof lessThan;
|
|
101
86
|
lessThanOrEquals: typeof lessThanOrEquals;
|
|
102
|
-
longerThan: typeof longerThan;
|
|
87
|
+
longerThan: typeof import("packages/vest-utils/types/vest-utils").longerThan;
|
|
103
88
|
longerThanOrEquals: typeof longerThanOrEquals;
|
|
104
89
|
lt: typeof lessThan;
|
|
105
90
|
lte: typeof lessThanOrEquals;
|
|
@@ -107,13 +92,13 @@ declare const baseRules: {
|
|
|
107
92
|
notEquals: (value: unknown, arg1: unknown) => boolean;
|
|
108
93
|
notInside: (value: unknown, arg1: string | unknown[]) => boolean;
|
|
109
94
|
notMatches: (value: string, regex: string | RegExp) => boolean;
|
|
110
|
-
numberEquals: typeof numberEquals;
|
|
95
|
+
numberEquals: typeof import("packages/vest-utils/types/vest-utils").numberEquals;
|
|
111
96
|
numberNotEquals: (value: string | number, eq: string | number) => boolean;
|
|
112
97
|
shorterThan: typeof shorterThan;
|
|
113
98
|
shorterThanOrEquals: typeof shorterThanOrEquals;
|
|
114
99
|
startsWith: typeof startsWith;
|
|
115
100
|
};
|
|
116
|
-
type Rules<E =
|
|
101
|
+
type Rules<E> = n4s.EnforceCustomMatchers<Rules<E> & E> & Record<string, (...args: Args) => Rules<E> & E> & {
|
|
117
102
|
[P in KBaseRules]: (...args: DropFirst<Parameters<BaseRules[P]>> | Args) => Rules<E> & E;
|
|
118
103
|
};
|
|
119
104
|
/* eslint-disable @typescript-eslint/no-namespace, @typescript-eslint/no-empty-interface */
|
|
@@ -127,7 +112,7 @@ type LazyRules = n4s.IRules<LazyRuleMethods>;
|
|
|
127
112
|
type Lazy = LazyRules & LazyRuleMethods &
|
|
128
113
|
// This is a "catch all" hack to make TS happy while not
|
|
129
114
|
// losing type hints
|
|
130
|
-
Record<string,
|
|
115
|
+
Record<string, CB>;
|
|
131
116
|
type LazyRuleMethods = LazyRuleRunners & {
|
|
132
117
|
message: (message: LazyMessage) => Lazy;
|
|
133
118
|
};
|
package/types/parser.d.ts
CHANGED
|
@@ -17,11 +17,12 @@ type SummaryBase = {
|
|
|
17
17
|
warnCount: number;
|
|
18
18
|
testCount: number;
|
|
19
19
|
};
|
|
20
|
-
declare function parse(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
declare function parse(summary: SuiteSummary): ParsedVestObject;
|
|
21
|
+
interface ParsedVestObject {
|
|
22
|
+
valid(fieldName?: string): boolean;
|
|
23
|
+
tested(fieldName?: string): boolean;
|
|
24
|
+
invalid(fieldName?: string): boolean;
|
|
25
|
+
untested(fieldName?: string): boolean;
|
|
26
|
+
warning(fieldName?: string): boolean;
|
|
27
|
+
}
|
|
27
28
|
export { parse };
|
package/types/promisify.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Reads the testObjects list and gets full validation result from it.
|
|
3
|
-
*/
|
|
4
|
-
declare function genTestsSummary(): SuiteSummary;
|
|
5
1
|
type SuiteSummary = {
|
|
6
2
|
groups: Groups;
|
|
7
3
|
tests: Tests;
|
|
@@ -22,37 +18,6 @@ type SummaryBase = {
|
|
|
22
18
|
testCount: number;
|
|
23
19
|
};
|
|
24
20
|
type FailureMessages = Record<string, string[]>;
|
|
25
|
-
declare function getErrors(): FailureMessages;
|
|
26
|
-
declare function getErrors(fieldName?: string): string[];
|
|
27
|
-
declare function getWarnings(): FailureMessages;
|
|
28
|
-
declare function getWarnings(fieldName?: string): string[];
|
|
29
|
-
declare function getErrorsByGroup(groupName: string): FailureMessages;
|
|
30
|
-
declare function getErrorsByGroup(groupName: string, fieldName: string): string[];
|
|
31
|
-
declare function getWarningsByGroup(groupName: string): FailureMessages;
|
|
32
|
-
declare function getWarningsByGroup(groupName: string, fieldName: string): string[];
|
|
33
|
-
declare function hasErrors(fieldName?: string): boolean;
|
|
34
|
-
declare function hasWarnings(fieldName?: string): boolean;
|
|
35
|
-
declare function hasErrorsByGroup(groupName: string, fieldName?: string): boolean;
|
|
36
|
-
declare function hasWarningsByGroup(groupName: string, fieldName?: string): boolean;
|
|
37
|
-
declare function isValid(fieldName?: string): boolean;
|
|
38
|
-
declare function isValidByGroup(groupName: string, fieldName?: string): boolean;
|
|
39
|
-
type SuiteResult = ReturnType<typeof genTestsSummary> & {
|
|
40
|
-
/**
|
|
41
|
-
* Returns whether the suite as a whole is valid.
|
|
42
|
-
* Determined if there are no errors, and if no
|
|
43
|
-
* required fields are skipped.
|
|
44
|
-
*/
|
|
45
|
-
isValid: typeof isValid;
|
|
46
|
-
isValidByGroup: typeof isValidByGroup;
|
|
47
|
-
hasErrors: typeof hasErrors;
|
|
48
|
-
hasWarnings: typeof hasWarnings;
|
|
49
|
-
getErrors: typeof getErrors;
|
|
50
|
-
getWarnings: typeof getWarnings;
|
|
51
|
-
hasErrorsByGroup: typeof hasErrorsByGroup;
|
|
52
|
-
hasWarningsByGroup: typeof hasWarningsByGroup;
|
|
53
|
-
getErrorsByGroup: typeof getErrorsByGroup;
|
|
54
|
-
getWarningsByGroup: typeof getWarningsByGroup;
|
|
55
|
-
};
|
|
56
21
|
type SuiteRunResult = SuiteResult & {
|
|
57
22
|
done: Done;
|
|
58
23
|
};
|
|
@@ -65,5 +30,25 @@ interface Done {
|
|
|
65
30
|
cb: (res: SuiteResult) => void
|
|
66
31
|
]): SuiteRunResult;
|
|
67
32
|
}
|
|
33
|
+
type SuiteName = string | void;
|
|
34
|
+
interface SuiteSelectors {
|
|
35
|
+
getErrors(fieldName: string): string[];
|
|
36
|
+
getErrors(): FailureMessages;
|
|
37
|
+
getWarnings(): FailureMessages;
|
|
38
|
+
getWarnings(fieldName: string): string[];
|
|
39
|
+
getErrorsByGroup(groupName: string, fieldName: string): string[];
|
|
40
|
+
getErrorsByGroup(groupName: string): FailureMessages;
|
|
41
|
+
getWarningsByGroup(groupName: string): FailureMessages;
|
|
42
|
+
getWarningsByGroup(groupName: string, fieldName: string): string[];
|
|
43
|
+
hasErrors(fieldName?: string): boolean;
|
|
44
|
+
hasWarnings(fieldName?: string): boolean;
|
|
45
|
+
hasErrorsByGroup(groupName: string, fieldName?: string): boolean;
|
|
46
|
+
hasWarningsByGroup(groupName: string, fieldName?: string): boolean;
|
|
47
|
+
isValid(fieldName?: string): boolean;
|
|
48
|
+
isValidByGroup(groupName: string, fieldName?: string): boolean;
|
|
49
|
+
}
|
|
50
|
+
type SuiteResult = SuiteSummary & SuiteSelectors & {
|
|
51
|
+
suiteName: SuiteName;
|
|
52
|
+
};
|
|
68
53
|
declare const promisify: (validatorFn: (...args: any[]) => SuiteRunResult) => (...args: any[]) => Promise<SuiteResult>;
|
|
69
54
|
export { promisify as default };
|