vest 4.4.0-dev-08ec91 → 4.4.2

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 (43) hide show
  1. package/dist/cjs/classnames.development.js +2 -2
  2. package/dist/cjs/classnames.production.js +1 -1
  3. package/dist/cjs/enforce/compose.development.js +16 -10
  4. package/dist/cjs/enforce/compose.production.js +1 -1
  5. package/dist/cjs/enforce/compounds.development.js +18 -30
  6. package/dist/cjs/enforce/compounds.production.js +1 -1
  7. package/dist/cjs/enforce/schema.development.js +8 -8
  8. package/dist/cjs/enforce/schema.production.js +1 -1
  9. package/dist/cjs/parser.development.js +2 -2
  10. package/dist/cjs/parser.production.js +1 -1
  11. package/dist/cjs/vest.development.js +88 -112
  12. package/dist/cjs/vest.production.js +1 -1
  13. package/dist/es/classnames.development.js +2 -2
  14. package/dist/es/classnames.production.js +1 -1
  15. package/dist/es/enforce/compose.development.js +16 -10
  16. package/dist/es/enforce/compose.production.js +1 -1
  17. package/dist/es/enforce/compounds.development.js +18 -30
  18. package/dist/es/enforce/compounds.production.js +1 -1
  19. package/dist/es/enforce/schema.development.js +8 -8
  20. package/dist/es/enforce/schema.production.js +1 -1
  21. package/dist/es/parser.development.js +2 -2
  22. package/dist/es/parser.production.js +1 -1
  23. package/dist/es/vest.development.js +88 -112
  24. package/dist/es/vest.production.js +1 -1
  25. package/dist/umd/classnames.development.js +2 -2
  26. package/dist/umd/classnames.production.js +1 -1
  27. package/dist/umd/enforce/compose.development.js +31 -31
  28. package/dist/umd/enforce/compose.production.js +1 -1
  29. package/dist/umd/enforce/compounds.development.js +106 -110
  30. package/dist/umd/enforce/compounds.production.js +1 -1
  31. package/dist/umd/enforce/schema.development.js +39 -39
  32. package/dist/umd/enforce/schema.production.js +1 -1
  33. package/dist/umd/parser.development.js +2 -2
  34. package/dist/umd/parser.production.js +1 -1
  35. package/dist/umd/vest.development.js +111 -126
  36. package/dist/umd/vest.production.js +1 -1
  37. package/package.json +3 -3
  38. package/testUtils/testObjects.ts +2 -17
  39. package/types/enforce/compose.d.ts +1 -1
  40. package/types/enforce/compounds.d.ts +1 -1
  41. package/types/enforce/schema.d.ts +1 -1
  42. package/types/vest.d.ts +14 -15
  43. package/testUtils/itWithContext.ts +0 -23
@@ -12,9 +12,9 @@ function optionalFunctionValue(value) {
12
12
  return isFunction(value) ? value.apply(void 0, args) : value;
13
13
  }
14
14
 
15
- function defaultTo(callback, defaultValue) {
15
+ function defaultTo(value, defaultValue) {
16
16
  var _a;
17
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
17
+ return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
18
18
  }
19
19
 
20
20
  /**
@@ -1 +1 @@
1
- "use strict";function t(t){return"function"==typeof t}function n(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 r(t,n){return Object.prototype.hasOwnProperty.call(t,n)}function e(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function u(t){return function(t,n){return e(t)&&e(n)&&Number(t)>Number(n)}(t,0)}var o,i,s;function a(t){function e(r,e){var o;return u(r=function(t,r){var e;return null!==(e=n(t))&&void 0!==e?e:r}(e?null===(o=t.tests[e])||void 0===o?void 0:o[r]:t[r],0))}!function(t,r){if(!t)throw r instanceof String?r.valueOf():Error(r?n(r):r)}(t&&r(t,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var o={},i={invalid:function(t){return e(s.ERROR_COUNT,t)},tested:function(n){return n?r(o,n)?o[n]:(o[n]=r(t.tests,n)&&u(t.tests[n].testCount),i.tested(n)):u(t.testCount)},untested:function(n){return 0===t.testCount||!i.tested(n)},valid:function(n){var r;return n?!(null===(r=t.tests[n])||void 0===r||!r.valid):t.valid},warning:function(t){return e(s.WARN_COUNT,t)}};return i}(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(s||(s={})),module.exports=function(n,r){void 0===r&&(r={});var e=a(n);return function(n){var u,o=[];for(u in r){var i=u;t(e[i])&&e[i](n)&&o.push(r[i])}return o.join(" ")}};
1
+ "use strict";function t(t){return"function"==typeof t}function n(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 r(t,n){return Object.prototype.hasOwnProperty.call(t,n)}function e(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function u(t){return function(t,n){return e(t)&&e(n)&&Number(t)>Number(n)}(t,0)}var o,i,s;function a(t){function e(r,e){var o;return u(r=function(t,r){var e;return null!==(e=n(t))&&void 0!==e?e:n(r)}(e?null===(o=t.tests[e])||void 0===o?void 0:o[r]:t[r],0))}!function(t,r){if(!t)throw r instanceof String?r.valueOf():Error(r?n(r):r)}(t&&r(t,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var o={},i={invalid:function(t){return e(s.ERROR_COUNT,t)},tested:function(n){return n?r(o,n)?o[n]:(o[n]=r(t.tests,n)&&u(t.tests[n].testCount),i.tested(n)):u(t.testCount)},untested:function(n){return 0===t.testCount||!i.tested(n)},valid:function(n){var r;return n?!(null===(r=t.tests[n])||void 0===r||!r.valid):t.valid},warning:function(t){return e(s.WARN_COUNT,t)}};return i}(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(s||(s={})),module.exports=function(n,r){void 0===r&&(r={});var e=a(n);return function(n){var u,o=[];for(u in r){var i=u;t(e[i])&&e[i](n)&&o.push(r[i])}return o.join(" ")}};
@@ -2,6 +2,8 @@
2
2
 
3
3
  var n4s = require('n4s');
4
4
 
5
+ var assign = Object.assign;
6
+
5
7
  function isFunction(value) {
6
8
  return typeof value === 'function';
7
9
  }
@@ -27,6 +29,10 @@ message) {
27
29
  ? message.valueOf()
28
30
  : new Error(message ? optionalFunctionValue(message) : message);
29
31
  }
32
+ // eslint-disable-next-line @typescript-eslint/ban-types
33
+ function StringObject(value) {
34
+ return new String(optionalFunctionValue(value));
35
+ }
30
36
 
31
37
  function mapFirst(array, callback) {
32
38
  var broke = false;
@@ -37,15 +43,17 @@ function mapFirst(array, callback) {
37
43
  return breakoutValue;
38
44
  }
39
45
  }
40
- function breakout(value) {
41
- broke = true;
42
- breakoutValue = value;
46
+ function breakout(conditional, value) {
47
+ if (conditional) {
48
+ broke = true;
49
+ breakoutValue = value;
50
+ }
43
51
  }
44
52
  }
45
53
 
46
- function defaultTo(callback, defaultValue) {
54
+ function defaultTo(value, defaultValue) {
47
55
  var _a;
48
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
56
+ return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
49
57
  }
50
58
 
51
59
  function ruleReturn(pass, message) {
@@ -80,9 +88,9 @@ function compose() {
80
88
  for (var _i = 0; _i < arguments.length; _i++) {
81
89
  composites[_i] = arguments[_i];
82
90
  }
83
- return Object.assign(function (value) {
91
+ return assign(function (value) {
84
92
  var res = run(value);
85
- invariant(res.pass, new String(res.message));
93
+ invariant(res.pass, StringObject(res.message));
86
94
  }, {
87
95
  run: run,
88
96
  test: function (value) { return run(value).pass; }
@@ -96,9 +104,7 @@ function compose() {
96
104
  so we're limiting it to a small set of functions.
97
105
  */
98
106
  var res = runLazyRule(composite, value);
99
- if (!res.pass) {
100
- breakout(res);
101
- }
107
+ breakout(!res.pass, res);
102
108
  }));
103
109
  });
104
110
  }
@@ -1 +1 @@
1
- "use strict";var n=require("n4s");function r(n){return"function"==typeof n}function t(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return r(n)?n.apply(void 0,t):n}function u(n,r){if(!n)throw r instanceof String?r.valueOf():Error(r?t(r):r)}function e(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,o=0;o<n.length;o++)if(r(n[o],t,o),u)return e}function o(n,r){return n={pass:n},r&&(n.message=r),n}function i(n){return function(n,r){var u;return null!==(u=t(n))&&void 0!==u?u:r}(n,o(!0))}function f(n,r){try{return n.run(r)}catch(n){return o(!1)}}module.exports=function(){function r(r){return n.ctx.run({value:r},(function(){return i(e(t,(function(n,t){(n=f(n,r)).pass||t(n)})))}))}for(var t=[],o=0;o<arguments.length;o++)t[o]=arguments[o];return Object.assign((function(n){u((n=r(n)).pass,new String(n.message))}),{run:r,test:function(n){return r(n).pass}})};
1
+ "use strict";var n=require("n4s"),r=Object.assign;function t(n){return"function"==typeof n}function u(n){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];return t(n)?n.apply(void 0,r):n}function e(n,r){if(!n)throw r instanceof String?r.valueOf():Error(r?u(r):r)}function o(n){return new String(u(n))}function i(n,r){function t(n,r){n&&(u=!0,e=r)}for(var u=!1,e=null,o=0;o<n.length;o++)if(r(n[o],t,o),u)return e}function f(n,r){return n={pass:n},r&&(n.message=r),n}function c(n){return function(n,r){var t;return null!==(t=u(n))&&void 0!==t?t:u(r)}(n,f(!0))}function s(n,r){try{return n.run(r)}catch(n){return f(!1)}}module.exports=function(){function t(r){return n.ctx.run({value:r},(function(){return c(i(u,(function(n,t){t(!(n=s(n,r)).pass,n)})))}))}for(var u=[],f=0;f<arguments.length;f++)u[f]=arguments[f];return r((function(n){e((n=t(n)).pass,o(n.message))}),{run:t,test:function(n){return t(n).pass}})};
@@ -11,9 +11,11 @@ function mapFirst(array, callback) {
11
11
  return breakoutValue;
12
12
  }
13
13
  }
14
- function breakout(value) {
15
- broke = true;
16
- breakoutValue = value;
14
+ function breakout(conditional, value) {
15
+ if (conditional) {
16
+ broke = true;
17
+ breakoutValue = value;
18
+ }
17
19
  }
18
20
  }
19
21
 
@@ -29,9 +31,9 @@ function optionalFunctionValue(value) {
29
31
  return isFunction(value) ? value.apply(void 0, args) : value;
30
32
  }
31
33
 
32
- function defaultTo(callback, defaultValue) {
34
+ function defaultTo(value, defaultValue) {
33
35
  var _a;
34
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
36
+ return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
35
37
  }
36
38
 
37
39
  function ruleReturn(pass, message) {
@@ -70,9 +72,7 @@ function allOf(value) {
70
72
  }
71
73
  return defaultToPassing(mapFirst(rules, function (rule, breakout) {
72
74
  var res = runLazyRule(rule, value);
73
- if (!res.pass) {
74
- breakout(res);
75
- }
75
+ breakout(!res.pass, res);
76
76
  }));
77
77
  }
78
78
 
@@ -83,9 +83,7 @@ function anyOf(value) {
83
83
  }
84
84
  return defaultToFailing(mapFirst(rules, function (rule, breakout) {
85
85
  var res = runLazyRule(rule, value);
86
- if (res.pass) {
87
- breakout(res);
88
- }
86
+ breakout(res.pass, res);
89
87
  }));
90
88
  }
91
89
 
@@ -96,12 +94,14 @@ function noneOf(value) {
96
94
  }
97
95
  return defaultToPassing(mapFirst(rules, function (rule, breakout) {
98
96
  var res = runLazyRule(rule, value);
99
- if (res.pass) {
100
- breakout(failing());
101
- }
97
+ breakout(res.pass, failing());
102
98
  }));
103
99
  }
104
100
 
101
+ function equals(value, arg1) {
102
+ return value === arg1;
103
+ }
104
+
105
105
  function isNumeric(value) {
106
106
  var str = String(value);
107
107
  var num = Number(value);
@@ -109,39 +109,27 @@ function isNumeric(value) {
109
109
  return Boolean(result);
110
110
  }
111
111
 
112
- function numberEquals(value, eq) {
113
- return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
114
- }
115
-
116
- function lengthEquals(value, arg1) {
117
- return numberEquals(value.length, arg1);
118
- }
119
-
120
112
  function greaterThan(value, gt) {
121
113
  return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
122
114
  }
123
115
 
124
- function longerThan(value, arg1) {
125
- return greaterThan(value.length, arg1);
126
- }
127
-
128
116
  var REQUIRED_COUNT = 1;
129
117
  function oneOf(value) {
130
118
  var rules = [];
131
119
  for (var _i = 1; _i < arguments.length; _i++) {
132
120
  rules[_i - 1] = arguments[_i];
133
121
  }
134
- var passing = [];
122
+ var passingCount = 0;
135
123
  rules.some(function (rule) {
136
124
  var res = runLazyRule(rule, value);
137
125
  if (res.pass) {
138
- passing.push(res);
126
+ passingCount++;
139
127
  }
140
- if (longerThan(passing, REQUIRED_COUNT)) {
128
+ if (greaterThan(passingCount, REQUIRED_COUNT)) {
141
129
  return false;
142
130
  }
143
131
  });
144
- return ruleReturn(lengthEquals(passing, REQUIRED_COUNT));
132
+ return ruleReturn(equals(passingCount, REQUIRED_COUNT));
145
133
  }
146
134
 
147
135
  n4s.enforce.extend({ allOf: allOf, anyOf: anyOf, noneOf: noneOf, oneOf: oneOf });
@@ -1 +1 @@
1
- "use strict";var n=require("n4s");function r(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,f=0;f<n.length;f++)if(r(n[f],t,f),u)return e}function t(n){return"function"==typeof n}function u(n,r){var u;return null!==(u=function(n){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];return t(n)?n.apply(void 0,r):n}(n))&&void 0!==u?u:r}function e(n,r){return n={pass:n},r&&(n.message=r),n}function f(){return e(!1)}function o(n){return u(n,f())}function i(n){return u(n,e(!0))}function c(n,r){try{return n.run(r)}catch(n){return f()}}function a(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}function s(n,r){return function(n,r){return a(n)&&a(r)&&Number(n)===Number(r)}(n.length,r)}function l(n,r){return function(n,r){return a(n)&&a(r)&&Number(n)>Number(r)}(n.length,r)}n.enforce.extend({allOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return i(r(t,(function(r,t){(r=c(r,n)).pass||t(r)})))},anyOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return o(r(t,(function(r,t){(r=c(r,n)).pass&&t(r)})))},noneOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return i(r(t,(function(r,t){c(r,n).pass&&t(f())})))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var u=[];return r.some((function(r){if((r=c(r,n)).pass&&u.push(r),l(u,1))return!1})),e(s(u,1))}});
1
+ "use strict";var n=require("n4s");function r(n,r){function t(n,r){n&&(u=!0,e=r)}for(var u=!1,e=null,f=0;f<n.length;f++)if(r(n[f],t,f),u)return e}function t(n){return"function"==typeof n}function u(n){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];return t(n)?n.apply(void 0,r):n}function e(n,r){var t;return null!==(t=u(n))&&void 0!==t?t:u(r)}function f(n,r){return n={pass:n},r&&(n.message=r),n}function o(){return f(!1)}function i(n){return e(n,o())}function c(n){return e(n,f(!0))}function a(n,r){try{return n.run(r)}catch(n){return o()}}function s(n,r){return n===r}function l(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}function v(n,r){return l(n)&&l(r)&&Number(n)>Number(r)}n.enforce.extend({allOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return c(r(t,(function(r,t){t(!(r=a(r,n)).pass,r)})))},anyOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return i(r(t,(function(r,t){t((r=a(r,n)).pass,r)})))},noneOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return c(r(t,(function(r,t){t((r=a(r,n)).pass,o())})))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var u=0;return r.some((function(r){if(a(r,n).pass&&u++,v(u,1))return!1})),f(s(u,1))}});
@@ -13,9 +13,11 @@ function mapFirst(array, callback) {
13
13
  return breakoutValue;
14
14
  }
15
15
  }
16
- function breakout(value) {
17
- broke = true;
18
- breakoutValue = value;
16
+ function breakout(conditional, value) {
17
+ if (conditional) {
18
+ broke = true;
19
+ breakoutValue = value;
20
+ }
19
21
  }
20
22
  }
21
23
 
@@ -31,9 +33,9 @@ function optionalFunctionValue(value) {
31
33
  return isFunction(value) ? value.apply(void 0, args) : value;
32
34
  }
33
35
 
34
- function defaultTo(callback, defaultValue) {
36
+ function defaultTo(value, defaultValue) {
35
37
  var _a;
36
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
38
+ return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
37
39
  }
38
40
 
39
41
  function ruleReturn(pass, message) {
@@ -65,9 +67,7 @@ function runLazyRule(lazyRule, currentValue) {
65
67
  function isArrayOf(inputArray, currentRule) {
66
68
  return defaultToPassing(mapFirst(inputArray, function (currentValue, breakout, index) {
67
69
  var res = n4s.ctx.run({ value: currentValue, set: true, meta: { index: index } }, function () { return runLazyRule(currentRule, currentValue); });
68
- if (!res.pass) {
69
- breakout(res);
70
- }
70
+ breakout(!res.pass, res);
71
71
  }));
72
72
  }
73
73
 
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("n4s");function r(n){return"function"==typeof n}function t(n,t){var e;return null!==(e=function(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return r(n)?n.apply(void 0,t):n}(n))&&void 0!==e?e:t}function e(n,r){return n={pass:n},r&&(n.message=r),n}function u(){return e(!1)}function o(){return e(!0)}function i(n,r){try{return n.run(r)}catch(n){return u()}}function f(r,t){var e,u=function(e){var u=r[e],o=t[e];if(!(e=n.ctx.run({value:u,set:!0,meta:{key:e}},(function(){return i(o,u)}))).pass)return{value:e}};for(e in t){var f=u(e);if("object"==typeof f)return f.value}return o()}function c(n,r){return Object.prototype.hasOwnProperty.call(n,r)}n.enforce.extend({isArrayOf:function(r,e){return function(n){return t(n,o())}(function(n,r){function t(n){e=!0,u=n}for(var e=!1,u=null,o=0;o<n.length;o++)if(r(n[o],t,o),e)return u}(r,(function(r,t,u){(u=n.ctx.run({value:r,set:!0,meta:{index:u}},(function(){return i(e,r)}))).pass||t(u)})))},loose:f,optional:function(n,r){return function(n){return function(n){return null===n}(n)||function(n){return void 0===n}(n)}(n)?o():i(r,n)},shape:function(n,r){var t=f(n,r);if(!t.pass)return t;for(var e in n)if(!c(r,e))return u();return o()}}),exports.partial=function(r){var t,e={};for(t in r)e[t]=n.enforce.optional(r[t]);return e};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("n4s");function r(n){return"function"==typeof n}function t(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 e(n,r){return n={pass:n},r&&(n.message=r),n}function u(){return e(!1)}function o(){return e(!0)}function i(n){return function(n,r){var e;return null!==(e=t(n))&&void 0!==e?e:t(r)}(n,o())}function f(n,r){try{return n.run(r)}catch(n){return u()}}function c(r,t){var e,u=function(e){var u=r[e],o=t[e];if(!(e=n.ctx.run({value:u,set:!0,meta:{key:e}},(function(){return f(o,u)}))).pass)return{value:e}};for(e in t){var i=u(e);if("object"==typeof i)return i.value}return o()}function a(n,r){return Object.prototype.hasOwnProperty.call(n,r)}n.enforce.extend({isArrayOf:function(r,t){return i(function(n,r){function t(n,r){n&&(e=!0,u=r)}for(var e=!1,u=null,o=0;o<n.length;o++)if(r(n[o],t,o),e)return u}(r,(function(r,e,u){e(!(u=n.ctx.run({value:r,set:!0,meta:{index:u}},(function(){return f(t,r)}))).pass,u)})))},loose:c,optional:function(n,r){return function(n){return function(n){return null===n}(n)||function(n){return void 0===n}(n)}(n)?o():f(r,n)},shape:function(n,r){var t=c(n,r);if(!t.pass)return t;for(var e in n)if(!a(r,e))return u();return o()}}),exports.partial=function(r){var t,e={};for(t in r)e[t]=n.enforce.optional(r[t]);return e};
@@ -14,9 +14,9 @@ function optionalFunctionValue(value) {
14
14
  return isFunction(value) ? value.apply(void 0, args) : value;
15
15
  }
16
16
 
17
- function defaultTo(callback, defaultValue) {
17
+ function defaultTo(value, defaultValue) {
18
18
  var _a;
19
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
19
+ return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
20
20
  }
21
21
 
22
22
  /**
@@ -1 +1 @@
1
- "use strict";function t(t){return"function"==typeof t}function n(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 r(t,n){return Object.prototype.hasOwnProperty.call(t,n)}function e(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function u(t){return function(t,n){return e(t)&&e(n)&&Number(t)>Number(n)}(t,0)}var o,i,s;Object.defineProperty(exports,"__esModule",{value:!0}),(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(s||(s={})),exports.parse=function(t){function e(r,e){var o;return u(r=function(t,r){var e;return null!==(e=n(t))&&void 0!==e?e:r}(e?null===(o=t.tests[e])||void 0===o?void 0:o[r]:t[r],0))}!function(t,r){if(!t)throw r instanceof String?r.valueOf():Error(r?n(r):r)}(t&&r(t,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var o={},i={invalid:function(t){return e(s.ERROR_COUNT,t)},tested:function(n){return n?r(o,n)?o[n]:(o[n]=r(t.tests,n)&&u(t.tests[n].testCount),i.tested(n)):u(t.testCount)},untested:function(n){return 0===t.testCount||!i.tested(n)},valid:function(n){var r;return n?!(null===(r=t.tests[n])||void 0===r||!r.valid):t.valid},warning:function(t){return e(s.WARN_COUNT,t)}};return i};
1
+ "use strict";function t(t){return"function"==typeof t}function n(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 r(t,n){return Object.prototype.hasOwnProperty.call(t,n)}function e(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function u(t){return function(t,n){return e(t)&&e(n)&&Number(t)>Number(n)}(t,0)}var o,i,s;Object.defineProperty(exports,"__esModule",{value:!0}),(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(s||(s={})),exports.parse=function(t){function e(r,e){var o;return u(r=function(t,r){var e;return null!==(e=n(t))&&void 0!==e?e:n(r)}(e?null===(o=t.tests[e])||void 0===o?void 0:o[r]:t[r],0))}!function(t,r){if(!t)throw r instanceof String?r.valueOf():Error(r?n(r):r)}(t&&r(t,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var o={},i={invalid:function(t){return e(s.ERROR_COUNT,t)},tested:function(n){return n?r(o,n)?o[n]:(o[n]=r(t.tests,n)&&u(t.tests[n].testCount),i.tested(n)):u(t.testCount)},untested:function(n){return 0===t.testCount||!i.tested(n)},valid:function(n){var r;return n?!(null===(r=t.tests[n])||void 0===r||!r.valid):t.valid},warning:function(t){return e(s.WARN_COUNT,t)}};return i};
@@ -125,9 +125,9 @@ function optionalFunctionValue(value) {
125
125
  return isFunction(value) ? value.apply(void 0, args) : value;
126
126
  }
127
127
 
128
- function defaultTo(callback, defaultValue) {
128
+ function defaultTo(value, defaultValue) {
129
129
  var _a;
130
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
130
+ return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
131
131
  }
132
132
 
133
133
  function last(values) {
@@ -180,40 +180,6 @@ function getCurrent(array, path) {
180
180
  return current;
181
181
  }
182
182
 
183
- function createCursor() {
184
- var storage = {
185
- cursor: []
186
- };
187
- function addLevel() {
188
- storage.cursor.push(0);
189
- }
190
- function removeLevel() {
191
- storage.cursor.pop();
192
- }
193
- function cursorAt() {
194
- return last(storage.cursor);
195
- }
196
- function getCursor() {
197
- return asArray(storage.cursor);
198
- }
199
- function next() {
200
- storage.cursor[storage.cursor.length - 1]++;
201
- return last(storage.cursor);
202
- }
203
- function reset() {
204
- storage.cursor = [0];
205
- }
206
- reset();
207
- return {
208
- addLevel: addLevel,
209
- cursorAt: cursorAt,
210
- getCursor: getCursor,
211
- next: next,
212
- removeLevel: removeLevel,
213
- reset: reset
214
- };
215
- }
216
-
217
183
  var IsolateTypes;
218
184
  (function (IsolateTypes) {
219
185
  IsolateTypes[IsolateTypes["DEFAULT"] = 0] = "DEFAULT";
@@ -230,6 +196,41 @@ var Modes;
230
196
  Modes[Modes["EAGER"] = 1] = "EAGER";
231
197
  })(Modes || (Modes = {}));
232
198
 
199
+ function createIsolateCursor() {
200
+ var cursor = {
201
+ value: 0
202
+ };
203
+ return {
204
+ current: current,
205
+ next: next
206
+ };
207
+ /**
208
+ * @returns {number} The current value of the cursor
209
+ */
210
+ function current() {
211
+ return cursor.value;
212
+ }
213
+ /**
214
+ * Moves the isolate cursor forward by 1
215
+ */
216
+ function next() {
217
+ cursor.value++;
218
+ }
219
+ }
220
+
221
+ function generateIsolate(type, path) {
222
+ if (path === void 0) { path = []; }
223
+ return {
224
+ cursor: createIsolateCursor(),
225
+ keys: {
226
+ current: {},
227
+ prev: {}
228
+ },
229
+ path: path,
230
+ type: type
231
+ };
232
+ }
233
+
233
234
  var context = context$1.createContext(function (ctxRef, parentContext) {
234
235
  return parentContext
235
236
  ? null
@@ -239,15 +240,8 @@ var context = context$1.createContext(function (ctxRef, parentContext) {
239
240
  groups: {}
240
241
  },
241
242
  inclusion: {},
242
- isolate: {
243
- type: IsolateTypes.DEFAULT,
244
- keys: {
245
- current: {},
246
- prev: {}
247
- }
248
- },
249
- mode: [Modes.ALL],
250
- testCursor: createCursor()
243
+ isolate: generateIsolate(IsolateTypes.DEFAULT),
244
+ mode: [Modes.ALL]
251
245
  }, ctxRef);
252
246
  });
253
247
 
@@ -573,30 +567,9 @@ function deferThrow(message) {
573
567
  }, 0);
574
568
  }
575
569
 
576
- function usePath() {
577
- var context$1 = context.useX();
578
- return context$1.testCursor.getCursor();
579
- }
580
- function useCursorAt() {
581
- var context$1 = context.useX();
582
- return context$1.testCursor.cursorAt();
583
- }
584
- function moveForward() {
585
- var context$1 = context.useX();
586
- return context$1.testCursor.next();
587
- }
588
- function addLevel() {
589
- var context$1 = context.useX();
590
- context$1.testCursor.addLevel();
591
- }
592
- function removeLevel() {
593
- var context$1 = context.useX();
594
- context$1.testCursor.removeLevel();
595
- }
596
-
597
570
  function usePrevKeys() {
598
571
  var prev = useTestObjects()[0].prev;
599
- return asArray(getCurrent(prev, usePath())).reduce(function (prevKeys, testObject) {
572
+ return asArray(getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
600
573
  if (!(testObject instanceof VestTest)) {
601
574
  return prevKeys;
602
575
  }
@@ -608,12 +581,11 @@ function usePrevKeys() {
608
581
  }, {});
609
582
  }
610
583
  function usePrevTestByKey(key) {
611
- var prev = context.useX().isolate.keys.prev;
584
+ var prev = useIsolate().keys.prev;
612
585
  return prev[key];
613
586
  }
614
587
  function useRetainTestKey(key, testObject) {
615
- var context$1 = context.useX();
616
- var current = context$1.isolate.keys.current;
588
+ var current = useIsolate().keys.current;
617
589
  if (isNullish(current[key])) {
618
590
  current[key] = testObject;
619
591
  }
@@ -625,23 +597,42 @@ function useRetainTestKey(key, testObject) {
625
597
  function isolate(_a, callback) {
626
598
  var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
627
599
  invariant(isFunction(callback));
628
- var keys = {
629
- current: {},
630
- prev: {}
631
- };
632
- var path = usePath();
633
- return context.run({ isolate: { type: type, keys: keys } }, function () {
634
- addLevel();
635
- keys.prev = usePrevKeys();
636
- useSetTests(function (tests) { return setValueAtPath(tests, path, []); });
600
+ // Generate a new Isolate layer, with its own cursor
601
+ var isolate = generateIsolate(type, useCurrentPath());
602
+ var output = context.run({ isolate: isolate }, function () {
603
+ isolate.keys.prev = usePrevKeys();
604
+ useSetTests(function (tests) { return setValueAtPath(tests, isolate.path, []); });
637
605
  var res = callback();
638
- removeLevel();
639
- moveForward();
640
606
  return res;
641
607
  });
608
+ // Move the parent cursor forward once we're done
609
+ useCursor().next();
610
+ return output;
611
+ }
612
+ /**
613
+ * @returns {Isolate} The current isolate layer
614
+ */
615
+ function useIsolate() {
616
+ return context.useX().isolate;
642
617
  }
618
+ /**
619
+ * @returns {boolean} Whether or not the current isolate allows tests to be reordered
620
+ */
643
621
  function shouldAllowReorder() {
644
- return context.useX().isolate.type === IsolateTypes.EACH;
622
+ return useIsolate().type === IsolateTypes.EACH;
623
+ }
624
+ /**
625
+ * @returns {number[]} The current cursor path of the isolate tree
626
+ */
627
+ function useCurrentPath() {
628
+ var isolate = useIsolate();
629
+ return isolate.path.concat(isolate.cursor.current());
630
+ }
631
+ /**
632
+ * @returns {IsolateCursor} The cursor object for the current isolate
633
+ */
634
+ function useCursor() {
635
+ return useIsolate().cursor;
645
636
  }
646
637
 
647
638
  var Severity;
@@ -667,17 +658,10 @@ function hasOwnProperty(obj, key) {
667
658
  return Object.prototype.hasOwnProperty.call(obj, key);
668
659
  }
669
660
 
670
- function isNumber(value) {
671
- return Boolean(typeof value === 'number');
672
- }
673
-
674
661
  function isEmpty(value) {
675
662
  if (!value) {
676
663
  return true;
677
664
  }
678
- else if (isNumber(value)) {
679
- return value === 0;
680
- }
681
665
  else if (hasOwnProperty(value, 'length')) {
682
666
  return lengthEquals(value, 0);
683
667
  }
@@ -1597,9 +1581,7 @@ function eager() {
1597
1581
  setMode(Modes.EAGER);
1598
1582
  }
1599
1583
  function shouldSkipBasedOnMode(testObject) {
1600
- if (isEager() && hasErrorsByTestObjects(testObject.fieldName))
1601
- return true;
1602
- return false;
1584
+ return isEager() && hasErrorsByTestObjects(testObject.fieldName);
1603
1585
  }
1604
1586
  function isEager() {
1605
1587
  return isMode(Modes.EAGER);
@@ -1663,7 +1645,7 @@ function optional(optionals) {
1663
1645
  }
1664
1646
  }
1665
1647
 
1666
- /*! *****************************************************************************
1648
+ /******************************************************************************
1667
1649
  Copyright (c) Microsoft Corporation.
1668
1650
 
1669
1651
  Permission to use, copy, modify, and/or distribute this software for any
@@ -1806,30 +1788,23 @@ function useTestAtCursor(newTestObject) {
1806
1788
  return nextTest;
1807
1789
  }
1808
1790
  function removeAllNextTestsInIsolate() {
1809
- var _a = useTestObjects(), testObjects = _a[0], setTestObjects = _a[1];
1810
- var prevTests = testObjects.prev;
1811
- var current = getCurrent(prevTests, usePath());
1812
- var cursorAt = useCursorAt();
1813
- current.splice(cursorAt);
1791
+ var cursorAt = useCursor().current();
1814
1792
  // We actually don't mind mutating the state directly (as can be seen above). There is no harm in it
1815
1793
  // since we're only touching the "prev" state. The reason we still use the setter function is
1816
1794
  // to prevent future headaches if we ever do need to rely on prev-state immutability.
1817
- setTestObjects(function (_a) {
1818
- var current = _a.current;
1819
- return ({
1820
- prev: prevTests,
1821
- current: current
1822
- });
1795
+ useSetTests(function (current) {
1796
+ current.splice(cursorAt);
1797
+ return current;
1823
1798
  });
1824
1799
  }
1825
1800
  function useSetTestAtCursor(testObject) {
1826
- var cursorPath = usePath();
1801
+ var cursorPath = useCurrentPath();
1827
1802
  useSetTests(function (tests) {
1828
1803
  return setValueAtPath(tests, cursorPath, testObject);
1829
1804
  });
1830
1805
  }
1831
1806
  function useGetTestAtCursor(tests) {
1832
- var cursorPath = usePath();
1807
+ var cursorPath = useCurrentPath();
1833
1808
  return valueAtPath(tests, cursorPath);
1834
1809
  }
1835
1810
  function testReorderDetected(prevTest, newTest) {
@@ -1853,16 +1828,17 @@ function handleKeyTest(key, newTestObject) {
1853
1828
 
1854
1829
  // eslint-disable-next-line max-statements
1855
1830
  function registerPrevRunTest(testObject) {
1831
+ var cursor = useCursor();
1856
1832
  if (shouldSkipBasedOnMode(testObject)) {
1857
1833
  testObject.skip();
1858
1834
  useTestAtCursor(testObject);
1859
- moveForward();
1835
+ cursor.next();
1860
1836
  return testObject;
1861
1837
  }
1862
1838
  var prevRunTest = useTestAtCursor(testObject);
1863
1839
  if (isOmitted()) {
1864
1840
  prevRunTest.omit();
1865
- moveForward();
1841
+ cursor.next();
1866
1842
  return prevRunTest;
1867
1843
  }
1868
1844
  if (isExcluded(testObject)) {
@@ -1871,13 +1847,13 @@ function registerPrevRunTest(testObject) {
1871
1847
  // This mostly means that we're probably giving
1872
1848
  // up on this async test intentionally.
1873
1849
  prevRunTest.skip(isExcludedIndividually());
1874
- moveForward();
1850
+ cursor.next();
1875
1851
  return prevRunTest;
1876
1852
  }
1877
1853
  cancelOverriddenPendingTest(prevRunTest, testObject);
1878
1854
  useSetTestAtCursor(testObject);
1879
- moveForward();
1880
1855
  registerTestObjectByTier(testObject);
1856
+ cursor.next();
1881
1857
  return testObject;
1882
1858
  }
1883
1859
  function registerTestObjectByTier(testObject) {
@@ -1900,7 +1876,7 @@ function bindTestMemo(test) {
1900
1876
  for (var _i = 1; _i < arguments.length; _i++) {
1901
1877
  args[_i - 1] = arguments[_i];
1902
1878
  }
1903
- var cursorAt = useCursorAt();
1879
+ var cursorAt = useCursor().current();
1904
1880
  var _a = args.reverse(), deps = _a[0], testFn = _a[1], msg = _a[2];
1905
1881
  // Implicit dependency for more specificity
1906
1882
  var dependencies = [useSuiteId(), fieldName, cursorAt].concat(deps);
@@ -1962,7 +1938,7 @@ function warn() {
1962
1938
  ctx.currentTest.warn();
1963
1939
  }
1964
1940
 
1965
- var VERSION = "4.4.0-dev-08ec91";
1941
+ var VERSION = "4.4.2";
1966
1942
 
1967
1943
  Object.defineProperty(exports, 'enforce', {
1968
1944
  enumerable: true,