vest 4.4.0-dev-08ec91 → 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 +176 -390
- 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 +101 -315
- 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 +122 -122
- package/dist/umd/enforce/compose.production.js +1 -1
- package/dist/umd/enforce/compounds.development.js +181 -185
- package/dist/umd/enforce/compounds.production.js +1 -1
- package/dist/umd/enforce/schema.development.js +133 -133
- 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 +361 -376
- 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 +2 -17
- 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 +14 -15
- package/testUtils/itWithContext.ts +0 -23
|
@@ -3,20 +3,56 @@
|
|
|
3
3
|
factory();
|
|
4
4
|
}((function () { 'use strict';
|
|
5
5
|
|
|
6
|
-
function
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
if (broke) {
|
|
12
|
-
return breakoutValue;
|
|
6
|
+
function bindNot(fn) {
|
|
7
|
+
return function () {
|
|
8
|
+
var args = [];
|
|
9
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
10
|
+
args[_i] = arguments[_i];
|
|
13
11
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
return !fn.apply(void 0, args);
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function isNumeric(value) {
|
|
17
|
+
var str = String(value);
|
|
18
|
+
var num = Number(value);
|
|
19
|
+
var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
|
|
20
|
+
return Boolean(result);
|
|
21
|
+
}
|
|
22
|
+
var isNotNumeric = bindNot(isNumeric);
|
|
23
|
+
|
|
24
|
+
function numberEquals(value, eq) {
|
|
25
|
+
return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
|
|
26
|
+
}
|
|
27
|
+
var numberNotEquals = bindNot(numberEquals);
|
|
28
|
+
|
|
29
|
+
function lengthEquals(value, arg1) {
|
|
30
|
+
return numberEquals(value.length, arg1);
|
|
31
|
+
}
|
|
32
|
+
var lengthNotEquals = bindNot(lengthEquals);
|
|
33
|
+
|
|
34
|
+
function greaterThan(value, gt) {
|
|
35
|
+
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function longerThan(value, arg1) {
|
|
39
|
+
return greaterThan(value.length, arg1);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function isNull(value) {
|
|
43
|
+
return value === null;
|
|
44
|
+
}
|
|
45
|
+
var isNotNull = bindNot(isNull);
|
|
46
|
+
|
|
47
|
+
function isUndefined(value) {
|
|
48
|
+
return value === undefined;
|
|
49
|
+
}
|
|
50
|
+
var isNotUndefined = bindNot(isUndefined);
|
|
51
|
+
|
|
52
|
+
function isNullish(value) {
|
|
53
|
+
return isNull(value) || isUndefined(value);
|
|
19
54
|
}
|
|
55
|
+
var isNotNullish = bindNot(isNullish);
|
|
20
56
|
|
|
21
57
|
function isFunction(value) {
|
|
22
58
|
return typeof value === 'function';
|
|
@@ -30,95 +66,87 @@
|
|
|
30
66
|
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
31
67
|
}
|
|
32
68
|
|
|
33
|
-
function defaultTo(
|
|
69
|
+
function defaultTo(value, defaultValue) {
|
|
34
70
|
var _a;
|
|
35
|
-
return (_a = optionalFunctionValue(
|
|
71
|
+
return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
|
|
36
72
|
}
|
|
37
73
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return output;
|
|
44
|
-
}
|
|
45
|
-
function failing() {
|
|
46
|
-
return ruleReturn(false);
|
|
47
|
-
}
|
|
48
|
-
function passing() {
|
|
49
|
-
return ruleReturn(true);
|
|
50
|
-
}
|
|
51
|
-
function defaultToFailing(callback) {
|
|
52
|
-
return defaultTo(callback, failing());
|
|
53
|
-
}
|
|
54
|
-
function defaultToPassing(callback) {
|
|
55
|
-
return defaultTo(callback, passing());
|
|
74
|
+
// The module is named "isArrayValue" since it
|
|
75
|
+
// is conflicting with a nested npm dependency.
|
|
76
|
+
// We may need to revisit this in the future.
|
|
77
|
+
function isArray(value) {
|
|
78
|
+
return Boolean(Array.isArray(value));
|
|
56
79
|
}
|
|
80
|
+
var isNotArray = bindNot(isArray);
|
|
57
81
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
return failing();
|
|
64
|
-
}
|
|
82
|
+
/**
|
|
83
|
+
* A safe hasOwnProperty access
|
|
84
|
+
*/
|
|
85
|
+
function hasOwnProperty(obj, key) {
|
|
86
|
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
65
87
|
}
|
|
66
88
|
|
|
67
|
-
|
|
68
|
-
var rules = [];
|
|
69
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
70
|
-
rules[_i - 1] = arguments[_i];
|
|
71
|
-
}
|
|
72
|
-
return defaultToPassing(mapFirst(rules, function (rule, breakout) {
|
|
73
|
-
var res = runLazyRule(rule, value);
|
|
74
|
-
if (!res.pass) {
|
|
75
|
-
breakout(res);
|
|
76
|
-
}
|
|
77
|
-
}));
|
|
78
|
-
}
|
|
89
|
+
var assign = Object.assign;
|
|
79
90
|
|
|
80
|
-
function
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
91
|
+
function invariant(condition,
|
|
92
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
93
|
+
message) {
|
|
94
|
+
if (condition) {
|
|
95
|
+
return;
|
|
84
96
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
97
|
+
// If message is a string object (rather than string literal)
|
|
98
|
+
// Throw the value directly as a string
|
|
99
|
+
// Alternatively, throw an error with the message
|
|
100
|
+
throw message instanceof String
|
|
101
|
+
? message.valueOf()
|
|
102
|
+
: new Error(message ? optionalFunctionValue(message) : message);
|
|
103
|
+
}
|
|
104
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
105
|
+
function StringObject(value) {
|
|
106
|
+
return new String(optionalFunctionValue(value));
|
|
91
107
|
}
|
|
92
108
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
function bindNot(fn) {
|
|
96
|
-
return function () {
|
|
97
|
-
var args = [];
|
|
98
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
99
|
-
args[_i] = arguments[_i];
|
|
100
|
-
}
|
|
101
|
-
return !fn.apply(void 0, args);
|
|
102
|
-
};
|
|
109
|
+
function isStringValue(v) {
|
|
110
|
+
return String(v) === v;
|
|
103
111
|
}
|
|
104
112
|
|
|
105
|
-
function
|
|
106
|
-
return value ===
|
|
113
|
+
function isBoolean(value) {
|
|
114
|
+
return !!value === value;
|
|
107
115
|
}
|
|
108
|
-
var isNotNull = bindNot(isNull);
|
|
109
116
|
|
|
110
|
-
function
|
|
111
|
-
|
|
117
|
+
function mapFirst(array, callback) {
|
|
118
|
+
var broke = false;
|
|
119
|
+
var breakoutValue = null;
|
|
120
|
+
for (var i = 0; i < array.length; i++) {
|
|
121
|
+
callback(array[i], breakout, i);
|
|
122
|
+
if (broke) {
|
|
123
|
+
return breakoutValue;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function breakout(conditional, value) {
|
|
127
|
+
if (conditional) {
|
|
128
|
+
broke = true;
|
|
129
|
+
breakoutValue = value;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
112
132
|
}
|
|
113
|
-
var isNotUndefined = bindNot(isUndefined);
|
|
114
133
|
|
|
115
|
-
function
|
|
116
|
-
|
|
134
|
+
function isEmpty(value) {
|
|
135
|
+
if (!value) {
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
else if (hasOwnProperty(value, 'length')) {
|
|
139
|
+
return lengthEquals(value, 0);
|
|
140
|
+
}
|
|
141
|
+
else if (typeof value === 'object') {
|
|
142
|
+
return lengthEquals(Object.keys(value), 0);
|
|
143
|
+
}
|
|
144
|
+
return false;
|
|
117
145
|
}
|
|
118
|
-
var
|
|
146
|
+
var isNotEmpty = bindNot(isEmpty);
|
|
119
147
|
|
|
120
|
-
function
|
|
121
|
-
return
|
|
148
|
+
function isPositive(value) {
|
|
149
|
+
return greaterThan(value, 0);
|
|
122
150
|
}
|
|
123
151
|
|
|
124
152
|
function endsWith(value, arg1) {
|
|
@@ -131,35 +159,10 @@
|
|
|
131
159
|
}
|
|
132
160
|
var notEquals = bindNot(equals);
|
|
133
161
|
|
|
134
|
-
function isNumeric(value) {
|
|
135
|
-
var str = String(value);
|
|
136
|
-
var num = Number(value);
|
|
137
|
-
var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
|
|
138
|
-
return Boolean(result);
|
|
139
|
-
}
|
|
140
|
-
var isNotNumeric = bindNot(isNumeric);
|
|
141
|
-
|
|
142
|
-
function greaterThan(value, gt) {
|
|
143
|
-
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
function numberEquals(value, eq) {
|
|
147
|
-
return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
|
|
148
|
-
}
|
|
149
|
-
var numberNotEquals = bindNot(numberEquals);
|
|
150
|
-
|
|
151
162
|
function greaterThanOrEquals(value, gte) {
|
|
152
163
|
return numberEquals(value, gte) || greaterThan(value, gte);
|
|
153
164
|
}
|
|
154
165
|
|
|
155
|
-
// The module is named "isArrayValue" since it
|
|
156
|
-
// is conflicting with a nested npm dependency.
|
|
157
|
-
// We may need to revisit this in the future.
|
|
158
|
-
function isArray(value) {
|
|
159
|
-
return Boolean(Array.isArray(value));
|
|
160
|
-
}
|
|
161
|
-
var isNotArray = bindNot(isArray);
|
|
162
|
-
|
|
163
166
|
function inside(value, arg1) {
|
|
164
167
|
if (isArray(arg1)) {
|
|
165
168
|
return arg1.indexOf(value) !== -1;
|
|
@@ -190,46 +193,8 @@
|
|
|
190
193
|
}
|
|
191
194
|
var isNotBlank = bindNot(isBlank);
|
|
192
195
|
|
|
193
|
-
function isBoolean(value) {
|
|
194
|
-
return !!value === value;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
196
|
var isNotBoolean = bindNot(isBoolean);
|
|
198
197
|
|
|
199
|
-
/**
|
|
200
|
-
* A safe hasOwnProperty access
|
|
201
|
-
*/
|
|
202
|
-
function hasOwnProperty(obj, key) {
|
|
203
|
-
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
function isNumber(value) {
|
|
207
|
-
return Boolean(typeof value === 'number');
|
|
208
|
-
}
|
|
209
|
-
var isNotNumber = bindNot(isNumber);
|
|
210
|
-
|
|
211
|
-
function lengthEquals(value, arg1) {
|
|
212
|
-
return numberEquals(value.length, arg1);
|
|
213
|
-
}
|
|
214
|
-
var lengthNotEquals = bindNot(lengthEquals);
|
|
215
|
-
|
|
216
|
-
function isEmpty(value) {
|
|
217
|
-
if (!value) {
|
|
218
|
-
return true;
|
|
219
|
-
}
|
|
220
|
-
else if (isNumber(value)) {
|
|
221
|
-
return value === 0;
|
|
222
|
-
}
|
|
223
|
-
else if (hasOwnProperty(value, 'length')) {
|
|
224
|
-
return lengthEquals(value, 0);
|
|
225
|
-
}
|
|
226
|
-
else if (typeof value === 'object') {
|
|
227
|
-
return lengthEquals(Object.keys(value), 0);
|
|
228
|
-
}
|
|
229
|
-
return false;
|
|
230
|
-
}
|
|
231
|
-
var isNotEmpty = bindNot(isEmpty);
|
|
232
|
-
|
|
233
198
|
/**
|
|
234
199
|
* Validates that a given value is an even number
|
|
235
200
|
*/
|
|
@@ -254,6 +219,11 @@
|
|
|
254
219
|
return lessThan(value, 0);
|
|
255
220
|
}
|
|
256
221
|
|
|
222
|
+
function isNumber(value) {
|
|
223
|
+
return Boolean(typeof value === 'number');
|
|
224
|
+
}
|
|
225
|
+
var isNotNumber = bindNot(isNumber);
|
|
226
|
+
|
|
257
227
|
/**
|
|
258
228
|
* Validates that a given value is an odd number
|
|
259
229
|
*/
|
|
@@ -264,10 +234,6 @@
|
|
|
264
234
|
return false;
|
|
265
235
|
};
|
|
266
236
|
|
|
267
|
-
function isPositive(value) {
|
|
268
|
-
return greaterThan(value, 0);
|
|
269
|
-
}
|
|
270
|
-
|
|
271
237
|
var isNotString = bindNot(isStringValue);
|
|
272
238
|
|
|
273
239
|
function isTruthy(value) {
|
|
@@ -288,10 +254,6 @@
|
|
|
288
254
|
}
|
|
289
255
|
var isNotValueOf = bindNot(isValueOf);
|
|
290
256
|
|
|
291
|
-
function longerThan(value, arg1) {
|
|
292
|
-
return greaterThan(value.length, arg1);
|
|
293
|
-
}
|
|
294
|
-
|
|
295
257
|
function longerThanOrEquals(value, arg1) {
|
|
296
258
|
return greaterThanOrEquals(value.length, arg1);
|
|
297
259
|
}
|
|
@@ -412,20 +374,6 @@
|
|
|
412
374
|
}
|
|
413
375
|
}
|
|
414
376
|
|
|
415
|
-
function invariant(condition,
|
|
416
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
417
|
-
message) {
|
|
418
|
-
if (condition) {
|
|
419
|
-
return;
|
|
420
|
-
}
|
|
421
|
-
// If message is a string object (rather than string literal)
|
|
422
|
-
// Throw the value directly as a string
|
|
423
|
-
// Alternatively, throw an error with the message
|
|
424
|
-
throw message instanceof String
|
|
425
|
-
? message.valueOf()
|
|
426
|
-
: new Error(message ? optionalFunctionValue(message) : message);
|
|
427
|
-
}
|
|
428
|
-
|
|
429
377
|
// eslint-disable-next-line max-lines-per-function
|
|
430
378
|
function createContext(init) {
|
|
431
379
|
var storage = { ancestry: [] };
|
|
@@ -436,8 +384,9 @@
|
|
|
436
384
|
useX: useX
|
|
437
385
|
};
|
|
438
386
|
function useX(errorMessage) {
|
|
439
|
-
|
|
440
|
-
|
|
387
|
+
var ctx = use();
|
|
388
|
+
invariant(ctx, defaultTo(errorMessage, 'Context was used after it was closed'));
|
|
389
|
+
return ctx;
|
|
441
390
|
}
|
|
442
391
|
function run(ctxRef, fn) {
|
|
443
392
|
var _a;
|
|
@@ -507,7 +456,7 @@
|
|
|
507
456
|
return null;
|
|
508
457
|
}
|
|
509
458
|
|
|
510
|
-
|
|
459
|
+
/******************************************************************************
|
|
511
460
|
Copyright (c) Microsoft Corporation.
|
|
512
461
|
|
|
513
462
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -541,6 +490,26 @@
|
|
|
541
490
|
}
|
|
542
491
|
}
|
|
543
492
|
|
|
493
|
+
function ruleReturn(pass, message) {
|
|
494
|
+
var output = { pass: pass };
|
|
495
|
+
if (message) {
|
|
496
|
+
output.message = message;
|
|
497
|
+
}
|
|
498
|
+
return output;
|
|
499
|
+
}
|
|
500
|
+
function failing() {
|
|
501
|
+
return ruleReturn(false);
|
|
502
|
+
}
|
|
503
|
+
function passing() {
|
|
504
|
+
return ruleReturn(true);
|
|
505
|
+
}
|
|
506
|
+
function defaultToFailing(callback) {
|
|
507
|
+
return defaultTo(callback, failing());
|
|
508
|
+
}
|
|
509
|
+
function defaultToPassing(callback) {
|
|
510
|
+
return defaultTo(callback, passing());
|
|
511
|
+
}
|
|
512
|
+
|
|
544
513
|
/**
|
|
545
514
|
* Transform the result of a rule into a standard format
|
|
546
515
|
*/
|
|
@@ -586,12 +555,12 @@
|
|
|
586
555
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
587
556
|
args[_i] = arguments[_i];
|
|
588
557
|
}
|
|
589
|
-
var transformedResult =
|
|
590
|
-
ruleName,
|
|
591
|
-
|
|
592
|
-
invariant(transformedResult.pass,
|
|
558
|
+
var transformedResult = ctx.run({ value: value }, function () {
|
|
559
|
+
return transformResult.apply(void 0, __spreadArray([rule.apply(void 0, __spreadArray([value], args, false)), ruleName, value], args, false));
|
|
560
|
+
});
|
|
561
|
+
invariant(transformedResult.pass, isNullish(transformedResult.message)
|
|
593
562
|
? "enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value))
|
|
594
|
-
:
|
|
563
|
+
: StringObject(transformedResult.message));
|
|
595
564
|
return target;
|
|
596
565
|
};
|
|
597
566
|
}
|
|
@@ -619,9 +588,7 @@
|
|
|
619
588
|
return defaultToPassing(mapFirst(registeredRules, function (rule, breakout) {
|
|
620
589
|
var _a;
|
|
621
590
|
var res = ctx.run({ value: value }, function () { return rule(value); });
|
|
622
|
-
|
|
623
|
-
breakout(ruleReturn(!!res.pass, (_a = optionalFunctionValue(lazyMessage, value, res.message)) !== null && _a !== void 0 ? _a : res.message));
|
|
624
|
-
}
|
|
591
|
+
breakout(!res.pass, ruleReturn(!!res.pass, (_a = optionalFunctionValue(lazyMessage, value, res.message)) !== null && _a !== void 0 ? _a : res.message));
|
|
625
592
|
}));
|
|
626
593
|
},
|
|
627
594
|
test: function (value) { return proxy.run(value).pass; },
|
|
@@ -712,6 +679,37 @@
|
|
|
712
679
|
}
|
|
713
680
|
var enforce = genEnforce();
|
|
714
681
|
|
|
682
|
+
function runLazyRule(lazyRule, currentValue) {
|
|
683
|
+
try {
|
|
684
|
+
return lazyRule.run(currentValue);
|
|
685
|
+
}
|
|
686
|
+
catch (_a) {
|
|
687
|
+
return failing();
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
function allOf(value) {
|
|
692
|
+
var rules = [];
|
|
693
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
694
|
+
rules[_i - 1] = arguments[_i];
|
|
695
|
+
}
|
|
696
|
+
return defaultToPassing(mapFirst(rules, function (rule, breakout) {
|
|
697
|
+
var res = runLazyRule(rule, value);
|
|
698
|
+
breakout(!res.pass, res);
|
|
699
|
+
}));
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
function anyOf(value) {
|
|
703
|
+
var rules = [];
|
|
704
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
705
|
+
rules[_i - 1] = arguments[_i];
|
|
706
|
+
}
|
|
707
|
+
return defaultToFailing(mapFirst(rules, function (rule, breakout) {
|
|
708
|
+
var res = runLazyRule(rule, value);
|
|
709
|
+
breakout(res.pass, res);
|
|
710
|
+
}));
|
|
711
|
+
}
|
|
712
|
+
|
|
715
713
|
function noneOf(value) {
|
|
716
714
|
var rules = [];
|
|
717
715
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
@@ -719,9 +717,7 @@
|
|
|
719
717
|
}
|
|
720
718
|
return defaultToPassing(mapFirst(rules, function (rule, breakout) {
|
|
721
719
|
var res = runLazyRule(rule, value);
|
|
722
|
-
|
|
723
|
-
breakout(failing());
|
|
724
|
-
}
|
|
720
|
+
breakout(res.pass, failing());
|
|
725
721
|
}));
|
|
726
722
|
}
|
|
727
723
|
|
|
@@ -731,17 +727,17 @@
|
|
|
731
727
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
732
728
|
rules[_i - 1] = arguments[_i];
|
|
733
729
|
}
|
|
734
|
-
var
|
|
730
|
+
var passingCount = 0;
|
|
735
731
|
rules.some(function (rule) {
|
|
736
732
|
var res = runLazyRule(rule, value);
|
|
737
733
|
if (res.pass) {
|
|
738
|
-
|
|
734
|
+
passingCount++;
|
|
739
735
|
}
|
|
740
|
-
if (
|
|
736
|
+
if (greaterThan(passingCount, REQUIRED_COUNT)) {
|
|
741
737
|
return false;
|
|
742
738
|
}
|
|
743
739
|
});
|
|
744
|
-
return ruleReturn(
|
|
740
|
+
return ruleReturn(equals(passingCount, REQUIRED_COUNT));
|
|
745
741
|
}
|
|
746
742
|
|
|
747
743
|
enforce.extend({ allOf: allOf, anyOf: anyOf, noneOf: noneOf, oneOf: oneOf });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(n){"function"==typeof define&&define.amd?define(n):n()}((function(){function n(n
|
|
1
|
+
"use strict";!function(n){"function"==typeof define&&define.amd?define(n):n()}((function(){function n(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function t(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function r(n,r){return t(n)&&t(r)&&Number(n)===Number(r)}function e(n,t){return r(n.length,t)}function u(n,r){return t(n)&&t(r)&&Number(n)>Number(r)}function i(n){return null===n}function o(n){return void 0===n}function f(n){return null===n||o(n)}function a(n){return"function"==typeof n}function s(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return a(n)?n.apply(void 0,t):n}function c(n,t){var r;return null!==(r=s(n))&&void 0!==r?r:s(t)}function l(n){return!!Array.isArray(n)}function v(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?s(t):t)}function h(n){return String(n)===n}function g(n){return!!n===n}function p(n,t){function r(n,t){n&&(e=!0,u=t)}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function N(n){return!n||(Object.prototype.hasOwnProperty.call(n,"length")?e(n,0):"object"==typeof n&&e(Object.keys(n),0))}function y(n,t){return h(n)&&h(t)&&n.endsWith(t)}function d(n,t){return n===t}function m(n,t){return r(n,t)||u(n,t)}function O(n,t){return!!(l(t)||h(t)&&h(n))&&-1!==t.indexOf(n)}function b(n,r){return t(n)&&t(r)&&Number(n)<Number(r)}function E(n,t){return r(n,t)||b(n,t)}function x(n,t,r){return m(n,t)&&E(n,r)}function w(n){return f(n)||h(n)&&!n.trim()}function q(n,t){return n in t}function S(n){return Number.isNaN(n)}function T(n){return"number"==typeof n}function A(n){return!!n}function B(n,t){if(f(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function P(n,t){return t instanceof RegExp?t.test(n):!!h(t)&&new RegExp(t).test(n)}function W(n,t){return h(n)&&h(t)&&n.startsWith(t)}function j(n){for(var t in cn){var r=cn[t];a(r)&&n(t,r)}}function k(){return null}function F(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 I(){try{return a(Proxy)}catch(n){return!1}}function J(n,t){return n={pass:n},t&&(n.message=t),n}function K(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return v(g(n)||n&&g(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),g(n)?J(n):J(n.pass,s.apply(void 0,F([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 v((i=ln.run({value:n},(function(){return K.apply(void 0,F([r.apply(void 0,F([n],u,!1)),e,n],u,!1))}))).pass,f(i.message)?"enforce/".concat(e," failed with ").concat(JSON.stringify(n)):new String(s(i.message))),t}}var r={};if(!I())return j((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=cn[r])return t(e,n,r)}});return e}function U(n){var t,r=[];return function n(e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=cn[e];r.push((function(n){return K.apply(void 0,F([o.apply(void 0,F([n],u,!1)),e,n],u,!1))}));var f={run:function(n){return c(p(r,(function(r,e){var u,i=ln.run({value:n},(function(){return r(n)}));e(!i.pass,J(!!i.pass,null!==(u=s(t,n,i.message))&&void 0!==u?u:i.message))})),J(!0))},test:function(n){return f.run(n).pass},message:function(n){return n&&(t=n),f}};return I()?f=new Proxy(f,{get:function(t,r){return cn[r]?n(r):t[r]}}):(j((function(t){f[t]=n(t)})),f)}}(n)}function V(n,t){try{return n.run(t)}catch(n){return J(!1)}}var X=n(t),z=n(r),C=n(e),M=n(i),D=n(o),G=n(f),H=n(l),L=Object.assign,Q=n(N),Y=n(y),Z=n(d),$=n(O),_=n(x),nn=n(w),tn=n(g),rn=n(q),en=n(S),un=n(T),on=n(h),fn=n(A),an=n(B),sn=n(P),cn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Y,doesNotStartWith:n(W),endsWith:y,equals:d,greaterThan:u,greaterThanOrEquals:m,gt:u,gte:m,inside:O,isArray:l,isBetween:x,isBlank:w,isBoolean:g,isEmpty:N,isEven:function(n){return!!t(n)&&0==n%2},isFalsy:fn,isKeyOf:q,isNaN:S,isNegative:function(n){return b(n,0)},isNotArray:H,isNotBetween:_,isNotBlank:nn,isNotBoolean:tn,isNotEmpty:Q,isNotKeyOf:rn,isNotNaN:en,isNotNull:M,isNotNullish:G,isNotNumber:un,isNotNumeric:X,isNotString:on,isNotUndefined:D,isNotValueOf:an,isNull:i,isNullish:f,isNumber:T,isNumeric:t,isOdd:function(n){return!!t(n)&&0!=n%2},isPositive:function(n){return u(n,0)},isString:h,isTruthy:A,isUndefined:o,isValueOf:B,lengthEquals:e,lengthNotEquals:C,lessThan:b,lessThanOrEquals:E,longerThan:function(n,t){return u(n.length,t)},longerThanOrEquals:function(n,t){return m(n.length,t)},lt:b,lte:E,matches:P,notEquals:Z,notInside:$,notMatches:sn,numberEquals:r,numberNotEquals:z,shorterThan:function(n,t){return b(n.length,t)},shorterThanOrEquals:function(n,t){return E(n.length,t)},startsWith:W},ln=function(n){function t(t,u){var i,o,f=r();return t=L({},f||{},null!==(i=s(n,t,f))&&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){var t=r();return v(t,c(n,"Context was used after it was closed")),t}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?L(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:L(r,{parent:k})}));(function(){function n(){if(!I())return j((function(n){t[n]=U(n)})),L(R,t)}var t={context:function(){return ln.useX()},extend:function(t){L(cn,t),n()}};return n(),new Proxy(L(R,t),{get:function(n,t){return t in n?n[t]:cn[t]?U(t):void 0}})})().extend({allOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return c(p(t,(function(t,r){r(!(t=V(t,n)).pass,t)})),J(!0))},anyOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return c(p(t,(function(t,r){r((t=V(t,n)).pass,t)})),J(!1))},noneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return c(p(t,(function(t,r){r((t=V(t,n)).pass,J(!1))})),J(!0))},oneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=0;return t.some((function(t){if(V(t,n).pass&&e++,u(e,1))return!1})),J(1===e)}})}));
|