vest 4.5.0 → 4.6.0

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 (34) hide show
  1. package/dist/cjs/enforce/compose.development.js +1 -1
  2. package/dist/cjs/enforce/compose.production.js +1 -1
  3. package/dist/cjs/enforce/compounds.development.js +1 -1
  4. package/dist/cjs/enforce/compounds.production.js +1 -1
  5. package/dist/cjs/enforce/schema.development.js +1 -1
  6. package/dist/cjs/enforce/schema.production.js +1 -1
  7. package/dist/cjs/vest.development.js +145 -94
  8. package/dist/cjs/vest.production.js +1 -1
  9. package/dist/es/enforce/compose.development.js +1 -1
  10. package/dist/es/enforce/compose.production.js +1 -1
  11. package/dist/es/enforce/compounds.development.js +1 -1
  12. package/dist/es/enforce/compounds.production.js +1 -1
  13. package/dist/es/enforce/schema.development.js +1 -1
  14. package/dist/es/enforce/schema.production.js +1 -1
  15. package/dist/es/vest.development.js +146 -95
  16. package/dist/es/vest.production.js +1 -1
  17. package/dist/umd/classnames.development.js +11 -59
  18. package/dist/umd/classnames.production.js +1 -1
  19. package/dist/umd/enforce/compose.development.js +9 -682
  20. package/dist/umd/enforce/compose.production.js +1 -1
  21. package/dist/umd/enforce/compounds.development.js +17 -684
  22. package/dist/umd/enforce/compounds.production.js +1 -1
  23. package/dist/umd/enforce/schema.development.js +12 -685
  24. package/dist/umd/enforce/schema.production.js +1 -1
  25. package/dist/umd/parser.development.js +10 -58
  26. package/dist/umd/parser.production.js +1 -1
  27. package/dist/umd/promisify.development.js +5 -31
  28. package/dist/umd/promisify.production.js +1 -1
  29. package/dist/umd/vest.development.js +255 -997
  30. package/dist/umd/vest.production.js +1 -1
  31. package/package.json +3 -3
  32. package/types/enforce/compounds.d.ts +6 -8
  33. package/types/enforce/schema.d.ts +5 -4
  34. package/types/vest.d.ts +35 -22
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var vestUtils = require('vest-utils');
4
3
  var n4s = require('n4s');
4
+ var vestUtils = require('vest-utils');
5
5
 
6
6
  function ruleReturn(pass, message) {
7
7
  var output = { pass: pass };
@@ -1 +1 @@
1
- "use strict";var n=require("vest-utils"),t=require("n4s");function r(n,t){return n={pass:n},t&&(n.message=t),n}function u(t){return n.defaultTo(t,r(!0))}function e(n,t){try{return n.run(t)}catch(n){return r(!1)}}module.exports=function(){function r(r){return t.ctx.run({value:r},(function(){return u(n.mapFirst(s,(function(n,t){t(!(n=e(n,r)).pass,n)})))}))}for(var s=[],i=0;i<arguments.length;i++)s[i]=arguments[i];return n.assign((function(t){t=r(t),n.invariant(t.pass,n.StringObject(t.message))}),{run:r,test:function(n){return r(n).pass}})};
1
+ "use strict";var n=require("n4s"),t=require("vest-utils");function r(n,t){return n={pass:n},t&&(n.message=t),n}function u(n){return t.defaultTo(n,r(!0))}function e(n,t){try{return n.run(t)}catch(n){return r(!1)}}module.exports=function(){function r(r){return n.ctx.run({value:r},(function(){return u(t.mapFirst(s,(function(n,t){t(!(n=e(n,r)).pass,n)})))}))}for(var s=[],i=0;i<arguments.length;i++)s[i]=arguments[i];return t.assign((function(n){n=r(n),t.invariant(n.pass,t.StringObject(n.message))}),{run:r,test:function(n){return r(n).pass}})};
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var vestUtils = require('vest-utils');
4
3
  var n4s = require('n4s');
4
+ var vestUtils = require('vest-utils');
5
5
 
6
6
  function ruleReturn(pass, message) {
7
7
  var output = { pass: pass };
@@ -1 +1 @@
1
- "use strict";var n=require("vest-utils"),r=require("n4s");function t(n,r){return n={pass:n},r&&(n.message=r),n}function e(){return t(!1)}function u(r){return n.defaultTo(r,e())}function f(r){return n.defaultTo(r,t(!0))}function o(n,r){try{return n.run(r)}catch(n){return e()}}function i(n,r){return n===r}n.bindNot(i);r.enforce.extend({allOf:function(r){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return f(n.mapFirst(t,(function(n,t){t(!(n=o(n,r)).pass,n)})))},anyOf:function(r){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return u(n.mapFirst(t,(function(n,t){t((n=o(n,r)).pass,n)})))},noneOf:function(r){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return f(n.mapFirst(t,(function(n,t){t((n=o(n,r)).pass,e())})))},oneOf:function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];var f=0;return e.some((function(t){if(o(t,r).pass&&f++,n.greaterThan(f,1))return!1})),t(i(f,1))}});
1
+ "use strict";var n=require("n4s"),r=require("vest-utils");function t(n,r){return n={pass:n},r&&(n.message=r),n}function e(){return t(!1)}function u(n){return r.defaultTo(n,e())}function f(n){return r.defaultTo(n,t(!0))}function o(n,r){try{return n.run(r)}catch(n){return e()}}function i(n,r){return n===r}r.bindNot(i);n.enforce.extend({allOf:function(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return f(r.mapFirst(t,(function(r,t){t(!(r=o(r,n)).pass,r)})))},anyOf:function(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return u(r.mapFirst(t,(function(r,t){t((r=o(r,n)).pass,r)})))},noneOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return f(r.mapFirst(t,(function(r,t){t((r=o(r,n)).pass,e())})))},oneOf:function(n){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];var f=0;return e.some((function(t){if(o(t,n).pass&&f++,r.greaterThan(f,1))return!1})),t(i(f,1))}});
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vestUtils = require('vest-utils');
6
5
  var n4s = require('n4s');
6
+ var vestUtils = require('vest-utils');
7
7
 
8
8
  function ruleReturn(pass, message) {
9
9
  var output = { pass: pass };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("vest-utils"),n=require("n4s");function e(r,n){return r={pass:r},n&&(r.message=n),r}function t(){return e(!1)}function u(){return e(!0)}function i(r,n){try{return r.run(n)}catch(r){return t()}}function o(r,e){var t,o=function(t){var u=r[t],o=e[t];if(!(t=n.ctx.run({value:u,set:!0,meta:{key:t}},(function(){return i(o,u)}))).pass)return{value:t}};for(t in e){var a=o(t);if("object"==typeof a)return a.value}return u()}n.enforce.extend({isArrayOf:function(e,t){return function(n){return r.defaultTo(n,u())}(r.mapFirst(e,(function(r,e,u){e(!(u=n.ctx.run({value:r,set:!0,meta:{index:u}},(function(){return i(t,r)}))).pass,u)})))},loose:o,optional:function(n,e){return r.isNullish(n)?u():i(e,n)},shape:function(n,e){var i=o(n,e);if(!i.pass)return i;for(var a in n)if(!r.hasOwnProperty(e,a))return t();return u()}}),exports.partial=function(r){var e,t={};for(e in r)t[e]=n.enforce.optional(r[e]);return t};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("n4s"),n=require("vest-utils");function e(r,n){return r={pass:r},n&&(r.message=n),r}function t(){return e(!1)}function u(){return e(!0)}function i(r,n){try{return r.run(n)}catch(r){return t()}}function o(n,e){var t,o=function(t){var u=n[t],o=e[t];if(!(t=r.ctx.run({value:u,set:!0,meta:{key:t}},(function(){return i(o,u)}))).pass)return{value:t}};for(t in e){var a=o(t);if("object"==typeof a)return a.value}return u()}r.enforce.extend({isArrayOf:function(e,t){return function(r){return n.defaultTo(r,u())}(n.mapFirst(e,(function(n,e,u){e(!(u=r.ctx.run({value:n,set:!0,meta:{index:u}},(function(){return i(t,n)}))).pass,u)})))},loose:o,optional:function(r,e){return n.isNullish(r)?u():i(e,r)},shape:function(r,e){var i=o(r,e);if(!i.pass)return i;for(var a in r)if(!n.hasOwnProperty(e,a))return t();return u()}}),exports.partial=function(n){var e,t={};for(e in n)t[e]=r.enforce.optional(n[e]);return t};
@@ -92,29 +92,22 @@ function useTestCallbacks() {
92
92
  return useStateRef().testCallbacks();
93
93
  }
94
94
  // OPTIONAL FIELDS
95
- function useOptionalField(fieldName) {
96
- var optionalFields = useOptionalFields()[0];
97
- return optionalFields[fieldName];
98
- }
99
95
  function useOptionalFields() {
100
96
  return useStateRef().optionalFields();
101
97
  }
102
98
  function useSetOptionalField(fieldName, setter) {
103
99
  var _a = useOptionalFields(), setOptionalFields = _a[1];
104
- setOptionalFields(function (optionalFields) {
100
+ setOptionalFields(function (prev) {
105
101
  var _a;
106
- return vestUtils.assign(optionalFields, (_a = {},
107
- _a[fieldName] = vestUtils.optionalFunctionValue(setter, optionalFields[fieldName]),
102
+ return vestUtils.assign(prev, (_a = {},
103
+ _a[fieldName] = vestUtils.assign({}, prev[fieldName], setter(prev[fieldName])),
108
104
  _a));
109
105
  });
110
106
  }
111
- function useOptionalFieldApplied(fieldName) {
112
- var _a;
113
- return (_a = useOptionalField(fieldName)) === null || _a === void 0 ? void 0 : _a[1];
114
- }
115
- function useOptionalFieldConfig(fieldName) {
107
+ function useOptionalField(fieldName) {
116
108
  var _a;
117
- return (_a = useOptionalField(fieldName)) === null || _a === void 0 ? void 0 : _a[0];
109
+ var optionalFields = useOptionalFields()[0];
110
+ return (_a = optionalFields[fieldName]) !== null && _a !== void 0 ? _a : {};
118
111
  }
119
112
  function useTestObjects() {
120
113
  return useStateRef().testObjects();
@@ -244,18 +237,9 @@ var VestTest = /** @class */ (function () {
244
237
  VestTest.prototype.valueOf = function () {
245
238
  return !this.isFailing();
246
239
  };
247
- VestTest.prototype.hasFailures = function () {
248
- return this.isFailing() || this.isWarning();
249
- };
250
- VestTest.prototype.isNonActionable = function () {
251
- return this.isSkipped() || this.isOmitted() || this.isCanceled();
252
- };
253
240
  VestTest.prototype.isPending = function () {
254
241
  return this.statusEquals(STATUS_PENDING);
255
242
  };
256
- VestTest.prototype.isTested = function () {
257
- return this.hasFailures() || this.isPassing();
258
- };
259
243
  VestTest.prototype.isOmitted = function () {
260
244
  return this.statusEquals(STATUS_OMITTED);
261
245
  };
@@ -277,6 +261,20 @@ var VestTest = /** @class */ (function () {
277
261
  VestTest.prototype.isWarning = function () {
278
262
  return this.statusEquals(STATUS_WARNING);
279
263
  };
264
+ VestTest.prototype.hasFailures = function () {
265
+ return this.isFailing() || this.isWarning();
266
+ };
267
+ VestTest.prototype.isNonActionable = function () {
268
+ return this.isSkipped() || this.isOmitted() || this.isCanceled();
269
+ };
270
+ VestTest.prototype.isTested = function () {
271
+ return this.hasFailures() || this.isPassing();
272
+ };
273
+ VestTest.prototype.awaitsResolution = function () {
274
+ // Is the test in a state where it can still be run, or complete running
275
+ // and its final status is indeterminate?
276
+ return this.isSkipped() || this.isUntested() || this.isPending();
277
+ };
280
278
  VestTest.prototype.statusEquals = function (status) {
281
279
  return this.status === status;
282
280
  };
@@ -516,26 +514,85 @@ function hasFailuresByTestObject(testObject, severityKey, fieldName) {
516
514
  return true;
517
515
  }
518
516
 
517
+ /**
518
+ * Marks a field as optional, either just by name, or by a given condition.
519
+ *
520
+ * @example
521
+ *
522
+ * optional('field_name');
523
+ *
524
+ * optional({
525
+ * username: () => allowUsernameEmpty,
526
+ * });
527
+ */
528
+ function optional(optionals) {
529
+ // There are two types of optional field declarations:
530
+ // 1. Delayed: A string, which is the name of the field to be optional.
531
+ // We will only determine whether to omit the test after the suite is done running
532
+ //
533
+ // 2. Immediate: Either a boolean or a function, which is used to determine
534
+ // if the field should be optional.
535
+ // Delayed case (field name)
536
+ if (vestUtils.isArray(optionals) || vestUtils.isStringValue(optionals)) {
537
+ vestUtils.asArray(optionals).forEach(function (optionalField) {
538
+ useSetOptionalField(optionalField, function () { return ({
539
+ type: OptionalFieldTypes.Delayed,
540
+ applied: false,
541
+ rule: null
542
+ }); });
543
+ });
544
+ }
545
+ else {
546
+ var _loop_1 = function (field) {
547
+ var value = optionals[field];
548
+ useSetOptionalField(field, function () { return ({
549
+ type: OptionalFieldTypes.Immediate,
550
+ rule: value,
551
+ applied: vestUtils.optionalFunctionValue(value)
552
+ }); });
553
+ };
554
+ // Immediately case (function or boolean)
555
+ for (var field in optionals) {
556
+ _loop_1(field);
557
+ }
558
+ }
559
+ }
560
+ function optionalFiedIsApplied(fieldName) {
561
+ if (!fieldName) {
562
+ return false;
563
+ }
564
+ return useOptionalField(fieldName).applied;
565
+ }
566
+ var OptionalFieldTypes;
567
+ (function (OptionalFieldTypes) {
568
+ OptionalFieldTypes[OptionalFieldTypes["Immediate"] = 0] = "Immediate";
569
+ OptionalFieldTypes[OptionalFieldTypes["Delayed"] = 1] = "Delayed";
570
+ })(OptionalFieldTypes || (OptionalFieldTypes = {}));
571
+
519
572
  // eslint-disable-next-line max-statements, complexity
520
573
  function shouldAddValidProperty(fieldName) {
521
- if (fieldIsOmitted(fieldName)) {
574
+ // Is the field optional, and the optional condition is applied
575
+ if (optionalFiedIsApplied(fieldName)) {
522
576
  return true;
523
577
  }
524
- if (hasErrorsByTestObjects(fieldName)) {
525
- return false;
526
- }
527
578
  var testObjects = useTestsFlat();
579
+ // Are there no tests?
528
580
  if (vestUtils.isEmpty(testObjects)) {
529
581
  return false;
530
582
  }
583
+ // Does the field have any tests with errors?
584
+ if (hasErrorsByTestObjects(fieldName)) {
585
+ return false;
586
+ }
531
587
  // Does the given field have any pending tests that are not optional?
532
588
  if (hasNonOptionalIncomplete(fieldName)) {
533
589
  return false;
534
590
  }
591
+ // Does the field have no missing tests?
535
592
  return noMissingTests(fieldName);
536
593
  }
537
594
  function shouldAddValidPropertyInGroup(groupName, fieldName) {
538
- if (fieldIsOmitted(fieldName)) {
595
+ if (optionalFiedIsApplied(fieldName)) {
539
596
  return true;
540
597
  }
541
598
  if (hasGroupFailuresByTestObjects(Severity.ERRORS, groupName, fieldName)) {
@@ -547,16 +604,10 @@ function shouldAddValidPropertyInGroup(groupName, fieldName) {
547
604
  }
548
605
  return noMissingTestsByGroup(groupName, fieldName);
549
606
  }
550
- function fieldIsOmitted(fieldName) {
551
- if (!fieldName) {
552
- return false;
553
- }
554
- return useOptionalFieldApplied(fieldName) === true;
555
- }
556
607
  // Does the given field have any pending tests that are not optional?
557
608
  function hasNonOptionalIncomplete(fieldName) {
558
609
  return vestUtils.isNotEmpty(useAllIncomplete().filter(function (testObject) {
559
- return isOptionalFieldIncomplete(testObject, fieldName);
610
+ return isTestObjectOptional(testObject, fieldName);
560
611
  }));
561
612
  }
562
613
  // Do the given group/field have any pending tests that are not optional?
@@ -565,41 +616,57 @@ function hasNonOptionalIncompleteByGroup(groupName, fieldName) {
565
616
  if (nonMatchingGroupName(testObject, groupName)) {
566
617
  return false;
567
618
  }
568
- return isOptionalFieldIncomplete(testObject, fieldName);
619
+ return isTestObjectOptional(testObject, fieldName);
569
620
  }));
570
621
  }
571
- function isOptionalFieldIncomplete(testObject, fieldName) {
622
+ function isTestObjectOptional(testObject, fieldName) {
572
623
  if (nonMatchingFieldName(testObject, fieldName)) {
573
624
  return false;
574
625
  }
575
- return useOptionalFieldConfig(testObject.fieldName) !== true;
626
+ return optionalFiedIsApplied(fieldName);
576
627
  }
628
+ // Did all of the tests for the provided field run/omit?
629
+ // This makes sure that the fields are not skipped or pending.
577
630
  function noMissingTests(fieldName) {
578
631
  var testObjects = useTestsFlat();
579
632
  return testObjects.every(function (testObject) {
580
- if (nonMatchingFieldName(testObject, fieldName)) {
581
- return true;
582
- }
583
- return missingTestsLogic(testObject, fieldName);
633
+ return noMissingTestsLogic(testObject, fieldName);
584
634
  });
585
635
  }
636
+ // Does the group have no missing tests?
586
637
  function noMissingTestsByGroup(groupName, fieldName) {
587
638
  var testObjects = useTestsFlat();
588
639
  return testObjects.every(function (testObject) {
589
640
  if (nonMatchingGroupName(testObject, groupName)) {
590
641
  return true;
591
642
  }
592
- return missingTestsLogic(testObject, fieldName);
643
+ return noMissingTestsLogic(testObject, fieldName);
593
644
  });
594
645
  }
595
- function missingTestsLogic(testObject, fieldName) {
646
+ // Does the object qualify as either tested or omitted (but not skipped!)
647
+ function noMissingTestsLogic(testObject, fieldName) {
596
648
  if (nonMatchingFieldName(testObject, fieldName)) {
597
649
  return true;
598
650
  }
599
- return (useOptionalFieldConfig(testObject.fieldName) === true ||
651
+ /**
652
+ * The reason we're checking for the optional field here and not in "omitOptionalFields"
653
+ * is because that unlike the bool/function check we do there, here it only depends on
654
+ * whether the field was tested alredy or not.
655
+ *
656
+ * We qualify the test as not missing only if it was already run, if it is omitted,
657
+ * or if it is marked as optional, even if the optional check did not apply yet -
658
+ * but the test did not reach its final state.
659
+ */
660
+ return (optionalTestAwaitsResolution(testObject) ||
600
661
  testObject.isTested() ||
601
662
  testObject.isOmitted());
602
663
  }
664
+ function optionalTestAwaitsResolution(testObject) {
665
+ // Does the test belong to an optional field,
666
+ // and the test itself is still in an indeterminate state?
667
+ return (useOptionalField(testObject.fieldName).type ===
668
+ OptionalFieldTypes.Delayed && testObject.awaitsResolution());
669
+ }
603
670
 
604
671
  /**
605
672
  * Reads the testObjects list and gets full validation result from it.
@@ -903,34 +970,48 @@ function deferDoneCallback(doneCallback, fieldName) {
903
970
  });
904
971
  }
905
972
 
973
+ /**
974
+ * This module gets triggered once the suite is done running its sync tests.
975
+ *
976
+ * It goes over all the tests in the state, and checks if they need to be omitted.
977
+ */
906
978
  function omitOptionalFields() {
907
979
  var optionalFields = useOptionalFields()[0];
980
+ // If there are no optional fields, we don't need to do anything
908
981
  if (vestUtils.isEmpty(optionalFields)) {
909
982
  return;
910
983
  }
984
+ // Create an object to store the fields that need to be omitted
911
985
  var shouldOmit = {};
912
- useSetTests(function (tests) {
913
- return vestUtils.nestedArray.transform(tests, function (testObject) {
914
- var fieldName = testObject.fieldName;
915
- if (vestUtils.hasOwnProperty(shouldOmit, fieldName)) {
916
- verifyAndOmit(testObject);
917
- }
918
- else {
919
- runOptionalConfig(testObject);
920
- }
921
- return testObject;
922
- });
986
+ // iterate over each of the tests in the state
987
+ useTestsFlat().forEach(function (testObject) {
988
+ // If we already added the current field (not this test specifically)
989
+ // no need for further checks, go and omit the test
990
+ if (vestUtils.hasOwnProperty(shouldOmit, testObject.fieldName)) {
991
+ verifyAndOmit(testObject);
992
+ }
993
+ else {
994
+ // check if the field has an optional function
995
+ // if so, run it and verify/omit the test
996
+ runOptionalConfig(testObject);
997
+ }
923
998
  });
999
+ // refresh the tests in the state so that the omitted fields are applied
1000
+ useRefreshTestObjects();
924
1001
  function verifyAndOmit(testObject) {
925
1002
  if (shouldOmit[testObject.fieldName]) {
926
1003
  testObject.omit();
927
- useSetOptionalField(testObject.fieldName, function (current) { return [current[0], true]; });
1004
+ useSetOptionalField(testObject.fieldName, function () { return ({
1005
+ applied: true
1006
+ }); });
928
1007
  }
929
1008
  }
930
1009
  function runOptionalConfig(testObject) {
931
- var optionalConfig = useOptionalFieldConfig(testObject.fieldName);
932
- if (vestUtils.isFunction(optionalConfig)) {
933
- shouldOmit[testObject.fieldName] = optionalConfig();
1010
+ // Ge the optional configuration for the given field
1011
+ var optionalConfig = useOptionalField(testObject.fieldName);
1012
+ // If the optional was set to a function or a boolean, run it and verify/omit the test
1013
+ if (optionalConfig.type === OptionalFieldTypes.Immediate) {
1014
+ shouldOmit[testObject.fieldName] = vestUtils.optionalFunctionValue(optionalConfig.rule);
934
1015
  verifyAndOmit(testObject);
935
1016
  }
936
1017
  }
@@ -1354,44 +1435,16 @@ function setMode(nextMode) {
1354
1435
  function omitWhen(conditional, callback) {
1355
1436
  isolate({ type: IsolateTypes.OMIT_WHEN }, function () {
1356
1437
  context.run({
1357
- omitted: isOmitted() ||
1438
+ omitted: inActiveOmitWhen() ||
1358
1439
  vestUtils.optionalFunctionValue(conditional, vestUtils.optionalFunctionValue(produceSuiteResult))
1359
1440
  }, function () { return callback(); });
1360
1441
  });
1361
1442
  }
1362
- function isOmitted() {
1443
+ // Checks that we're currently in an active omitWhen block
1444
+ function inActiveOmitWhen() {
1363
1445
  return !!context.useX().omitted;
1364
1446
  }
1365
1447
 
1366
- /**
1367
- * Marks a field as optional, either just by name, or by a given condition.
1368
- *
1369
- * @example
1370
- *
1371
- * optional('field_name');
1372
- *
1373
- * optional({
1374
- * username: () => allowUsernameEmpty,
1375
- * });
1376
- */
1377
- function optional(optionals) {
1378
- // When the optional is given as a string or a list of strings
1379
- // we just add them to the list of optional fields.
1380
- if (vestUtils.isArray(optionals) || vestUtils.isStringValue(optionals)) {
1381
- vestUtils.asArray(optionals).forEach(function (optionalField) {
1382
- useSetOptionalField(optionalField, [true, false]);
1383
- });
1384
- }
1385
- else {
1386
- // if it's an object, we iterate over the keys and add them to the list
1387
- var optionalFunctions = optionals;
1388
- for (var field in optionalFunctions) {
1389
- var predicate = optionalFunctions[field];
1390
- useSetOptionalField(field, [predicate, false]);
1391
- }
1392
- }
1393
- }
1394
-
1395
1448
  /******************************************************************************
1396
1449
  Copyright (c) Microsoft Corporation.
1397
1450
 
@@ -1417,8 +1470,6 @@ function __spreadArray(to, from, pack) {
1417
1470
  return to.concat(ar || Array.prototype.slice.call(from));
1418
1471
  }
1419
1472
 
1420
- vestUtils.bindNot(vestUtils.isStringValue);
1421
-
1422
1473
  function isSameProfileTest(testObject1, testObject2) {
1423
1474
  return (testObject1.fieldName === testObject2.fieldName &&
1424
1475
  testObject1.groupName === testObject2.groupName);
@@ -1581,7 +1632,7 @@ function registerPrevRunTest(testObject) {
1581
1632
  return testObject;
1582
1633
  }
1583
1634
  var prevRunTest = useTestAtCursor(testObject);
1584
- if (isOmitted()) {
1635
+ if (inActiveOmitWhen() || optionalFiedIsApplied(testObject.fieldName)) {
1585
1636
  prevRunTest.omit();
1586
1637
  cursor.next();
1587
1638
  return prevRunTest;
@@ -1682,7 +1733,7 @@ function warn() {
1682
1733
  ctx.currentTest.warn();
1683
1734
  }
1684
1735
 
1685
- var VERSION = "4.5.0";
1736
+ var VERSION = "4.6.0";
1686
1737
 
1687
1738
  Object.defineProperty(exports, 'enforce', {
1688
1739
  enumerable: true,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t,e,r=require("n4s"),i=require("vest-utils"),u=require("context");function o(){var n=0;return{current:function(){return n},next:function(){n++}}}function s(n,t){return void 0===t&&(t=[]),{cursor:o(),keys:{current:{},prev:{}},path:t,type:n}}(t=n||(n={}))[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP",function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(e||(e={}));var a=u.createContext((function(t,r){return r?null:i.assign({exclusion:{tests:{},groups:{}},inclusion:{},isolate:s(n.DEFAULT),mode:[e.ALL]},t)}));function c(){return a.useX().stateRef}function f(){return c().suiteId()[0]}function l(){return c().testCallbacks()}function p(n){return d()[0][n]}function d(){return c().optionalFields()}function v(n,t){(0,d()[1])((function(e){var r;return i.assign(e,((r={})[n]=i.optionalFunctionValue(t,e[n]),r))}))}function E(n){var t;return null===(t=p(n))||void 0===t?void 0:t[0]}function h(){return c().testObjects()}function g(){N((function(n){return n}))}function N(n){(0,h()[1])((function(t){return{prev:t.prev,current:i.asArray(n(t.current))}}))}function y(){return R().filter((function(n){return n.isPending()}))}var m,S=i.cache();function R(){var n=h()[0].current;return S([n],(function(){return i.nestedArray.flatten(n)}))}function T(n){R().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(m||(m={}));var C,A,_=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=i.seq(),this.severity=m.Error,this.status=F,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){(function(n,t){return i.isUndefined(n)&&i.isStringValue(t)})(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==L||(this.status=n)},n.prototype.warns=function(){return this.severity===m.Warning},n.prototype.setPending=function(){this.setStatus(P)},n.prototype.fail=function(){this.setStatus(this.warns()?b:I)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(k)},n.prototype.warn=function(){this.severity=m.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(O)},n.prototype.cancel=function(){this.setStatus(x),g()},n.prototype.reset=function(){this.status=F,g()},n.prototype.omit=function(){this.setStatus(L)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(P)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(L)},n.prototype.isUntested=function(){return this.statusEquals(F)},n.prototype.isFailing=function(){return this.statusEquals(I)},n.prototype.isCanceled=function(){return this.statusEquals(x)},n.prototype.isSkipped=function(){return this.statusEquals(O)},n.prototype.isPassing=function(){return this.statusEquals(k)},n.prototype.isWarning=function(){return this.statusEquals(b)},n.prototype.statusEquals=function(n){return this.status===n},n}(),F="UNTESTED",O="SKIPPED",I="FAILED",b="WARNING",k="PASSING",P="PENDING",x="CANCELED",L="OMITTED";function U(n){function t(n,t,u){return r.references.push(),e(n,i.optionalFunctionValue(t,u)),function(){return[r.references[n],function(t){return e(n,i.optionalFunctionValue(t,r.references[n]))}]}}function e(t,e){var o=r.references[t];r.references[t]=e,t=u[t][1],i.isFunction(t)&&t(e,o),i.isFunction(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function W(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function V(){return a.useX().isolate}function G(){var n=V();return n.path.concat(n.cursor.current())}function w(){return V().cursor}function D(t,e){t=void 0===(t=t.type)?n.DEFAULT:t,i.invariant(i.isFunction(e));var r=s(t,G());return t=a.run({isolate:r},(function(){return r.keys.prev=function(){var n=h()[0].prev;return i.asArray(i.nestedArray.getCurrent(n,G())).reduce((function(n,t){return t instanceof _&&!i.isNullish(t.key)?(n[t.key]=t,n):n}),{})}(),N((function(n){return i.nestedArray.setValueAtPath(n,r.path,[])})),e()})),w().next(),t}function q(n){return n===C.ERRORS?A.ERROR_COUNT:A.WARN_COUNT}function X(n,t){return!!t&&!H(n,t)}function H(n,t){return!(!t||n.fieldName!==t)}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(C||(C={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(A||(A={}));var K=i.bindNot((function(n,t){return n.groupName===t}));function M(n){return function(n,t){return R().some((function(e){return B(e,n,t)}))}(C.ERRORS,n)}function B(n,t,e){return!(!n.hasFailures()||X(n,e)||function(n,t){return i.either(n===C.WARNINGS,t.warns())}(t,n))}function j(n){if(J(n))return!0;if(M(n))return!1;var t=R();return!i.isEmpty(t)&&!function(n){return i.isNotEmpty(y().filter((function(t){return z(t,n)})))}(n)&&function(n){return R().every((function(t){return!!X(t,n)||Q(t,n)}))}(n)}function Y(n,t){return!!J(t)||!function(n,t,e){return R().some((function(r){return!K(r,t)&&B(r,n,e)}))}(C.ERRORS,n,t)&&!function(n,t){return i.isNotEmpty(y().filter((function(e){return!K(e,n)&&z(e,t)})))}(n,t)&&function(n,t){return R().every((function(e){return!!K(e,n)||Q(e,t)}))}(n,t)}function J(n){return!!n&&!0===function(n){var t;return null===(t=p(n))||void 0===t?void 0:t[1]}(n)}function z(n,t){return!X(n,t)&&!0!==E(n.fieldName)}function Q(n,t){return!!X(n,t)||(!0===E(n.fieldName)||n.isTested()||n.isOmitted())}function Z(){var n=R(),t=i.assign({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){return function(n,t){n[t.fieldName]=$(n,t),n[t.fieldName].valid=!1!==n[t.fieldName].valid&&j(t.fieldName)}(n.tests,t),function(n,t){var e=t.groupName;e&&(n[e]=n[e]||{},n[e][t.fieldName]=$(n[e],t),n[e][t.fieldName].valid=!1!==n[e][t.fieldName].valid&&Y(e,t.fieldName))}(n.groups,t),n}),t),t.valid=j(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}function $(n,t){function e(n){var t=q(n);o[t]++,u&&(o[n]=(o[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||i.assign({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(C.ERRORS):t.isWarning()&&e(C.WARNINGS)),o}function nn(n,t,e){return e?function(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}(n,t,e):function(n,t){var e,r={},u=q(t);for(e in n)i.isPositive(n[e][u])&&(r[e]=n[e][t]||[]);return r}(n,t)}function tn(n){return{getErrors:function(t){return en(n,C.ERRORS,t)},getErrorsByGroup:function(t,e){return rn(n,C.ERRORS,t,e)},getWarnings:function(t){return en(n,C.WARNINGS,t)},getWarningsByGroup:function(t,e){return rn(n,C.WARNINGS,t,e)},hasErrors:function(t){return sn(n,A.ERROR_COUNT,t)},hasErrorsByGroup:function(t,e){return on(n,A.ERROR_COUNT,t,e)},hasWarnings:function(t){return sn(n,A.WARN_COUNT,t)},hasWarningsByGroup:function(t,e){return on(n,A.WARN_COUNT,t,e)},isValid:function(t){var e;return t?!(null===(e=n.tests[t])||void 0===e||!e.valid):n.valid},isValidByGroup:function(t,e){if(!(t=n.groups[t]))return!1;if(e)return un(t,e);for(var r in t)if(!un(t,r))return!1;return!0}}}function en(n,t,e){return nn(n.tests,t,e)}function rn(n,t,e,r){return nn(n.groups[e],t,r)}function un(n,t){var e;return!(null===(e=n[t])||void 0===e||!e.valid)}function on(n,t,e,r){var u,o;if(!(n=n.groups[e]))return!1;if(r)return i.isPositive(null===(u=n[r])||void 0===u?void 0:u[t]);for(var s in n)if(i.isPositive(null===(o=n[s])||void 0===o?void 0:o[t]))return!0;return!1}function sn(n,t,e){var r;return n=e?null===(r=n.tests[e])||void 0===r?void 0:r[t]:n[t]||0,i.isPositive(n)}var an=i.cache(1);function cn(){var n=R(),t={stateRef:c()};return an([n],a.bind(t,(function(){var n=Z(),t=c().suiteName()[0];return i.assign(n,tn(n),{suiteName:t})})))}function fn(n){var t=y();return!i.isEmpty(t)&&(!n||t.some((function(t){return H(t,n)})))}var ln=i.cache(20);function pn(){var n=R(),t={stateRef:c()};return ln([n],a.bind(t,(function(){return i.assign({},cn(),{done:a.bind(t,hn)})})))}function dn(n,t,e){var r;return!!(!i.isFunction(n)||t&&i.numberEquals(null===(r=e.tests[t])||void 0===r?void 0:r.testCount,0))}function vn(n){return!(fn()&&(!n||fn(n)))}var En,hn=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=pn(),dn(e,n,t))return t;var r=function(){return e(cn())};return vn(n)?(r(),t):(gn(r,n),t)};function gn(n,t){(0,l()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Nn(){var n=i.bus.createBus();return n.on(En.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=l()[0].fieldCallbacks;n&&!fn(n)&&i.isArray(t[n])&&i.callEach(t[n])}(t.fieldName),fn()||n.emit(En.ALL_RUNNING_TESTS_FINISHED))})),n.on(En.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){e[n.fieldName]&&(n.omit(),v(n.fieldName,(function(n){return[n[0],!0]})))}var t=d()[0];if(!i.isEmpty(t)){var e={};N((function(t){return i.nestedArray.transform(t,(function(t){if(i.hasOwnProperty(e,t.fieldName))n(t);else{var r=E(t.fieldName);i.isFunction(r)&&(e[t.fieldName]=r(),n(t))}return t}))}))}}()})),n.on(En.ALL_RUNNING_TESTS_FINISHED,(function(){!function(){var n=l()[0].doneCallbacks;i.callEach(n)}()})),n.on(En.REMOVE_FIELD,(function(n){T((function(t){H(t,n)&&(t.cancel(),function(n){N((function(t){return i.nestedArray.transform(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(En.RESET_FIELD,(function(n){T((function(t){H(t,n)&&t.reset()}))})),n}function yn(){var n=a.useX();return i.invariant(n.bus),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(En||(En={}));function mn(){return!!a.useX().skipped}function Sn(n){return Cn(0,"tests",n)}function Rn(n){return Cn(1,"tests",n)}function Tn(n){var t=n.fieldName;if(n=n.groupName,mn())return!0;var e=a.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,o=u[t];if(!1===o)return!0;if(o=!0===o,n){if(function(n){var t=a.useX().exclusion.groups;return i.hasOwnProperty(t,n)?!1===t[n]:_n()}(n))return!0;if(!0===r.groups[n])return!o&&(!!An(u)||!1===u[t])}return!!function(n){return!!_n()&&!n}(n)||!o&&(!!An(u)&&!i.optionalFunctionValue(e[t]))}function Cn(n,t,e){var r=a.useX("hook called outside of a running suite.");e&&i.asArray(e).forEach((function(e){i.isStringValue(e)&&(r.exclusion[t][e]=0===n)}))}function An(n){for(var t in n)if(!0===n[t])return!0;return!1}function _n(){var n,t=a.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function Fn(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function On(n){return function(n){return a.useX().mode[0]===n}(e.EAGER)&&M(n.fieldName)}function In(){return!!a.useX().omitted}function bn(n,t,e){if(e||2===arguments.length)for(var r,i=0,u=t.length;i<u;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return n.concat(r||Array.prototype.slice.call(t))}function kn(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function Pn(n){var t=n.asyncTest,e=n.message;if(i.isPromise(t)){var r=yn().emit,u=c(),o=a.bind({stateRef:u},(function(){g(),r(En.TEST_COMPLETED,n)}));u=a.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=i.isStringValue(t)?t:e,n.fail(),o())}));try{t.then(o,u)}catch(n){u()}}}function xn(n){var t=yn(),e=function(n){return a.run({currentTest:n},(function(){return n.run()}))}(n);try{i.isPromise(e)?(n.asyncTest=e,n.setPending(),Pn(n)):t.emit(En.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}function Ln(t){var e=h()[0].prev;return i.isEmpty(e)?(Un(t),t):(e=function(n){var t=G();return i.nestedArray.valueAtPath(n,t)}(e),i.isNullish(t.key)?(function(n,t){return i.isNotEmpty(n)&&!kn(n,t)}(e,t)&&(function(t,e){V().type===n.EACH||i.deferThrow("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(e.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'))}(e,t),function(){var n=w().current();N((function(t){return t.splice(n),t}))}(),e=null),Un(t=i.defaultTo(e,t)),t):(Un(t=function(n,t){var e=function(n){return V().keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=V().keys.current;i.isNullish(e[n])?e[n]=t:i.deferThrow('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(n,t),t}(t.key,t)),t))}function Un(n){var t=G();N((function(e){return i.nestedArray.setValueAtPath(e,t,n)}))}function Wn(n){var t=w();if(On(n))return n.skip(),Ln(n),t.next(),n;var e=Ln(n);return In()?(e.omit(),t.next(),e):Tn(n)?(e.skip(mn()),t.next(),e):(function(n,t){t!==n&&kn(n,t)&&n.isPending()&&n.cancel()}(e,n),Un(n),function(n){n.isUntested()?xn(n):i.isPromise(n.asyncTest)&&(n.setPending(),Pn(n))}(n),t.next(),n)}function Vn(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=i.isFunction(t[1])?t:bn([void 0],t,!0);t=r[0],e=r[1],r=r[2],i.invariant(i.isStringValue(n),wn("fieldName","string")),i.invariant(i.isFunction(e),wn("Test callback","function"));var u=a.useX();return Wn(t=new _(n,e,{message:t,groupName:u.groupName,key:r}))}Sn.group=function(n){return Cn(0,"groups",n)},Rn.group=function(n){return Cn(1,"groups",n)},i.bindNot(i.isStringValue);var Gn=i.assign(Vn,{memo:function(n){var t=i.cache(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=w().current();var o=(r=r.reverse())[0],s=r[1],a=r[2];return u=[f(),e,u].concat(o),r=t.get(u),i.isNull(r)?t(u,(function(){return n(e,a,s)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,a,s)}))):Wn(r[1])}}(Vn)});function wn(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return r.enforce}}),exports.VERSION="4.5.0",exports.context=a,exports.create=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=(t=t.reverse())[0];t=t[1],i.invariant(i.isFunction(r),"vest.create: Expected callback to be a function.");var u=Nn(),o=U();return t={stateRef:W(o,{suiteId:i.seq(),suiteName:t}),bus:u},i.assign(a.bind(t,(function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return o.reset(),D({type:n.SUITE},(function(){r.apply(void 0,t)})),u.emit(En.SUITE_CALLBACK_DONE_RUNNING),pn()})),{get:a.bind(t,cn),remove:a.bind(t,(function(n){u.emit(En.REMOVE_FIELD,n)})),reset:o.reset,resetField:a.bind(t,(function(n){u.emit(En.RESET_FIELD,n)}))})},exports.each=function(t,e){i.invariant(i.isFunction(e),"each callback must be a function"),D({type:n.EACH},(function(){t.forEach((function(n,t){e(n,t)}))}))},exports.eager=function(){!function(n){a.useX().mode[0]=n}(e.EAGER)},exports.group=function(t,e){i.invariant(i.isStringValue(t),Fn("name must be a string")),i.invariant(i.isFunction(e),Fn("callback must be a function")),D({type:n.GROUP},(function(){a.run({groupName:t},e)}))},exports.include=function(n){var t=a.useX(),e=t.inclusion;return t=t.exclusion,i.invariant(i.isStringValue(n)),e[n]=i.defaultTo(t.tests[n],!0),{when:function(t){var e=a.useX(),r=e.exclusion;e.inclusion[n]=function(){return i.hasOwnProperty(r.tests,n)?i.defaultTo(r.tests[n],!0):i.isStringValue(t)?!!r.tests[t]:i.optionalFunctionValue(t,i.optionalFunctionValue(cn))}}}},exports.omitWhen=function(t,e){D({type:n.OMIT_WHEN},(function(){a.run({omitted:In()||i.optionalFunctionValue(t,i.optionalFunctionValue(cn))},(function(){return e()}))}))},exports.only=Sn,exports.optional=function(n){if(i.isArray(n)||i.isStringValue(n))i.asArray(n).forEach((function(n){v(n,[!0,!1])}));else for(var t in n)v(t,[n[t],!1])},exports.skip=Rn,exports.skipWhen=function(t,e){D({type:n.SKIP_WHEN},(function(){a.run({skipped:mn()||i.optionalFunctionValue(t,i.optionalFunctionValue(cn))},(function(){return e()}))}))},exports.suiteSelectors=tn,exports.test=Gn,exports.warn=function(){var n=a.useX("warn hook called outside of a running suite.");i.invariant(n.currentTest,"warn called outside of a test."),n.currentTest.warn()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t,e,r=require("n4s"),i=require("vest-utils"),u=require("context");function o(){var n=0;return{current:function(){return n},next:function(){n++}}}function s(n,t){return void 0===t&&(t=[]),{cursor:o(),keys:{current:{},prev:{}},path:t,type:n}}(t=n||(n={}))[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP",function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(e||(e={}));var a=u.createContext((function(t,r){return r?null:i.assign({exclusion:{tests:{},groups:{}},inclusion:{},isolate:s(n.DEFAULT),mode:[e.ALL]},t)}));function c(){return a.useX().stateRef}function f(){return c().suiteId()[0]}function l(){return c().testCallbacks()}function p(){return c().optionalFields()}function d(n,t){(0,p()[1])((function(e){var r;return i.assign(e,((r={})[n]=i.assign({},e[n],t(e[n])),r))}))}function v(n){var t;return null!==(t=p()[0][n])&&void 0!==t?t:{}}function E(){return c().testObjects()}function h(){g((function(n){return n}))}function g(n){(0,E()[1])((function(t){return{prev:t.prev,current:i.asArray(n(t.current))}}))}function y(){return R().filter((function(n){return n.isPending()}))}var N,m=i.cache();function R(){var n=E()[0].current;return m([n],(function(){return i.nestedArray.flatten(n)}))}function S(n){R().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(N||(N={}));var T,C,A=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=i.seq(),this.severity=N.Error,this.status=_,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){(function(n,t){return i.isUndefined(n)&&i.isStringValue(t)})(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==x||(this.status=n)},n.prototype.warns=function(){return this.severity===N.Warning},n.prototype.setPending=function(){this.setStatus(k)},n.prototype.fail=function(){this.setStatus(this.warns()?O:F)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(b)},n.prototype.warn=function(){this.severity=N.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(I)},n.prototype.cancel=function(){this.setStatus(P),h()},n.prototype.reset=function(){this.status=_,h()},n.prototype.omit=function(){this.setStatus(x)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.isPending=function(){return this.statusEquals(k)},n.prototype.isOmitted=function(){return this.statusEquals(x)},n.prototype.isUntested=function(){return this.statusEquals(_)},n.prototype.isFailing=function(){return this.statusEquals(F)},n.prototype.isCanceled=function(){return this.statusEquals(P)},n.prototype.isSkipped=function(){return this.statusEquals(I)},n.prototype.isPassing=function(){return this.statusEquals(b)},n.prototype.isWarning=function(){return this.statusEquals(O)},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},n.prototype.statusEquals=function(n){return this.status===n},n}(),_="UNTESTED",I="SKIPPED",F="FAILED",O="WARNING",b="PASSING",k="PENDING",P="CANCELED",x="OMITTED";function L(n){function t(n,t,u){return r.references.push(),e(n,i.optionalFunctionValue(t,u)),function(){return[r.references[n],function(t){return e(n,i.optionalFunctionValue(t,r.references[n]))}]}}function e(t,e){var o=r.references[t];r.references[t]=e,t=u[t][1],i.isFunction(t)&&t(e,o),i.isFunction(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function U(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function D(){return a.useX().isolate}function W(){var n=D();return n.path.concat(n.cursor.current())}function V(){return D().cursor}function w(t,e){t=void 0===(t=t.type)?n.DEFAULT:t,i.invariant(i.isFunction(e));var r=s(t,W());return t=a.run({isolate:r},(function(){return r.keys.prev=function(){var n=E()[0].prev;return i.asArray(i.nestedArray.getCurrent(n,W())).reduce((function(n,t){return t instanceof A&&!i.isNullish(t.key)?(n[t.key]=t,n):n}),{})}(),g((function(n){return i.nestedArray.setValueAtPath(n,r.path,[])})),e()})),V().next(),t}function G(n){return n===T.ERRORS?C.ERROR_COUNT:C.WARN_COUNT}function q(n,t){return!!t&&!X(n,t)}function X(n,t){return!(!t||n.fieldName!==t)}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(T||(T={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(C||(C={}));var H,K=i.bindNot((function(n,t){return n.groupName===t}));function M(n){return function(n,t){return R().some((function(e){return B(e,n,t)}))}(T.ERRORS,n)}function B(n,t,e){return!(!n.hasFailures()||q(n,e)||function(n,t){return i.either(n===T.WARNINGS,t.warns())}(t,n))}function j(n){return!!n&&v(n).applied}function Y(n){if(j(n))return!0;var t=R();return!(i.isEmpty(t)||M(n)||function(n){return i.isNotEmpty(y().filter((function(t){return z(t,n)})))}(n))&&function(n){return R().every((function(t){return Q(t,n)}))}(n)}function J(n,t){return!!j(t)||!function(n,t,e){return R().some((function(r){return!K(r,t)&&B(r,n,e)}))}(T.ERRORS,n,t)&&!function(n,t){return i.isNotEmpty(y().filter((function(e){return!K(e,n)&&z(e,t)})))}(n,t)&&function(n,t){return R().every((function(e){return!!K(e,n)||Q(e,t)}))}(n,t)}function z(n,t){return!q(n,t)&&j(t)}function Q(n,t){return!!q(n,t)||(function(n){return v(n.fieldName).type===H.Delayed&&n.awaitsResolution()}(n)||n.isTested()||n.isOmitted())}function Z(){var n=R(),t=i.assign({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){return function(n,t){n[t.fieldName]=$(n,t),n[t.fieldName].valid=!1!==n[t.fieldName].valid&&Y(t.fieldName)}(n.tests,t),function(n,t){var e=t.groupName;e&&(n[e]=n[e]||{},n[e][t.fieldName]=$(n[e],t),n[e][t.fieldName].valid=!1!==n[e][t.fieldName].valid&&J(e,t.fieldName))}(n.groups,t),n}),t),t.valid=Y(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}function $(n,t){function e(n){var t=G(n);o[t]++,u&&(o[n]=(o[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||i.assign({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(T.ERRORS):t.isWarning()&&e(T.WARNINGS)),o}function nn(n,t,e){return e?function(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}(n,t,e):function(n,t){var e,r={},u=G(t);for(e in n)i.isPositive(n[e][u])&&(r[e]=n[e][t]||[]);return r}(n,t)}function tn(n){return{getErrors:function(t){return en(n,T.ERRORS,t)},getErrorsByGroup:function(t,e){return rn(n,T.ERRORS,t,e)},getWarnings:function(t){return en(n,T.WARNINGS,t)},getWarningsByGroup:function(t,e){return rn(n,T.WARNINGS,t,e)},hasErrors:function(t){return sn(n,C.ERROR_COUNT,t)},hasErrorsByGroup:function(t,e){return on(n,C.ERROR_COUNT,t,e)},hasWarnings:function(t){return sn(n,C.WARN_COUNT,t)},hasWarningsByGroup:function(t,e){return on(n,C.WARN_COUNT,t,e)},isValid:function(t){var e;return t?!(null===(e=n.tests[t])||void 0===e||!e.valid):n.valid},isValidByGroup:function(t,e){if(!(t=n.groups[t]))return!1;if(e)return un(t,e);for(var r in t)if(!un(t,r))return!1;return!0}}}function en(n,t,e){return nn(n.tests,t,e)}function rn(n,t,e,r){return nn(n.groups[e],t,r)}function un(n,t){var e;return!(null===(e=n[t])||void 0===e||!e.valid)}function on(n,t,e,r){var u,o;if(!(n=n.groups[e]))return!1;if(r)return i.isPositive(null===(u=n[r])||void 0===u?void 0:u[t]);for(var s in n)if(i.isPositive(null===(o=n[s])||void 0===o?void 0:o[t]))return!0;return!1}function sn(n,t,e){var r;return n=e?null===(r=n.tests[e])||void 0===r?void 0:r[t]:n[t]||0,i.isPositive(n)}!function(n){n[n.Immediate=0]="Immediate",n[n.Delayed=1]="Delayed"}(H||(H={}));var an=i.cache(1);function cn(){var n=R(),t={stateRef:c()};return an([n],a.bind(t,(function(){var n=Z(),t=c().suiteName()[0];return i.assign(n,tn(n),{suiteName:t})})))}function fn(n){var t=y();return!i.isEmpty(t)&&(!n||t.some((function(t){return X(t,n)})))}var ln=i.cache(20);function pn(){var n=R(),t={stateRef:c()};return ln([n],a.bind(t,(function(){return i.assign({},cn(),{done:a.bind(t,hn)})})))}function dn(n,t,e){var r;return!!(!i.isFunction(n)||t&&i.numberEquals(null===(r=e.tests[t])||void 0===r?void 0:r.testCount,0))}function vn(n){return!(fn()&&(!n||fn(n)))}var En,hn=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=pn(),dn(e,n,t))return t;var r=function(){return e(cn())};return vn(n)?(r(),t):(gn(r,n),t)};function gn(n,t){(0,l()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function yn(){var n=i.bus.createBus();return n.on(En.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=l()[0].fieldCallbacks;n&&!fn(n)&&i.isArray(t[n])&&i.callEach(t[n])}(t.fieldName),fn()||n.emit(En.ALL_RUNNING_TESTS_FINISHED))})),n.on(En.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){e[n.fieldName]&&(n.omit(),d(n.fieldName,(function(){return{applied:!0}})))}var t=p()[0];if(!i.isEmpty(t)){var e={};R().forEach((function(t){if(i.hasOwnProperty(e,t.fieldName))n(t);else{var r=v(t.fieldName);r.type===H.Immediate&&(e[t.fieldName]=i.optionalFunctionValue(r.rule),n(t))}})),h()}}()})),n.on(En.ALL_RUNNING_TESTS_FINISHED,(function(){!function(){var n=l()[0].doneCallbacks;i.callEach(n)}()})),n.on(En.REMOVE_FIELD,(function(n){S((function(t){X(t,n)&&(t.cancel(),function(n){g((function(t){return i.nestedArray.transform(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(En.RESET_FIELD,(function(n){S((function(t){X(t,n)&&t.reset()}))})),n}function Nn(){var n=a.useX();return i.invariant(n.bus),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(En||(En={}));function mn(){return!!a.useX().skipped}function Rn(n){return Cn(0,"tests",n)}function Sn(n){return Cn(1,"tests",n)}function Tn(n){var t=n.fieldName;if(n=n.groupName,mn())return!0;var e=a.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,o=u[t];if(!1===o)return!0;if(o=!0===o,n){if(function(n){var t=a.useX().exclusion.groups;return i.hasOwnProperty(t,n)?!1===t[n]:_n()}(n))return!0;if(!0===r.groups[n])return!o&&(!!An(u)||!1===u[t])}return!!function(n){return!!_n()&&!n}(n)||!o&&(!!An(u)&&!i.optionalFunctionValue(e[t]))}function Cn(n,t,e){var r=a.useX("hook called outside of a running suite.");e&&i.asArray(e).forEach((function(e){i.isStringValue(e)&&(r.exclusion[t][e]=0===n)}))}function An(n){for(var t in n)if(!0===n[t])return!0;return!1}function _n(){var n,t=a.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function In(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function Fn(n){return function(n){return a.useX().mode[0]===n}(e.EAGER)&&M(n.fieldName)}function On(){return!!a.useX().omitted}function bn(n,t,e){if(e||2===arguments.length)for(var r,i=0,u=t.length;i<u;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return n.concat(r||Array.prototype.slice.call(t))}function kn(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function Pn(n){var t=n.asyncTest,e=n.message;if(i.isPromise(t)){var r=Nn().emit,u=c(),o=a.bind({stateRef:u},(function(){h(),r(En.TEST_COMPLETED,n)}));u=a.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=i.isStringValue(t)?t:e,n.fail(),o())}));try{t.then(o,u)}catch(n){u()}}}function xn(n){var t=Nn(),e=function(n){return a.run({currentTest:n},(function(){return n.run()}))}(n);try{i.isPromise(e)?(n.asyncTest=e,n.setPending(),Pn(n)):t.emit(En.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}function Ln(t){var e=E()[0].prev;return i.isEmpty(e)?(Un(t),t):(e=function(n){var t=W();return i.nestedArray.valueAtPath(n,t)}(e),i.isNullish(t.key)?(function(n,t){return i.isNotEmpty(n)&&!kn(n,t)}(e,t)&&(function(t,e){D().type===n.EACH||i.deferThrow("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(e.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'))}(e,t),function(){var n=V().current();g((function(t){return t.splice(n),t}))}(),e=null),Un(t=i.defaultTo(e,t)),t):(t=function(n,t){var e=function(n){return D().keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=D().keys.current;i.isNullish(e[n])?e[n]=t:i.deferThrow('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(n,t),t}(t.key,t),Un(t),t))}function Un(n){var t=W();g((function(e){return i.nestedArray.setValueAtPath(e,t,n)}))}function Dn(n){var t=V();if(Fn(n))return n.skip(),Ln(n),t.next(),n;var e=Ln(n);return On()||j(n.fieldName)?(e.omit(),t.next(),e):Tn(n)?(e.skip(mn()),t.next(),e):(function(n,t){t!==n&&kn(n,t)&&n.isPending()&&n.cancel()}(e,n),Un(n),function(n){n.isUntested()?xn(n):i.isPromise(n.asyncTest)&&(n.setPending(),Pn(n))}(n),t.next(),n)}function Wn(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=i.isFunction(t[1])?t:bn([void 0],t,!0);t=r[0],e=r[1],r=r[2],i.invariant(i.isStringValue(n),wn("fieldName","string")),i.invariant(i.isFunction(e),wn("Test callback","function"));var u=a.useX();return Dn(t=new A(n,e,{message:t,groupName:u.groupName,key:r}))}Rn.group=function(n){return Cn(0,"groups",n)},Sn.group=function(n){return Cn(1,"groups",n)};var Vn=i.assign(Wn,{memo:function(n){var t=i.cache(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=V().current();var o=(r=r.reverse())[0],s=r[1],a=r[2];return u=[f(),e,u].concat(o),r=t.get(u),i.isNull(r)?t(u,(function(){return n(e,a,s)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,a,s)}))):Dn(r[1])}}(Wn)});function wn(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return r.enforce}}),exports.VERSION="4.6.0",exports.context=a,exports.create=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=(t=t.reverse())[0];t=t[1],i.invariant(i.isFunction(r),"vest.create: Expected callback to be a function.");var u=yn(),o=L();return t={stateRef:U(o,{suiteId:i.seq(),suiteName:t}),bus:u},i.assign(a.bind(t,(function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return o.reset(),w({type:n.SUITE},(function(){r.apply(void 0,t)})),u.emit(En.SUITE_CALLBACK_DONE_RUNNING),pn()})),{get:a.bind(t,cn),remove:a.bind(t,(function(n){u.emit(En.REMOVE_FIELD,n)})),reset:o.reset,resetField:a.bind(t,(function(n){u.emit(En.RESET_FIELD,n)}))})},exports.each=function(t,e){i.invariant(i.isFunction(e),"each callback must be a function"),w({type:n.EACH},(function(){t.forEach((function(n,t){e(n,t)}))}))},exports.eager=function(){!function(n){a.useX().mode[0]=n}(e.EAGER)},exports.group=function(t,e){i.invariant(i.isStringValue(t),In("name must be a string")),i.invariant(i.isFunction(e),In("callback must be a function")),w({type:n.GROUP},(function(){a.run({groupName:t},e)}))},exports.include=function(n){var t=a.useX(),e=t.inclusion;return t=t.exclusion,i.invariant(i.isStringValue(n)),e[n]=i.defaultTo(t.tests[n],!0),{when:function(t){var e=a.useX(),r=e.exclusion;e.inclusion[n]=function(){return i.hasOwnProperty(r.tests,n)?i.defaultTo(r.tests[n],!0):i.isStringValue(t)?!!r.tests[t]:i.optionalFunctionValue(t,i.optionalFunctionValue(cn))}}}},exports.omitWhen=function(t,e){w({type:n.OMIT_WHEN},(function(){a.run({omitted:On()||i.optionalFunctionValue(t,i.optionalFunctionValue(cn))},(function(){return e()}))}))},exports.only=Rn,exports.optional=function(n){if(i.isArray(n)||i.isStringValue(n))i.asArray(n).forEach((function(n){d(n,(function(){return{type:H.Delayed,applied:!1,rule:null}}))}));else{var t,e=function(t){var e=n[t];d(t,(function(){return{type:H.Immediate,rule:e,applied:i.optionalFunctionValue(e)}}))};for(t in n)e(t)}},exports.skip=Sn,exports.skipWhen=function(t,e){w({type:n.SKIP_WHEN},(function(){a.run({skipped:mn()||i.optionalFunctionValue(t,i.optionalFunctionValue(cn))},(function(){return e()}))}))},exports.suiteSelectors=tn,exports.test=Vn,exports.warn=function(){var n=a.useX("warn hook called outside of a running suite.");i.invariant(n.currentTest,"warn called outside of a test."),n.currentTest.warn()};
@@ -1,5 +1,5 @@
1
- import { defaultTo, assign, mapFirst, invariant, StringObject } from 'vest-utils';
2
1
  import { ctx } from 'n4s';
2
+ import { defaultTo, assign, mapFirst, invariant, StringObject } from 'vest-utils';
3
3
 
4
4
  function ruleReturn(pass, message) {
5
5
  var output = { pass: pass };
@@ -1 +1 @@
1
- import{ctx as n}from"n4s";import{defaultTo as t,assign as r,mapFirst as u,invariant as s,StringObject as e}from"vest-utils";function o(n,t){return n={pass:n},t&&(n.message=t),n}export default function(){function a(r){return n.run({value:r},(function(){return t(u(f,(function(n,t){try{var u=n.run(r)}catch(n){u=o(!1)}t(!u.pass,u)})),o(!0))}))}for(var f=[],i=0;i<arguments.length;i++)f[i]=arguments[i];return r((function(n){n=a(n),s(n.pass,e(n.message))}),{run:a,test:function(n){return a(n).pass}})}
1
+ import{defaultTo as n,assign as t,mapFirst as r,invariant as u,StringObject as s}from"vest-utils";import{ctx as e}from"n4s";function o(n,t){return n={pass:n},t&&(n.message=t),n}export default function(){function a(t){return e.run({value:t},(function(){return n(r(f,(function(n,r){try{var u=n.run(t)}catch(n){u=o(!1)}r(!u.pass,u)})),o(!0))}))}for(var f=[],i=0;i<arguments.length;i++)f[i]=arguments[i];return t((function(n){n=a(n),u(n.pass,s(n.message))}),{run:a,test:function(n){return a(n).pass}})}
@@ -1,5 +1,5 @@
1
- import { defaultTo, mapFirst, bindNot, greaterThan } from 'vest-utils';
2
1
  import { enforce } from 'n4s';
2
+ import { defaultTo, mapFirst, bindNot, greaterThan } from 'vest-utils';
3
3
 
4
4
  function ruleReturn(pass, message) {
5
5
  var output = { pass: pass };
@@ -1 +1 @@
1
- import{enforce as n}from"n4s";import{defaultTo as r,mapFirst as t,bindNot as f,greaterThan as o}from"vest-utils";function u(n,r){return n={pass:n},r&&(n.message=r),n}function e(n,r){try{return n.run(r)}catch(n){return u(!1)}}f((function(n,r){return n===r})),n.extend({allOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return r(t(f,(function(r,t){t(!(r=e(r,n)).pass,r)})),u(!0))},anyOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return r(t(f,(function(r,t){t((r=e(r,n)).pass,r)})),u(!1))},noneOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return r(t(f,(function(r,t){t((r=e(r,n)).pass,u(!1))})),u(!0))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var f=0;return r.some((function(r){if(e(r,n).pass&&f++,o(f,1))return!1})),u(1===f)}});
1
+ import{defaultTo as n,mapFirst as r,bindNot as t,greaterThan as f}from"vest-utils";import{enforce as o}from"n4s";function u(n,r){return n={pass:n},r&&(n.message=r),n}function e(n,r){try{return n.run(r)}catch(n){return u(!1)}}t((function(n,r){return n===r})),o.extend({allOf:function(t){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return n(r(f,(function(n,r){r(!(n=e(n,t)).pass,n)})),u(!0))},anyOf:function(t){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return n(r(f,(function(n,r){r((n=e(n,t)).pass,n)})),u(!1))},noneOf:function(t){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return n(r(f,(function(n,r){r((n=e(n,t)).pass,u(!1))})),u(!0))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var o=0;return r.some((function(r){if(e(r,n).pass&&o++,f(o,1))return!1})),u(1===o)}});
@@ -1,5 +1,5 @@
1
- import { defaultTo, mapFirst, isNullish, hasOwnProperty } from 'vest-utils';
2
1
  import { ctx, enforce } from 'n4s';
2
+ import { defaultTo, mapFirst, isNullish, hasOwnProperty } from 'vest-utils';
3
3
 
4
4
  function ruleReturn(pass, message) {
5
5
  var output = { pass: pass };
@@ -1 +1 @@
1
- import{ctx as r,enforce as n}from"n4s";import{defaultTo as t,mapFirst as e,isNullish as u,hasOwnProperty as o}from"vest-utils";function i(r,n){return r={pass:r},n&&(r.message=n),r}function a(r,n){try{return r.run(n)}catch(r){return i(!1)}}function f(n,t){function e(e){var u=n[e],o=t[e];if(!(e=r.run({value:u,set:!0,meta:{key:e}},(function(){return a(o,u)}))).pass)return{value:e}}for(var u in t){var o=e(u);if("object"==typeof o)return o.value}return i(!0)}n.extend({isArrayOf:function(n,u){return t(e(n,(function(n,t,e){t(!(e=r.run({value:n,set:!0,meta:{index:e}},(function(){return a(u,n)}))).pass,e)})),i(!0))},loose:f,optional:function(r,n){return u(r)?i(!0):a(n,r)},shape:function(r,n){var t=f(r,n);if(!t.pass)return t;for(var e in r)if(!o(n,e))return i(!1);return i(!0)}});export function partial(r){var t,e={};for(t in r)e[t]=n.optional(r[t]);return e}
1
+ import{defaultTo as r,mapFirst as n,isNullish as t,hasOwnProperty as e}from"vest-utils";import{ctx as u,enforce as o}from"n4s";function i(r,n){return r={pass:r},n&&(r.message=n),r}function a(r,n){try{return r.run(n)}catch(r){return i(!1)}}function f(r,n){function t(t){var e=r[t],o=n[t];if(!(t=u.run({value:e,set:!0,meta:{key:t}},(function(){return a(o,e)}))).pass)return{value:t}}for(var e in n){var o=t(e);if("object"==typeof o)return o.value}return i(!0)}o.extend({isArrayOf:function(t,e){return r(n(t,(function(r,n,t){n(!(t=u.run({value:r,set:!0,meta:{index:t}},(function(){return a(e,r)}))).pass,t)})),i(!0))},loose:f,optional:function(r,n){return t(r)?i(!0):a(n,r)},shape:function(r,n){var t=f(r,n);if(!t.pass)return t;for(var u in r)if(!e(n,u))return i(!1);return i(!0)}});export function partial(r){var n,t={};for(n in r)t[n]=o.optional(r[n]);return t}