vest 4.3.0 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/enforce/compose.development.js +1 -1
- package/dist/cjs/enforce/compounds.development.js +17 -2
- package/dist/cjs/enforce/compounds.production.js +1 -1
- package/dist/cjs/enforce/schema.development.js +1 -1
- package/dist/cjs/vest.development.js +107 -119
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/enforce/compose.development.js +1 -1
- package/dist/es/enforce/compounds.development.js +17 -2
- package/dist/es/enforce/compounds.production.js +1 -1
- package/dist/es/enforce/schema.development.js +1 -1
- package/dist/es/vest.development.js +107 -119
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +6 -6
- package/dist/umd/enforce/compose.production.js +1 -1
- package/dist/umd/enforce/compounds.development.js +5 -5
- package/dist/umd/enforce/compounds.production.js +1 -1
- package/dist/umd/enforce/schema.development.js +6 -6
- package/dist/umd/enforce/schema.production.js +1 -1
- package/dist/umd/vest.development.js +71 -98
- package/dist/umd/vest.production.js +1 -1
- package/package.json +3 -3
- package/types/enforce/compose.d.ts +20 -20
- package/types/enforce/compounds.d.ts +22 -22
- package/types/enforce/schema.d.ts +24 -24
- package/types/promisify.d.ts +7 -6
- package/types/vest.d.ts +50 -48
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).schema={})}(this,(function(n){function t(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function r(n){return"function"==typeof n}function e(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function u(n){return null===n}function i(n){return void 0===n}function o(n){return null===n||i(n)}function a(n){return String(n)===n}function f(n,t){return a(n)&&a(t)&&n.endsWith(t)}function s(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function l(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function p(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function v(n,t){return p(n,t)||l(n,t)}function h(n){return!!Array.isArray(n)}function
|
|
1
|
+
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).schema={})}(this,(function(n){function t(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function r(n){return"function"==typeof n}function e(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function u(n){return null===n}function i(n){return void 0===n}function o(n){return null===n||i(n)}function a(n){return String(n)===n}function f(n,t){return a(n)&&a(t)&&n.endsWith(t)}function s(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function l(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function p(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function v(n,t){return p(n,t)||l(n,t)}function h(n){return!!Array.isArray(n)}function y(n,t){return!!(h(t)||a(t)&&a(n))&&-1!==t.indexOf(n)}function N(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function d(n,t){return p(n,t)||N(n,t)}function g(n,t,r){return v(n,t)&&d(n,r)}function m(n){return o(n)||a(n)&&!n.trim()}function b(n){return!!n===n}function O(n){return"number"==typeof n}function x(n,t){return p(n.length,t)}function E(n){if(n){if(O(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return x(n,0);if("object"==typeof n)return x(Object.keys(n),0)}return!0}function w(n,t){return n in t}function T(n){return Number.isNaN(n)}function q(n){return!!n}function j(n,t){if(o(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function S(n,t){return t instanceof RegExp?t.test(n):!!a(t)&&new RegExp(t).test(n)}function P(n,t){return a(n)&&a(t)&&n.startsWith(t)}function A(n){for(var t in vn){var e=vn[t];r(e)&&n(t,e)}}function B(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return r(n)?n.apply(void 0,t):n}function W(n,t){var r;return null!==(r=B(n))&&void 0!==r?r:t}function k(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?B(t):t)}function F(){return null}function I(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||Array.prototype.slice.call(t))}function J(){try{return r(Proxy)}catch(n){return!1}}function K(n,t){return n={pass:n},t&&(n.message=t),n}function M(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return k(b(n)||n&&b(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),b(n)?K(n):K(n.pass,B.apply(void 0,I([n.message,t,r],e,!1)))}function R(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return k((i=M.apply(void 0,I([hn.run({value:n},(function(){return r.apply(void 0,I([n],u,!1))})),e,n],u,!1))).pass,E(i.message)?"enforce/".concat(e," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var r={};if(!J())return A((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=vn[r])return t(e,n,r)}});return e}function U(n){var r,e=[];return function n(u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];var a=vn[u];e.push((function(n){return M.apply(void 0,I([a.apply(void 0,I([n],i,!1)),u,n],i,!1))}));var f={run:function(n){return W(t(e,(function(t,e){var u,i=hn.run({value:n},(function(){return t(n)}));i.pass||e(K(!!i.pass,null!==(u=B(r,n,i.message))&&void 0!==u?u:i.message))})),K(!0))},test:function(n){return f.run(n).pass},message:function(n){return n&&(r=n),f}};return J()?f=new Proxy(f,{get:function(t,r){return vn[r]?n(r):t[r]}}):(A((function(t){f[t]=n(t)})),f)}}(n)}function V(n,t){try{return n.run(t)}catch(n){return K(!1)}}function X(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=hn.run({value:e,set:!0,meta:{key:r}},(function(){return V(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return K(!0)}var _,z=Object.assign,C=e(u),D=e(i),G=e(o),H=e(f),L=e(s),Q=e(c),Y=e(p),Z=e(h),$=e(y),nn=e(g),tn=e(m),rn=e(b),en=e(O),un=e(x),on=e(E),an=e(w),fn=e(T),sn=e(a),cn=e(q),ln=e(j),pn=e(S),vn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:H,doesNotStartWith:e(P),endsWith:f,equals:s,greaterThan:l,greaterThanOrEquals:v,gt:l,gte:v,inside:y,isArray:h,isBetween:g,isBlank:m,isBoolean:b,isEmpty:E,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:cn,isKeyOf:w,isNaN:T,isNegative:function(n){return N(n,0)},isNotArray:Z,isNotBetween:nn,isNotBlank:tn,isNotBoolean:rn,isNotEmpty:on,isNotKeyOf:an,isNotNaN:fn,isNotNull:C,isNotNullish:G,isNotNumber:en,isNotNumeric:Q,isNotString:sn,isNotUndefined:D,isNotValueOf:ln,isNull:u,isNullish:o,isNumber:O,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:function(n){return l(n,0)},isString:a,isTruthy:q,isUndefined:i,isValueOf:j,lengthEquals:x,lengthNotEquals:un,lessThan:N,lessThanOrEquals:d,longerThan:function(n,t){return l(n.length,t)},longerThanOrEquals:function(n,t){return v(n.length,t)},lt:N,lte:d,matches:S,notEquals:L,notInside:$,notMatches:pn,numberEquals:p,numberNotEquals:Y,shorterThan:function(n,t){return N(n.length,t)},shorterThanOrEquals:function(n,t){return d(n.length,t)},startsWith:P},hn=function(n){function t(t,u){var i,o,a=r();return t=z({},a||{},null!==(i=B(n,t,a))&&void 0!==i?i:t),i=e.ctx=Object.freeze(t),e.ancestry.unshift(i),u=u(i),e.ancestry.shift(),e.ctx=null!==(o=e.ancestry[0])&&void 0!==o?o:null,u}function r(){return e.ctx}var e={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:r,useX:function(n){return k(e.ctx,W(n,"Context was used after it was closed")),e.ctx}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?z(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:z(r,{parent:F})})),yn=(_={context:function(){return hn.useX()},extend:function(n){z(vn,n)}},J()?new Proxy(z(R,_),{get:function(n,t){return t in n?n[t]:vn[t]?U(t):void 0}}):(A((function(n){_[n]=U(n)})),z(R,_)));yn.extend({isArrayOf:function(n,r){return W(t(n,(function(n,t,e){(e=hn.run({value:n,set:!0,meta:{index:e}},(function(){return V(r,n)}))).pass||t(e)})),K(!0))},loose:X,optional:function(n,t){return o(n)?K(!0):V(t,n)},shape:function(n,t){var r=X(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return K(!1);return K(!0)}}),n.partial=function(n){var t,r={};for(t in n)r[t]=yn.optional(n[t]);return r},Object.defineProperty(n,"__esModule",{value:!0})}));
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
var isNotNumber = bindNot(isNumber);
|
|
128
128
|
|
|
129
129
|
function lengthEquals(value, arg1) {
|
|
130
|
-
return value.length
|
|
130
|
+
return numberEquals(value.length, arg1);
|
|
131
131
|
}
|
|
132
132
|
var lengthNotEquals = bindNot(lengthEquals);
|
|
133
133
|
|
|
@@ -207,11 +207,11 @@
|
|
|
207
207
|
var isNotValueOf = bindNot(isValueOf);
|
|
208
208
|
|
|
209
209
|
function longerThan(value, arg1) {
|
|
210
|
-
return value.length
|
|
210
|
+
return greaterThan(value.length, arg1);
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
function longerThanOrEquals(value, arg1) {
|
|
214
|
-
return value.length
|
|
214
|
+
return greaterThanOrEquals(value.length, arg1);
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
function matches(value, regex) {
|
|
@@ -237,11 +237,11 @@
|
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
function shorterThan(value, arg1) {
|
|
240
|
-
return value.length
|
|
240
|
+
return lessThan(value.length, arg1);
|
|
241
241
|
}
|
|
242
242
|
|
|
243
243
|
function shorterThanOrEquals(value, arg1) {
|
|
244
|
-
return value.length
|
|
244
|
+
return lessThanOrEquals(value.length, arg1);
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
function startsWith(value, arg1) {
|
|
@@ -453,17 +453,6 @@
|
|
|
453
453
|
PERFORMANCE OF THIS SOFTWARE.
|
|
454
454
|
***************************************************************************** */
|
|
455
455
|
|
|
456
|
-
var __assign = function() {
|
|
457
|
-
__assign = Object.assign || function __assign(t) {
|
|
458
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
459
|
-
s = arguments[i];
|
|
460
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
461
|
-
}
|
|
462
|
-
return t;
|
|
463
|
-
};
|
|
464
|
-
return __assign.apply(this, arguments);
|
|
465
|
-
};
|
|
466
|
-
|
|
467
456
|
function __spreadArray(to, from, pack) {
|
|
468
457
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
469
458
|
if (ar || !(i in from)) {
|
|
@@ -1288,8 +1277,14 @@
|
|
|
1288
1277
|
});
|
|
1289
1278
|
}
|
|
1290
1279
|
|
|
1291
|
-
// eslint-disable-next-line max-statements, complexity
|
|
1292
1280
|
function isValid(fieldName) {
|
|
1281
|
+
var _a, _b;
|
|
1282
|
+
var summary = context.useX().summary;
|
|
1283
|
+
invariant(summary);
|
|
1284
|
+
return Boolean(fieldName ? (_b = (_a = summary.tests) === null || _a === void 0 ? void 0 : _a[fieldName]) === null || _b === void 0 ? void 0 : _b.valid : summary.valid);
|
|
1285
|
+
}
|
|
1286
|
+
// eslint-disable-next-line max-statements, complexity
|
|
1287
|
+
function shouldAddValidProp(fieldName) {
|
|
1293
1288
|
if (fieldIsOmitted(fieldName)) {
|
|
1294
1289
|
return true;
|
|
1295
1290
|
}
|
|
@@ -1357,7 +1352,7 @@
|
|
|
1357
1352
|
appendToGroup(summary.groups, testObject);
|
|
1358
1353
|
return summary;
|
|
1359
1354
|
}, summary);
|
|
1360
|
-
summary.valid =
|
|
1355
|
+
summary.valid = shouldAddValidProp();
|
|
1361
1356
|
return countFailures(summary);
|
|
1362
1357
|
}
|
|
1363
1358
|
function appendToTest(tests, testObject) {
|
|
@@ -1366,7 +1361,7 @@
|
|
|
1366
1361
|
tests[testObject.fieldName].valid =
|
|
1367
1362
|
tests[testObject.fieldName].valid === false
|
|
1368
1363
|
? false
|
|
1369
|
-
:
|
|
1364
|
+
: shouldAddValidProp(testObject.fieldName);
|
|
1370
1365
|
}
|
|
1371
1366
|
/**
|
|
1372
1367
|
* Appends to a group object if within a group
|
|
@@ -1429,42 +1424,23 @@
|
|
|
1429
1424
|
};
|
|
1430
1425
|
}
|
|
1431
1426
|
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
if (noMatch(testObject, severity, group, fieldName)) {
|
|
1438
|
-
return collector;
|
|
1439
|
-
}
|
|
1440
|
-
if (!testObject.hasFailures()) {
|
|
1441
|
-
return collector;
|
|
1442
|
-
}
|
|
1443
|
-
collector[testObject.fieldName] = (collector[testObject.fieldName] || []).concat(testObject.message || []);
|
|
1444
|
-
return collector;
|
|
1445
|
-
}, __assign({}, (fieldName && (_a = {}, _a[fieldName] = [], _a))));
|
|
1427
|
+
// calls collectAll or getByFieldName depending on whether fieldName is provided
|
|
1428
|
+
function gatherFailures(testGroup, severityKey, fieldName) {
|
|
1429
|
+
return fieldName
|
|
1430
|
+
? getByFieldName(testGroup, severityKey, fieldName)
|
|
1431
|
+
: collectAll(testGroup, severityKey);
|
|
1446
1432
|
}
|
|
1447
|
-
function
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
function noMatch(testObject, severity, group, fieldName) {
|
|
1451
|
-
if (noGroupMatch(testObject, group)) {
|
|
1452
|
-
return true;
|
|
1453
|
-
}
|
|
1454
|
-
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
1455
|
-
return true;
|
|
1456
|
-
}
|
|
1457
|
-
if (nonMatchingSeverityProfile(severity, testObject)) {
|
|
1458
|
-
return true;
|
|
1459
|
-
}
|
|
1460
|
-
return false;
|
|
1433
|
+
function getByFieldName(testGroup, severityKey, fieldName) {
|
|
1434
|
+
var _a;
|
|
1435
|
+
return ((_a = testGroup === null || testGroup === void 0 ? void 0 : testGroup[fieldName]) === null || _a === void 0 ? void 0 : _a[severityKey]) || [];
|
|
1461
1436
|
}
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1437
|
+
function collectAll(testGroup, severityKey) {
|
|
1438
|
+
var _a;
|
|
1439
|
+
var output = {};
|
|
1440
|
+
for (var field in testGroup) {
|
|
1441
|
+
output[field] = ((_a = testGroup[field]) === null || _a === void 0 ? void 0 : _a[severityKey]) || [];
|
|
1466
1442
|
}
|
|
1467
|
-
return
|
|
1443
|
+
return output;
|
|
1468
1444
|
}
|
|
1469
1445
|
|
|
1470
1446
|
function getErrors(fieldName) {
|
|
@@ -1477,31 +1453,21 @@
|
|
|
1477
1453
|
* @returns suite or field's errors or warnings.
|
|
1478
1454
|
*/
|
|
1479
1455
|
function getFailures(severityKey, fieldName) {
|
|
1480
|
-
var
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
});
|
|
1484
|
-
return getFailuresArrayOrObject(failureMessages, fieldName);
|
|
1456
|
+
var summary = context.useX().summary;
|
|
1457
|
+
invariant(summary);
|
|
1458
|
+
return gatherFailures(summary.tests, severityKey, fieldName);
|
|
1485
1459
|
}
|
|
1486
1460
|
|
|
1487
1461
|
function getErrorsByGroup(groupName, fieldName) {
|
|
1488
|
-
|
|
1489
|
-
return getFailuresArrayOrObject(errors, fieldName);
|
|
1462
|
+
return getFailuresByGroup(groupName, Severity.ERRORS, fieldName);
|
|
1490
1463
|
}
|
|
1491
1464
|
function getWarningsByGroup(groupName, fieldName) {
|
|
1492
|
-
|
|
1493
|
-
return getFailuresArrayOrObject(warnings, fieldName);
|
|
1465
|
+
return getFailuresByGroup(groupName, Severity.WARNINGS, fieldName);
|
|
1494
1466
|
}
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
invariant(group, "get".concat(severityKey[0].toUpperCase()).concat(severityKey.slice(1), "ByGroup requires a group name. Received `").concat(group, "` instead."));
|
|
1500
|
-
var testObjects = useTestsFlat();
|
|
1501
|
-
return collectFailureMessages(severityKey, testObjects, {
|
|
1502
|
-
group: group,
|
|
1503
|
-
fieldName: fieldName
|
|
1504
|
-
});
|
|
1467
|
+
function getFailuresByGroup(groupName, severityKey, fieldName) {
|
|
1468
|
+
var summary = context.useX().summary;
|
|
1469
|
+
invariant(summary);
|
|
1470
|
+
return gatherFailures(summary.groups[groupName], severityKey, fieldName);
|
|
1505
1471
|
}
|
|
1506
1472
|
|
|
1507
1473
|
function hasErrorsByGroup(groupName, fieldName) {
|
|
@@ -1522,22 +1488,24 @@
|
|
|
1522
1488
|
});
|
|
1523
1489
|
}
|
|
1524
1490
|
|
|
1525
|
-
var cache$1 = createCache(
|
|
1491
|
+
var cache$1 = createCache(1);
|
|
1526
1492
|
function produceSuiteResult() {
|
|
1527
1493
|
var testObjects = useTestsFlat();
|
|
1528
1494
|
var ctxRef = { stateRef: useStateRef() };
|
|
1529
1495
|
return cache$1([testObjects], context.bind(ctxRef, function () {
|
|
1496
|
+
var summary = genTestsSummary();
|
|
1530
1497
|
var suiteName = useSuiteName();
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1498
|
+
var ref = assign({ summary: summary }, ctxRef);
|
|
1499
|
+
return assign(summary, {
|
|
1500
|
+
getErrors: context.bind(ref, getErrors),
|
|
1501
|
+
getErrorsByGroup: context.bind(ref, getErrorsByGroup),
|
|
1502
|
+
getWarnings: context.bind(ref, getWarnings),
|
|
1503
|
+
getWarningsByGroup: context.bind(ref, getWarningsByGroup),
|
|
1504
|
+
hasErrors: context.bind(ref, hasErrors),
|
|
1505
|
+
hasErrorsByGroup: context.bind(ref, hasErrorsByGroup),
|
|
1506
|
+
hasWarnings: context.bind(ref, hasWarnings),
|
|
1507
|
+
hasWarningsByGroup: context.bind(ref, hasWarningsByGroup),
|
|
1508
|
+
isValid: context.bind(ref, isValid),
|
|
1541
1509
|
suiteName: suiteName
|
|
1542
1510
|
});
|
|
1543
1511
|
}));
|
|
@@ -1606,14 +1574,13 @@
|
|
|
1606
1574
|
return output;
|
|
1607
1575
|
};
|
|
1608
1576
|
function deferDoneCallback(doneCallback, fieldName) {
|
|
1609
|
-
var deferredCallback = context.bind({}, doneCallback);
|
|
1610
1577
|
var _a = useTestCallbacks(), setTestCallbacks = _a[1];
|
|
1611
1578
|
setTestCallbacks(function (current) {
|
|
1612
1579
|
if (fieldName) {
|
|
1613
|
-
current.fieldCallbacks[fieldName] = (current.fieldCallbacks[fieldName] || []).concat(
|
|
1580
|
+
current.fieldCallbacks[fieldName] = (current.fieldCallbacks[fieldName] || []).concat(doneCallback);
|
|
1614
1581
|
}
|
|
1615
1582
|
else {
|
|
1616
|
-
current.doneCallbacks.push(
|
|
1583
|
+
current.doneCallbacks.push(doneCallback);
|
|
1617
1584
|
}
|
|
1618
1585
|
return current;
|
|
1619
1586
|
});
|
|
@@ -1623,19 +1590,22 @@
|
|
|
1623
1590
|
var listeners = {};
|
|
1624
1591
|
return {
|
|
1625
1592
|
emit: function (event, data) {
|
|
1626
|
-
(
|
|
1593
|
+
listener(event).forEach(function (handler) {
|
|
1627
1594
|
handler(data);
|
|
1628
1595
|
});
|
|
1629
1596
|
},
|
|
1630
1597
|
on: function (event, handler) {
|
|
1631
|
-
listeners[event] = (
|
|
1598
|
+
listeners[event] = listener(event).concat(handler);
|
|
1632
1599
|
return {
|
|
1633
1600
|
off: function () {
|
|
1634
|
-
listeners[event] =
|
|
1601
|
+
listeners[event] = listener(event).filter(function (h) { return h !== handler; });
|
|
1635
1602
|
}
|
|
1636
1603
|
};
|
|
1637
1604
|
}
|
|
1638
1605
|
};
|
|
1606
|
+
function listener(event) {
|
|
1607
|
+
return listeners[event] || [];
|
|
1608
|
+
}
|
|
1639
1609
|
}
|
|
1640
1610
|
|
|
1641
1611
|
function omitOptionalTests() {
|
|
@@ -1647,24 +1617,27 @@
|
|
|
1647
1617
|
useSetTests(function (tests) {
|
|
1648
1618
|
return transform(tests, function (testObject) {
|
|
1649
1619
|
var fieldName = testObject.fieldName;
|
|
1650
|
-
if (
|
|
1651
|
-
|
|
1620
|
+
if (hasOwnProperty(shouldOmit, fieldName)) {
|
|
1621
|
+
verifyAndOmit(testObject);
|
|
1652
1622
|
}
|
|
1653
1623
|
else {
|
|
1654
|
-
|
|
1655
|
-
if (isFunction(optionalConfig)) {
|
|
1656
|
-
shouldOmit[fieldName] = optionalConfig();
|
|
1657
|
-
omit(testObject);
|
|
1658
|
-
}
|
|
1624
|
+
runOptionalConfig(testObject);
|
|
1659
1625
|
}
|
|
1660
1626
|
return testObject;
|
|
1661
1627
|
});
|
|
1662
1628
|
});
|
|
1663
|
-
function
|
|
1629
|
+
function verifyAndOmit(testObject) {
|
|
1664
1630
|
if (shouldOmit[testObject.fieldName]) {
|
|
1665
1631
|
testObject.omit();
|
|
1666
1632
|
}
|
|
1667
1633
|
}
|
|
1634
|
+
function runOptionalConfig(testObject) {
|
|
1635
|
+
var optionalConfig = optionalFields[testObject.fieldName];
|
|
1636
|
+
if (isFunction(optionalConfig)) {
|
|
1637
|
+
shouldOmit[testObject.fieldName] = optionalConfig();
|
|
1638
|
+
verifyAndOmit(testObject);
|
|
1639
|
+
}
|
|
1640
|
+
}
|
|
1668
1641
|
}
|
|
1669
1642
|
|
|
1670
1643
|
/**
|
|
@@ -2359,7 +2332,7 @@
|
|
|
2359
2332
|
/* eslint-disable jest/valid-title */
|
|
2360
2333
|
// eslint-disable-next-line max-lines-per-function
|
|
2361
2334
|
function bindTestMemo(test) {
|
|
2362
|
-
var cache = createCache(
|
|
2335
|
+
var cache = createCache(10); // arbitrary cache size
|
|
2363
2336
|
// eslint-disable-next-line max-statements
|
|
2364
2337
|
function memo(fieldName) {
|
|
2365
2338
|
var args = [];
|
|
@@ -2428,7 +2401,7 @@
|
|
|
2428
2401
|
ctx.currentTest.warn();
|
|
2429
2402
|
}
|
|
2430
2403
|
|
|
2431
|
-
var VERSION = "4.3.
|
|
2404
|
+
var VERSION = "4.3.1";
|
|
2432
2405
|
|
|
2433
2406
|
exports.VERSION = VERSION;
|
|
2434
2407
|
exports.context = context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return"function"==typeof n}function e(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function r(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function a(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function l(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function p(n,t){return l(n,t)||f(n,t)}function d(n){return!!Array.isArray(n)}function v(n,t){return!!(d(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function h(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function N(n,t){return l(n,t)||h(n,t)}function g(n,t,e){return p(n,t)&&N(n,e)}function m(n){return i(n)||o(n)&&!n.trim()}function y(n){return!!n===n}function E(n){return"number"==typeof n}function b(n,t){return n.length===Number(t)}function S(n){if(n){if(E(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return b(n,0);if("object"==typeof n)return b(Object.keys(n),0)}return!0}function O(n,t){return n in t}function R(n){return Number.isNaN(n)}function T(n){return!!n}function C(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function I(n,t){return n.length>Number(t)}function k(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function A(n,t){return o(n)&&o(t)&&n.startsWith(t)}function _(n){for(var e in Nt){var r=Nt[e];t(r)&&n(e,r)}}function w(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return t(n)?n.apply(void 0,e):n}function F(n,t){var e;return null!==(e=w(n))&&void 0!==e?e:t}function L(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?w(t):t)}function W(n){function t(t,u){var i,o,s=e();return t=Jn({},s||{},null!==(i=w(n,t,s))&&void 0!==i?i:t),i=r.ctx=Object.freeze(t),r.ancestry.unshift(i),u=u(i),r.ancestry.shift(),r.ctx=null!==(o=r.ancestry[0])&&void 0!==o?o:null,u}function e(){return r.ctx}var r={ancestry:[]};return{bind:function(n,e){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return t(n,(function(){return e.apply(void 0,r)}))}},run:t,use:e,useX:function(n){return L(r.ctx,F(n,"Context was used after it was closed")),r.ctx}}}function P(){return null}function x(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function U(){try{return t(Proxy)}catch(n){return!1}}function G(n,t){return n={pass:n},t&&(n.message=t),n}function X(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return L(y(n)||n&&y(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),y(n)?G(n):G(n.pass,w.apply(void 0,x([n.message,t,e],r,!1)))}function D(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return L((i=X.apply(void 0,x([gt.run({value:n},(function(){return e.apply(void 0,x([n],u,!1))})),r,n],u,!1))).pass,S(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var e={};if(!U())return _((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=Nt[e])return t(r,n,e)}});return r}function q(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function K(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=Nt[r];e.push((function(n){return X.apply(void 0,x([o.apply(void 0,x([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return F(q(e,(function(e,r){var u,i=gt.run({value:n},(function(){return e(n)}));i.pass||r(G(!!i.pass,null!==(u=w(t,n,i.message))&&void 0!==u?u:i.message))})),G(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return U()?s=new Proxy(s,{get:function(t,e){return Nt[e]?n(e):t[e]}}):(_((function(t){s[t]=n(t)})),s)}}(n)}function j(n){function t(n){return e.findIndex((function(t){var e=t[0];return b(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),I(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function B(n){return(n=[].concat(n))[n.length-1]}function H(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];d(u)?e.push(H(u,t)):(u=t(u),Yn(u)&&e.push(u))}return e}function M(n){return[].concat(n).reduce((function(n,t){return d(t)?n.concat(M(t)):[].concat(n).concat(t)}),[])}function V(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=F(n[r],[]),n=n[r]}return n}function J(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return B(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,B(t)},removeLevel:function(){t.pop()},reset:n}}function Y(){return St.useX().stateRef}function z(){return Y().testObjects()}function Q(){(0,z()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function Z(n){(0,z()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function $(){return M(H(z()[0].current,(function(n){return n.isPending()?n:null})))}function nn(){var n=z()[0].current;return Ot([n],(function(){return M(n)}))}function tn(n){function e(n,t,e){return u.references.push(),r(n,w(t,e)),function(){return[u.references[n],function(t){return r(n,w(t,u.references[n]))}]}}function r(e,r){var o=u.references[e];u.references[e]=r,t(e=i[e][1])&&e(r,o),t(n)&&n()}var u={references:[]},i=[];return{registerStateKey:function(n,t){var r=i.length;return i.push([n,t]),e(r,n)},reset:function(){var n=u.references;u.references=[],i.forEach((function(t,r){return e(r,t[0],n[r])}))}}}function en(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 rn(n){setTimeout((function(){throw Error(n)}),0)}function un(){return St.useX().testCursor.getCursor()}function on(){return St.useX().testCursor.next()}function sn(n,e){if(n=void 0===(n=n.type)?Hn.DEFAULT:n,t(e)){var r={current:{},prev:{}},u=un();return St.run({isolate:{type:n,keys:r}},(function(){St.useX().testCursor.addLevel(),r.prev=function(){var n=z()[0].prev;return[].concat(V(n,un())).reduce((function(n,t){return t instanceof Ct&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),Z((function(n){return V(n,u)[B(u)]=[],n}));var n=e();return St.useX().testCursor.removeLevel(),on(),n}))}}function an(n,t){return!(!t||n.fieldName!==t)}function cn(n,t,e){return(e=!n.hasFailures()||e&&!an(n,e))||(n=n.warns(),e=t===Rt.WARNINGS!=!!n),!e}function fn(n){return pn(Rt.ERRORS,n)}function ln(n){return pn(Rt.WARNINGS,n)}function pn(n,t){return nn().some((function(e){return cn(e,n,t)}))}function dn(n){var t=nn().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(t=!!n&&!!t[n])||!fn(n)&&(!(S(t=nn())||function(n){var t=nn();return!!n&&!t.find((function(t){return t.fieldName===n}))}(n)||function(n){var t=Y().optionalFields()[0];return ct($().filter((function(e){return!(n&&!an(e,n))&&!0!==t[e.fieldName]})))}(n))&&function(n){var t=nn(),e=Y().optionalFields()[0];return t.every((function(t){return!(!n||an(t,n))||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(n))}function vn(n,t){function e(n){i[n===Rt.ERRORS?Tt.ERROR_COUNT:Tt.WARN_COUNT]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(Rt.ERRORS):t.isWarning()&&e(Rt.WARNINGS)),i}function hn(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){if(u&&e.groupName!==u)var r=!0;else i&&!an(e,i)?r=!0:(r=e.warns(),r=n===Rt.WARNINGS!=!!r);return r||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),mt({},i&&((r={})[i]=[],r)))}function Nn(n){return mn(Rt.ERRORS,n)}function gn(n){return mn(Rt.WARNINGS,n)}function mn(n,t){return n=hn(n,nn(),{fieldName:t}),t?n[t]:n}function yn(n,t){return n=bn(Rt.ERRORS,n,t),t?n[t]:n}function En(n,t){return n=bn(Rt.WARNINGS,n,t),t?n[t]:n}function bn(n,t,e){return L(t,"get".concat(n[0].toUpperCase()).concat(n.slice(1),"ByGroup requires a group name. Received `").concat(t,"` instead.")),hn(n,nn(),{group:t,fieldName:e})}function Sn(n,t){return Rn(Rt.ERRORS,n,t)}function On(n,t){return Rn(Rt.WARNINGS,n,t)}function Rn(n,t,e){return nn().some((function(r){return t===r.groupName&&cn(r,n,e)}))}function Tn(){var n=nn(),t={stateRef:Y()};return xt([n],St.bind(t,(function(){var n=Y().suiteName()[0];return Jn(function(){var n=nn(),t=Jn({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=vn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&dn(t.fieldName),e=n.groups;var r=t.groupName;return r&&(e[r]=e[r]||{},e[r][t.fieldName]=vn(e[r],t)),n}),t),t.valid=dn(),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)}(),{getErrors:St.bind(t,Nn),getErrorsByGroup:St.bind(t,yn),getWarnings:St.bind(t,gn),getWarningsByGroup:St.bind(t,En),hasErrors:St.bind(t,fn),hasErrorsByGroup:St.bind(t,Sn),hasWarnings:St.bind(t,ln),hasWarningsByGroup:St.bind(t,On),isValid:St.bind(t,dn),suiteName:n})})))}function Cn(n){var t=$();return!S(t)&&(n?t.some((function(t){return an(t,n)})):ct(t))}function In(){var n=nn(),t={stateRef:Y()};return Ut([n],St.bind(t,(function(){return Jn({},Tn(),{done:St.bind(t,Gt)})})))}function kn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!S(r.tests[e].testCount)))}function An(n){return!(Cn()&&(!n||Cn(n)))}function _n(n,t){var e=St.bind({},n);(0,Y().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function wn(n){return n.forEach((function(n){return n()}))}function Fn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(Pt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=Y().testCallbacks()[0].fieldCallbacks;t&&!Cn(t)&&d(e[t])&&wn(e[t]),Cn()||n.emit(Pt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Pt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var n=Y().optionalFields()[0];if(!S(n)){var e={};Z((function(r){return H(r,(function(r){var u=r.fieldName;if(e.hasOwnProperty(u))e[r.fieldName]&&r.omit();else{var i=n[u];t(i)&&(e[u]=i(),e[r.fieldName]&&r.omit())}return r}))}))}}()})),n.on(Pt.ALL_RUNNING_TESTS_FINISHED,(function(){wn(Y().testCallbacks()[0].doneCallbacks)})),n.on(Pt.REMOVE_FIELD,(function(n){nn().forEach((function(t){an(t,n)&&(t.cancel(),function(n){Z((function(t){return H(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Pt.RESET_FIELD,(function(n){nn().forEach((function(t){an(t,n)&&t.reset()}))})),n}function Ln(){var n=St.useX();return L(n.bus),n.bus}function Wn(n){return xn(0,"tests",n)}function Pn(n){return xn(1,"tests",n)}function xn(n,t,e){var r=St.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Un(n){for(var t in n)if(!0===n[t])return!0;return!1}function Gn(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function Xn(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Ln().emit,i=Y(),s=St.bind({stateRef:i},(function(){Q(),u(Pt.TEST_COMPLETED,n)}));i=St.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=o(t)?t:r,n.fail(),s())}));try{e.then(s,i)}catch(n){i()}}}function Dn(n){var t=z()[0].prev;if(S(t))return qn(n),n;var e=un();if(t=V(t,e)[B(e)],!i(n.key)){t=n.key,(e=St.useX().isolate.keys.prev[t])&&(n=e),e=n;var r=St.useX().isolate.keys.current;return i(r[t])?r[t]=e:rn('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),qn(n),n}return!ct(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(St.useX().isolate.type===Hn.EACH||rn("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(n.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.')),function(){var n=z(),t=n[1],e=n[0].prev;n=V(e,un());var r=St.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),qn(n=F(t,n)),n}function qn(n){var t=un();Z((function(e){return V(e,t)[B(t)]=n,e}))}function Kn(n){var e=Vn.EAGER;if(e=!(St.useX().mode[0]!==e||!fn(n.fieldName)))return n.skip(),Dn(n),on(),n;if(e=Dn(n),St.useX().omitted)return e.omit(),on(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,St.useX().skipped)return!0;var e=St.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){n:{var o=St.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(o,n))var s=!1===o[n];else{for(s in o)if(!0===o[s]){s=!0;break n}s=!1}}if(s)return!0;if(!0===r.groups[n])return!(i||!Un(u)&&!1!==u[t])}r=St.useX().exclusion;n:{for(a in(s=St.useX().exclusion).groups)if(s.groups[a]){var a=!0;break n}a=!1}return!(!a||n&&n in r.groups&&r.groups[n])||!i&&!!Un(u)&&!w(e[t])}(n))return e.skip(!!St.useX().skipped),on(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),qn(n),on(),n.isUntested()){e=Ln();var r=function(n){return St.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){t=e,u(n.message)&&o(t)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),Xn(n)):e.emit(Pt.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}else(e=n.asyncTest)&&t(e.then)&&(n.setPending(),Xn(n));return n}function jn(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:x([void 0],e,!0);e=u[0],r=u[1],u=u[2],L(o(n),Bn("fieldName","string")),L(t(r),Bn("Test callback","function"));var i=St.useX();return Kn(e=new Ct(n,r,{message:e,groupName:i.groupName,key:u}))}function Bn(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var Hn,Mn,Vn,Jn=Object.assign,Yn=e(r),zn=e(u),Qn=e(i),Zn=e(s),$n=e(a),nt=e(c),tt=e(l),et=e(d),rt=e(v),ut=e(g),it=e(m),ot=e(y),st=e(E),at=e(b),ct=e(S),ft=e(O),lt=e(R),pt=e(o),dt=e(T),vt=e(C),ht=e(k),Nt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Zn,doesNotStartWith:e(A),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:p,gt:f,gte:p,inside:v,isArray:d,isBetween:g,isBlank:m,isBoolean:y,isEmpty:S,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:dt,isKeyOf:O,isNaN:R,isNegative:function(n){return h(n,0)},isNotArray:et,isNotBetween:ut,isNotBlank:it,isNotBoolean:ot,isNotEmpty:ct,isNotKeyOf:ft,isNotNaN:lt,isNotNull:Yn,isNotNullish:Qn,isNotNumber:st,isNotNumeric:nt,isNotString:pt,isNotUndefined:zn,isNotValueOf:vt,isNull:r,isNullish:i,isNumber:E,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:function(n){return f(n,0)},isString:o,isTruthy:T,isUndefined:u,isValueOf:C,lengthEquals:b,lengthNotEquals:at,lessThan:h,lessThanOrEquals:N,longerThan:I,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:h,lte:N,matches:k,notEquals:$n,notInside:rt,notMatches:ht,numberEquals:l,numberNotEquals:tt,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:A},gt=W((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?Jn(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:Jn(e,{parent:P})})),mt=function(){return(mt=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)},yt=(Mn={context:function(){return gt.useX()},extend:function(n){Jn(Nt,n)}},U()?new Proxy(Jn(D,Mn),{get:function(n,t){return t in n?n[t]:Nt[t]?K(t):void 0}}):(_((function(n){Mn[n]=K(n)})),Jn(D,Mn))),Et=function(n){return function(){return"".concat(n++)}}(0);!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.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(Hn||(Hn={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(Vn||(Vn={}));var bt,St=W((function(n,t){return t?null:Jn({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:Hn.DEFAULT,keys:{current:{},prev:{}}},mode:[Vn.ALL],testCursor:J()},n)})),Ot=j();!function(n){n.Error="error",n.Warning="warning"}(bt||(bt={}));var Rt,Tt,Ct=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=Et(),this.severity=bt.Error,this.status=It,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){n=t,u(this.message)&&o(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Wt||(this.status=n)},n.prototype.warns=function(){return this.severity===bt.Warning},n.prototype.setPending=function(){this.setStatus(Ft)},n.prototype.fail=function(){this.setStatus(this.warns()?_t:At)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(wt)},n.prototype.warn=function(){this.severity=bt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(kt)},n.prototype.cancel=function(){this.setStatus(Lt),Q()},n.prototype.reset=function(){this.status=It,Q()},n.prototype.omit=function(){this.setStatus(Wt)},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(Ft)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Wt)},n.prototype.isUntested=function(){return this.statusEquals(It)},n.prototype.isFailing=function(){return this.statusEquals(At)},n.prototype.isCanceled=function(){return this.statusEquals(Lt)},n.prototype.isSkipped=function(){return this.statusEquals(kt)},n.prototype.isPassing=function(){return this.statusEquals(wt)},n.prototype.isWarning=function(){return this.statusEquals(_t)},n.prototype.statusEquals=function(n){return this.status===n},n}(),It="UNTESTED",kt="SKIPPED",At="FAILED",_t="WARNING",wt="PASSING",Ft="PENDING",Lt="CANCELED",Wt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Rt||(Rt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Tt||(Tt={}));var Pt,xt=j(20),Ut=j(20),Gt=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=In(),kn(e,n,t))return t;var r=function(){return e(Tn())};return An(n)?(r(),t):(_n(r,n),t)};!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"}(Pt||(Pt={})),Wn.group=function(n){return xn(0,"groups",n)},Pn.group=function(n){return xn(1,"groups",n)};var Xt=Jn(jn,{memo:function(n){var t=j(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=St.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[Y().suiteId()[0],e,u].concat(i),null===(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):Kn(r[1])}}(jn)});n.VERSION="4.3.0",n.context=St,n.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],L(t(r),"vest.create: Expected callback to be a function.");var u=Fn(),i=tn();return n={stateRef:en(i,{suiteId:Et(),suiteName:n}),bus:u},Jn(St.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),sn({type:Hn.SUITE},(function(){r.apply(void 0,n)})),u.emit(Pt.SUITE_CALLBACK_DONE_RUNNING),In()})),{get:St.bind(n,Tn),remove:St.bind(n,(function(n){u.emit(Pt.REMOVE_FIELD,n)})),reset:i.reset,resetField:St.bind(n,(function(n){u.emit(Pt.RESET_FIELD,n)}))})},n.each=function(n,e){L(t(e),"each callback must be a function"),sn({type:Hn.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=Vn.EAGER;St.useX().mode[0]=n},n.enforce=yt,n.group=function(n,e){L(o(n),Gn("name must be a string")),L(t(e),Gn("callback must be a function")),sn({type:Hn.GROUP},(function(){St.run({groupName:n},e)}))},n.include=function(n){function t(t){var e=St.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?F(r.tests[n],!0):o(t)?!!r.tests[t]:w(t,w(Tn))}}var e=St.useX();return n?(e.inclusion[n]=F(e.exclusion.tests[n],!0),{when:t}):{when:t}},n.omitWhen=function(n,t){sn({type:Hn.OMIT_WHEN},(function(){St.run({omitted:!!St.useX().omitted||w(n,w(Tn))},(function(){return t()}))}))},n.only=Wn,n.optional=function(n){(0,Y().optionalFields()[1])((function(t){if(d(n)||o(n))[].concat(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},n.skip=Pn,n.skipWhen=function(n,t){sn({type:Hn.SKIP_WHEN},(function(){St.run({skipped:!!St.useX().skipped||w(n,w(Tn))},(function(){return t()}))}))},n.test=Xt,n.warn=function(){var n=St.useX("warn hook called outside of a running suite.");L(n.currentTest,"warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
|
1
|
+
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return"function"==typeof n}function e(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function r(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function a(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function l(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function p(n,t){return l(n,t)||f(n,t)}function d(n){return!!Array.isArray(n)}function v(n,t){return!!(d(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function h(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function g(n,t){return l(n,t)||h(n,t)}function N(n,t,e){return p(n,t)&&g(n,e)}function m(n){return i(n)||o(n)&&!n.trim()}function y(n){return!!n===n}function E(n){return"number"==typeof n}function b(n,t){return l(n.length,t)}function S(n){if(n){if(E(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return b(n,0);if("object"==typeof n)return b(Object.keys(n),0)}return!0}function T(n,t){return n in t}function O(n){return Number.isNaN(n)}function R(n){return!!n}function C(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function I(n,t){return f(n.length,t)}function k(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function _(n,t){return o(n)&&o(t)&&n.startsWith(t)}function A(n){for(var e in mt){var r=mt[e];t(r)&&n(e,r)}}function L(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return t(n)?n.apply(void 0,e):n}function w(n,t){var e;return null!==(e=L(n))&&void 0!==e?e:t}function F(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?L(t):t)}function W(n){function t(t,u){var i,o,s=e();return t=zn({},s||{},null!==(i=L(n,t,s))&&void 0!==i?i:t),i=r.ctx=Object.freeze(t),r.ancestry.unshift(i),u=u(i),r.ancestry.shift(),r.ctx=null!==(o=r.ancestry[0])&&void 0!==o?o:null,u}function e(){return r.ctx}var r={ancestry:[]};return{bind:function(n,e){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return t(n,(function(){return e.apply(void 0,r)}))}},run:t,use:e,useX:function(n){return F(r.ctx,w(n,"Context was used after it was closed")),r.ctx}}}function x(){return null}function P(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function X(){try{return t(Proxy)}catch(n){return!1}}function U(n,t){return n={pass:n},t&&(n.message=t),n}function G(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return F(y(n)||n&&y(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),y(n)?U(n):U(n.pass,L.apply(void 0,P([n.message,t,e],r,!1)))}function D(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return F((i=G.apply(void 0,P([yt.run({value:n},(function(){return e.apply(void 0,P([n],u,!1))})),r,n],u,!1))).pass,S(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var e={};if(!X())return A((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=mt[e])return t(r,n,e)}});return r}function q(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function K(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=mt[r];e.push((function(n){return G.apply(void 0,P([o.apply(void 0,P([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return w(q(e,(function(e,r){var u,i=yt.run({value:n},(function(){return e(n)}));i.pass||r(U(!!i.pass,null!==(u=L(t,n,i.message))&&void 0!==u?u:i.message))})),U(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return X()?s=new Proxy(s,{get:function(t,e){return mt[e]?n(e):t[e]}}):(A((function(t){s[t]=n(t)})),s)}}(n)}function j(n){function t(n){return e.findIndex((function(t){var e=t[0];return b(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),I(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function B(n){return(n=[].concat(n))[n.length-1]}function H(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];d(u)?e.push(H(u,t)):(u=t(u),Qn(u)&&e.push(u))}return e}function M(n){return[].concat(n).reduce((function(n,t){return d(t)?n.concat(M(t)):[].concat(n).concat(t)}),[])}function V(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=w(n[r],[]),n=n[r]}return n}function J(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return B(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,B(t)},removeLevel:function(){t.pop()},reset:n}}function Y(){return Tt.useX().stateRef}function z(){return Y().testObjects()}function Q(){(0,z()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function Z(n){(0,z()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function $(){return M(H(z()[0].current,(function(n){return n.isPending()?n:null})))}function nn(){var n=z()[0].current;return Ot([n],(function(){return M(n)}))}function tn(n){function e(n,t,e){return u.references.push(),r(n,L(t,e)),function(){return[u.references[n],function(t){return r(n,L(t,u.references[n]))}]}}function r(e,r){var o=u.references[e];u.references[e]=r,t(e=i[e][1])&&e(r,o),t(n)&&n()}var u={references:[]},i=[];return{registerStateKey:function(n,t){var r=i.length;return i.push([n,t]),e(r,n)},reset:function(){var n=u.references;u.references=[],i.forEach((function(t,r){return e(r,t[0],n[r])}))}}}function en(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 rn(n){setTimeout((function(){throw Error(n)}),0)}function un(){return Tt.useX().testCursor.getCursor()}function on(){return Tt.useX().testCursor.next()}function sn(n,e){if(n=void 0===(n=n.type)?Vn.DEFAULT:n,t(e)){var r={current:{},prev:{}},u=un();return Tt.run({isolate:{type:n,keys:r}},(function(){Tt.useX().testCursor.addLevel(),r.prev=function(){var n=z()[0].prev;return[].concat(V(n,un())).reduce((function(n,t){return t instanceof It&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),Z((function(n){return V(n,u)[B(u)]=[],n}));var n=e();return Tt.useX().testCursor.removeLevel(),on(),n}))}}function an(n,t){return!(!t||n.fieldName!==t)}function cn(n,t,e){return(e=!n.hasFailures()||e&&!an(n,e))||(n=n.warns(),e=t===Rt.WARNINGS!=!!n),!e}function fn(n){return pn(Rt.ERRORS,n)}function ln(n){return pn(Rt.WARNINGS,n)}function pn(n,t){return nn().some((function(e){return cn(e,n,t)}))}function dn(n){var t,e,r=Tt.useX().summary;return F(r),!!(n?null!==(e=null===(t=r.tests)||void 0===t?void 0:t[n])&&void 0!==e&&e.valid:r.valid)}function vn(n){var t=nn().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(t=!!n&&!!t[n])||!fn(n)&&(!(S(t=nn())||function(n){var t=nn();return!!n&&!t.find((function(t){return t.fieldName===n}))}(n)||function(n){var t=Y().optionalFields()[0];return lt($().filter((function(e){return!(n&&!an(e,n))&&!0!==t[e.fieldName]})))}(n))&&function(n){var t=nn(),e=Y().optionalFields()[0];return t.every((function(t){return!(!n||an(t,n))||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(n))}function hn(n,t){function e(n){i[n===Rt.ERRORS?Ct.ERROR_COUNT:Ct.WARN_COUNT]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(Rt.ERRORS):t.isWarning()&&e(Rt.WARNINGS)),i}function gn(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}function Nn(n,t){var e,r,u={};for(r in n)u[r]=(null===(e=n[r])||void 0===e?void 0:e[t])||[];return u}function mn(n){return En(Rt.ERRORS,n)}function yn(n){return En(Rt.WARNINGS,n)}function En(n,t){var e=Tt.useX().summary;return F(e),e=e.tests,t?gn(e,n,t):Nn(e,n)}function bn(n,t){return Tn(n,Rt.ERRORS,t)}function Sn(n,t){return Tn(n,Rt.WARNINGS,t)}function Tn(n,t,e){var r=Tt.useX().summary;return F(r),n=r.groups[n],e?gn(n,t,e):Nn(n,t)}function On(n,t){return Cn(Rt.ERRORS,n,t)}function Rn(n,t){return Cn(Rt.WARNINGS,n,t)}function Cn(n,t,e){return nn().some((function(r){return t===r.groupName&&cn(r,n,e)}))}function In(){var n=nn(),t={stateRef:Y()};return Xt([n],Tt.bind(t,(function(){var n=function(){var n=nn(),t=zn({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=hn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&vn(t.fieldName),e=n.groups;var r=t.groupName;return r&&(e[r]=e[r]||{},e[r][t.fieldName]=hn(e[r],t)),n}),t),t.valid=vn(),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)}(),e=Y().suiteName()[0],r=zn({summary:n},t);return zn(n,{getErrors:Tt.bind(r,mn),getErrorsByGroup:Tt.bind(r,bn),getWarnings:Tt.bind(r,yn),getWarningsByGroup:Tt.bind(r,Sn),hasErrors:Tt.bind(r,fn),hasErrorsByGroup:Tt.bind(r,On),hasWarnings:Tt.bind(r,ln),hasWarningsByGroup:Tt.bind(r,Rn),isValid:Tt.bind(r,dn),suiteName:e})})))}function kn(n){var t=$();return!S(t)&&(n?t.some((function(t){return an(t,n)})):lt(t))}function _n(){var n=nn(),t={stateRef:Y()};return Ut([n],Tt.bind(t,(function(){return zn({},In(),{done:Tt.bind(t,Gt)})})))}function An(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!S(r.tests[e].testCount)))}function Ln(n){return!(kn()&&(!n||kn(n)))}function wn(n,t){(0,Y().testCallbacks()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Fn(n){return n.forEach((function(n){return n()}))}function Wn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==e}))}}}}}();return n.on(Pt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=Y().testCallbacks()[0].fieldCallbacks;t&&!kn(t)&&d(e[t])&&Fn(e[t]),kn()||n.emit(Pt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Pt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var n=Y().optionalFields()[0];if(!S(n)){var e={};Z((function(r){return H(r,(function(r){if(Object.prototype.hasOwnProperty.call(e,r.fieldName))e[r.fieldName]&&r.omit();else{var u=n[r.fieldName];t(u)&&(e[r.fieldName]=u(),e[r.fieldName]&&r.omit())}return r}))}))}}()})),n.on(Pt.ALL_RUNNING_TESTS_FINISHED,(function(){Fn(Y().testCallbacks()[0].doneCallbacks)})),n.on(Pt.REMOVE_FIELD,(function(n){nn().forEach((function(t){an(t,n)&&(t.cancel(),function(n){Z((function(t){return H(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Pt.RESET_FIELD,(function(n){nn().forEach((function(t){an(t,n)&&t.reset()}))})),n}function xn(){var n=Tt.useX();return F(n.bus),n.bus}function Pn(n){return Un(0,"tests",n)}function Xn(n){return Un(1,"tests",n)}function Un(n,t,e){var r=Tt.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Gn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Dn(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function qn(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=xn().emit,i=Y(),s=Tt.bind({stateRef:i},(function(){Q(),u(Pt.TEST_COMPLETED,n)}));i=Tt.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=o(t)?t:r,n.fail(),s())}));try{e.then(s,i)}catch(n){i()}}}function Kn(n){var t=z()[0].prev;if(S(t))return jn(n),n;var e=un();if(t=V(t,e)[B(e)],!i(n.key)){t=n.key,(e=Tt.useX().isolate.keys.prev[t])&&(n=e),e=n;var r=Tt.useX().isolate.keys.current;return i(r[t])?r[t]=e:rn('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),jn(n),n}return!lt(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(Tt.useX().isolate.type===Vn.EACH||rn("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(n.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.')),function(){var n=z(),t=n[1],e=n[0].prev;n=V(e,un());var r=Tt.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),jn(n=w(t,n)),n}function jn(n){var t=un();Z((function(e){return V(e,t)[B(t)]=n,e}))}function Bn(n){var e=Yn.EAGER;if(e=!(Tt.useX().mode[0]!==e||!fn(n.fieldName)))return n.skip(),Kn(n),on(),n;if(e=Kn(n),Tt.useX().omitted)return e.omit(),on(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,Tt.useX().skipped)return!0;var e=Tt.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){n:{var o=Tt.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(o,n))var s=!1===o[n];else{for(s in o)if(!0===o[s]){s=!0;break n}s=!1}}if(s)return!0;if(!0===r.groups[n])return!(i||!Gn(u)&&!1!==u[t])}r=Tt.useX().exclusion;n:{for(a in(s=Tt.useX().exclusion).groups)if(s.groups[a]){var a=!0;break n}a=!1}return!(!a||n&&n in r.groups&&r.groups[n])||!i&&!!Gn(u)&&!L(e[t])}(n))return e.skip(!!Tt.useX().skipped),on(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),jn(n),on(),n.isUntested()){e=xn();var r=function(n){return Tt.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){t=e,u(n.message)&&o(t)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),qn(n)):e.emit(Pt.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}else(e=n.asyncTest)&&t(e.then)&&(n.setPending(),qn(n));return n}function Hn(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:P([void 0],e,!0);e=u[0],r=u[1],u=u[2],F(o(n),Mn("fieldName","string")),F(t(r),Mn("Test callback","function"));var i=Tt.useX();return Bn(e=new It(n,r,{message:e,groupName:i.groupName,key:u}))}function Mn(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var Vn,Jn,Yn,zn=Object.assign,Qn=e(r),Zn=e(u),$n=e(i),nt=e(s),tt=e(a),et=e(c),rt=e(l),ut=e(d),it=e(v),ot=e(N),st=e(m),at=e(y),ct=e(E),ft=e(b),lt=e(S),pt=e(T),dt=e(O),vt=e(o),ht=e(R),gt=e(C),Nt=e(k),mt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:nt,doesNotStartWith:e(_),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:p,gt:f,gte:p,inside:v,isArray:d,isBetween:N,isBlank:m,isBoolean:y,isEmpty:S,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:ht,isKeyOf:T,isNaN:O,isNegative:function(n){return h(n,0)},isNotArray:ut,isNotBetween:ot,isNotBlank:st,isNotBoolean:at,isNotEmpty:lt,isNotKeyOf:pt,isNotNaN:dt,isNotNull:Qn,isNotNullish:$n,isNotNumber:ct,isNotNumeric:et,isNotString:vt,isNotUndefined:Zn,isNotValueOf:gt,isNull:r,isNullish:i,isNumber:E,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:function(n){return f(n,0)},isString:o,isTruthy:R,isUndefined:u,isValueOf:C,lengthEquals:b,lengthNotEquals:ft,lessThan:h,lessThanOrEquals:g,longerThan:I,longerThanOrEquals:function(n,t){return p(n.length,t)},lt:h,lte:g,matches:k,notEquals:tt,notInside:it,notMatches:Nt,numberEquals:l,numberNotEquals:rt,shorterThan:function(n,t){return h(n.length,t)},shorterThanOrEquals:function(n,t){return g(n.length,t)},startsWith:_},yt=W((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?zn(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:zn(e,{parent:x})})),Et=(Jn={context:function(){return yt.useX()},extend:function(n){zn(mt,n)}},X()?new Proxy(zn(D,Jn),{get:function(n,t){return t in n?n[t]:mt[t]?K(t):void 0}}):(A((function(n){Jn[n]=K(n)})),zn(D,Jn))),bt=function(n){return function(){return"".concat(n++)}}(0);!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.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(Vn||(Vn={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(Yn||(Yn={}));var St,Tt=W((function(n,t){return t?null:zn({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:Vn.DEFAULT,keys:{current:{},prev:{}}},mode:[Yn.ALL],testCursor:J()},n)})),Ot=j();!function(n){n.Error="error",n.Warning="warning"}(St||(St={}));var Rt,Ct,It=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=bt(),this.severity=St.Error,this.status=kt,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){n=t,u(this.message)&&o(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==xt||(this.status=n)},n.prototype.warns=function(){return this.severity===St.Warning},n.prototype.setPending=function(){this.setStatus(Ft)},n.prototype.fail=function(){this.setStatus(this.warns()?Lt:At)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(wt)},n.prototype.warn=function(){this.severity=St.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(_t)},n.prototype.cancel=function(){this.setStatus(Wt),Q()},n.prototype.reset=function(){this.status=kt,Q()},n.prototype.omit=function(){this.setStatus(xt)},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(Ft)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(xt)},n.prototype.isUntested=function(){return this.statusEquals(kt)},n.prototype.isFailing=function(){return this.statusEquals(At)},n.prototype.isCanceled=function(){return this.statusEquals(Wt)},n.prototype.isSkipped=function(){return this.statusEquals(_t)},n.prototype.isPassing=function(){return this.statusEquals(wt)},n.prototype.isWarning=function(){return this.statusEquals(Lt)},n.prototype.statusEquals=function(n){return this.status===n},n}(),kt="UNTESTED",_t="SKIPPED",At="FAILED",Lt="WARNING",wt="PASSING",Ft="PENDING",Wt="CANCELED",xt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Rt||(Rt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Ct||(Ct={}));var Pt,Xt=j(1),Ut=j(20),Gt=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=_n(),An(e,n,t))return t;var r=function(){return e(In())};return Ln(n)?(r(),t):(wn(r,n),t)};!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"}(Pt||(Pt={})),Pn.group=function(n){return Un(0,"groups",n)},Xn.group=function(n){return Un(1,"groups",n)};var Dt=zn(Hn,{memo:function(n){var t=j(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=Tt.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[Y().suiteId()[0],e,u].concat(i),null===(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):Bn(r[1])}}(Hn)});n.VERSION="4.3.1",n.context=Tt,n.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],F(t(r),"vest.create: Expected callback to be a function.");var u=Wn(),i=tn();return n={stateRef:en(i,{suiteId:bt(),suiteName:n}),bus:u},zn(Tt.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),sn({type:Vn.SUITE},(function(){r.apply(void 0,n)})),u.emit(Pt.SUITE_CALLBACK_DONE_RUNNING),_n()})),{get:Tt.bind(n,In),remove:Tt.bind(n,(function(n){u.emit(Pt.REMOVE_FIELD,n)})),reset:i.reset,resetField:Tt.bind(n,(function(n){u.emit(Pt.RESET_FIELD,n)}))})},n.each=function(n,e){F(t(e),"each callback must be a function"),sn({type:Vn.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=Yn.EAGER;Tt.useX().mode[0]=n},n.enforce=Et,n.group=function(n,e){F(o(n),Dn("name must be a string")),F(t(e),Dn("callback must be a function")),sn({type:Vn.GROUP},(function(){Tt.run({groupName:n},e)}))},n.include=function(n){function t(t){var e=Tt.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?w(r.tests[n],!0):o(t)?!!r.tests[t]:L(t,L(In))}}var e=Tt.useX();return n?(e.inclusion[n]=w(e.exclusion.tests[n],!0),{when:t}):{when:t}},n.omitWhen=function(n,t){sn({type:Vn.OMIT_WHEN},(function(){Tt.run({omitted:!!Tt.useX().omitted||L(n,L(In))},(function(){return t()}))}))},n.only=Pn,n.optional=function(n){(0,Y().optionalFields()[1])((function(t){if(d(n)||o(n))[].concat(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},n.skip=Xn,n.skipWhen=function(n,t){sn({type:Vn.SKIP_WHEN},(function(){Tt.run({skipped:!!Tt.useX().skipped||L(n,L(In))},(function(){return t()}))}))},n.test=Dt,n.warn=function(){var n=Tt.useX("warn hook called outside of a running suite.");F(n.currentTest,"warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.3.
|
|
2
|
+
"version": "4.3.1",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"name": "vest",
|
|
5
5
|
"author": "ealush",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"url": "https://github.com/ealush/vest.git/issues"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"context": "^2.0.
|
|
24
|
-
"n4s": "^4.1.
|
|
23
|
+
"context": "^2.0.3",
|
|
24
|
+
"n4s": "^4.1.4"
|
|
25
25
|
},
|
|
26
26
|
"homepage": "https://vestjs.dev/",
|
|
27
27
|
"exports": {
|
|
@@ -2,19 +2,19 @@ type DropFirst<T extends unknown[]> = T extends [
|
|
|
2
2
|
unknown,
|
|
3
3
|
...infer U
|
|
4
4
|
] ? U : never;
|
|
5
|
-
type
|
|
6
|
-
type
|
|
5
|
+
type Stringable = string | ((...args: any[]) => string);
|
|
6
|
+
type RuleReturn = boolean | {
|
|
7
7
|
pass: boolean;
|
|
8
|
-
message?:
|
|
8
|
+
message?: Stringable;
|
|
9
9
|
};
|
|
10
|
-
type
|
|
10
|
+
type RuleDetailedResult = {
|
|
11
11
|
pass: boolean;
|
|
12
12
|
message?: string;
|
|
13
13
|
};
|
|
14
|
-
type
|
|
15
|
-
type
|
|
16
|
-
type KBaseRules = keyof
|
|
17
|
-
declare function condition(value: any, callback: (value: any) =>
|
|
14
|
+
type Args = any[];
|
|
15
|
+
type BaseRules = typeof baseRules;
|
|
16
|
+
type KBaseRules = keyof BaseRules;
|
|
17
|
+
declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
|
|
18
18
|
declare function endsWith(value: string, arg1: string): boolean;
|
|
19
19
|
declare function equals(value: unknown, arg1: unknown): boolean;
|
|
20
20
|
declare function greaterThan(value: number | string, gt: number | string): boolean;
|
|
@@ -113,29 +113,29 @@ declare const baseRules: {
|
|
|
113
113
|
shorterThanOrEquals: typeof shorterThanOrEquals;
|
|
114
114
|
startsWith: typeof startsWith;
|
|
115
115
|
};
|
|
116
|
-
type
|
|
117
|
-
[P in KBaseRules]: (...args: DropFirst<Parameters<
|
|
116
|
+
type Rules<E = Record<string, unknown>> = n4s.EnforceCustomMatchers<Rules<E> & E> & Record<string, (...args: Args) => Rules<E> & E> & {
|
|
117
|
+
[P in KBaseRules]: (...args: DropFirst<Parameters<BaseRules[P]>> | Args) => Rules<E> & E;
|
|
118
118
|
};
|
|
119
119
|
/* eslint-disable @typescript-eslint/no-namespace, @typescript-eslint/no-empty-interface */
|
|
120
120
|
declare global {
|
|
121
121
|
namespace n4s {
|
|
122
|
-
interface IRules<E> extends
|
|
122
|
+
interface IRules<E> extends Rules<E> {
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
type
|
|
127
|
-
type
|
|
126
|
+
type LazyRules = n4s.IRules<LazyRuleMethods>;
|
|
127
|
+
type Lazy = LazyRules & LazyRuleMethods &
|
|
128
128
|
// This is a "catch all" hack to make TS happy while not
|
|
129
129
|
// losing type hints
|
|
130
130
|
Record<string, (...args: any[]) => any>;
|
|
131
|
-
type
|
|
132
|
-
message: (message:
|
|
131
|
+
type LazyRuleMethods = LazyRuleRunners & {
|
|
132
|
+
message: (message: LazyMessage) => Lazy;
|
|
133
133
|
};
|
|
134
|
-
type
|
|
134
|
+
type LazyRuleRunners = {
|
|
135
135
|
test: (value: unknown) => boolean;
|
|
136
|
-
run: (value: unknown) =>
|
|
136
|
+
run: (value: unknown) => RuleDetailedResult;
|
|
137
137
|
};
|
|
138
|
-
type
|
|
139
|
-
type
|
|
140
|
-
declare function compose(...composites:
|
|
138
|
+
type ComposeResult = LazyRuleRunners & ((value: any) => void);
|
|
139
|
+
type LazyMessage = string | ((value: unknown, originalMessage?: Stringable) => string);
|
|
140
|
+
declare function compose(...composites: LazyRuleRunners[]): ComposeResult;
|
|
141
141
|
export { compose as default };
|
|
@@ -2,19 +2,19 @@ type DropFirst<T extends unknown[]> = T extends [
|
|
|
2
2
|
unknown,
|
|
3
3
|
...infer U
|
|
4
4
|
] ? U : never;
|
|
5
|
-
type
|
|
6
|
-
type
|
|
5
|
+
type Stringable = string | ((...args: any[]) => string);
|
|
6
|
+
type RuleReturn = boolean | {
|
|
7
7
|
pass: boolean;
|
|
8
|
-
message?:
|
|
8
|
+
message?: Stringable;
|
|
9
9
|
};
|
|
10
|
-
type
|
|
10
|
+
type RuleDetailedResult = {
|
|
11
11
|
pass: boolean;
|
|
12
12
|
message?: string;
|
|
13
13
|
};
|
|
14
|
-
type
|
|
15
|
-
type
|
|
16
|
-
type KBaseRules = keyof
|
|
17
|
-
declare function condition(value: any, callback: (value: any) =>
|
|
14
|
+
type Args = any[];
|
|
15
|
+
type BaseRules = typeof baseRules;
|
|
16
|
+
type KBaseRules = keyof BaseRules;
|
|
17
|
+
declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
|
|
18
18
|
declare function endsWith(value: string, arg1: string): boolean;
|
|
19
19
|
declare function equals(value: unknown, arg1: unknown): boolean;
|
|
20
20
|
declare function greaterThan(value: number | string, gt: number | string): boolean;
|
|
@@ -113,33 +113,33 @@ declare const baseRules: {
|
|
|
113
113
|
shorterThanOrEquals: typeof shorterThanOrEquals;
|
|
114
114
|
startsWith: typeof startsWith;
|
|
115
115
|
};
|
|
116
|
-
type
|
|
117
|
-
[P in KBaseRules]: (...args: DropFirst<Parameters<
|
|
116
|
+
type Rules<E = Record<string, unknown>> = n4s.EnforceCustomMatchers<Rules<E> & E> & Record<string, (...args: Args) => Rules<E> & E> & {
|
|
117
|
+
[P in KBaseRules]: (...args: DropFirst<Parameters<BaseRules[P]>> | Args) => Rules<E> & E;
|
|
118
118
|
};
|
|
119
119
|
/* eslint-disable @typescript-eslint/no-namespace, @typescript-eslint/no-empty-interface */
|
|
120
120
|
declare global {
|
|
121
121
|
namespace n4s {
|
|
122
|
-
interface IRules<E> extends
|
|
122
|
+
interface IRules<E> extends Rules<E> {
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
type
|
|
127
|
-
type
|
|
126
|
+
type LazyRules = n4s.IRules<LazyRuleMethods>;
|
|
127
|
+
type Lazy = LazyRules & LazyRuleMethods &
|
|
128
128
|
// This is a "catch all" hack to make TS happy while not
|
|
129
129
|
// losing type hints
|
|
130
130
|
Record<string, (...args: any[]) => any>;
|
|
131
|
-
type
|
|
132
|
-
message: (message:
|
|
131
|
+
type LazyRuleMethods = LazyRuleRunners & {
|
|
132
|
+
message: (message: LazyMessage) => Lazy;
|
|
133
133
|
};
|
|
134
|
-
type
|
|
134
|
+
type LazyRuleRunners = {
|
|
135
135
|
test: (value: unknown) => boolean;
|
|
136
|
-
run: (value: unknown) =>
|
|
136
|
+
run: (value: unknown) => RuleDetailedResult;
|
|
137
137
|
};
|
|
138
|
-
type
|
|
139
|
-
declare function allOf(value: unknown, ...rules:
|
|
140
|
-
declare function anyOf(value: unknown, ...rules:
|
|
141
|
-
declare function noneOf(value: unknown, ...rules:
|
|
142
|
-
declare function oneOf(value: unknown, ...rules:
|
|
138
|
+
type LazyMessage = string | ((value: unknown, originalMessage?: Stringable) => string);
|
|
139
|
+
declare function allOf(value: unknown, ...rules: Lazy[]): RuleDetailedResult;
|
|
140
|
+
declare function anyOf(value: unknown, ...rules: Lazy[]): RuleDetailedResult;
|
|
141
|
+
declare function noneOf(value: unknown, ...rules: Lazy[]): RuleDetailedResult;
|
|
142
|
+
declare function oneOf(value: unknown, ...rules: Lazy[]): RuleDetailedResult;
|
|
143
143
|
declare global {
|
|
144
144
|
namespace n4s {
|
|
145
145
|
interface EnforceCustomMatchers<R> {
|