vest 4.2.2 → 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.
Files changed (50) hide show
  1. package/dist/cjs/classnames.development.js +76 -28
  2. package/dist/cjs/classnames.production.js +1 -1
  3. package/dist/cjs/enforce/compose.development.js +28 -60
  4. package/dist/cjs/enforce/compose.production.js +1 -1
  5. package/dist/cjs/enforce/compounds.development.js +17 -2
  6. package/dist/cjs/enforce/compounds.production.js +1 -1
  7. package/dist/cjs/enforce/schema.development.js +1 -1
  8. package/dist/cjs/parser.development.js +84 -22
  9. package/dist/cjs/parser.production.js +1 -1
  10. package/dist/cjs/promisify.development.js +21 -8
  11. package/dist/cjs/promisify.production.js +1 -1
  12. package/dist/cjs/vest.development.js +297 -294
  13. package/dist/cjs/vest.production.js +1 -1
  14. package/dist/es/classnames.development.js +76 -28
  15. package/dist/es/classnames.production.js +1 -1
  16. package/dist/es/enforce/compose.development.js +28 -60
  17. package/dist/es/enforce/compose.production.js +1 -1
  18. package/dist/es/enforce/compounds.development.js +17 -2
  19. package/dist/es/enforce/compounds.production.js +1 -1
  20. package/dist/es/enforce/schema.development.js +1 -1
  21. package/dist/es/parser.development.js +84 -22
  22. package/dist/es/parser.production.js +1 -1
  23. package/dist/es/promisify.development.js +21 -8
  24. package/dist/es/promisify.production.js +1 -1
  25. package/dist/es/vest.development.js +297 -294
  26. package/dist/es/vest.production.js +1 -1
  27. package/dist/umd/classnames.development.js +76 -28
  28. package/dist/umd/classnames.production.js +1 -1
  29. package/dist/umd/enforce/compose.development.js +94 -104
  30. package/dist/umd/enforce/compose.production.js +1 -1
  31. package/dist/umd/enforce/compounds.development.js +39 -41
  32. package/dist/umd/enforce/compounds.production.js +1 -1
  33. package/dist/umd/enforce/schema.development.js +40 -42
  34. package/dist/umd/enforce/schema.production.js +1 -1
  35. package/dist/umd/parser.development.js +84 -22
  36. package/dist/umd/parser.production.js +1 -1
  37. package/dist/umd/promisify.development.js +21 -8
  38. package/dist/umd/promisify.production.js +1 -1
  39. package/dist/umd/vest.development.js +264 -283
  40. package/dist/umd/vest.production.js +1 -1
  41. package/package.json +3 -3
  42. package/testUtils/mockThrowError.ts +3 -6
  43. package/testUtils/suiteDummy.ts +5 -1
  44. package/types/classnames.d.ts +13 -54
  45. package/types/enforce/compose.d.ts +22 -21
  46. package/types/enforce/compounds.d.ts +24 -23
  47. package/types/enforce/schema.d.ts +26 -25
  48. package/types/parser.d.ts +12 -53
  49. package/types/promisify.d.ts +19 -15
  50. package/types/vest.d.ts +66 -61
@@ -143,8 +143,13 @@
143
143
  return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
144
144
  }
145
145
 
146
+ function numberEquals(value, eq) {
147
+ return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
148
+ }
149
+ var numberNotEquals = bindNot(numberEquals);
150
+
146
151
  function greaterThanOrEquals(value, gte) {
147
- return isNumeric(value) && isNumeric(gte) && Number(value) >= Number(gte);
152
+ return numberEquals(value, gte) || greaterThan(value, gte);
148
153
  }
149
154
 
150
155
  // The module is named "isArrayValue" since it
@@ -167,8 +172,12 @@
167
172
  }
168
173
  var notInside = bindNot(inside);
169
174
 
175
+ function lessThan(value, lt) {
176
+ return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
177
+ }
178
+
170
179
  function lessThanOrEquals(value, lte) {
171
- return isNumeric(value) && isNumeric(lte) && Number(value) <= Number(lte);
180
+ return numberEquals(value, lte) || lessThan(value, lte);
172
181
  }
173
182
 
174
183
  function isBetween(value, min, max) {
@@ -200,7 +209,7 @@
200
209
  var isNotNumber = bindNot(isNumber);
201
210
 
202
211
  function lengthEquals(value, arg1) {
203
- return value.length === Number(arg1);
212
+ return numberEquals(value.length, arg1);
204
213
  }
205
214
  var lengthNotEquals = bindNot(lengthEquals);
206
215
 
@@ -242,12 +251,8 @@
242
251
  var isNotNaN = bindNot(isNaN$1);
243
252
 
244
253
  function isNegative(value) {
245
- if (isNumeric(value)) {
246
- return Number(value) < 0;
247
- }
248
- return false;
254
+ return lessThan(value, 0);
249
255
  }
250
- var isPositive = bindNot(isNegative);
251
256
 
252
257
  /**
253
258
  * Validates that a given value is an odd number
@@ -259,6 +264,10 @@
259
264
  return false;
260
265
  };
261
266
 
267
+ function isPositive(value) {
268
+ return greaterThan(value, 0);
269
+ }
270
+
262
271
  var isNotString = bindNot(isStringValue);
263
272
 
264
273
  function isTruthy(value) {
@@ -279,16 +288,12 @@
279
288
  }
280
289
  var isNotValueOf = bindNot(isValueOf);
281
290
 
282
- function lessThan(value, lt) {
283
- return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
284
- }
285
-
286
291
  function longerThan(value, arg1) {
287
- return value.length > Number(arg1);
292
+ return greaterThan(value.length, arg1);
288
293
  }
289
294
 
290
295
  function longerThanOrEquals(value, arg1) {
291
- return value.length >= Number(arg1);
296
+ return greaterThanOrEquals(value.length, arg1);
292
297
  }
293
298
 
294
299
  function matches(value, regex) {
@@ -304,11 +309,6 @@
304
309
  }
305
310
  var notMatches = bindNot(matches);
306
311
 
307
- function numberEquals(value, eq) {
308
- return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
309
- }
310
- var numberNotEquals = bindNot(numberEquals);
311
-
312
312
  function condition(value, callback) {
313
313
  try {
314
314
  return callback(value);
@@ -319,11 +319,11 @@
319
319
  }
320
320
 
321
321
  function shorterThan(value, arg1) {
322
- return value.length < Number(arg1);
322
+ return lessThan(value.length, arg1);
323
323
  }
324
324
 
325
325
  function shorterThanOrEquals(value, arg1) {
326
- return value.length <= Number(arg1);
326
+ return lessThanOrEquals(value.length, arg1);
327
327
  }
328
328
 
329
329
  function startsWith(value, arg1) {
@@ -412,11 +412,18 @@
412
412
  }
413
413
  }
414
414
 
415
- /**
416
- * Throws a timed out error.
417
- */
418
- function throwError(devMessage, productionMessage) {
419
- throw new Error(devMessage );
415
+ function invariant(condition,
416
+ // eslint-disable-next-line @typescript-eslint/ban-types
417
+ message) {
418
+ if (condition) {
419
+ return;
420
+ }
421
+ // If message is a string object (rather than string literal)
422
+ // Throw the value directly as a string
423
+ // Alternatively, throw an error with the message
424
+ throw message instanceof String
425
+ ? message.valueOf()
426
+ : new Error(message ? optionalFunctionValue(message) : message);
420
427
  }
421
428
 
422
429
  // eslint-disable-next-line max-lines-per-function
@@ -429,8 +436,8 @@
429
436
  useX: useX
430
437
  };
431
438
  function useX(errorMessage) {
432
- var _a;
433
- return ((_a = storage.ctx) !== null && _a !== void 0 ? _a : throwError(defaultTo(errorMessage, 'Context was used after it was closed')));
439
+ invariant(storage.ctx, defaultTo(errorMessage, 'Context was used after it was closed'));
440
+ return storage.ctx;
434
441
  }
435
442
  function run(ctxRef, fn) {
436
443
  var _a;
@@ -553,10 +560,7 @@
553
560
  }
554
561
  function validateResult(result) {
555
562
  // if result is boolean, or if result.pass is boolean
556
- if (isBoolean(result) || (result && isBoolean(result.pass))) {
557
- return;
558
- }
559
- throwError('Incorrect return value for rule: ' + JSON.stringify(result));
563
+ invariant(isBoolean(result) || (result && isBoolean(result.pass)), 'Incorrect return value for rule: ' + JSON.stringify(result));
560
564
  }
561
565
 
562
566
  function enforceEager(value) {
@@ -585,15 +589,9 @@
585
589
  var transformedResult = transformResult.apply(void 0, __spreadArray([ctx.run({ value: value }, function () { return rule.apply(void 0, __spreadArray([value], args, false)); }),
586
590
  ruleName,
587
591
  value], args, false));
588
- if (!transformedResult.pass) {
589
- if (isEmpty(transformedResult.message)) {
590
- throwError("enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value)));
591
- }
592
- else {
593
- // Explicitly throw a string so that vest.test can pick it up as the validation error message
594
- throw transformedResult.message;
595
- }
596
- }
592
+ invariant(transformedResult.pass, isEmpty(transformedResult.message)
593
+ ? "enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value))
594
+ : new String(transformedResult.message));
597
595
  return target;
598
596
  };
599
597
  }
@@ -1 +1 @@
1
- "use strict";!function(n){"function"==typeof define&&define.amd?define(n):n()}((function(){function n(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function t(n){return"function"==typeof n}function r(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function e(n,t){var e;return null!==(e=r(n))&&void 0!==e?e:t}function u(n,t){return n={pass:n},t&&(n.message=t),n}function i(n,t){try{return n.run(t)}catch(n){return u(!1)}}function o(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function f(n){return null===n}function a(n){return void 0===n}function s(n){return null===n||a(n)}function c(n){return String(n)===n}function l(n,t){return c(n)&&c(t)&&n.endsWith(t)}function N(n,t){return n===t}function v(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function h(n,t){return v(n)&&v(t)&&Number(n)>Number(t)}function p(n,t){return v(n)&&v(t)&&Number(n)>=Number(t)}function g(n){return!!Array.isArray(n)}function m(n,t){return!!(g(t)||c(t)&&c(n))&&-1!==t.indexOf(n)}function y(n,t){return v(n)&&v(t)&&Number(n)<=Number(t)}function d(n,t,r){return p(n,t)&&y(n,r)}function b(n){return s(n)||c(n)&&!n.trim()}function O(n){return!!n===n}function E(n){return"number"==typeof n}function x(n,t){return n.length===Number(t)}function w(n){if(n){if(E(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return x(n,0);if("object"==typeof n)return x(Object.keys(n),0)}return!0}function q(n,t){return n in t}function T(n){return Number.isNaN(n)}function S(n){return!!v(n)&&0>Number(n)}function A(n){return!!n}function B(n,t){if(s(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function P(n,t){return v(n)&&v(t)&&Number(n)<Number(t)}function W(n,t){return n.length>Number(t)}function j(n,t){return t instanceof RegExp?t.test(n):!!c(t)&&new RegExp(t).test(n)}function k(n,t){return v(n)&&v(t)&&Number(n)===Number(t)}function F(n,t){return c(n)&&c(t)&&n.startsWith(t)}function I(n){for(var r in hn){var e=hn[r];t(e)&&n(r,e)}}function J(n,t){throw Error(e(t,n))}function K(){return null}function R(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||Array.prototype.slice.call(t))}function U(){try{return t(Proxy)}catch(n){return!1}}function V(n,t,e){for(var i=[],o=3;o<arguments.length;o++)i[o-3]=arguments[o];return O(n)||n&&O(n.pass)||J("Incorrect return value for rule: "+JSON.stringify(n)),O(n)?u(n):u(n.pass,r.apply(void 0,R([n.message,t,e],i,!1)))}function X(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=V.apply(void 0,R([pn.run({value:n},(function(){return r.apply(void 0,R([n],u,!1))})),e,n],u,!1))).pass){if(!w(i.message))throw i.message;J("enforce/".concat(e," failed with ").concat(JSON.stringify(n)))}return t}}var r={};if(!U())return I((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=hn[r])return t(e,n,r)}});return e}function z(t){var i,o=[];return function t(f){return function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];var c=hn[f];o.push((function(n){return V.apply(void 0,R([c.apply(void 0,R([n],a,!1)),f,n],a,!1))}));var l={run:function(t){return e(n(o,(function(n,e){var o,f=pn.run({value:t},(function(){return n(t)}));f.pass||e(u(!!f.pass,null!==(o=r(i,t,f.message))&&void 0!==o?o:f.message))})),u(!0))},test:function(n){return l.run(n).pass},message:function(n){return n&&(i=n),l}};return U()?l=new Proxy(l,{get:function(n,r){return hn[r]?t(r):n[r]}}):(I((function(n){l[n]=t(n)})),l)}}(t)}var C,M=Object.assign,D=o(f),G=o(a),H=o(s),L=o(l),Q=o(N),Y=o(v),Z=o(g),$=o(m),_=o(d),nn=o(b),tn=o(O),rn=o(E),en=o(x),un=o(w),on=o(q),fn=o(T),an=o(S),sn=o(c),cn=o(A),ln=o(B),Nn=o(j),vn=o(k),hn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:L,doesNotStartWith:o(F),endsWith:l,equals:N,greaterThan:h,greaterThanOrEquals:p,gt:h,gte:p,inside:m,isArray:g,isBetween:d,isBlank:b,isBoolean:O,isEmpty:w,isEven:function(n){return!!v(n)&&0==n%2},isFalsy:cn,isKeyOf:q,isNaN:T,isNegative:S,isNotArray:Z,isNotBetween:_,isNotBlank:nn,isNotBoolean:tn,isNotEmpty:un,isNotKeyOf:on,isNotNaN:fn,isNotNull:D,isNotNullish:H,isNotNumber:rn,isNotNumeric:Y,isNotString:sn,isNotUndefined:G,isNotValueOf:ln,isNull:f,isNullish:s,isNumber:E,isNumeric:v,isOdd:function(n){return!!v(n)&&0!=n%2},isPositive:an,isString:c,isTruthy:A,isUndefined:a,isValueOf:B,lengthEquals:x,lengthNotEquals:en,lessThan:P,lessThanOrEquals:y,longerThan:W,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:P,lte:y,matches:j,notEquals:Q,notInside:$,notMatches:Nn,numberEquals:k,numberNotEquals:vn,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:F},pn=function(n){function t(t,e){var o,f,a=u();return t=M({},a||{},null!==(o=r(n,t,a))&&void 0!==o?o:t),o=i.ctx=Object.freeze(t),i.ancestry.unshift(o),e=e(o),i.ancestry.shift(),i.ctx=null!==(f=i.ancestry[0])&&void 0!==f?f:null,e}function u(){return i.ctx}var i={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:u,useX:function(n){var t;return null!==(t=i.ctx)&&void 0!==t?t:J(e(n,"Context was used after it was closed"))}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?M(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:M(r,{parent:K})}));(C={context:function(){return pn.useX()},extend:function(n){M(hn,n)}},U()?new Proxy(M(X,C),{get:function(n,t){return t in n?n[t]:hn[t]?z(t):void 0}}):(I((function(n){C[n]=z(n)})),M(X,C))).extend({allOf:function(t){for(var r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];return e(n(r,(function(n,r){(n=i(n,t)).pass||r(n)})),u(!0))},anyOf:function(t){for(var r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];return e(n(r,(function(n,r){(n=i(n,t)).pass&&r(n)})),u(!1))},noneOf:function(t){for(var r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];return e(n(r,(function(n,r){i(n,t).pass&&r(u(!1))})),u(!0))},oneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(W(e,1))return!1;(t=i(t,n)).pass&&e.push(t)})),u(x(e,1))}})}));
1
+ "use strict";!function(n){"function"==typeof define&&define.amd?define(n):n()}((function(){function n(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function t(n){return"function"==typeof n}function r(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function e(n,t){var e;return null!==(e=r(n))&&void 0!==e?e:t}function u(n,t){return n={pass:n},t&&(n.message=t),n}function i(n,t){try{return n.run(t)}catch(n){return u(!1)}}function o(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function f(n){return null===n}function a(n){return void 0===n}function s(n){return null===n||a(n)}function c(n){return String(n)===n}function l(n,t){return c(n)&&c(t)&&n.endsWith(t)}function v(n,t){return n===t}function h(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function g(n,t){return h(n)&&h(t)&&Number(n)>Number(t)}function p(n,t){return h(n)&&h(t)&&Number(n)===Number(t)}function N(n,t){return p(n,t)||g(n,t)}function y(n){return!!Array.isArray(n)}function d(n,t){return!!(y(t)||c(t)&&c(n))&&-1!==t.indexOf(n)}function m(n,t){return h(n)&&h(t)&&Number(n)<Number(t)}function O(n,t){return p(n,t)||m(n,t)}function b(n,t,r){return N(n,t)&&O(n,r)}function x(n){return s(n)||c(n)&&!n.trim()}function E(n){return!!n===n}function w(n){return"number"==typeof n}function q(n,t){return p(n.length,t)}function S(n){if(n){if(w(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return q(n,0);if("object"==typeof n)return q(Object.keys(n),0)}return!0}function T(n,t){return n in t}function A(n){return Number.isNaN(n)}function B(n){return!!n}function P(n,t){if(s(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function W(n,t){return g(n.length,t)}function j(n,t){return t instanceof RegExp?t.test(n):!!c(t)&&new RegExp(t).test(n)}function k(n,t){return c(n)&&c(t)&&n.startsWith(t)}function F(n){for(var r in vn){var e=vn[r];t(e)&&n(r,e)}}function I(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?r(t):t)}function J(){return null}function K(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||Array.prototype.slice.call(t))}function R(){try{return t(Proxy)}catch(n){return!1}}function U(n,t,e){for(var i=[],o=3;o<arguments.length;o++)i[o-3]=arguments[o];return I(E(n)||n&&E(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),E(n)?u(n):u(n.pass,r.apply(void 0,K([n.message,t,e],i,!1)))}function V(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return I((i=U.apply(void 0,K([hn.run({value:n},(function(){return r.apply(void 0,K([n],u,!1))})),e,n],u,!1))).pass,S(i.message)?"enforce/".concat(e," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var r={};if(!R())return F((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 X(t){var i,o=[];return function t(f){return function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];var c=vn[f];o.push((function(n){return U.apply(void 0,K([c.apply(void 0,K([n],a,!1)),f,n],a,!1))}));var l={run:function(t){return e(n(o,(function(n,e){var o,f=hn.run({value:t},(function(){return n(t)}));f.pass||e(u(!!f.pass,null!==(o=r(i,t,f.message))&&void 0!==o?o:f.message))})),u(!0))},test:function(n){return l.run(n).pass},message:function(n){return n&&(i=n),l}};return R()?l=new Proxy(l,{get:function(n,r){return vn[r]?t(r):n[r]}}):(F((function(n){l[n]=t(n)})),l)}}(t)}var z,C=Object.assign,M=o(f),D=o(a),G=o(s),H=o(l),L=o(v),Q=o(h),Y=o(p),Z=o(y),$=o(d),_=o(b),nn=o(x),tn=o(E),rn=o(w),en=o(q),un=o(S),on=o(T),fn=o(A),an=o(c),sn=o(B),cn=o(P),ln=o(j),vn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:H,doesNotStartWith:o(k),endsWith:l,equals:v,greaterThan:g,greaterThanOrEquals:N,gt:g,gte:N,inside:d,isArray:y,isBetween:b,isBlank:x,isBoolean:E,isEmpty:S,isEven:function(n){return!!h(n)&&0==n%2},isFalsy:sn,isKeyOf:T,isNaN:A,isNegative:function(n){return m(n,0)},isNotArray:Z,isNotBetween:_,isNotBlank:nn,isNotBoolean:tn,isNotEmpty:un,isNotKeyOf:on,isNotNaN:fn,isNotNull:M,isNotNullish:G,isNotNumber:rn,isNotNumeric:Q,isNotString:an,isNotUndefined:D,isNotValueOf:cn,isNull:f,isNullish:s,isNumber:w,isNumeric:h,isOdd:function(n){return!!h(n)&&0!=n%2},isPositive:function(n){return g(n,0)},isString:c,isTruthy:B,isUndefined:a,isValueOf:P,lengthEquals:q,lengthNotEquals:en,lessThan:m,lessThanOrEquals:O,longerThan:W,longerThanOrEquals:function(n,t){return N(n.length,t)},lt:m,lte:O,matches:j,notEquals:L,notInside:$,notMatches:ln,numberEquals:p,numberNotEquals:Y,shorterThan:function(n,t){return m(n.length,t)},shorterThanOrEquals:function(n,t){return O(n.length,t)},startsWith:k},hn=function(n){function t(t,e){var o,f,a=u();return t=C({},a||{},null!==(o=r(n,t,a))&&void 0!==o?o:t),o=i.ctx=Object.freeze(t),i.ancestry.unshift(o),e=e(o),i.ancestry.shift(),i.ctx=null!==(f=i.ancestry[0])&&void 0!==f?f:null,e}function u(){return i.ctx}var i={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:u,useX:function(n){return I(i.ctx,e(n,"Context was used after it was closed")),i.ctx}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?C(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:C(r,{parent:J})}));(z={context:function(){return hn.useX()},extend:function(n){C(vn,n)}},R()?new Proxy(C(V,z),{get:function(n,t){return t in n?n[t]:vn[t]?X(t):void 0}}):(F((function(n){z[n]=X(n)})),C(V,z))).extend({allOf:function(t){for(var r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];return e(n(r,(function(n,r){(n=i(n,t)).pass||r(n)})),u(!0))},anyOf:function(t){for(var r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];return e(n(r,(function(n,r){(n=i(n,t)).pass&&r(n)})),u(!1))},noneOf:function(t){for(var r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];return e(n(r,(function(n,r){i(n,t).pass&&r(u(!1))})),u(!0))},oneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(W(e,1))return!1;(t=i(t,n)).pass&&e.push(t)})),u(q(e,1))}})}));
@@ -76,8 +76,13 @@
76
76
  return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
77
77
  }
78
78
 
79
+ function numberEquals(value, eq) {
80
+ return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
81
+ }
82
+ var numberNotEquals = bindNot(numberEquals);
83
+
79
84
  function greaterThanOrEquals(value, gte) {
80
- return isNumeric(value) && isNumeric(gte) && Number(value) >= Number(gte);
85
+ return numberEquals(value, gte) || greaterThan(value, gte);
81
86
  }
82
87
 
83
88
  // The module is named "isArrayValue" since it
@@ -100,8 +105,12 @@
100
105
  }
101
106
  var notInside = bindNot(inside);
102
107
 
108
+ function lessThan(value, lt) {
109
+ return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
110
+ }
111
+
103
112
  function lessThanOrEquals(value, lte) {
104
- return isNumeric(value) && isNumeric(lte) && Number(value) <= Number(lte);
113
+ return numberEquals(value, lte) || lessThan(value, lte);
105
114
  }
106
115
 
107
116
  function isBetween(value, min, max) {
@@ -133,7 +142,7 @@
133
142
  var isNotNumber = bindNot(isNumber);
134
143
 
135
144
  function lengthEquals(value, arg1) {
136
- return value.length === Number(arg1);
145
+ return numberEquals(value.length, arg1);
137
146
  }
138
147
  var lengthNotEquals = bindNot(lengthEquals);
139
148
 
@@ -175,12 +184,8 @@
175
184
  var isNotNaN = bindNot(isNaN$1);
176
185
 
177
186
  function isNegative(value) {
178
- if (isNumeric(value)) {
179
- return Number(value) < 0;
180
- }
181
- return false;
187
+ return lessThan(value, 0);
182
188
  }
183
- var isPositive = bindNot(isNegative);
184
189
 
185
190
  /**
186
191
  * Validates that a given value is an odd number
@@ -192,6 +197,10 @@
192
197
  return false;
193
198
  };
194
199
 
200
+ function isPositive(value) {
201
+ return greaterThan(value, 0);
202
+ }
203
+
195
204
  var isNotString = bindNot(isStringValue);
196
205
 
197
206
  function isTruthy(value) {
@@ -212,16 +221,12 @@
212
221
  }
213
222
  var isNotValueOf = bindNot(isValueOf);
214
223
 
215
- function lessThan(value, lt) {
216
- return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
217
- }
218
-
219
224
  function longerThan(value, arg1) {
220
- return value.length > Number(arg1);
225
+ return greaterThan(value.length, arg1);
221
226
  }
222
227
 
223
228
  function longerThanOrEquals(value, arg1) {
224
- return value.length >= Number(arg1);
229
+ return greaterThanOrEquals(value.length, arg1);
225
230
  }
226
231
 
227
232
  function matches(value, regex) {
@@ -237,11 +242,6 @@
237
242
  }
238
243
  var notMatches = bindNot(matches);
239
244
 
240
- function numberEquals(value, eq) {
241
- return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
242
- }
243
- var numberNotEquals = bindNot(numberEquals);
244
-
245
245
  function condition(value, callback) {
246
246
  try {
247
247
  return callback(value);
@@ -252,11 +252,11 @@
252
252
  }
253
253
 
254
254
  function shorterThan(value, arg1) {
255
- return value.length < Number(arg1);
255
+ return lessThan(value.length, arg1);
256
256
  }
257
257
 
258
258
  function shorterThanOrEquals(value, arg1) {
259
- return value.length <= Number(arg1);
259
+ return lessThanOrEquals(value.length, arg1);
260
260
  }
261
261
 
262
262
  function startsWith(value, arg1) {
@@ -358,11 +358,18 @@
358
358
  return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
359
359
  }
360
360
 
361
- /**
362
- * Throws a timed out error.
363
- */
364
- function throwError(devMessage, productionMessage) {
365
- throw new Error(devMessage );
361
+ function invariant(condition,
362
+ // eslint-disable-next-line @typescript-eslint/ban-types
363
+ message) {
364
+ if (condition) {
365
+ return;
366
+ }
367
+ // If message is a string object (rather than string literal)
368
+ // Throw the value directly as a string
369
+ // Alternatively, throw an error with the message
370
+ throw message instanceof String
371
+ ? message.valueOf()
372
+ : new Error(message ? optionalFunctionValue(message) : message);
366
373
  }
367
374
 
368
375
  // eslint-disable-next-line max-lines-per-function
@@ -375,8 +382,8 @@
375
382
  useX: useX
376
383
  };
377
384
  function useX(errorMessage) {
378
- var _a;
379
- return ((_a = storage.ctx) !== null && _a !== void 0 ? _a : throwError(defaultTo(errorMessage, 'Context was used after it was closed')));
385
+ invariant(storage.ctx, defaultTo(errorMessage, 'Context was used after it was closed'));
386
+ return storage.ctx;
380
387
  }
381
388
  function run(ctxRef, fn) {
382
389
  var _a;
@@ -516,10 +523,7 @@
516
523
  }
517
524
  function validateResult(result) {
518
525
  // if result is boolean, or if result.pass is boolean
519
- if (isBoolean(result) || (result && isBoolean(result.pass))) {
520
- return;
521
- }
522
- throwError('Incorrect return value for rule: ' + JSON.stringify(result));
526
+ invariant(isBoolean(result) || (result && isBoolean(result.pass)), 'Incorrect return value for rule: ' + JSON.stringify(result));
523
527
  }
524
528
 
525
529
  function enforceEager(value) {
@@ -548,15 +552,9 @@
548
552
  var transformedResult = transformResult.apply(void 0, __spreadArray([ctx.run({ value: value }, function () { return rule.apply(void 0, __spreadArray([value], args, false)); }),
549
553
  ruleName,
550
554
  value], args, false));
551
- if (!transformedResult.pass) {
552
- if (isEmpty(transformedResult.message)) {
553
- throwError("enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value)));
554
- }
555
- else {
556
- // Explicitly throw a string so that vest.test can pick it up as the validation error message
557
- throw transformedResult.message;
558
- }
559
- }
555
+ invariant(transformedResult.pass, isEmpty(transformedResult.message)
556
+ ? "enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value))
557
+ : new String(transformedResult.message));
560
558
  return target;
561
559
  };
562
560
  }
@@ -731,7 +729,7 @@
731
729
  }
732
730
 
733
731
  // Help needed improving the typings of this file.
734
- // Ideally, we'd be able to extend IShapeObject, but that's not possible.
732
+ // Ideally, we'd be able to extend ShapeObject, but that's not possible.
735
733
  function partial(shapeObject) {
736
734
  var output = {};
737
735
  for (var key in shapeObject) {
@@ -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){return!!Array.isArray(n)}function N(n,t){return!!(v(t)||a(t)&&a(n))&&-1!==t.indexOf(n)}function h(n,t){return c(n)&&c(t)&&Number(n)<=Number(t)}function y(n,t,r){return p(n,t)&&h(n,r)}function d(n){return o(n)||a(n)&&!n.trim()}function m(n){return!!n===n}function g(n){return"number"==typeof n}function b(n,t){return n.length===Number(t)}function O(n){if(n){if(g(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return b(n,0);if("object"==typeof n)return b(Object.keys(n),0)}return!0}function x(n,t){return n in t}function E(n){return Number.isNaN(n)}function w(n){return!!c(n)&&0>Number(n)}function T(n){return!!n}function q(n,t){if(o(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function j(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function P(n,t){return t instanceof RegExp?t.test(n):!!a(t)&&new RegExp(t).test(n)}function A(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function S(n,t){return a(n)&&a(t)&&n.startsWith(t)}function B(n){for(var t in hn){var e=hn[t];r(e)&&n(t,e)}}function W(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 k(n,t){var r;return null!==(r=W(n))&&void 0!==r?r:t}function F(n,t){throw Error(k(t,n))}function I(){return null}function J(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||Array.prototype.slice.call(t))}function K(){try{return r(Proxy)}catch(n){return!1}}function M(n,t){return n={pass:n},t&&(n.message=t),n}function R(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return m(n)||n&&m(n.pass)||F("Incorrect return value for rule: "+JSON.stringify(n)),m(n)?M(n):M(n.pass,W.apply(void 0,J([n.message,t,r],e,!1)))}function U(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=R.apply(void 0,J([yn.run({value:n},(function(){return r.apply(void 0,J([n],u,!1))})),e,n],u,!1))).pass){if(!O(i.message))throw i.message;F("enforce/".concat(e," failed with ").concat(JSON.stringify(n)))}return t}}var r={};if(!K())return B((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=hn[r])return t(e,n,r)}});return e}function V(n){var r,e=[];return function n(u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];var a=hn[u];e.push((function(n){return R.apply(void 0,J([a.apply(void 0,J([n],i,!1)),u,n],i,!1))}));var f={run:function(n){return k(t(e,(function(t,e){var u,i=yn.run({value:n},(function(){return t(n)}));i.pass||e(M(!!i.pass,null!==(u=W(r,n,i.message))&&void 0!==u?u:i.message))})),M(!0))},test:function(n){return f.run(n).pass},message:function(n){return n&&(r=n),f}};return K()?f=new Proxy(f,{get:function(t,r){return hn[r]?n(r):t[r]}}):(B((function(t){f[t]=n(t)})),f)}}(n)}function X(n,t){try{return n.run(t)}catch(n){return M(!1)}}function _(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=yn.run({value:e,set:!0,meta:{key:r}},(function(){return X(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return M(!0)}var z,C=Object.assign,D=e(u),G=e(i),H=e(o),L=e(f),Q=e(s),Y=e(c),Z=e(v),$=e(N),nn=e(y),tn=e(d),rn=e(m),en=e(g),un=e(b),on=e(O),an=e(x),fn=e(E),sn=e(w),cn=e(a),ln=e(T),pn=e(q),vn=e(P),Nn=e(A),hn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:L,doesNotStartWith:e(S),endsWith:f,equals:s,greaterThan:l,greaterThanOrEquals:p,gt:l,gte:p,inside:N,isArray:v,isBetween:y,isBlank:d,isBoolean:m,isEmpty:O,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:ln,isKeyOf:x,isNaN:E,isNegative:w,isNotArray:Z,isNotBetween:nn,isNotBlank:tn,isNotBoolean:rn,isNotEmpty:on,isNotKeyOf:an,isNotNaN:fn,isNotNull:D,isNotNullish:H,isNotNumber:en,isNotNumeric:Y,isNotString:cn,isNotUndefined:G,isNotValueOf:pn,isNull:u,isNullish:o,isNumber:g,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:sn,isString:a,isTruthy:T,isUndefined:i,isValueOf:q,lengthEquals:b,lengthNotEquals:un,lessThan:j,lessThanOrEquals:h,longerThan:function(n,t){return n.length>Number(t)},longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:j,lte:h,matches:P,notEquals:Q,notInside:$,notMatches:vn,numberEquals:A,numberNotEquals:Nn,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:S},yn=function(n){function t(t,u){var i,o,a=r();return t=C({},a||{},null!==(i=W(n,t,a))&&void 0!==i?i:t),i=e.ctx=Object.freeze(t),e.ancestry.unshift(i),u=u(i),e.ancestry.shift(),e.ctx=null!==(o=e.ancestry[0])&&void 0!==o?o:null,u}function r(){return e.ctx}var e={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:r,useX:function(n){var t;return null!==(t=e.ctx)&&void 0!==t?t:F(k(n,"Context was used after it was closed"))}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?C(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:C(r,{parent:I})})),dn=(z={context:function(){return yn.useX()},extend:function(n){C(hn,n)}},K()?new Proxy(C(U,z),{get:function(n,t){return t in n?n[t]:hn[t]?V(t):void 0}}):(B((function(n){z[n]=V(n)})),C(U,z)));dn.extend({isArrayOf:function(n,r){return k(t(n,(function(n,t,e){(e=yn.run({value:n,set:!0,meta:{index:e}},(function(){return X(r,n)}))).pass||t(e)})),M(!0))},loose:_,optional:function(n,t){return o(n)?M(!0):X(t,n)},shape:function(n,t){var r=_(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return M(!1);return M(!0)}}),n.partial=function(n){var t,r={};for(t in n)r[t]=dn.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})}));
@@ -4,6 +4,39 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.parser = {}));
5
5
  }(this, (function (exports) { 'use strict';
6
6
 
7
+ /**
8
+ * A safe hasOwnProperty access
9
+ */
10
+ function hasOwnProperty(obj, key) {
11
+ return Object.prototype.hasOwnProperty.call(obj, key);
12
+ }
13
+
14
+ function isFunction(value) {
15
+ return typeof value === 'function';
16
+ }
17
+
18
+ function optionalFunctionValue(value) {
19
+ var args = [];
20
+ for (var _i = 1; _i < arguments.length; _i++) {
21
+ args[_i - 1] = arguments[_i];
22
+ }
23
+ return isFunction(value) ? value.apply(void 0, args) : value;
24
+ }
25
+
26
+ function invariant(condition,
27
+ // eslint-disable-next-line @typescript-eslint/ban-types
28
+ message) {
29
+ if (condition) {
30
+ return;
31
+ }
32
+ // If message is a string object (rather than string literal)
33
+ // Throw the value directly as a string
34
+ // Alternatively, throw an error with the message
35
+ throw message instanceof String
36
+ ? message.valueOf()
37
+ : new Error(message ? optionalFunctionValue(message) : message);
38
+ }
39
+
7
40
  function isNumeric(value) {
8
41
  var str = String(value);
9
42
  var num = Number(value);
@@ -15,35 +48,64 @@
15
48
  return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
16
49
  }
17
50
 
18
- /**
19
- * A safe hasOwnProperty access
20
- */
21
- function hasOwnProperty(obj, key) {
22
- return Object.prototype.hasOwnProperty.call(obj, key);
51
+ function isPositive(value) {
52
+ return greaterThan(value, 0);
23
53
  }
24
54
 
55
+ var Severity;
56
+ (function (Severity) {
57
+ Severity["WARNINGS"] = "warnings";
58
+ Severity["ERRORS"] = "errors";
59
+ })(Severity || (Severity = {}));
60
+ var SeverityCount;
61
+ (function (SeverityCount) {
62
+ SeverityCount["ERROR_COUNT"] = "errorCount";
63
+ SeverityCount["WARN_COUNT"] = "warnCount";
64
+ })(SeverityCount || (SeverityCount = {}));
65
+
66
+ // eslint-disable-next-line max-lines-per-function
25
67
  function parse(res) {
68
+ invariant(res && hasOwnProperty(res, 'valid'), "Vest parser: expected argument at position 0 to be Vest's result object.");
26
69
  var testedStorage = {};
27
70
  var selectors = {
28
- invalid: res.hasErrors,
29
- tested: function (fieldName) {
30
- if (!fieldName) {
31
- return greaterThan(res.testCount, 0);
32
- }
33
- if (hasOwnProperty(testedStorage, fieldName))
34
- return testedStorage[fieldName];
35
- testedStorage[fieldName] =
36
- hasOwnProperty(res.tests, fieldName) &&
37
- greaterThan(res.tests[fieldName].testCount, 0);
38
- return selectors.tested(fieldName);
39
- },
40
- untested: function (fieldName) {
41
- return res.testCount === 0 || !selectors.tested(fieldName);
42
- },
43
- valid: res.isValid,
44
- warning: res.hasWarnings
71
+ invalid: hasErrors,
72
+ tested: isTested,
73
+ untested: isUntested,
74
+ valid: isValid,
75
+ warning: hasWarnings
45
76
  };
46
77
  return selectors;
78
+ function isTested(fieldName) {
79
+ if (!fieldName) {
80
+ return isPositive(res.testCount);
81
+ }
82
+ if (hasOwnProperty(testedStorage, fieldName))
83
+ return testedStorage[fieldName];
84
+ testedStorage[fieldName] =
85
+ hasOwnProperty(res.tests, fieldName) &&
86
+ isPositive(res.tests[fieldName].testCount);
87
+ return selectors.tested(fieldName);
88
+ }
89
+ function isUntested(fieldName) {
90
+ return res.testCount === 0 || !selectors.tested(fieldName);
91
+ }
92
+ function isValid(fieldName) {
93
+ var _a, _b;
94
+ return Boolean(fieldName ? (_b = (_a = res.tests) === null || _a === void 0 ? void 0 : _a[fieldName]) === null || _b === void 0 ? void 0 : _b.valid : res.valid);
95
+ }
96
+ function hasWarnings(fieldName) {
97
+ return hasFailures(res, SeverityCount.WARN_COUNT, fieldName);
98
+ }
99
+ function hasErrors(fieldName) {
100
+ return hasFailures(res, SeverityCount.ERROR_COUNT, fieldName);
101
+ }
102
+ }
103
+ function hasFailures(res, countKey, fieldName) {
104
+ var _a, _b, _c;
105
+ var failureCount = fieldName
106
+ ? (_b = (_a = res.tests) === null || _a === void 0 ? void 0 : _a[fieldName]) === null || _b === void 0 ? void 0 : _b[countKey]
107
+ : (_c = res[countKey]) !== null && _c !== void 0 ? _c : 0;
108
+ return isPositive(failureCount);
47
109
  }
48
110
 
49
111
  exports.parse = parse;
@@ -1 +1 @@
1
- "use strict";!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).parser={})}(this,(function(e){function t(e){var t=Number(e);return!(isNaN(parseFloat(String(e)))||isNaN(Number(e))||!isFinite(t))}function n(e,n){return t(e)&&t(n)&&Number(e)>Number(n)}e.parse=function(e){var t={},r={invalid:e.hasErrors,tested:function(s){return s?Object.prototype.hasOwnProperty.call(t,s)?t[s]:(t[s]=Object.prototype.hasOwnProperty.call(e.tests,s)&&n(e.tests[s].testCount,0),r.tested(s)):n(e.testCount,0)},untested:function(t){return 0===e.testCount||!r.tested(t)},valid:e.isValid,warning:e.hasWarnings};return r},Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ "use strict";!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).parser={})}(this,(function(t){function e(t){var e=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(e))}function n(t,n){return e(t)&&e(n)&&Number(t)>Number(n)}function r(t,e,r){var o,i,u;return n(t=r?null===(i=null===(o=t.tests)||void 0===o?void 0:o[r])||void 0===i?void 0:i[e]:null!==(u=t[e])&&void 0!==u?u:0,0)}var o,i,u;(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(u||(u={})),t.parse=function(t){!function(t,e){if(!t)throw e instanceof String?e.valueOf():Error(e?function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return"function"==typeof t?t.apply(void 0,e):t}(e):e)}(t&&Object.prototype.hasOwnProperty.call(t,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var e={},o={invalid:function(e){return r(t,u.ERROR_COUNT,e)},tested:function(r){return r?Object.prototype.hasOwnProperty.call(e,r)?e[r]:(e[r]=Object.prototype.hasOwnProperty.call(t.tests,r)&&n(t.tests[r].testCount,0),o.tested(r)):n(t.testCount,0)},untested:function(e){return 0===t.testCount||!o.tested(e)},valid:function(e){var n,r;return!!(e?null!==(r=null===(n=t.tests)||void 0===n?void 0:n[e])&&void 0!==r&&r.valid:t.valid)},warning:function(e){return r(t,u.WARN_COUNT,e)}};return o},Object.defineProperty(t,"__esModule",{value:!0})}));
@@ -8,11 +8,26 @@
8
8
  return typeof value === 'function';
9
9
  }
10
10
 
11
- /**
12
- * Throws a timed out error.
13
- */
14
- function throwError(devMessage, productionMessage) {
15
- throw new Error(devMessage );
11
+ function optionalFunctionValue(value) {
12
+ var args = [];
13
+ for (var _i = 1; _i < arguments.length; _i++) {
14
+ args[_i - 1] = arguments[_i];
15
+ }
16
+ return isFunction(value) ? value.apply(void 0, args) : value;
17
+ }
18
+
19
+ function invariant(condition,
20
+ // eslint-disable-next-line @typescript-eslint/ban-types
21
+ message) {
22
+ if (condition) {
23
+ return;
24
+ }
25
+ // If message is a string object (rather than string literal)
26
+ // Throw the value directly as a string
27
+ // Alternatively, throw an error with the message
28
+ throw message instanceof String
29
+ ? message.valueOf()
30
+ : new Error(message ? optionalFunctionValue(message) : message);
16
31
  }
17
32
 
18
33
  var promisify = function (validatorFn) {
@@ -21,9 +36,7 @@
21
36
  for (var _i = 0; _i < arguments.length; _i++) {
22
37
  args[_i] = arguments[_i];
23
38
  }
24
- if (!isFunction(validatorFn)) {
25
- throwError('promisify: Expected validatorFn to be a function.');
26
- }
39
+ invariant(isFunction(validatorFn), 'promisify: Expected validatorFn to be a function.');
27
40
  return new Promise(function (resolve) { return validatorFn.apply(void 0, args).done(resolve); });
28
41
  };
29
42
  };
@@ -1 +1 @@
1
- "use strict";!function(n,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(n="undefined"!=typeof globalThis?globalThis:n||self).promisify=o()}(this,(function(){function n(n,o){var e;return null!==(e=function(n){for(var o=[],e=1;e<arguments.length;e++)o[e-1]=arguments[e];return"function"==typeof n?n.apply(void 0,o):n}(n))&&void 0!==e?e:o}return function(o){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if("function"!=typeof o)throw Error(n(void 0,"promisify: Expected validatorFn to be a function."));return new Promise((function(n){return o.apply(void 0,e).done(n)}))}}}));
1
+ "use strict";!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(n="undefined"!=typeof globalThis?globalThis:n||self).promisify=e()}(this,(function(){function n(n,e){if(!n)throw e instanceof String?e.valueOf():Error(e?function(n){for(var e=[],o=1;o<arguments.length;o++)e[o-1]=arguments[o];return"function"==typeof n?n.apply(void 0,e):n}(e):e)}return function(e){return function(){for(var o=[],t=0;t<arguments.length;t++)o[t]=arguments[t];return n("function"==typeof e,"promisify: Expected validatorFn to be a function."),new Promise((function(n){return e.apply(void 0,o).done(n)}))}}}));