vest 4.4.1 → 4.4.2-dev-afe5de
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/classnames.development.js +9 -60
- package/dist/cjs/classnames.production.js +1 -1
- package/dist/cjs/enforce/compose.development.js +6 -53
- package/dist/cjs/enforce/compose.production.js +1 -1
- package/dist/cjs/enforce/compounds.development.js +16 -71
- package/dist/cjs/enforce/compounds.production.js +1 -1
- package/dist/cjs/enforce/schema.development.js +6 -58
- package/dist/cjs/enforce/schema.production.js +1 -1
- package/dist/cjs/parser.development.js +8 -59
- package/dist/cjs/parser.production.js +1 -1
- package/dist/cjs/promisify.development.js +2 -26
- package/dist/cjs/promisify.production.js +1 -1
- package/dist/cjs/vest.development.js +94 -293
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/classnames.development.js +1 -52
- package/dist/es/classnames.production.js +1 -1
- package/dist/es/enforce/compose.development.js +4 -51
- package/dist/es/enforce/compose.production.js +1 -1
- package/dist/es/enforce/compounds.development.js +11 -66
- package/dist/es/enforce/compounds.production.js +1 -1
- package/dist/es/enforce/schema.development.js +2 -54
- package/dist/es/enforce/schema.production.js +1 -1
- package/dist/es/parser.development.js +1 -52
- package/dist/es/parser.production.js +1 -1
- package/dist/es/promisify.development.js +1 -25
- package/dist/es/promisify.production.js +1 -1
- package/dist/es/vest.development.js +19 -218
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/classnames.development.js +13 -13
- package/dist/umd/classnames.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +121 -121
- package/dist/umd/enforce/compose.production.js +1 -1
- package/dist/umd/enforce/compounds.development.js +180 -184
- package/dist/umd/enforce/compounds.production.js +1 -1
- package/dist/umd/enforce/schema.development.js +132 -132
- package/dist/umd/enforce/schema.production.js +1 -1
- package/dist/umd/parser.development.js +13 -13
- package/dist/umd/parser.production.js +1 -1
- package/dist/umd/vest.development.js +277 -277
- package/dist/umd/vest.production.js +1 -1
- package/package.json +4 -3
- package/testUtils/mockThrowError.ts +2 -1
- package/testUtils/suiteDummy.ts +1 -1
- package/testUtils/testObjects.ts +0 -8
- package/types/enforce/compose.d.ts +14 -30
- package/types/enforce/compounds.d.ts +14 -30
- package/types/enforce/schema.d.ts +14 -30
- package/types/vest.d.ts +4 -3
- package/testUtils/itWithContext.ts +0 -23
|
@@ -1,42 +1,12 @@
|
|
|
1
1
|
export { enforce } from 'n4s';
|
|
2
|
+
import { isUndefined, isStringValue, assign, optionalFunctionValue, nestedArray, asArray, genId, isFunction, isNullish, deferThrow, invariant, bindNot, either, isEmpty, isNotEmpty, isPositive, hasOwnProperty, isArray, callEach, bus, defaultTo, isPromise, isNull } from 'vest-utils';
|
|
2
3
|
import { createContext } from 'context';
|
|
3
4
|
|
|
4
|
-
/**
|
|
5
|
-
* @returns a unique numeric id.
|
|
6
|
-
*/
|
|
7
|
-
var genId = (function (n) { return function () {
|
|
8
|
-
return "".concat(n++);
|
|
9
|
-
}; })(0);
|
|
10
|
-
|
|
11
|
-
function isStringValue(v) {
|
|
12
|
-
return String(v) === v;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function bindNot(fn) {
|
|
16
|
-
return function () {
|
|
17
|
-
var args = [];
|
|
18
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
19
|
-
args[_i] = arguments[_i];
|
|
20
|
-
}
|
|
21
|
-
return !fn.apply(void 0, args);
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function isUndefined(value) {
|
|
26
|
-
return value === undefined;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
5
|
function shouldUseErrorAsMessage(message, error) {
|
|
30
6
|
// kind of cheating with this safe guard, but it does the job
|
|
31
7
|
return isUndefined(message) && isStringValue(error);
|
|
32
8
|
}
|
|
33
9
|
|
|
34
|
-
function asArray(possibleArg) {
|
|
35
|
-
return [].concat(possibleArg);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
var assign = Object.assign;
|
|
39
|
-
|
|
40
10
|
function isNumeric(value) {
|
|
41
11
|
var str = String(value);
|
|
42
12
|
var num = Number(value);
|
|
@@ -97,85 +67,6 @@ function createCache(maxSize) {
|
|
|
97
67
|
}
|
|
98
68
|
}
|
|
99
69
|
|
|
100
|
-
// The module is named "isArrayValue" since it
|
|
101
|
-
// is conflicting with a nested npm dependency.
|
|
102
|
-
// We may need to revisit this in the future.
|
|
103
|
-
function isArray(value) {
|
|
104
|
-
return Boolean(Array.isArray(value));
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
function isNull(value) {
|
|
108
|
-
return value === null;
|
|
109
|
-
}
|
|
110
|
-
var isNotNull = bindNot(isNull);
|
|
111
|
-
|
|
112
|
-
function isFunction(value) {
|
|
113
|
-
return typeof value === 'function';
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
function optionalFunctionValue(value) {
|
|
117
|
-
var args = [];
|
|
118
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
119
|
-
args[_i - 1] = arguments[_i];
|
|
120
|
-
}
|
|
121
|
-
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
function defaultTo(callback, defaultValue) {
|
|
125
|
-
var _a;
|
|
126
|
-
return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
function last(values) {
|
|
130
|
-
var valuesArray = asArray(values);
|
|
131
|
-
return valuesArray[valuesArray.length - 1];
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
// This is kind of a map/filter in one function.
|
|
135
|
-
// Normally, behaves like a nested-array map,
|
|
136
|
-
// but returning `null` will drop the element from the array
|
|
137
|
-
function transform(array, cb) {
|
|
138
|
-
var res = [];
|
|
139
|
-
for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
|
|
140
|
-
var v = array_1[_i];
|
|
141
|
-
if (isArray(v)) {
|
|
142
|
-
res.push(transform(v, cb));
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
var output = cb(v);
|
|
146
|
-
if (isNotNull(output)) {
|
|
147
|
-
res.push(output);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return res;
|
|
152
|
-
}
|
|
153
|
-
function valueAtPath(array, path) {
|
|
154
|
-
return getCurrent(array, path)[last(path)];
|
|
155
|
-
}
|
|
156
|
-
function setValueAtPath(array, path, value) {
|
|
157
|
-
var current = getCurrent(array, path);
|
|
158
|
-
current[last(path)] = value;
|
|
159
|
-
return array;
|
|
160
|
-
}
|
|
161
|
-
function flatten(values) {
|
|
162
|
-
return asArray(values).reduce(function (acc, value) {
|
|
163
|
-
if (isArray(value)) {
|
|
164
|
-
return acc.concat(flatten(value));
|
|
165
|
-
}
|
|
166
|
-
return asArray(acc).concat(value);
|
|
167
|
-
}, []);
|
|
168
|
-
}
|
|
169
|
-
function getCurrent(array, path) {
|
|
170
|
-
var current = array;
|
|
171
|
-
for (var _i = 0, _a = path.slice(0, -1); _i < _a.length; _i++) {
|
|
172
|
-
var p = _a[_i];
|
|
173
|
-
current[p] = defaultTo(current[p], []);
|
|
174
|
-
current = current[p];
|
|
175
|
-
}
|
|
176
|
-
return current;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
70
|
var IsolateTypes;
|
|
180
71
|
(function (IsolateTypes) {
|
|
181
72
|
IsolateTypes[IsolateTypes["DEFAULT"] = 0] = "DEFAULT";
|
|
@@ -305,7 +196,7 @@ function useAllIncomplete() {
|
|
|
305
196
|
var flatCache = createCache();
|
|
306
197
|
function useTestsFlat() {
|
|
307
198
|
var current = useTestObjects()[0].current;
|
|
308
|
-
return flatCache([current], function () { return flatten(current); });
|
|
199
|
+
return flatCache([current], function () { return nestedArray.flatten(current); });
|
|
309
200
|
}
|
|
310
201
|
function useEachTestObject(handler) {
|
|
311
202
|
var testObjects = useTestsFlat();
|
|
@@ -456,20 +347,6 @@ var STATUS_PENDING = 'PENDING';
|
|
|
456
347
|
var STATUS_CANCELED = 'CANCELED';
|
|
457
348
|
var STATUS_OMITTED = 'OMITTED';
|
|
458
349
|
|
|
459
|
-
function invariant(condition,
|
|
460
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
461
|
-
message) {
|
|
462
|
-
if (condition) {
|
|
463
|
-
return;
|
|
464
|
-
}
|
|
465
|
-
// If message is a string object (rather than string literal)
|
|
466
|
-
// Throw the value directly as a string
|
|
467
|
-
// Alternatively, throw an error with the message
|
|
468
|
-
throw message instanceof String
|
|
469
|
-
? message.valueOf()
|
|
470
|
-
: new Error(message ? optionalFunctionValue(message) : message);
|
|
471
|
-
}
|
|
472
|
-
|
|
473
350
|
// eslint-disable-next-line max-lines-per-function
|
|
474
351
|
function createState(onStateChange) {
|
|
475
352
|
var state = {
|
|
@@ -553,19 +430,9 @@ function createStateRef(state, _a) {
|
|
|
553
430
|
};
|
|
554
431
|
}
|
|
555
432
|
|
|
556
|
-
function isNullish(value) {
|
|
557
|
-
return isNull(value) || isUndefined(value);
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
function deferThrow(message) {
|
|
561
|
-
setTimeout(function () {
|
|
562
|
-
throw new Error(message);
|
|
563
|
-
}, 0);
|
|
564
|
-
}
|
|
565
|
-
|
|
566
433
|
function usePrevKeys() {
|
|
567
434
|
var prev = useTestObjects()[0].prev;
|
|
568
|
-
return asArray(getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
|
|
435
|
+
return asArray(nestedArray.getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
|
|
569
436
|
if (!(testObject instanceof VestTest)) {
|
|
570
437
|
return prevKeys;
|
|
571
438
|
}
|
|
@@ -597,7 +464,7 @@ function isolate(_a, callback) {
|
|
|
597
464
|
var isolate = generateIsolate(type, useCurrentPath());
|
|
598
465
|
var output = context.run({ isolate: isolate }, function () {
|
|
599
466
|
isolate.keys.prev = usePrevKeys();
|
|
600
|
-
useSetTests(function (tests) { return setValueAtPath(tests, isolate.path, []); });
|
|
467
|
+
useSetTests(function (tests) { return nestedArray.setValueAtPath(tests, isolate.path, []); });
|
|
601
468
|
var res = callback();
|
|
602
469
|
return res;
|
|
603
470
|
});
|
|
@@ -647,34 +514,6 @@ function countKeyBySeverity(severity) {
|
|
|
647
514
|
: SeverityCount.WARN_COUNT;
|
|
648
515
|
}
|
|
649
516
|
|
|
650
|
-
/**
|
|
651
|
-
* A safe hasOwnProperty access
|
|
652
|
-
*/
|
|
653
|
-
function hasOwnProperty(obj, key) {
|
|
654
|
-
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
655
|
-
}
|
|
656
|
-
|
|
657
|
-
function isNumber(value) {
|
|
658
|
-
return Boolean(typeof value === 'number');
|
|
659
|
-
}
|
|
660
|
-
|
|
661
|
-
function isEmpty(value) {
|
|
662
|
-
if (!value) {
|
|
663
|
-
return true;
|
|
664
|
-
}
|
|
665
|
-
else if (isNumber(value)) {
|
|
666
|
-
return value === 0;
|
|
667
|
-
}
|
|
668
|
-
else if (hasOwnProperty(value, 'length')) {
|
|
669
|
-
return lengthEquals(value, 0);
|
|
670
|
-
}
|
|
671
|
-
else if (typeof value === 'object') {
|
|
672
|
-
return lengthEquals(Object.keys(value), 0);
|
|
673
|
-
}
|
|
674
|
-
return false;
|
|
675
|
-
}
|
|
676
|
-
var isNotEmpty = bindNot(isEmpty);
|
|
677
|
-
|
|
678
517
|
function nonMatchingFieldName(testObject, fieldName) {
|
|
679
518
|
return !!fieldName && !matchingFieldName(testObject, fieldName);
|
|
680
519
|
}
|
|
@@ -687,10 +526,6 @@ function matchingGroupName(testObject, groupName) {
|
|
|
687
526
|
return testObject.groupName === groupName;
|
|
688
527
|
}
|
|
689
528
|
|
|
690
|
-
function either(a, b) {
|
|
691
|
-
return !!a !== !!b;
|
|
692
|
-
}
|
|
693
|
-
|
|
694
529
|
/**
|
|
695
530
|
* Checks that a given test object matches the currently specified severity level
|
|
696
531
|
*/
|
|
@@ -914,10 +749,6 @@ function baseTestStats() {
|
|
|
914
749
|
});
|
|
915
750
|
}
|
|
916
751
|
|
|
917
|
-
function isPositive(value) {
|
|
918
|
-
return greaterThan(value, 0);
|
|
919
|
-
}
|
|
920
|
-
|
|
921
752
|
// calls collectAll or getByFieldName depending on whether fieldName is provided
|
|
922
753
|
function gatherFailures(testGroup, severityKey, fieldName) {
|
|
923
754
|
return fieldName
|
|
@@ -1133,28 +964,6 @@ function deferDoneCallback(doneCallback, fieldName) {
|
|
|
1133
964
|
});
|
|
1134
965
|
}
|
|
1135
966
|
|
|
1136
|
-
function createBus() {
|
|
1137
|
-
var listeners = {};
|
|
1138
|
-
return {
|
|
1139
|
-
emit: function (event, data) {
|
|
1140
|
-
listener(event).forEach(function (handler) {
|
|
1141
|
-
handler(data);
|
|
1142
|
-
});
|
|
1143
|
-
},
|
|
1144
|
-
on: function (event, handler) {
|
|
1145
|
-
listeners[event] = listener(event).concat(handler);
|
|
1146
|
-
return {
|
|
1147
|
-
off: function () {
|
|
1148
|
-
listeners[event] = listener(event).filter(function (h) { return h !== handler; });
|
|
1149
|
-
}
|
|
1150
|
-
};
|
|
1151
|
-
}
|
|
1152
|
-
};
|
|
1153
|
-
function listener(event) {
|
|
1154
|
-
return listeners[event] || [];
|
|
1155
|
-
}
|
|
1156
|
-
}
|
|
1157
|
-
|
|
1158
967
|
function omitOptionalFields() {
|
|
1159
968
|
var optionalFields = useOptionalFields()[0];
|
|
1160
969
|
if (isEmpty(optionalFields)) {
|
|
@@ -1162,7 +971,7 @@ function omitOptionalFields() {
|
|
|
1162
971
|
}
|
|
1163
972
|
var shouldOmit = {};
|
|
1164
973
|
useSetTests(function (tests) {
|
|
1165
|
-
return transform(tests, function (testObject) {
|
|
974
|
+
return nestedArray.transform(tests, function (testObject) {
|
|
1166
975
|
var fieldName = testObject.fieldName;
|
|
1167
976
|
if (hasOwnProperty(shouldOmit, fieldName)) {
|
|
1168
977
|
verifyAndOmit(testObject);
|
|
@@ -1193,14 +1002,10 @@ function omitOptionalFields() {
|
|
|
1193
1002
|
*/
|
|
1194
1003
|
function removeTestFromState (testObject) {
|
|
1195
1004
|
useSetTests(function (tests) {
|
|
1196
|
-
return transform(tests, function (test) { return (testObject !== test ? test : null); });
|
|
1005
|
+
return nestedArray.transform(tests, function (test) { return (testObject !== test ? test : null); });
|
|
1197
1006
|
});
|
|
1198
1007
|
}
|
|
1199
1008
|
|
|
1200
|
-
function callEach(arr) {
|
|
1201
|
-
return arr.forEach(function (fn) { return fn(); });
|
|
1202
|
-
}
|
|
1203
|
-
|
|
1204
1009
|
/**
|
|
1205
1010
|
* Runs done callback per field when async tests are finished running.
|
|
1206
1011
|
*/
|
|
@@ -1222,10 +1027,10 @@ function runDoneCallbacks() {
|
|
|
1222
1027
|
|
|
1223
1028
|
// eslint-disable-next-line max-lines-per-function
|
|
1224
1029
|
function initBus() {
|
|
1225
|
-
var
|
|
1030
|
+
var vestBus = bus.createBus();
|
|
1226
1031
|
// Report a the completion of a test. There may be other tests with the same
|
|
1227
1032
|
// name that are still running, or not yet started.
|
|
1228
|
-
|
|
1033
|
+
vestBus.on(Events.TEST_COMPLETED, function (testObject) {
|
|
1229
1034
|
if (testObject.isCanceled()) {
|
|
1230
1035
|
return;
|
|
1231
1036
|
}
|
|
@@ -1233,21 +1038,21 @@ function initBus() {
|
|
|
1233
1038
|
runFieldCallbacks(testObject.fieldName);
|
|
1234
1039
|
if (!hasRemainingTests()) {
|
|
1235
1040
|
// When no more tests are running, emit the done event
|
|
1236
|
-
|
|
1041
|
+
vestBus.emit(Events.ALL_RUNNING_TESTS_FINISHED);
|
|
1237
1042
|
}
|
|
1238
1043
|
});
|
|
1239
1044
|
// Report that the suite completed its synchronous test run.
|
|
1240
1045
|
// Async operations may still be running.
|
|
1241
|
-
|
|
1046
|
+
vestBus.on(Events.SUITE_CALLBACK_DONE_RUNNING, function () {
|
|
1242
1047
|
// Remove tests that are optional and need to be omitted
|
|
1243
1048
|
omitOptionalFields();
|
|
1244
1049
|
});
|
|
1245
1050
|
// Called when all the tests, including async, are done running
|
|
1246
|
-
|
|
1051
|
+
vestBus.on(Events.ALL_RUNNING_TESTS_FINISHED, function () {
|
|
1247
1052
|
runDoneCallbacks();
|
|
1248
1053
|
});
|
|
1249
1054
|
// Removes a certain field from the state.
|
|
1250
|
-
|
|
1055
|
+
vestBus.on(Events.REMOVE_FIELD, function (fieldName) {
|
|
1251
1056
|
useEachTestObject(function (testObject) {
|
|
1252
1057
|
if (matchingFieldName(testObject, fieldName)) {
|
|
1253
1058
|
testObject.cancel();
|
|
@@ -1256,14 +1061,14 @@ function initBus() {
|
|
|
1256
1061
|
});
|
|
1257
1062
|
});
|
|
1258
1063
|
// Resets a certain field in the state.
|
|
1259
|
-
|
|
1064
|
+
vestBus.on(Events.RESET_FIELD, function (fieldName) {
|
|
1260
1065
|
useEachTestObject(function (testObject) {
|
|
1261
1066
|
if (matchingFieldName(testObject, fieldName)) {
|
|
1262
1067
|
testObject.reset();
|
|
1263
1068
|
}
|
|
1264
1069
|
});
|
|
1265
1070
|
});
|
|
1266
|
-
return
|
|
1071
|
+
return vestBus;
|
|
1267
1072
|
}
|
|
1268
1073
|
function useBus() {
|
|
1269
1074
|
var context$1 = context.useX();
|
|
@@ -1584,9 +1389,7 @@ function eager() {
|
|
|
1584
1389
|
setMode(Modes.EAGER);
|
|
1585
1390
|
}
|
|
1586
1391
|
function shouldSkipBasedOnMode(testObject) {
|
|
1587
|
-
|
|
1588
|
-
return true;
|
|
1589
|
-
return false;
|
|
1392
|
+
return isEager() && hasErrorsByTestObjects(testObject.fieldName);
|
|
1590
1393
|
}
|
|
1591
1394
|
function isEager() {
|
|
1592
1395
|
return isMode(Modes.EAGER);
|
|
@@ -1675,9 +1478,7 @@ function __spreadArray(to, from, pack) {
|
|
|
1675
1478
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
1676
1479
|
}
|
|
1677
1480
|
|
|
1678
|
-
|
|
1679
|
-
return value && isFunction(value.then);
|
|
1680
|
-
}
|
|
1481
|
+
bindNot(isStringValue);
|
|
1681
1482
|
|
|
1682
1483
|
function isSameProfileTest(testObject1, testObject2) {
|
|
1683
1484
|
return (testObject1.fieldName === testObject2.fieldName &&
|
|
@@ -1805,12 +1606,12 @@ function removeAllNextTestsInIsolate() {
|
|
|
1805
1606
|
function useSetTestAtCursor(testObject) {
|
|
1806
1607
|
var cursorPath = useCurrentPath();
|
|
1807
1608
|
useSetTests(function (tests) {
|
|
1808
|
-
return setValueAtPath(tests, cursorPath, testObject);
|
|
1609
|
+
return nestedArray.setValueAtPath(tests, cursorPath, testObject);
|
|
1809
1610
|
});
|
|
1810
1611
|
}
|
|
1811
1612
|
function useGetTestAtCursor(tests) {
|
|
1812
1613
|
var cursorPath = useCurrentPath();
|
|
1813
|
-
return valueAtPath(tests, cursorPath);
|
|
1614
|
+
return nestedArray.valueAtPath(tests, cursorPath);
|
|
1814
1615
|
}
|
|
1815
1616
|
function testReorderDetected(prevTest, newTest) {
|
|
1816
1617
|
return isNotEmpty(prevTest) && !isSameProfileTest(prevTest, newTest);
|
|
@@ -1943,6 +1744,6 @@ function warn() {
|
|
|
1943
1744
|
ctx.currentTest.warn();
|
|
1944
1745
|
}
|
|
1945
1746
|
|
|
1946
|
-
var VERSION = "4.4.
|
|
1747
|
+
var VERSION = "4.4.2-dev-afe5de";
|
|
1947
1748
|
|
|
1948
1749
|
export { VERSION, context, create, each, eager, group, include, omitWhen, only, optional, skip, skipWhen, test, warn };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createContext as t}from"context";export{enforce}from"n4s";var n,r=(n=0,function(){return"".concat(n++)});function e(t){return String(t)===t}function u(t){return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return!t.apply(void 0,n)}}var i=Object.assign;function o(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function s(t,n){return o(t)&&o(n)&&Number(t)===Number(n)}function a(t,n){return o(t)&&o(n)&&Number(t)>Number(n)}function c(t){function n(r,u){var i=n.get(r);return i?i[1]:(u=u(),e.unshift([r.concat(),u]),a(e.length,t)&&(e.length=t),u)}function r(t){return e.findIndex((function(n){var r=n[0];return s(t.length,r.length)&&t.every((function(t,n){return t===r[n]}))}))}void 0===t&&(t=1);var e=[];return n.invalidate=function(t){-1<(t=r(t))&&e.splice(t,1)},n.get=function(t){return e[r(t)]||null},n}var f=u((function(t){return null===t}));function l(t){return"function"==typeof t}function d(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return l(t)?t.apply(void 0,n):t}function p(t,n){var r;return null!==(r=d(t))&&void 0!==r?r:n}function v(t){return(t=[].concat(t))[t.length-1]}function h(t,n){for(var r=[],e=0;e<t.length;e++){var u=t[e];Array.isArray(u)?r.push(h(u,n)):(u=n(u),f(u)&&r.push(u))}return r}function E(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(E(n)):[].concat(t).concat(n)}),[])}function g(t,n){var r=0;for(n=n.slice(0,-1);r<n.length;r++){var e=n[r];t[e]=p(t[e],[]),t=t[e]}return t}var N,m=N||(N={});m[m.DEFAULT=0]="DEFAULT",m[m.SUITE=1]="SUITE",m[m.EACH=2]="EACH",m[m.SKIP_WHEN=3]="SKIP_WHEN",m[m.OMIT_WHEN=4]="OMIT_WHEN",m[m.GROUP=5]="GROUP";var y,R=y||(y={});function b(){var t=0;return{current:function(){return t},next:function(){t++}}}function S(t,n){return void 0===n&&(n=[]),{cursor:b(),keys:{current:{},prev:{}},path:n,type:t}}R[R.ALL=0]="ALL",R[R.EAGER=1]="EAGER";var T=t((function(t,n){return n?null:i({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:S(N.DEFAULT),mode:[y.ALL]},t)}));function O(){return T.useX().stateRef}function C(t){return O().optionalFields()[0][t]}function A(t,n){(0,O().optionalFields()[1])((function(r){var e;return i(r,((e={})[t]=d(n,r[t]),e))}))}function I(t){var n;return null===(n=C(t))||void 0===n?void 0:n[0]}function _(){k((function(t){return t}))}function k(t){(0,O().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function F(){return U().filter((function(t){return t.isPending()}))}var L=c();function U(){var t=O().testObjects()[0].current;return L([t],(function(){return E(t)}))}var G,P=G||(G={});P.Error="error",P.Warning="warning";var W=function(){function t(t,n,e){var u=void 0===e?{}:e;e=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=r(),this.severity=G.Error,this.status=w,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&e(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==M||(this.status=t)},t.prototype.warns=function(){return this.severity===G.Warning},t.prototype.setPending=function(){this.setStatus(H)},t.prototype.fail=function(){this.setStatus(this.warns()?X:x)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(j)},t.prototype.warn=function(){this.severity=G.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(D)},t.prototype.cancel=function(){this.setStatus(K),_()},t.prototype.reset=function(){this.status=w,_()},t.prototype.omit=function(){this.setStatus(M)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(H)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(M)},t.prototype.isUntested=function(){return this.statusEquals(w)},t.prototype.isFailing=function(){return this.statusEquals(x)},t.prototype.isCanceled=function(){return this.statusEquals(K)},t.prototype.isSkipped=function(){return this.statusEquals(D)},t.prototype.isPassing=function(){return this.statusEquals(j)},t.prototype.isWarning=function(){return this.statusEquals(X)},t.prototype.statusEquals=function(t){return this.status===t},t}(),w="UNTESTED",D="SKIPPED",x="FAILED",X="WARNING",j="PASSING",H="PENDING",K="CANCELED",M="OMITTED";function q(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?d(n):n)}function B(t){function n(t,n,u){return e.references.push(),r(t,d(n,u)),function(){return[e.references[t],function(n){return r(t,d(n,e.references[t]))}]}}function r(n,r){var i=e.references[n];e.references[n]=r,l(n=u[n][1])&&n(r,i),l(t)&&t()}var e={references:[]},u=[];return{registerStateKey:function(t,r){var e=u.length;return u.push([t,r]),n(e,t)},reset:function(){var t=e.references;e.references=[],u.forEach((function(r,e){return n(e,r[0],t[e])}))}}}function V(t,n){var r=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(r),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function Y(t){return null==t}function J(t){setTimeout((function(){throw Error(t)}),0)}function z(t,n){t=void 0===(t=t.type)?N.DEFAULT:t,q(l(n));var r=S(t,Z());return t=T.run({isolate:r},(function(){return r.keys.prev=function(){var t=O().testObjects()[0].prev;return[].concat(g(t,Z())).reduce((function(t,n){return n instanceof W&&!Y(n.key)?(t[n.key]=n,t):t}),{})}(),k((function(t){var n=r.path;return g(t,n)[v(n)]=[],t})),n()})),Q().cursor.next(),t}function Q(){return T.useX().isolate}function Z(){var t=Q();return t.path.concat(t.cursor.current())}var $,tt=$||($={});tt.WARNINGS="warnings",tt.ERRORS="errors";var nt,rt=nt||(nt={});function et(t){return t===$.ERRORS?nt.ERROR_COUNT:nt.WARN_COUNT}function ut(t){return!t||("number"==typeof t?0===t:Object.prototype.hasOwnProperty.call(t,"length")?s(t.length,0):"object"==typeof t&&s((t=Object.keys(t)).length,0))}rt.ERROR_COUNT="errorCount",rt.WARN_COUNT="warnCount";var it=u(ut);function ot(t,n){return!(!n||t.fieldName!==n)}var st=u((function(t,n){return t.groupName===n}));function at(t,n){return U().some((function(r){return ct(r,t,n)}))}function ct(t,n,r){return(r=!t.hasFailures()||r&&!ot(t,r))||(t=t.warns(),r=n===$.WARNINGS!=!!t),!r}function ft(t){return!!lt(t)||!at($.ERRORS,t)&&(!ut(U())&&!function(t){return it(F().filter((function(n){return dt(n,t)})))}(t)&&function(t){return U().every((function(n){return!(!t||ot(n,t))||pt(n,t)}))}(t))}function lt(t){return!!t&&!0===(null===(n=C(t))||void 0===n?void 0:n[1]);var n}function dt(t,n){return!(n&&!ot(t,n))&&!0!==I(t.fieldName)}function pt(t,n){return!(!n||ot(t,n))||(!0===I(t.fieldName)||t.isTested()||t.isOmitted())}function vt(){var t=T.useX().summary;return q(t),t}function ht(){var t=U(),n=i({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var r=t.tests;r[n.fieldName]=Et(r,n),r[n.fieldName].valid=!1!==r[n.fieldName].valid&&ft(n.fieldName);var e=t.groups,u=n.groupName;return u&&(e[u]=e[u]||{},e[u][n.fieldName]=Et(e[u],n),r=e[u][n.fieldName],!1===e[u][n.fieldName].valid?n=!1:n=!!lt(n=n.fieldName)||!function(t,n,r){return U().some((function(e){return!st(e,n)&&ct(e,t,r)}))}($.ERRORS,u,n)&&!function(t,n){return it(F().filter((function(r){return!st(r,t)&&dt(r,n)})))}(u,n)&&function(t,n){return U().every((function(r){return!!st(r,t)||pt(r,n)}))}(u,n),r.valid=n),t}),n),n.valid=ft(),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(n)}function Et(t,n){function r(t){var n=et(t);o[n]++,u&&(o[t]=(o[t]||[]).concat(u))}var e=n.fieldName,u=n.message;t[e]=t[e]||i({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=t[e];return n.isNonActionable()||(t[e].testCount++,n.isFailing()?r($.ERRORS):n.isWarning()&&r($.WARNINGS)),o}function gt(t,n,r){var e;return(null===(e=null==t?void 0:t[r])||void 0===e?void 0:e[n])||[]}function Nt(t,n){var r,e={},u=et(n);for(r in t)a(t[r][u],0)&&(e[r]=t[r][n]||[]);return e}function mt(t){return Rt($.ERRORS,t)}function yt(t){return Rt($.WARNINGS,t)}function Rt(t,n){var r=vt().tests;return n?gt(r,t,n):Nt(r,t)}function bt(t,n){return Tt(t,$.ERRORS,n)}function St(t,n){return Tt(t,$.WARNINGS,n)}function Tt(t,n,r){return t=vt().groups[t],r?gt(t,n,r):Nt(t,n)}function Ot(t){return At(nt.ERROR_COUNT,t)}function Ct(t){return At(nt.WARN_COUNT,t)}function At(t,n){var r,e=vt();return a(n?null===(r=e.tests[n])||void 0===r?void 0:r[t]:e[t],0)}function It(t,n){return kt($.ERRORS,t,n)}function _t(t,n){return kt($.WARNINGS,t,n)}function kt(t,n,r){var e,u,i=vt();if(t=et(t),!(n=i.groups[n]))return!1;if(r)return a(null===(e=n[r])||void 0===e?void 0:e[t],0);for(var o in n)if(a(null===(u=n[o])||void 0===u?void 0:u[t],0))return!0;return!1}function Ft(t){var n=vt();return t?!!Ut(n.tests,t):n.valid}function Lt(t,n){if(!(t=vt().groups[t]))return!1;if(n)return Ut(t,n);for(var r in t)if(!Ut(t,r))return!1;return!0}function Ut(t,n){var r;return!(null===(r=t[n])||void 0===r||!r.valid)}var Gt=c(1);function Pt(){var t=U(),n={stateRef:O()};return Gt([t],T.bind(n,(function(){var t=ht(),n=O().suiteName()[0],r={summary:t};return i(t,{getErrors:T.bind(r,mt),getErrorsByGroup:T.bind(r,bt),getWarnings:T.bind(r,yt),getWarningsByGroup:T.bind(r,St),hasErrors:T.bind(r,Ot),hasErrorsByGroup:T.bind(r,It),hasWarnings:T.bind(r,Ct),hasWarningsByGroup:T.bind(r,_t),isValid:T.bind(r,Ft),isValidByGroup:T.bind(r,Lt),suiteName:n})})))}function Wt(t){var n=F();return!ut(n)&&(t?n.some((function(n){return ot(n,t)})):it(n))}var wt=c(20);function Dt(){var t=U(),n={stateRef:O()};return wt([t],T.bind(n,(function(){return i({},Pt(),{done:T.bind(n,jt)})})))}function xt(t,n,r){return!(l(t)&&(!n||r.tests[n]&&!ut(r.tests[n].testCount)))}function Xt(t){return!(Wt()&&(!t||Wt(t)))}function jt(){function t(){return e(Pt())}for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var e=(n=n.reverse())[0];return n=n[1],r=Dt(),xt(e,n,r)?r:Xt(n)?(t(),r):(Ht(t,n),r)}function Ht(t,n){(0,O().testCallbacks()[1])((function(r){return n?r.fieldCallbacks[n]=(r.fieldCallbacks[n]||[]).concat(t):r.doneCallbacks.push(t),r}))}function Kt(t){return t.forEach((function(t){return t()}))}function Mt(){var t=function(){var t={};return{emit:function(n,r){(t[n]||[]).forEach((function(t){t(r)}))},on:function(n,r){return t[n]=(t[n]||[]).concat(r),{off:function(){t[n]=(t[n]||[]).filter((function(t){return t!==r}))}}}}}();return t.on(Bt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var r=O().testCallbacks()[0].fieldCallbacks;n&&!Wt(n)&&Array.isArray(r[n])&&Kt(r[n]),Wt()||t.emit(Bt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(Bt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){n[t.fieldName]&&(t.omit(),A(t.fieldName,(function(t){return[t[0],!0]})))}if(!ut(O().optionalFields()[0])){var n={};k((function(r){return h(r,(function(r){if(Object.prototype.hasOwnProperty.call(n,r.fieldName))t(r);else{var e=I(r.fieldName);l(e)&&(n[r.fieldName]=e(),t(r))}return r}))}))}}()})),t.on(Bt.ALL_RUNNING_TESTS_FINISHED,(function(){Kt(O().testCallbacks()[0].doneCallbacks)})),t.on(Bt.REMOVE_FIELD,(function(t){U().forEach((function(n){ot(n,t)&&(n.cancel(),function(t){k((function(n){return h(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Bt.RESET_FIELD,(function(t){U().forEach((function(n){ot(n,t)&&n.reset()}))})),t}function qt(){var t=T.useX();return q(t.bus),t.bus}var Bt,Vt=Bt||(Bt={});function Yt(t){return zt(0,"tests",t)}function Jt(t){return zt(1,"tests",t)}function zt(t,n,r){var u=T.useX("hook called outside of a running suite.");r&&[].concat(r).forEach((function(r){e(r)&&(u.exclusion[n][r]=0===t)}))}function Qt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Zt(){var t,n=T.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function $t(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function tn(t,n,r){if(r||2===arguments.length)for(var e,u=0,i=n.length;u<i;u++)!e&&u in n||(e||(e=Array.prototype.slice.call(n,0,u)),e[u]=n[u]);return t.concat(e||Array.prototype.slice.call(n))}function nn(t){var n=t.asyncTest,r=t.message;if(n&&l(n.then)){var u=qt().emit,i=O(),o=T.bind({stateRef:i},(function(){_(),u(Bt.TEST_COMPLETED,t)}));i=T.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=e(n)?n:r,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function rn(t){var n=O().testObjects()[0].prev;if(ut(n))return en(t),t;var r=Z();if(n=g(n,r)[v(r)],!Y(t.key)){n=t.key,(r=Q().keys.prev[n])&&(t=r),r=t;var e=Q().keys.current;return Y(e[n])?e[n]=r:J('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),en(t),t}return!it(r=n)||r.fieldName===t.fieldName&&r.groupName===t.groupName||(Q().type===N.EACH||J("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.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 t=Q().cursor.current();k((function(n){return n.splice(t),n}))}(),n=null),en(t=p(n,t)),t}function en(t){var n=Z();k((function(r){return g(r,n)[v(n)]=t,r}))}function un(t){var n=Q().cursor,r=y.EAGER;if(r=!(T.useX().mode[0]!==r||!at($.ERRORS,t.fieldName)))return t.skip(),rn(t),n.next(),t;if(r=rn(t),T.useX().omitted)return r.omit(),n.next(),r;if(function(t){var n=t.fieldName;if(t=t.groupName,T.useX().skipped)return!0;var r=T.useX(),e=r.exclusion;r=r.inclusion;var u=e.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){var o=T.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:Zt())return!0;if(!0===e.groups[t])return!(i||!Qt(u)&&!1!==u[n])}return!!(t=!!Zt()&&!t)||!i&&!!Qt(u)&&!d(r[n])}(t))return r.skip(!!T.useX().skipped),n.next(),r;if(t!==r&&r.fieldName===t.fieldName&&r.groupName===t.groupName&&r.isPending()&&r.cancel(),en(t),t.isUntested()){r=qt();var e=function(t){return T.run({currentTest:t},(function(){return t.run()}))}(t);try{e&&l(e.then)?(t.asyncTest=e,t.setPending(),nn(t)):r.emit(Bt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(r=t.asyncTest)&&l(r.then)&&(t.setPending(),nn(t));return n.next(),t}function on(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var u=l(n[1])?n:tn([void 0],n,!0);n=u[0],r=u[1],u=u[2],q(e(t),an("fieldName","string")),q(l(r),an("Test callback","function"));var i=T.useX();return un(n=new W(t,r,{message:n,groupName:i.groupName,key:u}))}Vt.TEST_COMPLETED="test_completed",Vt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Vt.REMOVE_FIELD="remove_field",Vt.RESET_FIELD="reset_field",Vt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Yt.group=function(t){return zt(0,"groups",t)},Jt.group=function(t){return zt(1,"groups",t)};var sn=i(on,{memo:function(t){var n=c(10);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=Q().cursor.current();var i=(e=e.reverse())[0],o=e[1],s=e[2];return u=[O().suiteId()[0],r,u].concat(i),null===(e=n.get(u))?n(u,(function(){return t(r,s,o)})):e[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(r,s,o)}))):un(e[1])}}(on)});function an(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var cn="4.4.1";function fn(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=(t=t.reverse())[0];t=t[1],q(l(e),"vest.create: Expected callback to be a function.");var u=Mt(),o=B();return t={stateRef:V(o,{suiteId:r(),suiteName:t}),bus:u},i(T.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return o.reset(),z({type:N.SUITE},(function(){e.apply(void 0,t)})),u.emit(Bt.SUITE_CALLBACK_DONE_RUNNING),Dt()})),{get:T.bind(t,Pt),remove:T.bind(t,(function(t){u.emit(Bt.REMOVE_FIELD,t)})),reset:o.reset,resetField:T.bind(t,(function(t){u.emit(Bt.RESET_FIELD,t)}))})}function ln(t,n){q(l(n),"each callback must be a function"),z({type:N.EACH},(function(){t.forEach((function(t,r){n(t,r)}))}))}function dn(){var t=y.EAGER;T.useX().mode[0]=t}function pn(t,n){q(e(t),$t("name must be a string")),q(l(n),$t("callback must be a function")),z({type:N.GROUP},(function(){T.run({groupName:t},n)}))}function vn(t){var n=T.useX(),r=n.inclusion;return n=n.exclusion,q(e(t)),r[t]=p(n.tests[t],!0),{when:function(n){var r=T.useX(),u=r.exclusion;r.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?p(u.tests[t],!0):e(n)?!!u.tests[n]:d(n,d(Pt))}}}}function hn(t,n){z({type:N.OMIT_WHEN},(function(){T.run({omitted:!!T.useX().omitted||d(t,d(Pt))},(function(){return n()}))}))}function En(t){if(Array.isArray(t)||e(t))[].concat(t).forEach((function(t){A(t,[!0,!1])}));else for(var n in t)A(n,[t[n],!1])}function gn(t,n){z({type:N.SKIP_WHEN},(function(){T.run({skipped:!!T.useX().skipped||d(t,d(Pt))},(function(){return n()}))}))}function Nn(){var t=T.useX("warn hook called outside of a running suite.");q(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{cn as VERSION,T as context,fn as create,ln as each,dn as eager,pn as group,vn as include,hn as omitWhen,Yt as only,En as optional,Jt as skip,gn as skipWhen,sn as test,Nn as warn};
|
|
1
|
+
import{createContext as t}from"context";import{isUndefined as n,isStringValue as e,assign as r,optionalFunctionValue as i,nestedArray as u,asArray as o,genId as s,isFunction as a,isNullish as c,deferThrow as f,invariant as l,bindNot as d,either as v,isEmpty as p,isNotEmpty as N,isPositive as E,hasOwnProperty as m,isArray as g,callEach as h,bus as y,defaultTo as R,isPromise as S,isNull as b}from"vest-utils";export{enforce}from"n4s";function C(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function T(t){function n(e,i){var u=n.get(e);return u?u[1]:(i=i(),r.unshift([e.concat(),i]),e=r.length,u=t,C(e)&&C(u)&&Number(e)>Number(u)&&(r.length=t),i)}function e(t){return r.findIndex((function(n){var e=n[0];return function(t,n){return C(t)&&C(n)&&Number(t)===Number(n)}(t.length,e.length)&&t.every((function(t,n){return t===e[n]}))}))}void 0===t&&(t=1);var r=[];return n.invalidate=function(t){-1<(t=e(t))&&r.splice(t,1)},n.get=function(t){return r[e(t)]||null},n}var I,_=I||(I={});_[_.DEFAULT=0]="DEFAULT",_[_.SUITE=1]="SUITE",_[_.EACH=2]="EACH",_[_.SKIP_WHEN=3]="SKIP_WHEN",_[_.OMIT_WHEN=4]="OMIT_WHEN",_[_.GROUP=5]="GROUP";var O,A=O||(O={});function k(){var t=0;return{current:function(){return t},next:function(){t++}}}function F(t,n){return void 0===n&&(n=[]),{cursor:k(),keys:{current:{},prev:{}},path:n,type:t}}A[A.ALL=0]="ALL",A[A.EAGER=1]="EAGER";var L=t((function(t,n){return n?null:r({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:F(I.DEFAULT),mode:[O.ALL]},t)}));function U(){return L.useX().stateRef}function G(t){return U().optionalFields()[0][t]}function W(t,n){(0,U().optionalFields()[1])((function(e){var u;return r(e,((u={})[t]=i(n,e[t]),u))}))}function P(t){var n;return null===(n=G(t))||void 0===n?void 0:n[0]}function D(){x((function(t){return t}))}function x(t){(0,U().testObjects()[1])((function(n){return{prev:n.prev,current:o(t(n.current))}}))}function w(){return H().filter((function(t){return t.isPending()}))}var X=T();function H(){var t=U().testObjects()[0].current;return X([t],(function(){return u.flatten(t)}))}var K,M=K||(K={});M.Error="error",M.Warning="warning";var q=function(){function t(t,n,e){var r=void 0===e?{}:e;e=r.message;var i=r.groupName;r=r.key,this.key=null,this.id=s(),this.severity=K.Error,this.status=B,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),e&&(this.message=e),r&&(this.key=r)}return t.prototype.run=function(){try{var t=this.testFn()}catch(r){t=r,n(this.message)&&e(t)&&(this.message=r),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==Z||(this.status=t)},t.prototype.warns=function(){return this.severity===K.Warning},t.prototype.setPending=function(){this.setStatus(z)},t.prototype.fail=function(){this.setStatus(this.warns()?Y:j)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(J)},t.prototype.warn=function(){this.severity=K.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(V)},t.prototype.cancel=function(){this.setStatus(Q),D()},t.prototype.reset=function(){this.status=B,D()},t.prototype.omit=function(){this.setStatus(Z)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(z)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(Z)},t.prototype.isUntested=function(){return this.statusEquals(B)},t.prototype.isFailing=function(){return this.statusEquals(j)},t.prototype.isCanceled=function(){return this.statusEquals(Q)},t.prototype.isSkipped=function(){return this.statusEquals(V)},t.prototype.isPassing=function(){return this.statusEquals(J)},t.prototype.isWarning=function(){return this.statusEquals(Y)},t.prototype.statusEquals=function(t){return this.status===t},t}(),B="UNTESTED",V="SKIPPED",j="FAILED",Y="WARNING",J="PASSING",z="PENDING",Q="CANCELED",Z="OMITTED";function $(t){function n(t,n,u){return r.references.push(),e(t,i(n,u)),function(){return[r.references[t],function(n){return e(t,i(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,n=u[n][1],a(n)&&n(e,i),a(t)&&t()}var r={references:[]},u=[];return{registerStateKey:function(t,e){var r=u.length;return u.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],u.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function tt(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function nt(t,n){t=void 0===(t=t.type)?I.DEFAULT:t,l(a(n));var e=F(t,rt());return t=L.run({isolate:e},(function(){return e.keys.prev=function(){var t=U().testObjects()[0].prev;return o(u.getCurrent(t,rt())).reduce((function(t,n){return n instanceof q&&!c(n.key)?(t[n.key]=n,t):t}),{})}(),x((function(t){return u.setValueAtPath(t,e.path,[])})),n()})),et().cursor.next(),t}function et(){return L.useX().isolate}function rt(){var t=et();return t.path.concat(t.cursor.current())}var it,ut=it||(it={});ut.WARNINGS="warnings",ut.ERRORS="errors";var ot,st=ot||(ot={});function at(t){return t===it.ERRORS?ot.ERROR_COUNT:ot.WARN_COUNT}function ct(t,n){return!(!n||t.fieldName!==n)}st.ERROR_COUNT="errorCount",st.WARN_COUNT="warnCount";var ft=d((function(t,n){return t.groupName===n}));function lt(t,n){return H().some((function(e){return dt(e,t,n)}))}function dt(t,n,e){return!(!t.hasFailures()||e&&!ct(t,e)||v(n===it.WARNINGS,t.warns()))}function vt(t){if(pt(t))return!0;if(lt(it.ERRORS,t))return!1;var n=H();return!p(n)&&!function(t){return N(w().filter((function(n){return Nt(n,t)})))}(t)&&function(t){return H().every((function(n){return!(!t||ct(n,t))||Et(n,t)}))}(t)}function pt(t){return!!t&&!0===(null===(n=G(t))||void 0===n?void 0:n[1]);var n}function Nt(t,n){return!(n&&!ct(t,n))&&!0!==P(t.fieldName)}function Et(t,n){return!(!n||ct(t,n))||(!0===P(t.fieldName)||t.isTested()||t.isOmitted())}function mt(){var t=L.useX().summary;return l(t),t}function gt(){var t=H(),n=r({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var e=t.tests;e[n.fieldName]=ht(e,n),e[n.fieldName].valid=!1!==e[n.fieldName].valid&&vt(n.fieldName);var r=t.groups,i=n.groupName;return i&&(r[i]=r[i]||{},r[i][n.fieldName]=ht(r[i],n),e=r[i][n.fieldName],!1===r[i][n.fieldName].valid?n=!1:n=!!pt(n=n.fieldName)||!function(t,n,e){return H().some((function(r){return!ft(r,n)&&dt(r,t,e)}))}(it.ERRORS,i,n)&&!function(t,n){return N(w().filter((function(e){return!ft(e,t)&&Nt(e,n)})))}(i,n)&&function(t,n){return H().every((function(e){return!!ft(e,t)||Et(e,n)}))}(i,n),e.valid=n),t}),n),n.valid=vt(),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(n)}function ht(t,n){function e(t){var n=at(t);o[n]++,u&&(o[t]=(o[t]||[]).concat(u))}var i=n.fieldName,u=n.message;t[i]=t[i]||r({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=t[i];return n.isNonActionable()||(t[i].testCount++,n.isFailing()?e(it.ERRORS):n.isWarning()&&e(it.WARNINGS)),o}function yt(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function Rt(t,n){var e,r={},i=at(n);for(e in t)E(t[e][i])&&(r[e]=t[e][n]||[]);return r}function St(t){return Ct(it.ERRORS,t)}function bt(t){return Ct(it.WARNINGS,t)}function Ct(t,n){var e=mt().tests;return n?yt(e,t,n):Rt(e,t)}function Tt(t,n){return _t(t,it.ERRORS,n)}function It(t,n){return _t(t,it.WARNINGS,n)}function _t(t,n,e){return t=mt().groups[t],e?yt(t,n,e):Rt(t,n)}function Ot(t){return kt(ot.ERROR_COUNT,t)}function At(t){return kt(ot.WARN_COUNT,t)}function kt(t,n){var e,r=mt();return E(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t])}function Ft(t,n){return Ut(it.ERRORS,t,n)}function Lt(t,n){return Ut(it.WARNINGS,t,n)}function Ut(t,n,e){var r,i,u=mt();if(t=at(t),!(n=u.groups[n]))return!1;if(e)return E(null===(r=n[e])||void 0===r?void 0:r[t]);for(var o in n)if(E(null===(i=n[o])||void 0===i?void 0:i[t]))return!0;return!1}function Gt(t){var n=mt();return t?!!Pt(n.tests,t):n.valid}function Wt(t,n){if(!(t=mt().groups[t]))return!1;if(n)return Pt(t,n);for(var e in t)if(!Pt(t,e))return!1;return!0}function Pt(t,n){var e;return!(null===(e=t[n])||void 0===e||!e.valid)}var Dt=T(1);function xt(){var t=H(),n={stateRef:U()};return Dt([t],L.bind(n,(function(){var t=gt(),n=U().suiteName()[0],e={summary:t};return r(t,{getErrors:L.bind(e,St),getErrorsByGroup:L.bind(e,Tt),getWarnings:L.bind(e,bt),getWarningsByGroup:L.bind(e,It),hasErrors:L.bind(e,Ot),hasErrorsByGroup:L.bind(e,Ft),hasWarnings:L.bind(e,At),hasWarningsByGroup:L.bind(e,Lt),isValid:L.bind(e,Gt),isValidByGroup:L.bind(e,Wt),suiteName:n})})))}function wt(t){var n=w();return!p(n)&&(t?n.some((function(n){return ct(n,t)})):N(n))}var Xt=T(20);function Ht(){var t=H(),n={stateRef:U()};return Xt([t],L.bind(n,(function(){return r({},xt(),{done:L.bind(n,qt)})})))}function Kt(t,n,e){return!(a(t)&&(!n||e.tests[n]&&!p(e.tests[n].testCount)))}function Mt(t){return!(wt()&&(!t||wt(t)))}function qt(){function t(){return r(xt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=Ht(),Kt(r,n,e)?e:Mt(n)?(t(),e):(Bt(t,n),e)}function Bt(t,n){(0,U().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Vt(){var t=y.createBus();return t.on(Yt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=U().testCallbacks()[0].fieldCallbacks;n&&!wt(n)&&g(e[n])&&h(e[n]),wt()||t.emit(Yt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(Yt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){e[t.fieldName]&&(t.omit(),W(t.fieldName,(function(t){return[t[0],!0]})))}var n=U().optionalFields()[0];if(!p(n)){var e={};x((function(n){return u.transform(n,(function(n){if(m(e,n.fieldName))t(n);else{var r=P(n.fieldName);a(r)&&(e[n.fieldName]=r(),t(n))}return n}))}))}}()})),t.on(Yt.ALL_RUNNING_TESTS_FINISHED,(function(){var t=U().testCallbacks()[0].doneCallbacks;h(t)})),t.on(Yt.REMOVE_FIELD,(function(t){H().forEach((function(n){ct(n,t)&&(n.cancel(),function(t){x((function(n){return u.transform(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Yt.RESET_FIELD,(function(t){H().forEach((function(n){ct(n,t)&&n.reset()}))})),t}function jt(){var t=L.useX();return l(t.bus),t.bus}var Yt,Jt=Yt||(Yt={});function zt(t){return Zt(0,"tests",t)}function Qt(t){return Zt(1,"tests",t)}function Zt(t,n,r){var i=L.useX("hook called outside of a running suite.");r&&o(r).forEach((function(r){e(r)&&(i.exclusion[n][r]=0===t)}))}function $t(t){for(var n in t)if(!0===t[n])return!0;return!1}function tn(){var t,n=L.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function nn(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function en(t,n,e){if(e||2===arguments.length)for(var r,i=0,u=n.length;i<u;i++)!r&&i in n||(r||(r=Array.prototype.slice.call(n,0,i)),r[i]=n[i]);return t.concat(r||Array.prototype.slice.call(n))}function rn(t){var n=t.asyncTest,r=t.message;if(S(n)){var i=jt().emit,u=U(),o=L.bind({stateRef:u},(function(){D(),i(Yt.TEST_COMPLETED,t)}));u=L.bind({stateRef:u},(function(n){t.isCanceled()||(t.message=e(n)?n:r,t.fail(),o())}));try{n.then(o,u)}catch(t){u()}}}function un(t){var n=U().testObjects()[0].prev;if(p(n))return on(t),t;var e=rt();if(n=u.valueAtPath(n,e),!c(t.key)){n=t.key,(e=et().keys.prev[n])&&(t=e),e=t;var r=et().keys.current;return c(r[n])?r[n]=e:f('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),on(t),t}return!N(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(et().type===I.EACH||f("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.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 t=et().cursor.current();x((function(n){return n.splice(t),n}))}(),n=null),on(t=R(n,t)),t}function on(t){var n=rt();x((function(e){return u.setValueAtPath(e,n,t)}))}function sn(t){var n=et().cursor,e=O.EAGER;if(L.useX().mode[0]===e&<(it.ERRORS,t.fieldName))return t.skip(),un(t),n.next(),t;if(e=un(t),L.useX().omitted)return e.omit(),n.next(),e;if(function(t){var n=t.fieldName;if(t=t.groupName,L.useX().skipped)return!0;var e=L.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,o=u[n];if(!1===o)return!0;if(o=!0===o,t){var s=L.useX().exclusion.groups;if(s=m(s,t)?!1===s[t]:tn())return!0;if(!0===r.groups[t])return!(o||!$t(u)&&!1!==u[n])}return!!(t=!!tn()&&!t)||!o&&!!$t(u)&&!i(e[n])}(t))return e.skip(!!L.useX().skipped),n.next(),e;if(t!==e&&e.fieldName===t.fieldName&&e.groupName===t.groupName&&e.isPending()&&e.cancel(),on(t),t.isUntested()){e=jt();var r=function(t){return L.run({currentTest:t},(function(){return t.run()}))}(t);try{S(r)?(t.asyncTest=r,t.setPending(),rn(t)):e.emit(Yt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else S(t.asyncTest)&&(t.setPending(),rn(t));return n.next(),t}function an(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var i=a(n[1])?n:en([void 0],n,!0);n=i[0],r=i[1],i=i[2],l(e(t),dn("fieldName","string")),l(a(r),dn("Test callback","function"));var u=L.useX();return sn(n=new q(t,r,{message:n,groupName:u.groupName,key:i}))}Jt.TEST_COMPLETED="test_completed",Jt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Jt.REMOVE_FIELD="remove_field",Jt.RESET_FIELD="reset_field",Jt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",zt.group=function(t){return Zt(0,"groups",t)},Qt.group=function(t){return Zt(1,"groups",t)},d(e);var cn,fn,ln=r(an,{memo:(cn=an,fn=T(10),function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];e=et().cursor.current();var r=(n=n.reverse())[0],i=n[1],u=n[2];return e=[U().suiteId()[0],t,e].concat(r),n=fn.get(e),b(n)?fn(e,(function(){return cn(t,u,i)})):n[1].isCanceled()?(fn.invalidate(e),fn(e,(function(){return cn(t,u,i)}))):sn(n[1])})});function dn(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var vn="4.4.2-dev-afe5de";function pn(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=(t=t.reverse())[0];t=t[1],l(a(e),"vest.create: Expected callback to be a function.");var i=Vt(),u=$();return t={stateRef:tt(u,{suiteId:s(),suiteName:t}),bus:i},r(L.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return u.reset(),nt({type:I.SUITE},(function(){e.apply(void 0,t)})),i.emit(Yt.SUITE_CALLBACK_DONE_RUNNING),Ht()})),{get:L.bind(t,xt),remove:L.bind(t,(function(t){i.emit(Yt.REMOVE_FIELD,t)})),reset:u.reset,resetField:L.bind(t,(function(t){i.emit(Yt.RESET_FIELD,t)}))})}function Nn(t,n){l(a(n),"each callback must be a function"),nt({type:I.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function En(){var t=O.EAGER;L.useX().mode[0]=t}function mn(t,n){l(e(t),nn("name must be a string")),l(a(n),nn("callback must be a function")),nt({type:I.GROUP},(function(){L.run({groupName:t},n)}))}function gn(t){var n=L.useX(),r=n.inclusion;return n=n.exclusion,l(e(t)),r[t]=R(n.tests[t],!0),{when:function(n){var r=L.useX(),u=r.exclusion;r.inclusion[t]=function(){return m(u.tests,t)?R(u.tests[t],!0):e(n)?!!u.tests[n]:i(n,i(xt))}}}}function hn(t,n){nt({type:I.OMIT_WHEN},(function(){L.run({omitted:!!L.useX().omitted||i(t,i(xt))},(function(){return n()}))}))}function yn(t){if(g(t)||e(t))o(t).forEach((function(t){W(t,[!0,!1])}));else for(var n in t)W(n,[t[n],!1])}function Rn(t,n){nt({type:I.SKIP_WHEN},(function(){L.run({skipped:!!L.useX().skipped||i(t,i(xt))},(function(){return n()}))}))}function Sn(){var t=L.useX("warn hook called outside of a running suite.");l(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{vn as VERSION,L as context,pn as create,Nn as each,En as eager,mn as group,gn as include,hn as omitWhen,zt as only,yn as optional,Qt as skip,Rn as skipWhen,ln as test,Sn as warn};
|
|
@@ -4,6 +4,17 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.classnames = factory());
|
|
5
5
|
}(this, (function () { 'use strict';
|
|
6
6
|
|
|
7
|
+
function isNumeric(value) {
|
|
8
|
+
var str = String(value);
|
|
9
|
+
var num = Number(value);
|
|
10
|
+
var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
|
|
11
|
+
return Boolean(result);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function greaterThan(value, gt) {
|
|
15
|
+
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
16
|
+
}
|
|
17
|
+
|
|
7
18
|
function isFunction(value) {
|
|
8
19
|
return typeof value === 'function';
|
|
9
20
|
}
|
|
@@ -16,9 +27,9 @@
|
|
|
16
27
|
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
17
28
|
}
|
|
18
29
|
|
|
19
|
-
function defaultTo(
|
|
30
|
+
function defaultTo(value, defaultValue) {
|
|
20
31
|
var _a;
|
|
21
|
-
return (_a = optionalFunctionValue(
|
|
32
|
+
return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
|
|
22
33
|
}
|
|
23
34
|
|
|
24
35
|
/**
|
|
@@ -42,17 +53,6 @@
|
|
|
42
53
|
: new Error(message ? optionalFunctionValue(message) : message);
|
|
43
54
|
}
|
|
44
55
|
|
|
45
|
-
function isNumeric(value) {
|
|
46
|
-
var str = String(value);
|
|
47
|
-
var num = Number(value);
|
|
48
|
-
var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
|
|
49
|
-
return Boolean(result);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
function greaterThan(value, gt) {
|
|
53
|
-
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
56
|
function isPositive(value) {
|
|
57
57
|
return greaterThan(value, 0);
|
|
58
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t="undefined"!=typeof globalThis?globalThis:t||self).classnames=n()}(this,(function(){function t(t){
|
|
1
|
+
"use strict";!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t="undefined"!=typeof globalThis?globalThis:t||self).classnames=n()}(this,(function(){function t(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function n(n,e){return t(n)&&t(e)&&Number(n)>Number(e)}function e(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return"function"==typeof t?t.apply(void 0,n):t}function r(t){function r(r,o){var i,u;return r=o?null===(i=t.tests[o])||void 0===i?void 0:i[r]:t[r],n(i=null!==(u=e(r))&&void 0!==u?u:e(0),0)}!function(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?e(n):n)}(t&&Object.prototype.hasOwnProperty.call(t,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var o={},i={invalid:function(t){return r(u.ERROR_COUNT,t)},tested:function(e){return e?Object.prototype.hasOwnProperty.call(o,e)?o[e]:(o[e]=Object.prototype.hasOwnProperty.call(t.tests,e)&&n(t.tests[e].testCount,0),i.tested(e)):n(t.testCount,0)},untested:function(n){return 0===t.testCount||!i.tested(n)},valid:function(n){var e;return n?!(null===(e=t.tests[n])||void 0===e||!e.valid):t.valid},warning:function(t){return r(u.WARN_COUNT,t)}};return i}var o,i,u;return(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(u||(u={})),function(t,n){void 0===n&&(n={});var e=r(t);return function(t){var r,o=[];for(r in n){var i=r;"function"==typeof e[i]&&e[i](t)&&o.push(n[i])}return o.join(" ")}}}));
|