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.
- package/CHANGELOG.md +3 -1
- package/dist/cjs/classnames.development.js +3 -3
- package/dist/cjs/classnames.production.js +1 -1
- package/dist/cjs/promisify.development.js +1 -1
- package/dist/cjs/promisify.production.js +1 -1
- package/dist/cjs/vest.development.js +95 -66
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/classnames.development.js +3 -3
- package/dist/es/classnames.production.js +1 -1
- package/dist/es/promisify.development.js +1 -1
- package/dist/es/promisify.production.js +1 -1
- package/dist/es/vest.development.js +95 -66
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/classnames.development.js +3 -3
- package/dist/umd/classnames.production.js +1 -1
- package/dist/umd/promisify.development.js +1 -1
- package/dist/umd/promisify.production.js +1 -1
- package/dist/umd/vest.development.js +95 -66
- package/dist/umd/vest.production.js +1 -1
- package/package.json +1 -1
- package/types/classnames.d.ts +2 -2
- package/types/vest.d.ts +9 -2
- package/docs/.nojekyll +0 -0
- package/docs/README.md +0 -113
- package/docs/_assets/favicon.ico +0 -0
- package/docs/_assets/vest-logo.png +0 -0
- package/docs/_sidebar.md +0 -14
- package/docs/cross_field_validations.md +0 -33
- package/docs/enforce.md +0 -11
- package/docs/exclusion.md +0 -129
- package/docs/getting_started.md +0 -72
- package/docs/group.md +0 -142
- package/docs/index.html +0 -41
- package/docs/migration.md +0 -202
- package/docs/n4s/rules.md +0 -1282
- package/docs/node.md +0 -36
- package/docs/optional.md +0 -103
- package/docs/result.md +0 -249
- package/docs/state.md +0 -102
- package/docs/test.md +0 -172
- package/docs/utilities.md +0 -109
- 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-
|
|
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
|
|
59
|
+
function classnames(res, classes) {
|
|
60
60
|
if (classes === void 0) { classes = {}; }
|
|
61
61
|
if (!res || !isFunction(res.hasErrors)) {
|
|
62
|
-
throwError("
|
|
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 =
|
|
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))}("
|
|
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('
|
|
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("
|
|
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
|
|
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('
|
|
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
|
-
|
|
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
|
-
//
|
|
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
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
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(
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
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(
|
|
1679
|
+
return addTo(0 /* ONLY */, 'tests', item);
|
|
1656
1680
|
}
|
|
1657
|
-
only.group = function (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(
|
|
1688
|
+
return addTo(1 /* SKIP */, 'tests', item);
|
|
1663
1689
|
}
|
|
1664
|
-
skip.group = function (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] =
|
|
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
|
|
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
|
|
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-
|
|
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
|
|
57
|
+
function classnames(res, classes) {
|
|
58
58
|
if (classes === void 0) { classes = {}; }
|
|
59
59
|
if (!res || !isFunction(res.hasErrors)) {
|
|
60
|
-
throwError("
|
|
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
|
|
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,"
|
|
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('
|
|
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
|
|
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)}))}}
|