vest 4.3.0 → 4.3.1

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.
@@ -1 +1 @@
1
- "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).schema={})}(this,(function(n){function t(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function r(n){return"function"==typeof n}function e(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function u(n){return null===n}function i(n){return void 0===n}function o(n){return null===n||i(n)}function a(n){return String(n)===n}function f(n,t){return a(n)&&a(t)&&n.endsWith(t)}function s(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function l(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function p(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function v(n,t){return p(n,t)||l(n,t)}function h(n){return!!Array.isArray(n)}function N(n,t){return!!(h(t)||a(t)&&a(n))&&-1!==t.indexOf(n)}function y(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function d(n,t){return p(n,t)||y(n,t)}function g(n,t,r){return v(n,t)&&d(n,r)}function m(n){return o(n)||a(n)&&!n.trim()}function b(n){return!!n===n}function O(n){return"number"==typeof n}function x(n,t){return n.length===Number(t)}function E(n){if(n){if(O(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return x(n,0);if("object"==typeof n)return x(Object.keys(n),0)}return!0}function w(n,t){return n in t}function T(n){return Number.isNaN(n)}function q(n){return!!n}function j(n,t){if(o(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function S(n,t){return t instanceof RegExp?t.test(n):!!a(t)&&new RegExp(t).test(n)}function P(n,t){return a(n)&&a(t)&&n.startsWith(t)}function A(n){for(var t in vn){var e=vn[t];r(e)&&n(t,e)}}function B(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return r(n)?n.apply(void 0,t):n}function W(n,t){var r;return null!==(r=B(n))&&void 0!==r?r:t}function k(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?B(t):t)}function F(){return null}function I(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||Array.prototype.slice.call(t))}function J(){try{return r(Proxy)}catch(n){return!1}}function K(n,t){return n={pass:n},t&&(n.message=t),n}function M(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return k(b(n)||n&&b(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),b(n)?K(n):K(n.pass,B.apply(void 0,I([n.message,t,r],e,!1)))}function R(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return k((i=M.apply(void 0,I([hn.run({value:n},(function(){return r.apply(void 0,I([n],u,!1))})),e,n],u,!1))).pass,E(i.message)?"enforce/".concat(e," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var r={};if(!J())return A((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=vn[r])return t(e,n,r)}});return e}function U(n){var r,e=[];return function n(u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];var a=vn[u];e.push((function(n){return M.apply(void 0,I([a.apply(void 0,I([n],i,!1)),u,n],i,!1))}));var f={run:function(n){return W(t(e,(function(t,e){var u,i=hn.run({value:n},(function(){return t(n)}));i.pass||e(K(!!i.pass,null!==(u=B(r,n,i.message))&&void 0!==u?u:i.message))})),K(!0))},test:function(n){return f.run(n).pass},message:function(n){return n&&(r=n),f}};return J()?f=new Proxy(f,{get:function(t,r){return vn[r]?n(r):t[r]}}):(A((function(t){f[t]=n(t)})),f)}}(n)}function V(n,t){try{return n.run(t)}catch(n){return K(!1)}}function X(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=hn.run({value:e,set:!0,meta:{key:r}},(function(){return V(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return K(!0)}var _,z=Object.assign,C=e(u),D=e(i),G=e(o),H=e(f),L=e(s),Q=e(c),Y=e(p),Z=e(h),$=e(N),nn=e(g),tn=e(m),rn=e(b),en=e(O),un=e(x),on=e(E),an=e(w),fn=e(T),sn=e(a),cn=e(q),ln=e(j),pn=e(S),vn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:H,doesNotStartWith:e(P),endsWith:f,equals:s,greaterThan:l,greaterThanOrEquals:v,gt:l,gte:v,inside:N,isArray:h,isBetween:g,isBlank:m,isBoolean:b,isEmpty:E,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:cn,isKeyOf:w,isNaN:T,isNegative:function(n){return y(n,0)},isNotArray:Z,isNotBetween:nn,isNotBlank:tn,isNotBoolean:rn,isNotEmpty:on,isNotKeyOf:an,isNotNaN:fn,isNotNull:C,isNotNullish:G,isNotNumber:en,isNotNumeric:Q,isNotString:sn,isNotUndefined:D,isNotValueOf:ln,isNull:u,isNullish:o,isNumber:O,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:function(n){return l(n,0)},isString:a,isTruthy:q,isUndefined:i,isValueOf:j,lengthEquals:x,lengthNotEquals:un,lessThan:y,lessThanOrEquals:d,longerThan:function(n,t){return n.length>Number(t)},longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:y,lte:d,matches:S,notEquals:L,notInside:$,notMatches:pn,numberEquals:p,numberNotEquals:Y,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:P},hn=function(n){function t(t,u){var i,o,a=r();return t=z({},a||{},null!==(i=B(n,t,a))&&void 0!==i?i:t),i=e.ctx=Object.freeze(t),e.ancestry.unshift(i),u=u(i),e.ancestry.shift(),e.ctx=null!==(o=e.ancestry[0])&&void 0!==o?o:null,u}function r(){return e.ctx}var e={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:r,useX:function(n){return k(e.ctx,W(n,"Context was used after it was closed")),e.ctx}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?z(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:z(r,{parent:F})})),Nn=(_={context:function(){return hn.useX()},extend:function(n){z(vn,n)}},J()?new Proxy(z(R,_),{get:function(n,t){return t in n?n[t]:vn[t]?U(t):void 0}}):(A((function(n){_[n]=U(n)})),z(R,_)));Nn.extend({isArrayOf:function(n,r){return W(t(n,(function(n,t,e){(e=hn.run({value:n,set:!0,meta:{index:e}},(function(){return V(r,n)}))).pass||t(e)})),K(!0))},loose:X,optional:function(n,t){return o(n)?K(!0):V(t,n)},shape:function(n,t){var r=X(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return K(!1);return K(!0)}}),n.partial=function(n){var t,r={};for(t in n)r[t]=Nn.optional(n[t]);return r},Object.defineProperty(n,"__esModule",{value:!0})}));
1
+ "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).schema={})}(this,(function(n){function t(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function r(n){return"function"==typeof n}function e(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function u(n){return null===n}function i(n){return void 0===n}function o(n){return null===n||i(n)}function a(n){return String(n)===n}function f(n,t){return a(n)&&a(t)&&n.endsWith(t)}function s(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function l(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function p(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function v(n,t){return p(n,t)||l(n,t)}function h(n){return!!Array.isArray(n)}function y(n,t){return!!(h(t)||a(t)&&a(n))&&-1!==t.indexOf(n)}function N(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function d(n,t){return p(n,t)||N(n,t)}function g(n,t,r){return v(n,t)&&d(n,r)}function m(n){return o(n)||a(n)&&!n.trim()}function b(n){return!!n===n}function O(n){return"number"==typeof n}function x(n,t){return p(n.length,t)}function E(n){if(n){if(O(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return x(n,0);if("object"==typeof n)return x(Object.keys(n),0)}return!0}function w(n,t){return n in t}function T(n){return Number.isNaN(n)}function q(n){return!!n}function j(n,t){if(o(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function S(n,t){return t instanceof RegExp?t.test(n):!!a(t)&&new RegExp(t).test(n)}function P(n,t){return a(n)&&a(t)&&n.startsWith(t)}function A(n){for(var t in vn){var e=vn[t];r(e)&&n(t,e)}}function B(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return r(n)?n.apply(void 0,t):n}function W(n,t){var r;return null!==(r=B(n))&&void 0!==r?r:t}function k(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?B(t):t)}function F(){return null}function I(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||Array.prototype.slice.call(t))}function J(){try{return r(Proxy)}catch(n){return!1}}function K(n,t){return n={pass:n},t&&(n.message=t),n}function M(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return k(b(n)||n&&b(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),b(n)?K(n):K(n.pass,B.apply(void 0,I([n.message,t,r],e,!1)))}function R(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return k((i=M.apply(void 0,I([hn.run({value:n},(function(){return r.apply(void 0,I([n],u,!1))})),e,n],u,!1))).pass,E(i.message)?"enforce/".concat(e," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var r={};if(!J())return A((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=vn[r])return t(e,n,r)}});return e}function U(n){var r,e=[];return function n(u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];var a=vn[u];e.push((function(n){return M.apply(void 0,I([a.apply(void 0,I([n],i,!1)),u,n],i,!1))}));var f={run:function(n){return W(t(e,(function(t,e){var u,i=hn.run({value:n},(function(){return t(n)}));i.pass||e(K(!!i.pass,null!==(u=B(r,n,i.message))&&void 0!==u?u:i.message))})),K(!0))},test:function(n){return f.run(n).pass},message:function(n){return n&&(r=n),f}};return J()?f=new Proxy(f,{get:function(t,r){return vn[r]?n(r):t[r]}}):(A((function(t){f[t]=n(t)})),f)}}(n)}function V(n,t){try{return n.run(t)}catch(n){return K(!1)}}function X(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=hn.run({value:e,set:!0,meta:{key:r}},(function(){return V(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return K(!0)}var _,z=Object.assign,C=e(u),D=e(i),G=e(o),H=e(f),L=e(s),Q=e(c),Y=e(p),Z=e(h),$=e(y),nn=e(g),tn=e(m),rn=e(b),en=e(O),un=e(x),on=e(E),an=e(w),fn=e(T),sn=e(a),cn=e(q),ln=e(j),pn=e(S),vn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:H,doesNotStartWith:e(P),endsWith:f,equals:s,greaterThan:l,greaterThanOrEquals:v,gt:l,gte:v,inside:y,isArray:h,isBetween:g,isBlank:m,isBoolean:b,isEmpty:E,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:cn,isKeyOf:w,isNaN:T,isNegative:function(n){return N(n,0)},isNotArray:Z,isNotBetween:nn,isNotBlank:tn,isNotBoolean:rn,isNotEmpty:on,isNotKeyOf:an,isNotNaN:fn,isNotNull:C,isNotNullish:G,isNotNumber:en,isNotNumeric:Q,isNotString:sn,isNotUndefined:D,isNotValueOf:ln,isNull:u,isNullish:o,isNumber:O,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:function(n){return l(n,0)},isString:a,isTruthy:q,isUndefined:i,isValueOf:j,lengthEquals:x,lengthNotEquals:un,lessThan:N,lessThanOrEquals:d,longerThan:function(n,t){return l(n.length,t)},longerThanOrEquals:function(n,t){return v(n.length,t)},lt:N,lte:d,matches:S,notEquals:L,notInside:$,notMatches:pn,numberEquals:p,numberNotEquals:Y,shorterThan:function(n,t){return N(n.length,t)},shorterThanOrEquals:function(n,t){return d(n.length,t)},startsWith:P},hn=function(n){function t(t,u){var i,o,a=r();return t=z({},a||{},null!==(i=B(n,t,a))&&void 0!==i?i:t),i=e.ctx=Object.freeze(t),e.ancestry.unshift(i),u=u(i),e.ancestry.shift(),e.ctx=null!==(o=e.ancestry[0])&&void 0!==o?o:null,u}function r(){return e.ctx}var e={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:r,useX:function(n){return k(e.ctx,W(n,"Context was used after it was closed")),e.ctx}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?z(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:z(r,{parent:F})})),yn=(_={context:function(){return hn.useX()},extend:function(n){z(vn,n)}},J()?new Proxy(z(R,_),{get:function(n,t){return t in n?n[t]:vn[t]?U(t):void 0}}):(A((function(n){_[n]=U(n)})),z(R,_)));yn.extend({isArrayOf:function(n,r){return W(t(n,(function(n,t,e){(e=hn.run({value:n,set:!0,meta:{index:e}},(function(){return V(r,n)}))).pass||t(e)})),K(!0))},loose:X,optional:function(n,t){return o(n)?K(!0):V(t,n)},shape:function(n,t){var r=X(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return K(!1);return K(!0)}}),n.partial=function(n){var t,r={};for(t in n)r[t]=yn.optional(n[t]);return r},Object.defineProperty(n,"__esModule",{value:!0})}));
@@ -127,7 +127,7 @@
127
127
  var isNotNumber = bindNot(isNumber);
128
128
 
129
129
  function lengthEquals(value, arg1) {
130
- return value.length === Number(arg1);
130
+ return numberEquals(value.length, arg1);
131
131
  }
132
132
  var lengthNotEquals = bindNot(lengthEquals);
133
133
 
@@ -207,11 +207,11 @@
207
207
  var isNotValueOf = bindNot(isValueOf);
208
208
 
209
209
  function longerThan(value, arg1) {
210
- return value.length > Number(arg1);
210
+ return greaterThan(value.length, arg1);
211
211
  }
212
212
 
213
213
  function longerThanOrEquals(value, arg1) {
214
- return value.length >= Number(arg1);
214
+ return greaterThanOrEquals(value.length, arg1);
215
215
  }
216
216
 
217
217
  function matches(value, regex) {
@@ -237,11 +237,11 @@
237
237
  }
238
238
 
239
239
  function shorterThan(value, arg1) {
240
- return value.length < Number(arg1);
240
+ return lessThan(value.length, arg1);
241
241
  }
242
242
 
243
243
  function shorterThanOrEquals(value, arg1) {
244
- return value.length <= Number(arg1);
244
+ return lessThanOrEquals(value.length, arg1);
245
245
  }
246
246
 
247
247
  function startsWith(value, arg1) {
@@ -453,17 +453,6 @@
453
453
  PERFORMANCE OF THIS SOFTWARE.
454
454
  ***************************************************************************** */
455
455
 
456
- var __assign = function() {
457
- __assign = Object.assign || function __assign(t) {
458
- for (var s, i = 1, n = arguments.length; i < n; i++) {
459
- s = arguments[i];
460
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
461
- }
462
- return t;
463
- };
464
- return __assign.apply(this, arguments);
465
- };
466
-
467
456
  function __spreadArray(to, from, pack) {
468
457
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
469
458
  if (ar || !(i in from)) {
@@ -1288,8 +1277,14 @@
1288
1277
  });
1289
1278
  }
1290
1279
 
1291
- // eslint-disable-next-line max-statements, complexity
1292
1280
  function isValid(fieldName) {
1281
+ var _a, _b;
1282
+ var summary = context.useX().summary;
1283
+ invariant(summary);
1284
+ return Boolean(fieldName ? (_b = (_a = summary.tests) === null || _a === void 0 ? void 0 : _a[fieldName]) === null || _b === void 0 ? void 0 : _b.valid : summary.valid);
1285
+ }
1286
+ // eslint-disable-next-line max-statements, complexity
1287
+ function shouldAddValidProp(fieldName) {
1293
1288
  if (fieldIsOmitted(fieldName)) {
1294
1289
  return true;
1295
1290
  }
@@ -1357,7 +1352,7 @@
1357
1352
  appendToGroup(summary.groups, testObject);
1358
1353
  return summary;
1359
1354
  }, summary);
1360
- summary.valid = isValid();
1355
+ summary.valid = shouldAddValidProp();
1361
1356
  return countFailures(summary);
1362
1357
  }
1363
1358
  function appendToTest(tests, testObject) {
@@ -1366,7 +1361,7 @@
1366
1361
  tests[testObject.fieldName].valid =
1367
1362
  tests[testObject.fieldName].valid === false
1368
1363
  ? false
1369
- : isValid(testObject.fieldName);
1364
+ : shouldAddValidProp(testObject.fieldName);
1370
1365
  }
1371
1366
  /**
1372
1367
  * Appends to a group object if within a group
@@ -1429,42 +1424,23 @@
1429
1424
  };
1430
1425
  }
1431
1426
 
1432
- function collectFailureMessages(severity, testObjects, options) {
1433
- var _a;
1434
- if (options === void 0) { options = {}; }
1435
- var _b = options || {}, group = _b.group, fieldName = _b.fieldName;
1436
- return testObjects.reduce(function (collector, testObject) {
1437
- if (noMatch(testObject, severity, group, fieldName)) {
1438
- return collector;
1439
- }
1440
- if (!testObject.hasFailures()) {
1441
- return collector;
1442
- }
1443
- collector[testObject.fieldName] = (collector[testObject.fieldName] || []).concat(testObject.message || []);
1444
- return collector;
1445
- }, __assign({}, (fieldName && (_a = {}, _a[fieldName] = [], _a))));
1427
+ // calls collectAll or getByFieldName depending on whether fieldName is provided
1428
+ function gatherFailures(testGroup, severityKey, fieldName) {
1429
+ return fieldName
1430
+ ? getByFieldName(testGroup, severityKey, fieldName)
1431
+ : collectAll(testGroup, severityKey);
1446
1432
  }
1447
- function noGroupMatch(testObject, groupName) {
1448
- return !!(groupName && testObject.groupName !== groupName);
1449
- }
1450
- function noMatch(testObject, severity, group, fieldName) {
1451
- if (noGroupMatch(testObject, group)) {
1452
- return true;
1453
- }
1454
- if (nonMatchingFieldName(testObject, fieldName)) {
1455
- return true;
1456
- }
1457
- if (nonMatchingSeverityProfile(severity, testObject)) {
1458
- return true;
1459
- }
1460
- return false;
1433
+ function getByFieldName(testGroup, severityKey, fieldName) {
1434
+ var _a;
1435
+ return ((_a = testGroup === null || testGroup === void 0 ? void 0 : testGroup[fieldName]) === null || _a === void 0 ? void 0 : _a[severityKey]) || [];
1461
1436
  }
1462
-
1463
- function getFailuresArrayOrObject(group, fieldName) {
1464
- if (fieldName) {
1465
- return group[fieldName];
1437
+ function collectAll(testGroup, severityKey) {
1438
+ var _a;
1439
+ var output = {};
1440
+ for (var field in testGroup) {
1441
+ output[field] = ((_a = testGroup[field]) === null || _a === void 0 ? void 0 : _a[severityKey]) || [];
1466
1442
  }
1467
- return group;
1443
+ return output;
1468
1444
  }
1469
1445
 
1470
1446
  function getErrors(fieldName) {
@@ -1477,31 +1453,21 @@
1477
1453
  * @returns suite or field's errors or warnings.
1478
1454
  */
1479
1455
  function getFailures(severityKey, fieldName) {
1480
- var testObjects = useTestsFlat();
1481
- var failureMessages = collectFailureMessages(severityKey, testObjects, {
1482
- fieldName: fieldName
1483
- });
1484
- return getFailuresArrayOrObject(failureMessages, fieldName);
1456
+ var summary = context.useX().summary;
1457
+ invariant(summary);
1458
+ return gatherFailures(summary.tests, severityKey, fieldName);
1485
1459
  }
1486
1460
 
1487
1461
  function getErrorsByGroup(groupName, fieldName) {
1488
- var errors = getByGroup(Severity.ERRORS, groupName, fieldName);
1489
- return getFailuresArrayOrObject(errors, fieldName);
1462
+ return getFailuresByGroup(groupName, Severity.ERRORS, fieldName);
1490
1463
  }
1491
1464
  function getWarningsByGroup(groupName, fieldName) {
1492
- var warnings = getByGroup(Severity.WARNINGS, groupName, fieldName);
1493
- return getFailuresArrayOrObject(warnings, fieldName);
1465
+ return getFailuresByGroup(groupName, Severity.WARNINGS, fieldName);
1494
1466
  }
1495
- /**
1496
- * Gets failure messages by group.
1497
- */
1498
- function getByGroup(severityKey, group, fieldName) {
1499
- invariant(group, "get".concat(severityKey[0].toUpperCase()).concat(severityKey.slice(1), "ByGroup requires a group name. Received `").concat(group, "` instead."));
1500
- var testObjects = useTestsFlat();
1501
- return collectFailureMessages(severityKey, testObjects, {
1502
- group: group,
1503
- fieldName: fieldName
1504
- });
1467
+ function getFailuresByGroup(groupName, severityKey, fieldName) {
1468
+ var summary = context.useX().summary;
1469
+ invariant(summary);
1470
+ return gatherFailures(summary.groups[groupName], severityKey, fieldName);
1505
1471
  }
1506
1472
 
1507
1473
  function hasErrorsByGroup(groupName, fieldName) {
@@ -1522,22 +1488,24 @@
1522
1488
  });
1523
1489
  }
1524
1490
 
1525
- var cache$1 = createCache(20);
1491
+ var cache$1 = createCache(1);
1526
1492
  function produceSuiteResult() {
1527
1493
  var testObjects = useTestsFlat();
1528
1494
  var ctxRef = { stateRef: useStateRef() };
1529
1495
  return cache$1([testObjects], context.bind(ctxRef, function () {
1496
+ var summary = genTestsSummary();
1530
1497
  var suiteName = useSuiteName();
1531
- return assign(genTestsSummary(), {
1532
- getErrors: context.bind(ctxRef, getErrors),
1533
- getErrorsByGroup: context.bind(ctxRef, getErrorsByGroup),
1534
- getWarnings: context.bind(ctxRef, getWarnings),
1535
- getWarningsByGroup: context.bind(ctxRef, getWarningsByGroup),
1536
- hasErrors: context.bind(ctxRef, hasErrors),
1537
- hasErrorsByGroup: context.bind(ctxRef, hasErrorsByGroup),
1538
- hasWarnings: context.bind(ctxRef, hasWarnings),
1539
- hasWarningsByGroup: context.bind(ctxRef, hasWarningsByGroup),
1540
- isValid: context.bind(ctxRef, isValid),
1498
+ var ref = assign({ summary: summary }, ctxRef);
1499
+ return assign(summary, {
1500
+ getErrors: context.bind(ref, getErrors),
1501
+ getErrorsByGroup: context.bind(ref, getErrorsByGroup),
1502
+ getWarnings: context.bind(ref, getWarnings),
1503
+ getWarningsByGroup: context.bind(ref, getWarningsByGroup),
1504
+ hasErrors: context.bind(ref, hasErrors),
1505
+ hasErrorsByGroup: context.bind(ref, hasErrorsByGroup),
1506
+ hasWarnings: context.bind(ref, hasWarnings),
1507
+ hasWarningsByGroup: context.bind(ref, hasWarningsByGroup),
1508
+ isValid: context.bind(ref, isValid),
1541
1509
  suiteName: suiteName
1542
1510
  });
1543
1511
  }));
@@ -1606,14 +1574,13 @@
1606
1574
  return output;
1607
1575
  };
1608
1576
  function deferDoneCallback(doneCallback, fieldName) {
1609
- var deferredCallback = context.bind({}, doneCallback);
1610
1577
  var _a = useTestCallbacks(), setTestCallbacks = _a[1];
1611
1578
  setTestCallbacks(function (current) {
1612
1579
  if (fieldName) {
1613
- current.fieldCallbacks[fieldName] = (current.fieldCallbacks[fieldName] || []).concat(deferredCallback);
1580
+ current.fieldCallbacks[fieldName] = (current.fieldCallbacks[fieldName] || []).concat(doneCallback);
1614
1581
  }
1615
1582
  else {
1616
- current.doneCallbacks.push(deferredCallback);
1583
+ current.doneCallbacks.push(doneCallback);
1617
1584
  }
1618
1585
  return current;
1619
1586
  });
@@ -1623,19 +1590,22 @@
1623
1590
  var listeners = {};
1624
1591
  return {
1625
1592
  emit: function (event, data) {
1626
- (listeners[event] || []).forEach(function (handler) {
1593
+ listener(event).forEach(function (handler) {
1627
1594
  handler(data);
1628
1595
  });
1629
1596
  },
1630
1597
  on: function (event, handler) {
1631
- listeners[event] = (listeners[event] || []).concat(handler);
1598
+ listeners[event] = listener(event).concat(handler);
1632
1599
  return {
1633
1600
  off: function () {
1634
- listeners[event] = listeners[event].filter(function (h) { return h !== handler; });
1601
+ listeners[event] = listener(event).filter(function (h) { return h !== handler; });
1635
1602
  }
1636
1603
  };
1637
1604
  }
1638
1605
  };
1606
+ function listener(event) {
1607
+ return listeners[event] || [];
1608
+ }
1639
1609
  }
1640
1610
 
1641
1611
  function omitOptionalTests() {
@@ -1647,24 +1617,27 @@
1647
1617
  useSetTests(function (tests) {
1648
1618
  return transform(tests, function (testObject) {
1649
1619
  var fieldName = testObject.fieldName;
1650
- if (shouldOmit.hasOwnProperty(fieldName)) {
1651
- omit(testObject);
1620
+ if (hasOwnProperty(shouldOmit, fieldName)) {
1621
+ verifyAndOmit(testObject);
1652
1622
  }
1653
1623
  else {
1654
- var optionalConfig = optionalFields[fieldName];
1655
- if (isFunction(optionalConfig)) {
1656
- shouldOmit[fieldName] = optionalConfig();
1657
- omit(testObject);
1658
- }
1624
+ runOptionalConfig(testObject);
1659
1625
  }
1660
1626
  return testObject;
1661
1627
  });
1662
1628
  });
1663
- function omit(testObject) {
1629
+ function verifyAndOmit(testObject) {
1664
1630
  if (shouldOmit[testObject.fieldName]) {
1665
1631
  testObject.omit();
1666
1632
  }
1667
1633
  }
1634
+ function runOptionalConfig(testObject) {
1635
+ var optionalConfig = optionalFields[testObject.fieldName];
1636
+ if (isFunction(optionalConfig)) {
1637
+ shouldOmit[testObject.fieldName] = optionalConfig();
1638
+ verifyAndOmit(testObject);
1639
+ }
1640
+ }
1668
1641
  }
1669
1642
 
1670
1643
  /**
@@ -2359,7 +2332,7 @@
2359
2332
  /* eslint-disable jest/valid-title */
2360
2333
  // eslint-disable-next-line max-lines-per-function
2361
2334
  function bindTestMemo(test) {
2362
- var cache = createCache(100); // arbitrary cache size
2335
+ var cache = createCache(10); // arbitrary cache size
2363
2336
  // eslint-disable-next-line max-statements
2364
2337
  function memo(fieldName) {
2365
2338
  var args = [];
@@ -2428,7 +2401,7 @@
2428
2401
  ctx.currentTest.warn();
2429
2402
  }
2430
2403
 
2431
- var VERSION = "4.3.0";
2404
+ var VERSION = "4.3.1";
2432
2405
 
2433
2406
  exports.VERSION = VERSION;
2434
2407
  exports.context = context;
@@ -1 +1 @@
1
- "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return"function"==typeof n}function e(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function r(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function a(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function l(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function p(n,t){return l(n,t)||f(n,t)}function d(n){return!!Array.isArray(n)}function v(n,t){return!!(d(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 p(n,t)&&N(n,e)}function m(n){return i(n)||o(n)&&!n.trim()}function y(n){return!!n===n}function E(n){return"number"==typeof n}function b(n,t){return n.length===Number(t)}function S(n){if(n){if(E(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return b(n,0);if("object"==typeof n)return b(Object.keys(n),0)}return!0}function O(n,t){return n in t}function R(n){return Number.isNaN(n)}function T(n){return!!n}function C(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}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 o(n)&&o(t)&&n.startsWith(t)}function _(n){for(var e in Nt){var r=Nt[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 F(n,t){var e;return null!==(e=w(n))&&void 0!==e?e:t}function L(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?w(t):t)}function W(n){function t(t,u){var i,o,s=e();return t=Jn({},s||{},null!==(i=w(n,t,s))&&void 0!==i?i:t),i=r.ctx=Object.freeze(t),r.ancestry.unshift(i),u=u(i),r.ancestry.shift(),r.ctx=null!==(o=r.ancestry[0])&&void 0!==o?o:null,u}function e(){return r.ctx}var r={ancestry:[]};return{bind:function(n,e){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return t(n,(function(){return e.apply(void 0,r)}))}},run:t,use:e,useX:function(n){return L(r.ctx,F(n,"Context was used after it was closed")),r.ctx}}}function P(){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 G(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 L(y(n)||n&&y(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),y(n)?G(n):G(n.pass,w.apply(void 0,x([n.message,t,e],r,!1)))}function D(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return L((i=X.apply(void 0,x([gt.run({value:n},(function(){return e.apply(void 0,x([n],u,!1))})),r,n],u,!1))).pass,S(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var e={};if(!U())return _((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 q(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function K(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=Nt[r];e.push((function(n){return X.apply(void 0,x([o.apply(void 0,x([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return F(q(e,(function(e,r){var u,i=gt.run({value:n},(function(){return e(n)}));i.pass||r(G(!!i.pass,null!==(u=w(t,n,i.message))&&void 0!==u?u:i.message))})),G(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return U()?s=new Proxy(s,{get:function(t,e){return Nt[e]?n(e):t[e]}}):(_((function(t){s[t]=n(t)})),s)}}(n)}function j(n){function t(n){return e.findIndex((function(t){var e=t[0];return b(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),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 B(n){return(n=[].concat(n))[n.length-1]}function H(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];d(u)?e.push(H(u,t)):(u=t(u),Yn(u)&&e.push(u))}return e}function M(n){return[].concat(n).reduce((function(n,t){return d(t)?n.concat(M(t)):[].concat(n).concat(t)}),[])}function V(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=F(n[r],[]),n=n[r]}return n}function J(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return B(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,B(t)},removeLevel:function(){t.pop()},reset:n}}function Y(){return St.useX().stateRef}function z(){return Y().testObjects()}function Q(){(0,z()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function Z(n){(0,z()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function $(){return M(H(z()[0].current,(function(n){return n.isPending()?n:null})))}function nn(){var n=z()[0].current;return Ot([n],(function(){return M(n)}))}function tn(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 en(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 rn(n){setTimeout((function(){throw Error(n)}),0)}function un(){return St.useX().testCursor.getCursor()}function on(){return St.useX().testCursor.next()}function sn(n,e){if(n=void 0===(n=n.type)?Hn.DEFAULT:n,t(e)){var r={current:{},prev:{}},u=un();return St.run({isolate:{type:n,keys:r}},(function(){St.useX().testCursor.addLevel(),r.prev=function(){var n=z()[0].prev;return[].concat(V(n,un())).reduce((function(n,t){return t instanceof Ct&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),Z((function(n){return V(n,u)[B(u)]=[],n}));var n=e();return St.useX().testCursor.removeLevel(),on(),n}))}}function an(n,t){return!(!t||n.fieldName!==t)}function cn(n,t,e){return(e=!n.hasFailures()||e&&!an(n,e))||(n=n.warns(),e=t===Rt.WARNINGS!=!!n),!e}function fn(n){return pn(Rt.ERRORS,n)}function ln(n){return pn(Rt.WARNINGS,n)}function pn(n,t){return nn().some((function(e){return cn(e,n,t)}))}function dn(n){var t=nn().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(t=!!n&&!!t[n])||!fn(n)&&(!(S(t=nn())||function(n){var t=nn();return!!n&&!t.find((function(t){return t.fieldName===n}))}(n)||function(n){var t=Y().optionalFields()[0];return ct($().filter((function(e){return!(n&&!an(e,n))&&!0!==t[e.fieldName]})))}(n))&&function(n){var t=nn(),e=Y().optionalFields()[0];return t.every((function(t){return!(!n||an(t,n))||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(n))}function vn(n,t){function e(n){i[n===Rt.ERRORS?Tt.ERROR_COUNT:Tt.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(Rt.ERRORS):t.isWarning()&&e(Rt.WARNINGS)),i}function hn(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){if(u&&e.groupName!==u)var r=!0;else i&&!an(e,i)?r=!0:(r=e.warns(),r=n===Rt.WARNINGS!=!!r);return r||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),mt({},i&&((r={})[i]=[],r)))}function Nn(n){return mn(Rt.ERRORS,n)}function gn(n){return mn(Rt.WARNINGS,n)}function mn(n,t){return n=hn(n,nn(),{fieldName:t}),t?n[t]:n}function yn(n,t){return n=bn(Rt.ERRORS,n,t),t?n[t]:n}function En(n,t){return n=bn(Rt.WARNINGS,n,t),t?n[t]:n}function bn(n,t,e){return L(t,"get".concat(n[0].toUpperCase()).concat(n.slice(1),"ByGroup requires a group name. Received `").concat(t,"` instead.")),hn(n,nn(),{group:t,fieldName:e})}function Sn(n,t){return Rn(Rt.ERRORS,n,t)}function On(n,t){return Rn(Rt.WARNINGS,n,t)}function Rn(n,t,e){return nn().some((function(r){return t===r.groupName&&cn(r,n,e)}))}function Tn(){var n=nn(),t={stateRef:Y()};return xt([n],St.bind(t,(function(){var n=Y().suiteName()[0];return Jn(function(){var n=nn(),t=Jn({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=vn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&dn(t.fieldName),e=n.groups;var r=t.groupName;return r&&(e[r]=e[r]||{},e[r][t.fieldName]=vn(e[r],t)),n}),t),t.valid=dn(),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:St.bind(t,Nn),getErrorsByGroup:St.bind(t,yn),getWarnings:St.bind(t,gn),getWarningsByGroup:St.bind(t,En),hasErrors:St.bind(t,fn),hasErrorsByGroup:St.bind(t,Sn),hasWarnings:St.bind(t,ln),hasWarningsByGroup:St.bind(t,On),isValid:St.bind(t,dn),suiteName:n})})))}function Cn(n){var t=$();return!S(t)&&(n?t.some((function(t){return an(t,n)})):ct(t))}function In(){var n=nn(),t={stateRef:Y()};return Ut([n],St.bind(t,(function(){return Jn({},Tn(),{done:St.bind(t,Gt)})})))}function kn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!S(r.tests[e].testCount)))}function An(n){return!(Cn()&&(!n||Cn(n)))}function _n(n,t){var e=St.bind({},n);(0,Y().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function wn(n){return n.forEach((function(n){return n()}))}function Fn(){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(Pt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=Y().testCallbacks()[0].fieldCallbacks;t&&!Cn(t)&&d(e[t])&&wn(e[t]),Cn()||n.emit(Pt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Pt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var n=Y().optionalFields()[0];if(!S(n)){var e={};Z((function(r){return H(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(Pt.ALL_RUNNING_TESTS_FINISHED,(function(){wn(Y().testCallbacks()[0].doneCallbacks)})),n.on(Pt.REMOVE_FIELD,(function(n){nn().forEach((function(t){an(t,n)&&(t.cancel(),function(n){Z((function(t){return H(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Pt.RESET_FIELD,(function(n){nn().forEach((function(t){an(t,n)&&t.reset()}))})),n}function Ln(){var n=St.useX();return L(n.bus),n.bus}function Wn(n){return xn(0,"tests",n)}function Pn(n){return xn(1,"tests",n)}function xn(n,t,e){var r=St.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Un(n){for(var t in n)if(!0===n[t])return!0;return!1}function Gn(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function Xn(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Ln().emit,i=Y(),s=St.bind({stateRef:i},(function(){Q(),u(Pt.TEST_COMPLETED,n)}));i=St.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(S(t))return qn(n),n;var e=un();if(t=V(t,e)[B(e)],!i(n.key)){t=n.key,(e=St.useX().isolate.keys.prev[t])&&(n=e),e=n;var r=St.useX().isolate.keys.current;return i(r[t])?r[t]=e:rn('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!ct(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(St.useX().isolate.type===Hn.EACH||rn("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=V(e,un());var r=St.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),qn(n=F(t,n)),n}function qn(n){var t=un();Z((function(e){return V(e,t)[B(t)]=n,e}))}function Kn(n){var e=Vn.EAGER;if(e=!(St.useX().mode[0]!==e||!fn(n.fieldName)))return n.skip(),Dn(n),on(),n;if(e=Dn(n),St.useX().omitted)return e.omit(),on(),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){n:{var o=St.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||!Un(u)&&!1!==u[t])}r=St.useX().exclusion;n:{for(a in(s=St.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&&!!Un(u)&&!w(e[t])}(n))return e.skip(!!St.useX().skipped),on(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),qn(n),on(),n.isUntested()){e=Ln();var r=function(n){return St.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(),Xn(n)):e.emit(Pt.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(),Xn(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],L(o(n),Bn("fieldName","string")),L(t(r),Bn("Test callback","function"));var i=St.useX();return Kn(e=new Ct(n,r,{message:e,groupName:i.groupName,key:u}))}function Bn(n,t){return"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(l),et=e(d),rt=e(v),ut=e(g),it=e(m),ot=e(y),st=e(E),at=e(b),ct=e(S),ft=e(O),lt=e(R),pt=e(o),dt=e(T),vt=e(C),ht=e(k),Nt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Zn,doesNotStartWith:e(A),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:p,gt:f,gte:p,inside:v,isArray:d,isBetween:g,isBlank:m,isBoolean:y,isEmpty:S,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:dt,isKeyOf:O,isNaN:R,isNegative:function(n){return h(n,0)},isNotArray:et,isNotBetween:ut,isNotBlank:it,isNotBoolean:ot,isNotEmpty:ct,isNotKeyOf:ft,isNotNaN:lt,isNotNull:Yn,isNotNullish:Qn,isNotNumber:st,isNotNumeric:nt,isNotString:pt,isNotUndefined:zn,isNotValueOf:vt,isNull:r,isNullish:i,isNumber:E,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:function(n){return f(n,0)},isString:o,isTruthy:T,isUndefined:u,isValueOf:C,lengthEquals:b,lengthNotEquals:at,lessThan:h,lessThanOrEquals:N,longerThan:I,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:h,lte:N,matches:k,notEquals:$n,notInside:rt,notMatches:ht,numberEquals:l,numberNotEquals:tt,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:A},gt=W((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:P})})),mt=function(){return(mt=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)},yt=(Mn={context:function(){return gt.useX()},extend:function(n){Jn(Nt,n)}},U()?new Proxy(Jn(D,Mn),{get:function(n,t){return t in n?n[t]:Nt[t]?K(t):void 0}}):(_((function(n){Mn[n]=K(n)})),Jn(D,Mn))),Et=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 bt,St=W((function(n,t){return t?null:Jn({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:Hn.DEFAULT,keys:{current:{},prev:{}}},mode:[Vn.ALL],testCursor:J()},n)})),Ot=j();!function(n){n.Error="error",n.Warning="warning"}(bt||(bt={}));var Rt,Tt,Ct=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=Et(),this.severity=bt.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!==Wt||(this.status=n)},n.prototype.warns=function(){return this.severity===bt.Warning},n.prototype.setPending=function(){this.setStatus(Ft)},n.prototype.fail=function(){this.setStatus(this.warns()?_t:At)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(wt)},n.prototype.warn=function(){this.severity=bt.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(Lt),Q()},n.prototype.reset=function(){this.status=It,Q()},n.prototype.omit=function(){this.setStatus(Wt)},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(Ft)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Wt)},n.prototype.isUntested=function(){return this.statusEquals(It)},n.prototype.isFailing=function(){return this.statusEquals(At)},n.prototype.isCanceled=function(){return this.statusEquals(Lt)},n.prototype.isSkipped=function(){return this.statusEquals(kt)},n.prototype.isPassing=function(){return this.statusEquals(wt)},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",wt="PASSING",Ft="PENDING",Lt="CANCELED",Wt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Rt||(Rt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Tt||(Tt={}));var Pt,xt=j(20),Ut=j(20),Gt=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(Tn())};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"}(Pt||(Pt={})),Wn.group=function(n){return xn(0,"groups",n)},Pn.group=function(n){return xn(1,"groups",n)};var Xt=Jn(jn,{memo:function(n){var t=j(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=St.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[Y().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.3.0",n.context=St,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],L(t(r),"vest.create: Expected callback to be a function.");var u=Fn(),i=tn();return n={stateRef:en(i,{suiteId:Et(),suiteName:n}),bus:u},Jn(St.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),sn({type:Hn.SUITE},(function(){r.apply(void 0,n)})),u.emit(Pt.SUITE_CALLBACK_DONE_RUNNING),In()})),{get:St.bind(n,Tn),remove:St.bind(n,(function(n){u.emit(Pt.REMOVE_FIELD,n)})),reset:i.reset,resetField:St.bind(n,(function(n){u.emit(Pt.RESET_FIELD,n)}))})},n.each=function(n,e){L(t(e),"each callback must be a function"),sn({type:Hn.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=Vn.EAGER;St.useX().mode[0]=n},n.enforce=yt,n.group=function(n,e){L(o(n),Gn("name must be a string")),L(t(e),Gn("callback must be a function")),sn({type:Hn.GROUP},(function(){St.run({groupName:n},e)}))},n.include=function(n){function t(t){var e=St.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?F(r.tests[n],!0):o(t)?!!r.tests[t]:w(t,w(Tn))}}var e=St.useX();return n?(e.inclusion[n]=F(e.exclusion.tests[n],!0),{when:t}):{when:t}},n.omitWhen=function(n,t){sn({type:Hn.OMIT_WHEN},(function(){St.run({omitted:!!St.useX().omitted||w(n,w(Tn))},(function(){return t()}))}))},n.only=Wn,n.optional=function(n){(0,Y().optionalFields()[1])((function(t){if(d(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=Pn,n.skipWhen=function(n,t){sn({type:Hn.SKIP_WHEN},(function(){St.run({skipped:!!St.useX().skipped||w(n,w(Tn))},(function(){return t()}))}))},n.test=Xt,n.warn=function(){var n=St.useX("warn hook called outside of a running suite.");L(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"==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,t){return l(n,t)||f(n,t)}function d(n){return!!Array.isArray(n)}function v(n,t){return!!(d(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function h(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function g(n,t){return l(n,t)||h(n,t)}function N(n,t,e){return p(n,t)&&g(n,e)}function m(n){return i(n)||o(n)&&!n.trim()}function y(n){return!!n===n}function E(n){return"number"==typeof n}function b(n,t){return l(n.length,t)}function S(n){if(n){if(E(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return b(n,0);if("object"==typeof n)return b(Object.keys(n),0)}return!0}function T(n,t){return n in t}function O(n){return Number.isNaN(n)}function R(n){return!!n}function C(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function I(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 _(n,t){return o(n)&&o(t)&&n.startsWith(t)}function A(n){for(var e in mt){var r=mt[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 F(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?L(t):t)}function W(n){function t(t,u){var i,o,s=e();return t=zn({},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){return F(r.ctx,w(n,"Context was used after it was closed")),r.ctx}}}function x(){return null}function P(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function X(){try{return t(Proxy)}catch(n){return!1}}function U(n,t){return n={pass:n},t&&(n.message=t),n}function G(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return F(y(n)||n&&y(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),y(n)?U(n):U(n.pass,L.apply(void 0,P([n.message,t,e],r,!1)))}function D(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return F((i=G.apply(void 0,P([yt.run({value:n},(function(){return e.apply(void 0,P([n],u,!1))})),r,n],u,!1))).pass,S(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var e={};if(!X())return A((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 q(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function K(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=mt[r];e.push((function(n){return G.apply(void 0,P([o.apply(void 0,P([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return w(q(e,(function(e,r){var u,i=yt.run({value:n},(function(){return e(n)}));i.pass||r(U(!!i.pass,null!==(u=L(t,n,i.message))&&void 0!==u?u:i.message))})),U(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return X()?s=new Proxy(s,{get:function(t,e){return mt[e]?n(e):t[e]}}):(A((function(t){s[t]=n(t)})),s)}}(n)}function j(n){function t(n){return e.findIndex((function(t){var e=t[0];return b(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),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 B(n){return(n=[].concat(n))[n.length-1]}function H(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];d(u)?e.push(H(u,t)):(u=t(u),Qn(u)&&e.push(u))}return e}function M(n){return[].concat(n).reduce((function(n,t){return d(t)?n.concat(M(t)):[].concat(n).concat(t)}),[])}function V(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 J(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return B(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,B(t)},removeLevel:function(){t.pop()},reset:n}}function Y(){return Tt.useX().stateRef}function z(){return Y().testObjects()}function Q(){(0,z()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function Z(n){(0,z()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function $(){return M(H(z()[0].current,(function(n){return n.isPending()?n:null})))}function nn(){var n=z()[0].current;return Ot([n],(function(){return M(n)}))}function tn(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 en(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 rn(n){setTimeout((function(){throw Error(n)}),0)}function un(){return Tt.useX().testCursor.getCursor()}function on(){return Tt.useX().testCursor.next()}function sn(n,e){if(n=void 0===(n=n.type)?Vn.DEFAULT:n,t(e)){var r={current:{},prev:{}},u=un();return Tt.run({isolate:{type:n,keys:r}},(function(){Tt.useX().testCursor.addLevel(),r.prev=function(){var n=z()[0].prev;return[].concat(V(n,un())).reduce((function(n,t){return t instanceof It&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),Z((function(n){return V(n,u)[B(u)]=[],n}));var n=e();return Tt.useX().testCursor.removeLevel(),on(),n}))}}function an(n,t){return!(!t||n.fieldName!==t)}function cn(n,t,e){return(e=!n.hasFailures()||e&&!an(n,e))||(n=n.warns(),e=t===Rt.WARNINGS!=!!n),!e}function fn(n){return pn(Rt.ERRORS,n)}function ln(n){return pn(Rt.WARNINGS,n)}function pn(n,t){return nn().some((function(e){return cn(e,n,t)}))}function dn(n){var t,e,r=Tt.useX().summary;return F(r),!!(n?null!==(e=null===(t=r.tests)||void 0===t?void 0:t[n])&&void 0!==e&&e.valid:r.valid)}function vn(n){var t=nn().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(t=!!n&&!!t[n])||!fn(n)&&(!(S(t=nn())||function(n){var t=nn();return!!n&&!t.find((function(t){return t.fieldName===n}))}(n)||function(n){var t=Y().optionalFields()[0];return lt($().filter((function(e){return!(n&&!an(e,n))&&!0!==t[e.fieldName]})))}(n))&&function(n){var t=nn(),e=Y().optionalFields()[0];return t.every((function(t){return!(!n||an(t,n))||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(n))}function hn(n,t){function e(n){i[n===Rt.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]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(Rt.ERRORS):t.isWarning()&&e(Rt.WARNINGS)),i}function gn(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}function Nn(n,t){var e,r,u={};for(r in n)u[r]=(null===(e=n[r])||void 0===e?void 0:e[t])||[];return u}function mn(n){return En(Rt.ERRORS,n)}function yn(n){return En(Rt.WARNINGS,n)}function En(n,t){var e=Tt.useX().summary;return F(e),e=e.tests,t?gn(e,n,t):Nn(e,n)}function bn(n,t){return Tn(n,Rt.ERRORS,t)}function Sn(n,t){return Tn(n,Rt.WARNINGS,t)}function Tn(n,t,e){var r=Tt.useX().summary;return F(r),n=r.groups[n],e?gn(n,t,e):Nn(n,t)}function On(n,t){return Cn(Rt.ERRORS,n,t)}function Rn(n,t){return Cn(Rt.WARNINGS,n,t)}function Cn(n,t,e){return nn().some((function(r){return t===r.groupName&&cn(r,n,e)}))}function In(){var n=nn(),t={stateRef:Y()};return Xt([n],Tt.bind(t,(function(){var n=function(){var n=nn(),t=zn({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=hn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&vn(t.fieldName),e=n.groups;var r=t.groupName;return r&&(e[r]=e[r]||{},e[r][t.fieldName]=hn(e[r],t)),n}),t),t.valid=vn(),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)}(),e=Y().suiteName()[0],r=zn({summary:n},t);return zn(n,{getErrors:Tt.bind(r,mn),getErrorsByGroup:Tt.bind(r,bn),getWarnings:Tt.bind(r,yn),getWarningsByGroup:Tt.bind(r,Sn),hasErrors:Tt.bind(r,fn),hasErrorsByGroup:Tt.bind(r,On),hasWarnings:Tt.bind(r,ln),hasWarningsByGroup:Tt.bind(r,Rn),isValid:Tt.bind(r,dn),suiteName:e})})))}function kn(n){var t=$();return!S(t)&&(n?t.some((function(t){return an(t,n)})):lt(t))}function _n(){var n=nn(),t={stateRef:Y()};return Ut([n],Tt.bind(t,(function(){return zn({},In(),{done:Tt.bind(t,Gt)})})))}function An(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!S(r.tests[e].testCount)))}function Ln(n){return!(kn()&&(!n||kn(n)))}function wn(n,t){(0,Y().testCallbacks()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Fn(n){return n.forEach((function(n){return n()}))}function Wn(){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(Pt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=Y().testCallbacks()[0].fieldCallbacks;t&&!kn(t)&&d(e[t])&&Fn(e[t]),kn()||n.emit(Pt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Pt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var n=Y().optionalFields()[0];if(!S(n)){var e={};Z((function(r){return H(r,(function(r){if(Object.prototype.hasOwnProperty.call(e,r.fieldName))e[r.fieldName]&&r.omit();else{var u=n[r.fieldName];t(u)&&(e[r.fieldName]=u(),e[r.fieldName]&&r.omit())}return r}))}))}}()})),n.on(Pt.ALL_RUNNING_TESTS_FINISHED,(function(){Fn(Y().testCallbacks()[0].doneCallbacks)})),n.on(Pt.REMOVE_FIELD,(function(n){nn().forEach((function(t){an(t,n)&&(t.cancel(),function(n){Z((function(t){return H(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Pt.RESET_FIELD,(function(n){nn().forEach((function(t){an(t,n)&&t.reset()}))})),n}function xn(){var n=Tt.useX();return F(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=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 Dn(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function qn(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=xn().emit,i=Y(),s=Tt.bind({stateRef:i},(function(){Q(),u(Pt.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 Kn(n){var t=z()[0].prev;if(S(t))return jn(n),n;var e=un();if(t=V(t,e)[B(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:rn('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),jn(n),n}return!lt(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(Tt.useX().isolate.type===Vn.EACH||rn("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=V(e,un());var r=Tt.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),jn(n=w(t,n)),n}function jn(n){var t=un();Z((function(e){return V(e,t)[B(t)]=n,e}))}function Bn(n){var e=Yn.EAGER;if(e=!(Tt.useX().mode[0]!==e||!fn(n.fieldName)))return n.skip(),Kn(n),on(),n;if(e=Kn(n),Tt.useX().omitted)return e.omit(),on(),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),on(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),jn(n),on(),n.isUntested()){e=xn();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(),qn(n)):e.emit(Pt.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(),qn(n));return n}function Hn(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:P([void 0],e,!0);e=u[0],r=u[1],u=u[2],F(o(n),Mn("fieldName","string")),F(t(r),Mn("Test callback","function"));var i=Tt.useX();return Bn(e=new It(n,r,{message:e,groupName:i.groupName,key:u}))}function Mn(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var Vn,Jn,Yn,zn=Object.assign,Qn=e(r),Zn=e(u),$n=e(i),nt=e(s),tt=e(a),et=e(c),rt=e(l),ut=e(d),it=e(v),ot=e(N),st=e(m),at=e(y),ct=e(E),ft=e(b),lt=e(S),pt=e(T),dt=e(O),vt=e(o),ht=e(R),gt=e(C),Nt=e(k),mt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:nt,doesNotStartWith:e(_),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:p,gt:f,gte:p,inside:v,isArray:d,isBetween:N,isBlank:m,isBoolean:y,isEmpty:S,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:ht,isKeyOf:T,isNaN:O,isNegative:function(n){return h(n,0)},isNotArray:ut,isNotBetween:ot,isNotBlank:st,isNotBoolean:at,isNotEmpty:lt,isNotKeyOf:pt,isNotNaN:dt,isNotNull:Qn,isNotNullish:$n,isNotNumber:ct,isNotNumeric:et,isNotString:vt,isNotUndefined:Zn,isNotValueOf:gt,isNull:r,isNullish:i,isNumber:E,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:function(n){return f(n,0)},isString:o,isTruthy:R,isUndefined:u,isValueOf:C,lengthEquals:b,lengthNotEquals:ft,lessThan:h,lessThanOrEquals:g,longerThan:I,longerThanOrEquals:function(n,t){return p(n.length,t)},lt:h,lte:g,matches:k,notEquals:tt,notInside:it,notMatches:Nt,numberEquals:l,numberNotEquals:rt,shorterThan:function(n,t){return h(n.length,t)},shorterThanOrEquals:function(n,t){return g(n.length,t)},startsWith:_},yt=W((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?zn(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:zn(e,{parent:x})})),Et=(Jn={context:function(){return yt.useX()},extend:function(n){zn(mt,n)}},X()?new Proxy(zn(D,Jn),{get:function(n,t){return t in n?n[t]:mt[t]?K(t):void 0}}):(A((function(n){Jn[n]=K(n)})),zn(D,Jn))),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"}(Vn||(Vn={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(Yn||(Yn={}));var St,Tt=W((function(n,t){return t?null:zn({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:Vn.DEFAULT,keys:{current:{},prev:{}}},mode:[Yn.ALL],testCursor:J()},n)})),Ot=j();!function(n){n.Error="error",n.Warning="warning"}(St||(St={}));var Rt,Ct,It=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=kt,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===St.Warning},n.prototype.setPending=function(){this.setStatus(Ft)},n.prototype.fail=function(){this.setStatus(this.warns()?Lt:At)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(wt)},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(_t)},n.prototype.cancel=function(){this.setStatus(Wt),Q()},n.prototype.reset=function(){this.status=kt,Q()},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(Ft)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(xt)},n.prototype.isUntested=function(){return this.statusEquals(kt)},n.prototype.isFailing=function(){return this.statusEquals(At)},n.prototype.isCanceled=function(){return this.statusEquals(Wt)},n.prototype.isSkipped=function(){return this.statusEquals(_t)},n.prototype.isPassing=function(){return this.statusEquals(wt)},n.prototype.isWarning=function(){return this.statusEquals(Lt)},n.prototype.statusEquals=function(n){return this.status===n},n}(),kt="UNTESTED",_t="SKIPPED",At="FAILED",Lt="WARNING",wt="PASSING",Ft="PENDING",Wt="CANCELED",xt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Rt||(Rt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Ct||(Ct={}));var Pt,Xt=j(1),Ut=j(20),Gt=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=_n(),An(e,n,t))return t;var r=function(){return e(In())};return Ln(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"}(Pt||(Pt={})),Pn.group=function(n){return Un(0,"groups",n)},Xn.group=function(n){return Un(1,"groups",n)};var Dt=zn(Hn,{memo:function(n){var t=j(10);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=[Y().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.3.1",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],F(t(r),"vest.create: Expected callback to be a function.");var u=Wn(),i=tn();return n={stateRef:en(i,{suiteId:bt(),suiteName:n}),bus:u},zn(Tt.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),sn({type:Vn.SUITE},(function(){r.apply(void 0,n)})),u.emit(Pt.SUITE_CALLBACK_DONE_RUNNING),_n()})),{get:Tt.bind(n,In),remove:Tt.bind(n,(function(n){u.emit(Pt.REMOVE_FIELD,n)})),reset:i.reset,resetField:Tt.bind(n,(function(n){u.emit(Pt.RESET_FIELD,n)}))})},n.each=function(n,e){F(t(e),"each callback must be a function"),sn({type:Vn.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=Yn.EAGER;Tt.useX().mode[0]=n},n.enforce=Et,n.group=function(n,e){F(o(n),Dn("name must be a string")),F(t(e),Dn("callback must be a function")),sn({type:Vn.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(In))}}var e=Tt.useX();return n?(e.inclusion[n]=w(e.exclusion.tests[n],!0),{when:t}):{when:t}},n.omitWhen=function(n,t){sn({type:Vn.OMIT_WHEN},(function(){Tt.run({omitted:!!Tt.useX().omitted||L(n,L(In))},(function(){return t()}))}))},n.only=Pn,n.optional=function(n){(0,Y().optionalFields()[1])((function(t){if(d(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){sn({type:Vn.SKIP_WHEN},(function(){Tt.run({skipped:!!Tt.useX().skipped||L(n,L(In))},(function(){return t()}))}))},n.test=Dt,n.warn=function(){var n=Tt.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})}));
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.3.0",
2
+ "version": "4.3.1",
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.2",
24
- "n4s": "^4.1.3"
23
+ "context": "^2.0.3",
24
+ "n4s": "^4.1.4"
25
25
  },
26
26
  "homepage": "https://vestjs.dev/",
27
27
  "exports": {
@@ -2,19 +2,19 @@ type DropFirst<T extends unknown[]> = T extends [
2
2
  unknown,
3
3
  ...infer U
4
4
  ] ? U : never;
5
- type TStringable = string | ((...args: any[]) => string);
6
- type TRuleReturn = boolean | {
5
+ type Stringable = string | ((...args: any[]) => string);
6
+ type RuleReturn = boolean | {
7
7
  pass: boolean;
8
- message?: TStringable;
8
+ message?: Stringable;
9
9
  };
10
- type TRuleDetailedResult = {
10
+ type RuleDetailedResult = {
11
11
  pass: boolean;
12
12
  message?: string;
13
13
  };
14
- type TArgs = any[];
15
- type TBaseRules = typeof baseRules;
16
- type KBaseRules = keyof TBaseRules;
17
- declare function condition(value: any, callback: (value: any) => TRuleReturn): TRuleReturn;
14
+ type Args = any[];
15
+ type BaseRules = typeof baseRules;
16
+ type KBaseRules = keyof BaseRules;
17
+ declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
18
18
  declare function endsWith(value: string, arg1: string): boolean;
19
19
  declare function equals(value: unknown, arg1: unknown): boolean;
20
20
  declare function greaterThan(value: number | string, gt: number | string): boolean;
@@ -113,29 +113,29 @@ declare const baseRules: {
113
113
  shorterThanOrEquals: typeof shorterThanOrEquals;
114
114
  startsWith: typeof startsWith;
115
115
  };
116
- type TRules<E = Record<string, unknown>> = n4s.EnforceCustomMatchers<TRules<E> & E> & Record<string, (...args: TArgs) => TRules<E> & E> & {
117
- [P in KBaseRules]: (...args: DropFirst<Parameters<TBaseRules[P]>> | TArgs) => TRules<E> & E;
116
+ type Rules<E = Record<string, unknown>> = n4s.EnforceCustomMatchers<Rules<E> & E> & Record<string, (...args: Args) => Rules<E> & E> & {
117
+ [P in KBaseRules]: (...args: DropFirst<Parameters<BaseRules[P]>> | Args) => Rules<E> & E;
118
118
  };
119
119
  /* eslint-disable @typescript-eslint/no-namespace, @typescript-eslint/no-empty-interface */
120
120
  declare global {
121
121
  namespace n4s {
122
- interface IRules<E> extends TRules<E> {
122
+ interface IRules<E> extends Rules<E> {
123
123
  }
124
124
  }
125
125
  }
126
- type TLazyRules = n4s.IRules<TLazyRuleMethods>;
127
- type TLazy = TLazyRules & TLazyRuleMethods &
126
+ type LazyRules = n4s.IRules<LazyRuleMethods>;
127
+ type Lazy = LazyRules & LazyRuleMethods &
128
128
  // This is a "catch all" hack to make TS happy while not
129
129
  // losing type hints
130
130
  Record<string, (...args: any[]) => any>;
131
- type TLazyRuleMethods = TLazyRuleRunners & {
132
- message: (message: TLazyMessage) => TLazy;
131
+ type LazyRuleMethods = LazyRuleRunners & {
132
+ message: (message: LazyMessage) => Lazy;
133
133
  };
134
- type TLazyRuleRunners = {
134
+ type LazyRuleRunners = {
135
135
  test: (value: unknown) => boolean;
136
- run: (value: unknown) => TRuleDetailedResult;
136
+ run: (value: unknown) => RuleDetailedResult;
137
137
  };
138
- type TComposeResult = TLazyRuleRunners & ((value: any) => void);
139
- type TLazyMessage = string | ((value: unknown, originalMessage?: TStringable) => string);
140
- declare function compose(...composites: TLazyRuleRunners[]): TComposeResult;
138
+ type ComposeResult = LazyRuleRunners & ((value: any) => void);
139
+ type LazyMessage = string | ((value: unknown, originalMessage?: Stringable) => string);
140
+ declare function compose(...composites: LazyRuleRunners[]): ComposeResult;
141
141
  export { compose as default };
@@ -2,19 +2,19 @@ type DropFirst<T extends unknown[]> = T extends [
2
2
  unknown,
3
3
  ...infer U
4
4
  ] ? U : never;
5
- type TStringable = string | ((...args: any[]) => string);
6
- type TRuleReturn = boolean | {
5
+ type Stringable = string | ((...args: any[]) => string);
6
+ type RuleReturn = boolean | {
7
7
  pass: boolean;
8
- message?: TStringable;
8
+ message?: Stringable;
9
9
  };
10
- type TRuleDetailedResult = {
10
+ type RuleDetailedResult = {
11
11
  pass: boolean;
12
12
  message?: string;
13
13
  };
14
- type TArgs = any[];
15
- type TBaseRules = typeof baseRules;
16
- type KBaseRules = keyof TBaseRules;
17
- declare function condition(value: any, callback: (value: any) => TRuleReturn): TRuleReturn;
14
+ type Args = any[];
15
+ type BaseRules = typeof baseRules;
16
+ type KBaseRules = keyof BaseRules;
17
+ declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
18
18
  declare function endsWith(value: string, arg1: string): boolean;
19
19
  declare function equals(value: unknown, arg1: unknown): boolean;
20
20
  declare function greaterThan(value: number | string, gt: number | string): boolean;
@@ -113,33 +113,33 @@ declare const baseRules: {
113
113
  shorterThanOrEquals: typeof shorterThanOrEquals;
114
114
  startsWith: typeof startsWith;
115
115
  };
116
- type TRules<E = Record<string, unknown>> = n4s.EnforceCustomMatchers<TRules<E> & E> & Record<string, (...args: TArgs) => TRules<E> & E> & {
117
- [P in KBaseRules]: (...args: DropFirst<Parameters<TBaseRules[P]>> | TArgs) => TRules<E> & E;
116
+ type Rules<E = Record<string, unknown>> = n4s.EnforceCustomMatchers<Rules<E> & E> & Record<string, (...args: Args) => Rules<E> & E> & {
117
+ [P in KBaseRules]: (...args: DropFirst<Parameters<BaseRules[P]>> | Args) => Rules<E> & E;
118
118
  };
119
119
  /* eslint-disable @typescript-eslint/no-namespace, @typescript-eslint/no-empty-interface */
120
120
  declare global {
121
121
  namespace n4s {
122
- interface IRules<E> extends TRules<E> {
122
+ interface IRules<E> extends Rules<E> {
123
123
  }
124
124
  }
125
125
  }
126
- type TLazyRules = n4s.IRules<TLazyRuleMethods>;
127
- type TLazy = TLazyRules & TLazyRuleMethods &
126
+ type LazyRules = n4s.IRules<LazyRuleMethods>;
127
+ type Lazy = LazyRules & LazyRuleMethods &
128
128
  // This is a "catch all" hack to make TS happy while not
129
129
  // losing type hints
130
130
  Record<string, (...args: any[]) => any>;
131
- type TLazyRuleMethods = TLazyRuleRunners & {
132
- message: (message: TLazyMessage) => TLazy;
131
+ type LazyRuleMethods = LazyRuleRunners & {
132
+ message: (message: LazyMessage) => Lazy;
133
133
  };
134
- type TLazyRuleRunners = {
134
+ type LazyRuleRunners = {
135
135
  test: (value: unknown) => boolean;
136
- run: (value: unknown) => TRuleDetailedResult;
136
+ run: (value: unknown) => RuleDetailedResult;
137
137
  };
138
- type TLazyMessage = string | ((value: unknown, originalMessage?: TStringable) => string);
139
- declare function allOf(value: unknown, ...rules: TLazy[]): TRuleDetailedResult;
140
- declare function anyOf(value: unknown, ...rules: TLazy[]): TRuleDetailedResult;
141
- declare function noneOf(value: unknown, ...rules: TLazy[]): TRuleDetailedResult;
142
- declare function oneOf(value: unknown, ...rules: TLazy[]): TRuleDetailedResult;
138
+ type LazyMessage = string | ((value: unknown, originalMessage?: Stringable) => string);
139
+ declare function allOf(value: unknown, ...rules: Lazy[]): RuleDetailedResult;
140
+ declare function anyOf(value: unknown, ...rules: Lazy[]): RuleDetailedResult;
141
+ declare function noneOf(value: unknown, ...rules: Lazy[]): RuleDetailedResult;
142
+ declare function oneOf(value: unknown, ...rules: Lazy[]): RuleDetailedResult;
143
143
  declare global {
144
144
  namespace n4s {
145
145
  interface EnforceCustomMatchers<R> {