vest 4.0.0-dev-7acb76 → 4.0.0-dev-31f012

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 (42) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/dist/cjs/classnames.development.js +3 -3
  3. package/dist/cjs/classnames.production.js +1 -1
  4. package/dist/cjs/promisify.development.js +1 -1
  5. package/dist/cjs/promisify.production.js +1 -1
  6. package/dist/cjs/vest.development.js +95 -66
  7. package/dist/cjs/vest.production.js +1 -1
  8. package/dist/es/classnames.development.js +3 -3
  9. package/dist/es/classnames.production.js +1 -1
  10. package/dist/es/promisify.development.js +1 -1
  11. package/dist/es/promisify.production.js +1 -1
  12. package/dist/es/vest.development.js +95 -66
  13. package/dist/es/vest.production.js +1 -1
  14. package/dist/umd/classnames.development.js +3 -3
  15. package/dist/umd/classnames.production.js +1 -1
  16. package/dist/umd/promisify.development.js +1 -1
  17. package/dist/umd/promisify.production.js +1 -1
  18. package/dist/umd/vest.development.js +95 -66
  19. package/dist/umd/vest.production.js +1 -1
  20. package/package.json +1 -1
  21. package/types/classnames.d.ts +2 -2
  22. package/types/vest.d.ts +9 -2
  23. package/docs/.nojekyll +0 -0
  24. package/docs/README.md +0 -113
  25. package/docs/_assets/favicon.ico +0 -0
  26. package/docs/_assets/vest-logo.png +0 -0
  27. package/docs/_sidebar.md +0 -14
  28. package/docs/cross_field_validations.md +0 -33
  29. package/docs/enforce.md +0 -11
  30. package/docs/exclusion.md +0 -129
  31. package/docs/getting_started.md +0 -72
  32. package/docs/group.md +0 -142
  33. package/docs/index.html +0 -41
  34. package/docs/migration.md +0 -202
  35. package/docs/n4s/rules.md +0 -1282
  36. package/docs/node.md +0 -36
  37. package/docs/optional.md +0 -103
  38. package/docs/result.md +0 -249
  39. package/docs/state.md +0 -102
  40. package/docs/test.md +0 -172
  41. package/docs/utilities.md +0 -109
  42. package/docs/warn.md +0 -82
package/CHANGELOG.md CHANGED
@@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## 4.0.0 - 2021-10-25
7
+ ## 4.0.0 - 2021-10-31
8
8
  ### Changed or removed
9
9
  - f5ba507 major(context): used named export in context (ealush)
10
10
  - eaed68f breaking(vest, enforce): prepare next major (ealush)
@@ -19,6 +19,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
19
19
  - 990c68f feat(n4s): context propagation within enforce (undefined)
20
20
 
21
21
  ### Fixed and improved
22
+ - 31f0123 patch(vest): move creation functions to event bus (ealush)
23
+ - d23641c patch: Some cleanups (ealush)
22
24
  - 7acb76f fix(vest): prevent pending tests from being marked as skipped (ealush)
23
25
  - 8851ff5 patch(vest): Add isolate module for containing re-orders (ealush)
24
26
  - 0593c0f patch(vest): refresh tests after cancel (ealush)
@@ -56,10 +56,10 @@ function parse(res) {
56
56
  /**
57
57
  * Creates a function that returns class names that match the validation result
58
58
  */
59
- function classNames(res, classes) {
59
+ function classnames(res, classes) {
60
60
  if (classes === void 0) { classes = {}; }
61
61
  if (!res || !isFunction(res.hasErrors)) {
62
- throwError("[vest/classNames]: Expected first argument to be Vest's result object.");
62
+ throwError("classnames: Expected first argument to be Vest's result object.");
63
63
  }
64
64
  var selectors = parse(res);
65
65
  return function (key) {
@@ -74,4 +74,4 @@ function classNames(res, classes) {
74
74
  };
75
75
  }
76
76
 
77
- module.exports = classNames;
77
+ module.exports = classnames;
@@ -1 +1 @@
1
- "use strict";function t(t){return"function"==typeof t}function r(r,n){var e;return null!==(e=function(r){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return t(r)?r.apply(void 0,n):r}(r))&&void 0!==e?e:n}function n(t){var r=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(r))}function e(t,r){return n(t)&&n(r)&&Number(t)>Number(r)}function u(t,r){return Object.prototype.hasOwnProperty.call(t,r)}module.exports=function(n,o){void 0===o&&(o={}),n&&t(n.hasErrors)||function(t,n){throw Error(r(n,t))}("[vest/classNames]: Expected first argument to be Vest's result object.");var s=function(t){var r={},n={invalid:t.hasErrors,tested:function(o){return o?u(r,o)?r[o]:(r[o]=u(t.tests,o)&&e(t.tests[o].testCount,0),n.tested(o)):e(t.testCount,0)},untested:function(r){return 0===t.testCount||!n.tested(r)},valid:t.isValid,warning:t.hasWarnings};return n}(n);return function(r){var n,e=[];for(n in o){var u=n;t(s[u])&&s[u](r)&&e.push(o[u])}return e.join(" ")}};
1
+ "use strict";function t(t){return"function"==typeof t}function r(r,n){var e;return null!==(e=function(r){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return t(r)?r.apply(void 0,n):r}(r))&&void 0!==e?e:n}function n(t){var r=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(r))}function e(t,r){return n(t)&&n(r)&&Number(t)>Number(r)}function u(t,r){return Object.prototype.hasOwnProperty.call(t,r)}module.exports=function(n,o){void 0===o&&(o={}),n&&t(n.hasErrors)||function(t,n){throw Error(r(n,t))}("classnames: Expected first argument to be Vest's result object.");var s=function(t){var r={},n={invalid:t.hasErrors,tested:function(o){return o?u(r,o)?r[o]:(r[o]=u(t.tests,o)&&e(t.tests[o].testCount,0),n.tested(o)):e(t.testCount,0)},untested:function(r){return 0===t.testCount||!n.tested(r)},valid:t.isValid,warning:t.hasWarnings};return n}(n);return function(r){var n,e=[];for(n in o){var u=n;t(s[u])&&s[u](r)&&e.push(o[u])}return e.join(" ")}};
@@ -18,7 +18,7 @@ var promisify = function (validatorFn) {
18
18
  args[_i] = arguments[_i];
19
19
  }
20
20
  if (!isFunction(validatorFn)) {
21
- throwError('[vest/promisify]: Expected validatorFn to be a function.');
21
+ throwError('promisify: Expected validatorFn to be a function.');
22
22
  }
23
23
  return new Promise(function (resolve) { return validatorFn.apply(void 0, args).done(resolve); });
24
24
  };
@@ -1 +1 @@
1
- "use strict";function n(n){return"function"==typeof n}function r(r,t){var o;return null!==(o=function(r){for(var t=[],o=1;o<arguments.length;o++)t[o-1]=arguments[o];return n(r)?r.apply(void 0,t):r}(r))&&void 0!==o?o:t}function t(n,t){throw Error(r(t,n))}module.exports=function(r){return function(){for(var o=[],e=0;e<arguments.length;e++)o[e]=arguments[e];return n(r)||t("[vest/promisify]: Expected validatorFn to be a function."),new Promise((function(n){return r.apply(void 0,o).done(n)}))}};
1
+ "use strict";function n(n){return"function"==typeof n}function r(r,t){var o;return null!==(o=function(r){for(var t=[],o=1;o<arguments.length;o++)t[o-1]=arguments[o];return n(r)?r.apply(void 0,t):r}(r))&&void 0!==o?o:t}function t(n,t){throw Error(r(t,n))}module.exports=function(r){return function(){for(var o=[],e=0;e<arguments.length;e++)o[e]=arguments[e];return n(r)||t("promisify: Expected validatorFn to be a function."),new Promise((function(n){return r.apply(void 0,o).done(n)}))}};
@@ -600,7 +600,7 @@ function eachEnforceRule(action) {
600
600
 
601
601
  function isProxySupported() {
602
602
  try {
603
- return typeof Proxy === 'function';
603
+ return isFunction(Proxy);
604
604
  }
605
605
  catch (_a) {
606
606
  return false;
@@ -1143,35 +1143,6 @@ function matchingFieldName(testObject, fieldName) {
1143
1143
  return !!(fieldName && testObject.fieldName === fieldName);
1144
1144
  }
1145
1145
 
1146
- function omitOptionalTests() {
1147
- var optionalFields = useOptionalFields()[0];
1148
- if (isEmpty(optionalFields)) {
1149
- return;
1150
- }
1151
- var shouldOmit = {};
1152
- useSetTests(function (tests) {
1153
- return transform(tests, function (testObject) {
1154
- var fieldName = testObject.fieldName;
1155
- if (shouldOmit.hasOwnProperty(fieldName)) {
1156
- omit(testObject);
1157
- }
1158
- else {
1159
- var optionalConfig = optionalFields[fieldName];
1160
- if (isFunction(optionalConfig)) {
1161
- shouldOmit[fieldName] = optionalConfig();
1162
- omit(testObject);
1163
- }
1164
- }
1165
- return testObject;
1166
- });
1167
- });
1168
- function omit(testObject) {
1169
- if (shouldOmit[testObject.fieldName]) {
1170
- testObject.omit();
1171
- }
1172
- }
1173
- }
1174
-
1175
1146
  /**
1176
1147
  * Checks if a given field, or the suite as a whole still have remaining tests.
1177
1148
  */
@@ -1522,15 +1493,6 @@ function deferDoneCallback(doneCallback, fieldName) {
1522
1493
  });
1523
1494
  }
1524
1495
 
1525
- /**
1526
- * Removes test object from suite state
1527
- */
1528
- function removeTestFromState (testObject) {
1529
- useSetTests(function (tests) {
1530
- return transform(tests, function (test) { return (testObject !== test ? test : null); });
1531
- });
1532
- }
1533
-
1534
1496
  function createBus() {
1535
1497
  var listeners = {};
1536
1498
  return {
@@ -1556,6 +1518,44 @@ function createBus() {
1556
1518
  };
1557
1519
  }
1558
1520
 
1521
+ function omitOptionalTests() {
1522
+ var optionalFields = useOptionalFields()[0];
1523
+ if (isEmpty(optionalFields)) {
1524
+ return;
1525
+ }
1526
+ var shouldOmit = {};
1527
+ useSetTests(function (tests) {
1528
+ return transform(tests, function (testObject) {
1529
+ var fieldName = testObject.fieldName;
1530
+ if (shouldOmit.hasOwnProperty(fieldName)) {
1531
+ omit(testObject);
1532
+ }
1533
+ else {
1534
+ var optionalConfig = optionalFields[fieldName];
1535
+ if (isFunction(optionalConfig)) {
1536
+ shouldOmit[fieldName] = optionalConfig();
1537
+ omit(testObject);
1538
+ }
1539
+ }
1540
+ return testObject;
1541
+ });
1542
+ });
1543
+ function omit(testObject) {
1544
+ if (shouldOmit[testObject.fieldName]) {
1545
+ testObject.omit();
1546
+ }
1547
+ }
1548
+ }
1549
+
1550
+ /**
1551
+ * Removes test object from suite state
1552
+ */
1553
+ function removeTestFromState (testObject) {
1554
+ useSetTests(function (tests) {
1555
+ return transform(tests, function (test) { return (testObject !== test ? test : null); });
1556
+ });
1557
+ }
1558
+
1559
1559
  function callEach(arr) {
1560
1560
  return arr.forEach(function (fn) { return fn(); });
1561
1561
  }
@@ -1583,6 +1583,8 @@ function runDoneCallbacks() {
1583
1583
 
1584
1584
  function initBus() {
1585
1585
  var bus = createBus();
1586
+ // Report a the completion of a test. There may be other tests with the same
1587
+ // name that are still running, or not yet started.
1586
1588
  bus.on(Events.TEST_COMPLETED, function (testObject) {
1587
1589
  if (testObject.isCanceled()) {
1588
1590
  return;
@@ -1591,6 +1593,22 @@ function initBus() {
1591
1593
  runFieldCallbacks(testObject.fieldName);
1592
1594
  runDoneCallbacks();
1593
1595
  });
1596
+ // Report that the suite completed its synchronous test run.
1597
+ // Async operations may still be running.
1598
+ bus.on(Events.SUITE_COMPLETED, function () {
1599
+ // Remove tests that are optional and need to be omitted
1600
+ omitOptionalTests();
1601
+ });
1602
+ // Removes a certain field from the state.
1603
+ bus.on(Events.REMOVE_FIELD, function (fieldName) {
1604
+ var testObjects = useTestsFlat();
1605
+ testObjects.forEach(function (testObject) {
1606
+ if (matchingFieldName(testObject, fieldName)) {
1607
+ testObject.cancel();
1608
+ removeTestFromState(testObject);
1609
+ }
1610
+ });
1611
+ });
1594
1612
  return bus;
1595
1613
  }
1596
1614
  function useBus() {
@@ -1603,42 +1621,48 @@ function useBus() {
1603
1621
  var Events;
1604
1622
  (function (Events) {
1605
1623
  Events["TEST_COMPLETED"] = "test_completed";
1624
+ Events["REMOVE_FIELD"] = "remove_field";
1625
+ Events["SUITE_COMPLETED"] = "suite_completed";
1606
1626
  })(Events || (Events = {}));
1607
1627
 
1608
1628
  // eslint-disable-next-line max-lines-per-function
1609
1629
  function create(suiteCallback) {
1610
1630
  if (!isFunction(suiteCallback)) {
1611
- throwError('Suite initialization error. Expected `tests` to be a function.');
1631
+ throwError('vest.create: Expected callback to be a function.');
1612
1632
  }
1633
+ // Event bus initialization
1613
1634
  var bus = initBus();
1635
+ // State initialization
1614
1636
  var state = createState();
1637
+ // State reference - this holds the actual state values
1615
1638
  var stateRef = createStateRef(state, { suiteId: genId() });
1616
- var suite = assign(ctx.bind({ stateRef: stateRef, bus: bus }, function () {
1639
+ // Create base context reference. All hooks will derive their data from this
1640
+ var ctxRef = { stateRef: stateRef, bus: bus };
1641
+ var suite = assign(
1642
+ // Bind the suite body to the context
1643
+ ctx.bind(ctxRef, function () {
1617
1644
  var args = [];
1618
1645
  for (var _i = 0; _i < arguments.length; _i++) {
1619
1646
  args[_i] = arguments[_i];
1620
1647
  }
1648
+ // Reset the state. Migrates current test objects to `prev` array.
1621
1649
  state.reset();
1622
- // Run the consumer's callback
1650
+ // Create a top level isolate
1623
1651
  isolate({ type: IsolateTypes.SUITE }, function () {
1652
+ // Run the consumer's callback
1624
1653
  suiteCallback.apply(void 0, args);
1625
1654
  });
1626
- omitOptionalTests();
1627
- var res = produceFullResult();
1628
- return res;
1655
+ // Report the suite is done registering tests
1656
+ // Async tests may still be running
1657
+ bus.emit(Events.SUITE_COMPLETED);
1658
+ // Return the result
1659
+ return produceFullResult();
1629
1660
  }), {
1630
- get: ctx.bind({ stateRef: stateRef }, produceDraft),
1631
- remove: ctx.bind({ stateRef: stateRef }, function (name) {
1632
- var testObjects = useTestsFlat();
1633
- // We're mutating the array in `cancel`, so we have to first copy it.
1634
- testObjects.forEach(function (testObject) {
1635
- if (matchingFieldName(testObject, name)) {
1636
- testObject.cancel();
1637
- removeTestFromState(testObject);
1638
- }
1639
- });
1640
- }),
1641
- reset: state.reset
1661
+ get: ctx.bind(ctxRef, produceDraft),
1662
+ reset: state.reset,
1663
+ remove: ctx.bind(ctxRef, function (fieldName) {
1664
+ bus.emit(Events.REMOVE_FIELD, fieldName);
1665
+ })
1642
1666
  });
1643
1667
  return suite;
1644
1668
  }
@@ -1652,16 +1676,20 @@ var ERROR_HOOK_CALLED_OUTSIDE = 'hook called outside of a running suite.';
1652
1676
  * Adds a field or multiple fields to inclusion group.
1653
1677
  */
1654
1678
  function only(item) {
1655
- return addTo('only', 'tests', item);
1679
+ return addTo(0 /* ONLY */, 'tests', item);
1656
1680
  }
1657
- only.group = function (item) { return addTo('only', 'groups', item); };
1681
+ only.group = function (item) {
1682
+ return addTo(0 /* ONLY */, 'groups', item);
1683
+ };
1658
1684
  /**
1659
1685
  * Adds a field or multiple fields to exclusion group.
1660
1686
  */
1661
1687
  function skip(item) {
1662
- return addTo('skip', 'tests', item);
1688
+ return addTo(1 /* SKIP */, 'tests', item);
1663
1689
  }
1664
- skip.group = function (item) { return addTo('skip', 'groups', item); };
1690
+ skip.group = function (item) {
1691
+ return addTo(1 /* SKIP */, 'groups', item);
1692
+ };
1665
1693
  //Checks whether a certain test profile excluded by any of the exclusion groups.
1666
1694
  // eslint-disable-next-line complexity, max-statements
1667
1695
  function isExcluded(testObject) {
@@ -1733,7 +1761,8 @@ function addTo(exclusionGroup, itemType, item) {
1733
1761
  if (!isStringValue(itemName)) {
1734
1762
  return;
1735
1763
  }
1736
- context.exclusion[itemType][itemName] = exclusionGroup === 'only';
1764
+ context.exclusion[itemType][itemName] =
1765
+ exclusionGroup === 0 /* ONLY */;
1737
1766
  });
1738
1767
  }
1739
1768
  /**
@@ -2000,7 +2029,7 @@ function runSyncTest(testObject) {
2000
2029
  * Registers test, if async - adds to pending array
2001
2030
  */
2002
2031
  function registerTest(testObject) {
2003
- var emit = useBus().emit;
2032
+ var bus = useBus();
2004
2033
  // Run test callback.
2005
2034
  // If a promise is returned, set as async and
2006
2035
  // Move to pending list.
@@ -2014,11 +2043,11 @@ function registerTest(testObject) {
2014
2043
  runAsyncTest(testObject);
2015
2044
  }
2016
2045
  else {
2017
- emit(Events.TEST_COMPLETED, testObject);
2046
+ bus.emit(Events.TEST_COMPLETED, testObject);
2018
2047
  }
2019
2048
  }
2020
2049
  catch (e) {
2021
- throwError("Your test function " + testObject.fieldName + " returned " + JSON.stringify(result) + ". Only \"false\" or a Promise are supported. Return values may cause unexpected behavior.");
2050
+ throwError("Your test function " + testObject.fieldName + " returned a value. Only \"false\" or Promise returns are supported.");
2022
2051
  }
2023
2052
  }
2024
2053
 
@@ -2184,7 +2213,7 @@ var test = assign(testBase, {
2184
2213
  memo: bindTestMemo(testBase)
2185
2214
  });
2186
2215
 
2187
- var VERSION = "4.0.0-dev-7acb76";
2216
+ var VERSION = "4.0.0-dev-31f012";
2188
2217
 
2189
2218
  exports.VERSION = VERSION;
2190
2219
  exports.create = create;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=function(){return(n=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};function t(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||t)}var r=Object.assign;function e(n){return"function"==typeof n}function u(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 i(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return e(n)?n.apply(void 0,t):n}function o(n,t){var r;return null!==(r=i(n))&&void 0!==r?r:t}function s(n,t){return n={pass:n},t&&(n.message=t),n}function a(){return s(!1)}function f(){return s(!0)}function c(n){return o(n,a())}function l(n){return o(n,f())}function p(n,t){try{return n.run(t)}catch(n){return a()}}function v(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return l(u(t,(function(t,r){(t=p(t,n)).pass||r(t)})))}function d(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return c(u(t,(function(t,r){(t=p(t,n)).pass&&r(t)})))}function g(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return l(u(t,(function(t,r){p(t,n).pass&&r(a())})))}function h(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function m(n,t){return n.length===Number(t)}var y=h(m);function N(n,t){return n.length>Number(t)}function b(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(N(e,1))return!1;(t=p(t,n)).pass&&e.push(t)})),s(m(e,1))}function E(n){return null===n}var C=h(E);function T(n){return void 0===n}var S=h(T);function O(n,t){return T(n)||E(n)?f():p(t,n)}function x(n){return String(n)===n}function w(n,t){return x(n)&&x(t)&&n.endsWith(t)}var P=h(w);function k(n,t){return n===t}var F=h(k);function I(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}var A=h(I);function W(n,t){return I(n)&&I(t)&&Number(n)>Number(t)}function R(n,t){return I(n)&&I(t)&&Number(n)>=Number(t)}function U(n){return!!Array.isArray(n)}var X=h(U);function D(n,t){return!!(U(t)||x(t)&&x(n))&&-1!==t.indexOf(n)}var L=h(D);function G(n,t){return I(n)&&I(t)&&Number(n)<=Number(t)}function j(n,t,r){return R(n,t)&&G(n,r)}var q=h(j);function B(n){return x(n)&&!n.trim()}var _=h(B);function K(n){return!!n===n}var H=h(K);function M(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function J(n){return"number"==typeof n}var V=h(J);function z(n){if(n){if(J(n))return 0===n;if(M(n,"length"))return m(n,0);if("object"==typeof n)return m(Object.keys(n),0)}return!0}var Y=h(z),Q=function(n){return!!I(n)&&0==n%2};function Z(n){return Number.isNaN(n)}var $=h(Z);function nn(n){return!!I(n)&&0>Number(n)}var tn=h(nn),rn=function(n){return!!I(n)&&0!=n%2},en=h(x);function un(n){return!!n}var on=h(un);function sn(n,t){return I(n)&&I(t)&&Number(n)<Number(t)}function an(n,t){return n.length>=Number(t)}function fn(n,t){return t instanceof RegExp?t.test(n):!!x(t)&&new RegExp(t).test(n)}var cn=h(fn);function ln(n,t){return I(n)&&I(t)&&Number(n)===Number(t)}var pn=h(ln);function vn(n,t){try{return t(n)}catch(n){return!1}}function dn(n,t){return n.length<Number(t)}function gn(n,t){return n.length<=Number(t)}function hn(n,t){return x(n)&&x(t)&&n.startsWith(t)}var mn=h(hn);function yn(n,t){throw Error(o(t,n))}function Nn(n){function t(t,i){var o,s,a=e();return t=r({},a||{},null!==(o=null==n?void 0:n(t,a))&&void 0!==o?o:t),o=u.ctx=Object.freeze(t),u.ancestry.unshift(o),i=i(o),u.ancestry.shift(),u.ctx=null!==(s=u.ancestry[0])&&void 0!==s?s:null,i}function e(){return u.ctx}var u={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:e,useX:function(n){var t;return null!==(t=u.ctx)&&void 0!==t?t:yn(o(n,"Context was used after it was closed"))}}}var bn=Nn((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return function(n){return n?{value:n.value,meta:n.meta,parent:n.parent}:n}(t)}}):t:r(e,{parent:En})}));function En(){return null}function Cn(n,t){return l(u(n,(function(n,r,e){(e=bn.run({value:n,set:!0,meta:{index:e}},(function(){return p(t,n)}))).pass||r(e)})))}function Tn(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=bn.run({value:e,set:!0,meta:{key:r}},(function(){return p(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return f()}function Sn(n,t){var r=Tn(n,t);if(!r.pass)return r;for(var e in n)if(!M(t,e))return a();return f()}var On=r({condition:vn,doesNotEndWith:P,doesNotStartWith:mn,endsWith:w,equals:k,greaterThan:W,greaterThanOrEquals:R,gt:W,gte:R,inside:D,isArray:U,isBetween:j,isBlank:B,isBoolean:K,isEmpty:z,isEven:Q,isFalsy:on,isNaN:Z,isNegative:nn,isNotArray:X,isNotBetween:q,isNotBlank:_,isNotBoolean:H,isNotEmpty:Y,isNotNaN:$,isNotNull:C,isNotNumber:V,isNotNumeric:A,isNotString:en,isNotUndefined:S,isNull:E,isNumber:J,isNumeric:I,isOdd:rn,isPositive:tn,isString:x,isTruthy:un,isUndefined:T,lengthEquals:m,lengthNotEquals:y,lessThan:sn,lessThanOrEquals:G,longerThan:N,longerThanOrEquals:an,lt:sn,lte:G,matches:fn,notEquals:F,notInside:L,notMatches:cn,numberEquals:ln,numberNotEquals:pn,shorterThan:dn,shorterThanOrEquals:gn,startsWith:hn},{allOf:v,anyOf:d,noneOf:g,oneOf:b,optional:O},{shape:Sn,loose:Tn,isArrayOf:Cn});function xn(n){return On[n]}function wn(n){for(var t in On){var r=xn(t);e(r)&&n(t,r)}}function Pn(){return"function"==typeof Proxy}function kn(n,r,e){for(var u=[],o=3;o<arguments.length;o++)u[o-3]=arguments[o];return Fn(n),K(n)?s(n):s(n.pass,i.apply(void 0,t([n.message,r,e],u)))}function Fn(n){K(n)||n&&K(n.pass)||yn("Incorrect return value for rule: "+JSON.stringify(n))}function In(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=kn.apply(void 0,t([bn.run({value:n},(function(){return e.apply(void 0,t([n],i))})),u,n],i))).pass){if(!z(o.message))throw o.message;yn("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!Pn())return wn((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=xn(t))return r(u,n,t)}});return u}function An(n){var r,e=[];return function n(o){return function(){for(var a=[],f=0;f<arguments.length;f++)a[f]=arguments[f];var c=xn(o);e.push((function(n){return kn.apply(void 0,t([c.apply(void 0,t([n],a)),o,n],a))}));var p={run:function(n){return l(u(e,(function(t,e){var u,o=bn.run({value:n},(function(){return t(n)}));o.pass||e(s(!!o.pass,null!==(u=i(r,n,o.message))&&void 0!==u?u:o.message))})))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return Pn()?p=new Proxy(p,{get:function(t,r){return xn(r)?n(r):t[r]}}):(wn((function(t){p[t]=n(t)})),p)}}(n)}function Wn(n){var t,r={};for(t in n)r[t]=Xn.optional(n[t]);return r}var Rn,Un,Xn=(Rn=n({context:function(){return bn.useX()},extend:function(n){r(On,n)}},{partial:Wn}),Pn()?new Proxy(r(In,Rn),{get:function(n,t){return t in n?n[t]:xn(t)?An(t):void 0}}):(wn((function(n){Rn[n]=An(n)})),Rn)),Dn=function(n){return function(){return""+n++}}(0);function Ln(n){return[].concat(n)}function Gn(n){return(n=Ln(n))[n.length-1]}function jn(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return Gn(t)},getCursor:function(){return Ln(t)},next:function(){return t[t.length-1]++,Gn(t)},removeLevel:function(){t.pop()},reset:n}}!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.GROUP=4]="GROUP"}(Un||(Un={}));var qn=Nn((function(n,t){return t?null:r({},{isolate:{type:Un.DEFAULT},testCursor:jn(),exclusion:{tests:{},groups:{}}},n)}));function Bn(n,t){for(var r=[],e=0;e<n.length;e++){var u=n[e];U(u)?r.push(Bn(u,t)):(u=t(u),C(u)&&r.push(u))}return r}function _n(n,t,r){return Hn(n,t)[Gn(t)]=r,n}function Kn(n){return Ln(n).reduce((function(n,t){return U(t)?n.concat(Kn(t)):Ln(n).concat(t)}),[])}function Hn(n,t){var r=0;for(t=t.slice(0,-1);r<t.length;r++){var e=t[r];n[e]=o(n[e],[]),n=n[e]}return n}function Mn(n){void 0===n&&(n=1);var t=[],r=function(e,u){var i=r.get(e);return i?i[1]:(u=u(),t.unshift([e.concat(),u]),N(t,n)&&(t.length=n),u)};return r.invalidate=function(n){var r=t.findIndex((function(t){var r=t[0];return m(n,r.length)&&n.every((function(n,t){return n===r[t]}))}));-1<r&&t.splice(r,1)},r.get=function(n){return t[t.findIndex((function(t){var r=t[0];return m(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},r}function Jn(){return qn.useX().stateRef}function Vn(){return Jn().suiteId()}function zn(){return Jn().testCallbacks()}function Yn(){return Jn().optionalFields()}function Qn(){return Jn().testObjects()}function Zn(){(0,Qn()[1])((function(n){return{prev:n.prev,current:Ln(n.current)}}))}function $n(n){(0,Qn()[1])((function(t){return{prev:t.prev,current:Ln(n(t.current))}}))}function nt(){return Kn(Bn(Qn()[0].current,(function(n){return n.isPending()?n:null})))}var tt=Mn();function rt(){var n=Qn()[0].current;return tt([n],(function(){return Kn(n)}))}function et(){return qn.useX().testCursor.getCursor()}function ut(){return qn.useX().testCursor.cursorAt()}function it(){return qn.useX().testCursor.next()}function ot(n,t){if(n=void 0===(n=n.type)?Un.DEFAULT:n,e(t)){var r=et();return qn.run({isolate:{type:n}},(function(){qn.useX().testCursor.addLevel(),$n((function(n){return _n(n,r,[])}));var n=t();return qn.useX().testCursor.removeLevel(),it(),n}))}}function st(n,t){return!!t&&!at(n,t)}function at(n,t){return!(!t||n.fieldName!==t)}function ft(){var n=Yn()[0];if(!z(n)){var t={};$n((function(r){return Bn(r,(function(r){var u=r.fieldName;if(t.hasOwnProperty(u))t[r.fieldName]&&r.omit();else{var i=n[u];e(i)&&(t[u]=i(),t[r.fieldName]&&r.omit())}return r}))}))}}function ct(n){var t=nt();return!z(t)&&(n?t.some((function(t){return at(t,n)})):Y(t))}function lt(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function pt(n,t){return function(n,t){return!!n!=!!t}("warnings"===n,t.warns)}function vt(t,r,e){var u;void 0===e&&(e={});var i=(e=e||{}).group,o=e.fieldName;return r.reduce((function(n,r){return function(n,t,r,e){return!!(function(n,t){return!(!t||n.groupName===t)}(n,r)||st(n,e)||pt(t,n))}(r,t,i,o)||!r.hasFailures()||(n[r.fieldName]=(n[r.fieldName]||[]).concat(r.message||[])),n}),n({},o&&((u={})[o]=[],u)))}function dt(n,t){return t?n[t]:n}function gt(n){return mt("errors",n)}function ht(n){return mt("warnings",n)}function mt(n,t){return dt(n=vt(n,rt(),{fieldName:t}),t)}function yt(n,t){return dt(n=bt("errors",n,t),t)}function Nt(n,t){return dt(n=bt("warnings",n,t),t)}function bt(n,t,r){return t||yn("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),vt(n,rt(),{group:t,fieldName:r})}function Et(n,t,r){return!(!n.hasFailures()||st(n,r)||pt(t,n))}function Ct(n){return St("errors",n)}function Tt(n){return St("warnings",n)}function St(n,t){return rt().some((function(r){return Et(r,n,t)}))}function Ot(n,t){return wt("errors",n,t)}function xt(n,t){return wt("warnings",n,t)}function wt(n,t,r){return rt().some((function(e){return t===e.groupName&&Et(e,n,r)}))}function Pt(n,t){return!!function(n){var t=rt().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(t)||!n.hasErrors(t)&&(!(z(rt())||function(n,t){return!!t&&z(n.tests[t])}(n,t)||function(n){var t=Yn()[0];return Y(nt().filter((function(r){return!st(r,n)&&!0!==t[r.fieldName]})))}(t))&&function(n){var t=rt(),r=Yn()[0];return t.every((function(t){return!!st(t,n)||(!0===r[t.fieldName]||t.isTested()||t.isOmitted())}))}(t))}var kt=Mn(20);function Ft(){var n=rt(),t={stateRef:Jn()};return kt([n],qn.bind(t,(function(){return r(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return rt().forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=lt(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=lt(n.groups[e],t))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(n)}(),{getErrors:qn.bind(t,gt),getErrorsByGroup:qn.bind(t,yt),getWarnings:qn.bind(t,ht),getWarningsByGroup:qn.bind(t,Nt),hasErrors:qn.bind(t,Ct),hasErrorsByGroup:qn.bind(t,Ot),hasWarnings:qn.bind(t,Tt),hasWarningsByGroup:qn.bind(t,xt),isValid:qn.bind(t,(function(n){return Pt(Ft(),n)}))})})))}var It=Mn(20);function At(){var n=rt(),t={stateRef:Jn()};return It([n],qn.bind(t,(function(){return r({},Ft(),{done:qn.bind(t,Xt)})})))}function Wt(n,t,r){return!(e(n)&&(!t||r.tests[t]&&0!==r.tests[t].testCount))}function Rt(n){return!(ct()&&(!n||ct(n)))}var Ut,Xt=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=At(),Wt(r,n,t))return t;var e=function(){return r(Ft())};return Rt(n)?(e(),t):(Dt(e,n),t)};function Dt(n,t){var r=qn.bind({},n);(0,zn()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function Lt(n){return n.forEach((function(n){return n()}))}function Gt(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(Ut.TEST_COMPLETED,(function(n){n.isCanceled()||(n.done(),function(n){var t=zn()[0].fieldCallbacks;n&&!ct(n)&&U(t[n])&&Lt(t[n])}(n.fieldName),function(){var n=zn()[0].doneCallbacks;ct()||Lt(n)}())})),n}function jt(){var n=qn.useX();return n.bus||yn(),n.bus}(Ut||(Ut={})).TEST_COMPLETED="test_completed";function qt(n){return Kt("only","tests",n)}function Bt(n){return Kt("skip","tests",n)}function _t(n){var t=n.fieldName;n=n.groupName;var r=qn.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){if(function(n){var t=qn.useX().exclusion.groups;if(M(t,n))return!1===t[n];for(var r in t)if(!0===t[r])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!u&&(!!Ht(e)||!1===e[t])}return!u&&Ht(e)}function Kt(n,t,r){var e=qn.useX("hook called outside of a running suite.");r&&Ln(r).forEach((function(r){x(r)&&(e.exclusion[t][r]="only"===n)}))}function Ht(n){for(var t in n)if(!0===n[t])return!0;return!1}qt.group=function(n){return Kt("only","groups",n)},Bt.group=function(n){return Kt("skip","groups",n)};function Mt(n){yn("Wrong arguments passed to group. Group "+n+".")}function Jt(n,t){return T(n)&&x(t)}var Vt=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=Dn(),this.warns=!1,this.status=zt,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){Jt(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==rr||(this.status=n)},n.prototype.setPending=function(){this.setStatus(nr)},n.prototype.fail=function(){this.setStatus(this.warns?Zt:Qt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus($t)},n.prototype.warn=function(){this.warns=!0},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(){this.isPending()||this.setStatus(Yt)},n.prototype.cancel=function(){this.setStatus(tr),Zn()},n.prototype.omit=function(){this.setStatus(rr)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===nr},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===rr},n.prototype.isUntested=function(){return this.status===zt},n.prototype.isFailing=function(){return this.status===Qt},n.prototype.isCanceled=function(){return this.status===tr},n.prototype.isSkipped=function(){return this.status===Yt},n.prototype.isPassing=function(){return this.status===$t},n.prototype.isWarning=function(){return this.status===Zt},n}(),zt="UNTESTED",Yt="SKIPPED",Qt="FAILED",Zt="WARNING",$t="PASSING",nr="PENDING",tr="CANCELED",rr="OMITTED";function er(n){return n&&e(n.then)}function ur(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function ir(n){var t=n.asyncTest,r=n.message;if(er(t)){var e=jt().emit,u=Jn(),i=qn.bind({stateRef:u},(function(){Zn(),e(Ut.TEST_COMPLETED,n)}));u=qn.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=x(t)?t:r,n.fail(),i())}));try{t.then(i,u)}catch(n){u()}}}function or(n){var t=jt().emit,r=function(n){return qn.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){Jt(n.message,r)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{er(r)?(n.asyncTest=r,n.setPending(),ir(n)):t(Ut.TEST_COMPLETED,n)}catch(t){yn("Your test function "+n.fieldName+" returned "+JSON.stringify(r)+'. Only "false" or a Promise are supported. Return values may cause unexpected behavior.')}}function sr(n){var t=Qn(),r=t[1],e=t[0].prev;if(z(e))return ar(n),n;if(function(n,t){return Y(n)&&!ur(n,t)}(t=function(n){var t=et();return function(n,t){return Hn(n,t)[Gn(t)]}(n,t)}(e),n)){!function(n,t){qn.useX().isolate.type===Un.EACH||function(n,t){setTimeout((function(){yn(n,t)}),0)}("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+t.fieldName+"\n This happens when you conditionally call your tests using if/else.\n This might lead to incorrect validation results.\n Replacing if/else with skipWhen solves these issues.")}(t,n),t=Hn(e,et());var u=ut();t.splice(u),r((function(n){return{prev:e,current:n.current}})),t=null}return ar(n=o(t,n)),n}function ar(n){var t=et();$n((function(r){return _n(r,t,n)}))}function fr(n){var t=sr(n);return _t(n)?(n.skip(),it(),t):(function(n,t){t!==n&&ur(n,t)&&n.isPending()&&n.cancel()}(t,n),ar(n),it(),function(n){n.isUntested()?or(n):er(n.asyncTest)&&(n.setPending(),ir(n))}(n),n)}function cr(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=qn.useX();return fr(t=new Vt(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var lr=r(cr,{each:function(n){return function(r){return U(r)||yn("test.each: Expected table to be an array."),function(e){for(var u=[],o=1;o<arguments.length;o++)u[o-1]=arguments[o];var s=(u=u.reverse())[0],a=u[1];return ot({type:Un.EACH},(function(){return r.map((function(r){return r=Ln(r),n(i.apply(void 0,t([e],r)),i.apply(void 0,t([a],r)),(function(){return s.apply(void 0,r)}))}))}))}}}(cr),memo:function(n){var t=Mn(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=Vn()[0];var i=ut(),o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),E(u=t.get(e))?t(e,(function(){return n(r,s,o)})):u[1].isCanceled()?(t.invalidate(e),t(e,(function(){return n(r,s,o)}))):fr(u[1])}}(cr)});exports.VERSION="4.0.0-dev-7acb76",exports.create=function(n){e(n)||yn("Suite initialization error. Expected `tests` to be a function.");var t=Gt(),u=function(n){function t(n,t,e){return u.references.push(),r(n,i(t,e)),function(){return[u.references[n],function(t){return r(n,i(t,u.references[n]))}]}}function r(t,r){var i=u.references[t];u.references[t]=r,e(t=o[t][1])&&t(r,i),e(n)&&n()}var u={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){var n=u.references;u.references=[],o.forEach((function(r,e){return t(e,r[0],n[e])}))}}}(),o=function(n,t){return t=t.suiteId,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}(u,{suiteId:Dn()});return r(qn.bind({stateRef:o,bus:t},(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return u.reset(),ot({type:Un.SUITE},(function(){n.apply(void 0,t)})),ft(),At()})),{get:qn.bind({stateRef:o},Ft),remove:qn.bind({stateRef:o},(function(n){rt().forEach((function(t){at(t,n)&&(t.cancel(),function(n){$n((function(t){return Bn(t,(function(t){return n!==t?t:null}))}))}(t))}))})),reset:u.reset})},exports.enforce=Xn,exports.group=function(n,t){x(n)||Mt("name must be a string"),e(t)||Mt("callback must be a function"),ot({type:Un.GROUP},(function(){qn.run({groupName:n},t)}))},exports.only=qt,exports.optional=function(n){(0,Yn()[1])((function(t){if(U(n)||x(n))Ln(n).forEach((function(n){t[n]=!0}));else for(var r in n)t[r]=n[r];return t}))},exports.skip=Bt,exports.skipWhen=function(n,t){ot({type:Un.SKIP_WHEN},(function(){qn.run({skipped:i(n)},(function(){return t()}))}))},exports.test=lr,exports.warn=function(){var n=qn.useX("warn hook called outside of a running suite.");n.currentTest||yn("warn called outside of a test."),n.currentTest.warn()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=function(){return(n=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};function t(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||t)}var r=Object.assign;function e(n){return"function"==typeof n}function u(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 i(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return e(n)?n.apply(void 0,t):n}function o(n,t){var r;return null!==(r=i(n))&&void 0!==r?r:t}function s(n,t){return n={pass:n},t&&(n.message=t),n}function a(){return s(!1)}function c(){return s(!0)}function f(n){return o(n,a())}function l(n){return o(n,c())}function p(n,t){try{return n.run(t)}catch(n){return a()}}function v(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return l(u(t,(function(t,r){(t=p(t,n)).pass||r(t)})))}function d(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return f(u(t,(function(t,r){(t=p(t,n)).pass&&r(t)})))}function h(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return l(u(t,(function(t,r){p(t,n).pass&&r(a())})))}function g(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function m(n,t){return n.length===Number(t)}var y=g(m);function N(n,t){return n.length>Number(t)}function E(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(N(e,1))return!1;(t=p(t,n)).pass&&e.push(t)})),s(m(e,1))}function b(n){return null===n}var C=g(b);function T(n){return void 0===n}var O=g(T);function S(n,t){return T(n)||b(n)?c():p(t,n)}function w(n){return String(n)===n}function x(n,t){return w(n)&&w(t)&&n.endsWith(t)}var P=g(x);function F(n,t){return n===t}var I=g(F);function k(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}var A=g(k);function D(n,t){return k(n)&&k(t)&&Number(n)>Number(t)}function L(n,t){return k(n)&&k(t)&&Number(n)>=Number(t)}function W(n){return!!Array.isArray(n)}var U=g(W);function R(n,t){return!!(W(t)||w(t)&&w(n))&&-1!==t.indexOf(n)}var _=g(R);function X(n,t){return k(n)&&k(t)&&Number(n)<=Number(t)}function M(n,t,r){return L(n,t)&&X(n,r)}var G=g(M);function j(n){return w(n)&&!n.trim()}var q=g(j);function B(n){return!!n===n}var K=g(B);function H(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function V(n){return"number"==typeof n}var J=g(V);function z(n){if(n){if(V(n))return 0===n;if(H(n,"length"))return m(n,0);if("object"==typeof n)return m(Object.keys(n),0)}return!0}var Y=g(z),Q=function(n){return!!k(n)&&0==n%2};function Z(n){return Number.isNaN(n)}var $=g(Z);function nn(n){return!!k(n)&&0>Number(n)}var tn=g(nn),rn=function(n){return!!k(n)&&0!=n%2},en=g(w);function un(n){return!!n}var on=g(un);function sn(n,t){return k(n)&&k(t)&&Number(n)<Number(t)}function an(n,t){return n.length>=Number(t)}function cn(n,t){return t instanceof RegExp?t.test(n):!!w(t)&&new RegExp(t).test(n)}var fn=g(cn);function ln(n,t){return k(n)&&k(t)&&Number(n)===Number(t)}var pn=g(ln);function vn(n,t){try{return t(n)}catch(n){return!1}}function dn(n,t){return n.length<Number(t)}function hn(n,t){return n.length<=Number(t)}function gn(n,t){return w(n)&&w(t)&&n.startsWith(t)}var mn=g(gn);function yn(n,t){throw Error(o(t,n))}function Nn(n){function t(t,i){var o,s,a=e();return t=r({},a||{},null!==(o=null==n?void 0:n(t,a))&&void 0!==o?o:t),o=u.ctx=Object.freeze(t),u.ancestry.unshift(o),i=i(o),u.ancestry.shift(),u.ctx=null!==(s=u.ancestry[0])&&void 0!==s?s:null,i}function e(){return u.ctx}var u={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:e,useX:function(n){var t;return null!==(t=u.ctx)&&void 0!==t?t:yn(o(n,"Context was used after it was closed"))}}}var En=Nn((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return function(n){return n?{value:n.value,meta:n.meta,parent:n.parent}:n}(t)}}):t:r(e,{parent:bn})}));function bn(){return null}function Cn(n,t){return l(u(n,(function(n,r,e){(e=En.run({value:n,set:!0,meta:{index:e}},(function(){return p(t,n)}))).pass||r(e)})))}function Tn(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=En.run({value:e,set:!0,meta:{key:r}},(function(){return p(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return c()}function On(n,t){var r=Tn(n,t);if(!r.pass)return r;for(var e in n)if(!H(t,e))return a();return c()}var Sn=r({condition:vn,doesNotEndWith:P,doesNotStartWith:mn,endsWith:x,equals:F,greaterThan:D,greaterThanOrEquals:L,gt:D,gte:L,inside:R,isArray:W,isBetween:M,isBlank:j,isBoolean:B,isEmpty:z,isEven:Q,isFalsy:on,isNaN:Z,isNegative:nn,isNotArray:U,isNotBetween:G,isNotBlank:q,isNotBoolean:K,isNotEmpty:Y,isNotNaN:$,isNotNull:C,isNotNumber:J,isNotNumeric:A,isNotString:en,isNotUndefined:O,isNull:b,isNumber:V,isNumeric:k,isOdd:rn,isPositive:tn,isString:w,isTruthy:un,isUndefined:T,lengthEquals:m,lengthNotEquals:y,lessThan:sn,lessThanOrEquals:X,longerThan:N,longerThanOrEquals:an,lt:sn,lte:X,matches:cn,notEquals:I,notInside:_,notMatches:fn,numberEquals:ln,numberNotEquals:pn,shorterThan:dn,shorterThanOrEquals:hn,startsWith:gn},{allOf:v,anyOf:d,noneOf:h,oneOf:E,optional:S},{shape:On,loose:Tn,isArrayOf:Cn});function wn(n){return Sn[n]}function xn(n){for(var t in Sn){var r=wn(t);e(r)&&n(t,r)}}function Pn(){try{return e(Proxy)}catch(n){return!1}}function Fn(n,r,e){for(var u=[],o=3;o<arguments.length;o++)u[o-3]=arguments[o];return In(n),B(n)?s(n):s(n.pass,i.apply(void 0,t([n.message,r,e],u)))}function In(n){B(n)||n&&B(n.pass)||yn("Incorrect return value for rule: "+JSON.stringify(n))}function kn(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=Fn.apply(void 0,t([En.run({value:n},(function(){return e.apply(void 0,t([n],i))})),u,n],i))).pass){if(!z(o.message))throw o.message;yn("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!Pn())return xn((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=wn(t))return r(u,n,t)}});return u}function An(n){var r,e=[];return function n(o){return function(){for(var a=[],c=0;c<arguments.length;c++)a[c]=arguments[c];var f=wn(o);e.push((function(n){return Fn.apply(void 0,t([f.apply(void 0,t([n],a)),o,n],a))}));var p={run:function(n){return l(u(e,(function(t,e){var u,o=En.run({value:n},(function(){return t(n)}));o.pass||e(s(!!o.pass,null!==(u=i(r,n,o.message))&&void 0!==u?u:o.message))})))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return Pn()?p=new Proxy(p,{get:function(t,r){return wn(r)?n(r):t[r]}}):(xn((function(t){p[t]=n(t)})),p)}}(n)}function Dn(n){var t,r={};for(t in n)r[t]=Un.optional(n[t]);return r}var Ln,Wn,Un=(Ln=n({context:function(){return En.useX()},extend:function(n){r(Sn,n)}},{partial:Dn}),Pn()?new Proxy(r(kn,Ln),{get:function(n,t){return t in n?n[t]:wn(t)?An(t):void 0}}):(xn((function(n){Ln[n]=An(n)})),Ln)),Rn=function(n){return function(){return""+n++}}(0);function _n(n,t){return t=t.suiteId,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function Xn(n){return[].concat(n)}function Mn(n){return(n=Xn(n))[n.length-1]}function Gn(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return Mn(t)},getCursor:function(){return Xn(t)},next:function(){return t[t.length-1]++,Mn(t)},removeLevel:function(){t.pop()},reset:n}}!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.GROUP=4]="GROUP"}(Wn||(Wn={}));var jn=Nn((function(n,t){return t?null:r({},{isolate:{type:Wn.DEFAULT},testCursor:Gn(),exclusion:{tests:{},groups:{}}},n)}));function qn(n,t){for(var r=[],e=0;e<n.length;e++){var u=n[e];W(u)?r.push(qn(u,t)):(u=t(u),C(u)&&r.push(u))}return r}function Bn(n,t,r){return Hn(n,t)[Mn(t)]=r,n}function Kn(n){return Xn(n).reduce((function(n,t){return W(t)?n.concat(Kn(t)):Xn(n).concat(t)}),[])}function Hn(n,t){var r=0;for(t=t.slice(0,-1);r<t.length;r++){var e=t[r];n[e]=o(n[e],[]),n=n[e]}return n}function Vn(n){void 0===n&&(n=1);var t=[],r=function(e,u){var i=r.get(e);return i?i[1]:(u=u(),t.unshift([e.concat(),u]),N(t,n)&&(t.length=n),u)};return r.invalidate=function(n){var r=t.findIndex((function(t){var r=t[0];return m(n,r.length)&&n.every((function(n,t){return n===r[t]}))}));-1<r&&t.splice(r,1)},r.get=function(n){return t[t.findIndex((function(t){var r=t[0];return m(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},r}function Jn(){return jn.useX().stateRef}function zn(){return Jn().suiteId()}function Yn(){return Jn().testCallbacks()}function Qn(){return Jn().optionalFields()}function Zn(){return Jn().testObjects()}function $n(){(0,Zn()[1])((function(n){return{prev:n.prev,current:Xn(n.current)}}))}function nt(n){(0,Zn()[1])((function(t){return{prev:t.prev,current:Xn(n(t.current))}}))}function tt(){return Kn(qn(Zn()[0].current,(function(n){return n.isPending()?n:null})))}var rt=Vn();function et(){var n=Zn()[0].current;return rt([n],(function(){return Kn(n)}))}function ut(){return jn.useX().testCursor.getCursor()}function it(){return jn.useX().testCursor.cursorAt()}function ot(){return jn.useX().testCursor.next()}function st(n,t){if(n=void 0===(n=n.type)?Wn.DEFAULT:n,e(t)){var r=ut();return jn.run({isolate:{type:n}},(function(){jn.useX().testCursor.addLevel(),nt((function(n){return Bn(n,r,[])}));var n=t();return jn.useX().testCursor.removeLevel(),ot(),n}))}}function at(n,t){return!!t&&!ct(n,t)}function ct(n,t){return!(!t||n.fieldName!==t)}function ft(n){var t=tt();return!z(t)&&(n?t.some((function(t){return ct(t,n)})):Y(t))}function lt(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function pt(n,t){return function(n,t){return!!n!=!!t}("warnings"===n,t.warns)}function vt(t,r,e){var u;void 0===e&&(e={});var i=(e=e||{}).group,o=e.fieldName;return r.reduce((function(n,r){return function(n,t,r,e){return!!(function(n,t){return!(!t||n.groupName===t)}(n,r)||at(n,e)||pt(t,n))}(r,t,i,o)||!r.hasFailures()||(n[r.fieldName]=(n[r.fieldName]||[]).concat(r.message||[])),n}),n({},o&&((u={})[o]=[],u)))}function dt(n,t){return t?n[t]:n}function ht(n){return mt("errors",n)}function gt(n){return mt("warnings",n)}function mt(n,t){return dt(n=vt(n,et(),{fieldName:t}),t)}function yt(n,t){return dt(n=Et("errors",n,t),t)}function Nt(n,t){return dt(n=Et("warnings",n,t),t)}function Et(n,t,r){return t||yn("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),vt(n,et(),{group:t,fieldName:r})}function bt(n,t,r){return!(!n.hasFailures()||at(n,r)||pt(t,n))}function Ct(n){return Ot("errors",n)}function Tt(n){return Ot("warnings",n)}function Ot(n,t){return et().some((function(r){return bt(r,n,t)}))}function St(n,t){return xt("errors",n,t)}function wt(n,t){return xt("warnings",n,t)}function xt(n,t,r){return et().some((function(e){return t===e.groupName&&bt(e,n,r)}))}function Pt(n,t){return!!function(n){var t=et().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(t)||!n.hasErrors(t)&&(!(z(et())||function(n,t){return!!t&&z(n.tests[t])}(n,t)||function(n){var t=Qn()[0];return Y(tt().filter((function(r){return!at(r,n)&&!0!==t[r.fieldName]})))}(t))&&function(n){var t=et(),r=Qn()[0];return t.every((function(t){return!!at(t,n)||(!0===r[t.fieldName]||t.isTested()||t.isOmitted())}))}(t))}var Ft=Vn(20);function It(){var n=et(),t={stateRef:Jn()};return Ft([n],jn.bind(t,(function(){return r(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return et().forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=lt(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=lt(n.groups[e],t))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(n)}(),{getErrors:jn.bind(t,ht),getErrorsByGroup:jn.bind(t,yt),getWarnings:jn.bind(t,gt),getWarningsByGroup:jn.bind(t,Nt),hasErrors:jn.bind(t,Ct),hasErrorsByGroup:jn.bind(t,St),hasWarnings:jn.bind(t,Tt),hasWarningsByGroup:jn.bind(t,wt),isValid:jn.bind(t,(function(n){return Pt(It(),n)}))})})))}var kt=Vn(20);function At(){var n=et(),t={stateRef:Jn()};return kt([n],jn.bind(t,(function(){return r({},It(),{done:jn.bind(t,Ut)})})))}function Dt(n,t,r){return!(e(n)&&(!t||r.tests[t]&&0!==r.tests[t].testCount))}function Lt(n){return!(ft()&&(!n||ft(n)))}var Wt,Ut=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=At(),Dt(r,n,t))return t;var e=function(){return r(It())};return Lt(n)?(e(),t):(Rt(e,n),t)};function Rt(n,t){var r=jn.bind({},n);(0,Yn()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function _t(n){return n.forEach((function(n){return n()}))}function Xt(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(Wt.TEST_COMPLETED,(function(n){n.isCanceled()||(n.done(),function(n){var t=Yn()[0].fieldCallbacks;n&&!ft(n)&&W(t[n])&&_t(t[n])}(n.fieldName),function(){var n=Yn()[0].doneCallbacks;ft()||_t(n)}())})),n.on(Wt.SUITE_COMPLETED,(function(){!function(){var n=Qn()[0];if(!z(n)){var t={};nt((function(r){return qn(r,(function(r){var u=r.fieldName;if(t.hasOwnProperty(u))t[r.fieldName]&&r.omit();else{var i=n[u];e(i)&&(t[u]=i(),t[r.fieldName]&&r.omit())}return r}))}))}}()})),n.on(Wt.REMOVE_FIELD,(function(n){et().forEach((function(t){ct(t,n)&&(t.cancel(),function(n){nt((function(t){return qn(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n}function Mt(){var n=jn.useX();return n.bus||yn(),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.REMOVE_FIELD="remove_field",n.SUITE_COMPLETED="suite_completed"}(Wt||(Wt={}));function Gt(n){return Bt(0,"tests",n)}function jt(n){return Bt(1,"tests",n)}function qt(n){var t=n.fieldName;n=n.groupName;var r=jn.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){if(function(n){var t=jn.useX().exclusion.groups;if(H(t,n))return!1===t[n];for(var r in t)if(!0===t[r])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!u&&(!!Kt(e)||!1===e[t])}return!u&&Kt(e)}function Bt(n,t,r){var e=jn.useX("hook called outside of a running suite.");r&&Xn(r).forEach((function(r){w(r)&&(e.exclusion[t][r]=0===n)}))}function Kt(n){for(var t in n)if(!0===n[t])return!0;return!1}Gt.group=function(n){return Bt(0,"groups",n)},jt.group=function(n){return Bt(1,"groups",n)};function Ht(n){yn("Wrong arguments passed to group. Group "+n+".")}function Vt(n,t){return T(n)&&w(t)}var Jt=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=Rn(),this.warns=!1,this.status=zt,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){Vt(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==rr||(this.status=n)},n.prototype.setPending=function(){this.setStatus(nr)},n.prototype.fail=function(){this.setStatus(this.warns?Zt:Qt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus($t)},n.prototype.warn=function(){this.warns=!0},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(){this.isPending()||this.setStatus(Yt)},n.prototype.cancel=function(){this.setStatus(tr),$n()},n.prototype.omit=function(){this.setStatus(rr)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===nr},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===rr},n.prototype.isUntested=function(){return this.status===zt},n.prototype.isFailing=function(){return this.status===Qt},n.prototype.isCanceled=function(){return this.status===tr},n.prototype.isSkipped=function(){return this.status===Yt},n.prototype.isPassing=function(){return this.status===$t},n.prototype.isWarning=function(){return this.status===Zt},n}(),zt="UNTESTED",Yt="SKIPPED",Qt="FAILED",Zt="WARNING",$t="PASSING",nr="PENDING",tr="CANCELED",rr="OMITTED";function er(n){return n&&e(n.then)}function ur(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function ir(n){var t=n.asyncTest,r=n.message;if(er(t)){var e=Mt().emit,u=Jn(),i=jn.bind({stateRef:u},(function(){$n(),e(Wt.TEST_COMPLETED,n)}));u=jn.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=w(t)?t:r,n.fail(),i())}));try{t.then(i,u)}catch(n){u()}}}function or(n){var t=Mt(),r=function(n){return jn.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){Vt(n.message,r)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{er(r)?(n.asyncTest=r,n.setPending(),ir(n)):t.emit(Wt.TEST_COMPLETED,n)}catch(t){yn("Your test function "+n.fieldName+' returned a value. Only "false" or Promise returns are supported.')}}function sr(n){var t=Zn(),r=t[1],e=t[0].prev;if(z(e))return ar(n),n;if(function(n,t){return Y(n)&&!ur(n,t)}(t=function(n){var t=ut();return function(n,t){return Hn(n,t)[Mn(t)]}(n,t)}(e),n)){!function(n,t){jn.useX().isolate.type===Wn.EACH||function(n,t){setTimeout((function(){yn(n,t)}),0)}("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+t.fieldName+"\n This happens when you conditionally call your tests using if/else.\n This might lead to incorrect validation results.\n Replacing if/else with skipWhen solves these issues.")}(t,n),t=Hn(e,ut());var u=it();t.splice(u),r((function(n){return{prev:e,current:n.current}})),t=null}return ar(n=o(t,n)),n}function ar(n){var t=ut();nt((function(r){return Bn(r,t,n)}))}function cr(n){var t=sr(n);return qt(n)?(n.skip(),ot(),t):(function(n,t){t!==n&&ur(n,t)&&n.isPending()&&n.cancel()}(t,n),ar(n),ot(),function(n){n.isUntested()?or(n):er(n.asyncTest)&&(n.setPending(),ir(n))}(n),n)}function fr(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=jn.useX();return cr(t=new Jt(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var lr=r(fr,{each:function(n){return function(r){return W(r)||yn("test.each: Expected table to be an array."),function(e){for(var u=[],o=1;o<arguments.length;o++)u[o-1]=arguments[o];var s=(u=u.reverse())[0],a=u[1];return st({type:Wn.EACH},(function(){return r.map((function(r){return r=Xn(r),n(i.apply(void 0,t([e],r)),i.apply(void 0,t([a],r)),(function(){return s.apply(void 0,r)}))}))}))}}}(fr),memo:function(n){var t=Vn(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=zn()[0];var i=it(),o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),b(u=t.get(e))?t(e,(function(){return n(r,s,o)})):u[1].isCanceled()?(t.invalidate(e),t(e,(function(){return n(r,s,o)}))):cr(u[1])}}(fr)});exports.VERSION="4.0.0-dev-31f012",exports.create=function(n){e(n)||yn("vest.create: Expected callback to be a function.");var t=Xt(),u=function(n){function t(n,t,e){return u.references.push(),r(n,i(t,e)),function(){return[u.references[n],function(t){return r(n,i(t,u.references[n]))}]}}function r(t,r){var i=u.references[t];u.references[t]=r,e(t=o[t][1])&&t(r,i),e(n)&&n()}var u={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){var n=u.references;u.references=[],o.forEach((function(r,e){return t(e,r[0],n[e])}))}}}(),o={stateRef:_n(u,{suiteId:Rn()}),bus:t};return r(jn.bind(o,(function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];return u.reset(),st({type:Wn.SUITE},(function(){n.apply(void 0,r)})),t.emit(Wt.SUITE_COMPLETED),At()})),{get:jn.bind(o,It),reset:u.reset,remove:jn.bind(o,(function(n){t.emit(Wt.REMOVE_FIELD,n)}))})},exports.enforce=Un,exports.group=function(n,t){w(n)||Ht("name must be a string"),e(t)||Ht("callback must be a function"),st({type:Wn.GROUP},(function(){jn.run({groupName:n},t)}))},exports.only=Gt,exports.optional=function(n){(0,Qn()[1])((function(t){if(W(n)||w(n))Xn(n).forEach((function(n){t[n]=!0}));else for(var r in n)t[r]=n[r];return t}))},exports.skip=jt,exports.skipWhen=function(n,t){st({type:Wn.SKIP_WHEN},(function(){jn.run({skipped:i(n)},(function(){return t()}))}))},exports.test=lr,exports.warn=function(){var n=jn.useX("warn hook called outside of a running suite.");n.currentTest||yn("warn called outside of a test."),n.currentTest.warn()};
@@ -54,10 +54,10 @@ function parse(res) {
54
54
  /**
55
55
  * Creates a function that returns class names that match the validation result
56
56
  */
57
- function classNames(res, classes) {
57
+ function classnames(res, classes) {
58
58
  if (classes === void 0) { classes = {}; }
59
59
  if (!res || !isFunction(res.hasErrors)) {
60
- throwError("[vest/classNames]: Expected first argument to be Vest's result object.");
60
+ throwError("classnames: Expected first argument to be Vest's result object.");
61
61
  }
62
62
  var selectors = parse(res);
63
63
  return function (key) {
@@ -72,4 +72,4 @@ function classNames(res, classes) {
72
72
  };
73
73
  }
74
74
 
75
- export default classNames;
75
+ export default classnames;
@@ -1 +1 @@
1
- function t(t){return"function"==typeof t}function r(r,n){var e;return null!==(e=function(r){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return t(r)?r.apply(void 0,n):r}(r))&&void 0!==e?e:n}function n(t){var r=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(r))}function e(t,r){return n(t)&&n(r)&&Number(t)>Number(r)}export default function(n,o){if(void 0===o&&(o={}),!n||!t(n.hasErrors))throw Error(r(void 0,"[vest/classNames]: Expected first argument to be Vest's result object."));var u=function(t){var r={},n={invalid:t.hasErrors,tested:function(o){return o?Object.prototype.hasOwnProperty.call(r,o)?r[o]:(r[o]=Object.prototype.hasOwnProperty.call(t.tests,o)&&e(t.tests[o].testCount,0),n.tested(o)):e(t.testCount,0)},untested:function(r){return 0===t.testCount||!n.tested(r)},valid:t.isValid,warning:t.hasWarnings};return n}(n);return function(r){var n,e=[];for(n in o){var s=n;t(u[s])&&u[s](r)&&e.push(o[s])}return e.join(" ")}}
1
+ function t(t){return"function"==typeof t}function r(r,n){var e;return null!==(e=function(r){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return t(r)?r.apply(void 0,n):r}(r))&&void 0!==e?e:n}function n(t){var r=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(r))}function e(t,r){return n(t)&&n(r)&&Number(t)>Number(r)}export default function(n,o){if(void 0===o&&(o={}),!n||!t(n.hasErrors))throw Error(r(void 0,"classnames: Expected first argument to be Vest's result object."));var u=function(t){var r={},n={invalid:t.hasErrors,tested:function(o){return o?Object.prototype.hasOwnProperty.call(r,o)?r[o]:(r[o]=Object.prototype.hasOwnProperty.call(t.tests,o)&&e(t.tests[o].testCount,0),n.tested(o)):e(t.testCount,0)},untested:function(r){return 0===t.testCount||!n.tested(r)},valid:t.isValid,warning:t.hasWarnings};return n}(n);return function(r){var n,e=[];for(n in o){var i=n;t(u[i])&&u[i](r)&&e.push(o[i])}return e.join(" ")}}
@@ -16,7 +16,7 @@ var promisify = function (validatorFn) {
16
16
  args[_i] = arguments[_i];
17
17
  }
18
18
  if (!isFunction(validatorFn)) {
19
- throwError('[vest/promisify]: Expected validatorFn to be a function.');
19
+ throwError('promisify: Expected validatorFn to be a function.');
20
20
  }
21
21
  return new Promise(function (resolve) { return validatorFn.apply(void 0, args).done(resolve); });
22
22
  };
@@ -1 +1 @@
1
- function n(n,o){var t;return null!==(t=function(n){for(var o=[],t=1;t<arguments.length;t++)o[t-1]=arguments[t];return"function"==typeof n?n.apply(void 0,o):n}(n))&&void 0!==t?t:o}export default function(o){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];if("function"!=typeof o)throw Error(n(void 0,"[vest/promisify]: Expected validatorFn to be a function."));return new Promise((function(n){return o.apply(void 0,t).done(n)}))}}
1
+ function n(n,o){var r;return null!==(r=function(n){for(var o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];return"function"==typeof n?n.apply(void 0,o):n}(n))&&void 0!==r?r:o}export default function(o){return function(){for(var r=[],t=0;t<arguments.length;t++)r[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,r).done(n)}))}}