vest 4.4.2 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/classnames.development.js +16 -90
- package/dist/cjs/classnames.production.js +1 -1
- package/dist/cjs/enforce/compose.development.js +5 -58
- package/dist/cjs/enforce/compose.production.js +1 -1
- package/dist/cjs/enforce/compounds.development.js +8 -51
- package/dist/cjs/enforce/compounds.production.js +1 -1
- package/dist/cjs/enforce/schema.development.js +5 -57
- package/dist/cjs/enforce/schema.production.js +1 -1
- package/dist/cjs/parser.development.js +15 -89
- 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 +197 -452
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/classnames.development.js +14 -88
- package/dist/es/classnames.production.js +1 -1
- package/dist/es/enforce/compose.development.js +1 -54
- package/dist/es/enforce/compose.production.js +1 -1
- package/dist/es/enforce/compounds.development.js +2 -45
- package/dist/es/enforce/compounds.production.js +1 -1
- package/dist/es/enforce/schema.development.js +1 -53
- package/dist/es/enforce/schema.production.js +1 -1
- package/dist/es/parser.development.js +14 -88
- 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 +131 -387
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/classnames.development.js +27 -56
- package/dist/umd/classnames.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +111 -94
- package/dist/umd/enforce/compose.production.js +1 -1
- package/dist/umd/enforce/compounds.development.js +185 -168
- package/dist/umd/enforce/compounds.production.js +1 -1
- package/dist/umd/enforce/schema.development.js +134 -117
- package/dist/umd/enforce/schema.production.js +1 -1
- package/dist/umd/parser.development.js +27 -56
- package/dist/umd/parser.production.js +1 -1
- package/dist/umd/vest.development.js +398 -386
- package/dist/umd/vest.production.js +1 -1
- package/package.json +4 -3
- package/testUtils/__tests__/partition.test.ts +21 -0
- package/testUtils/mockThrowError.ts +2 -1
- package/testUtils/partition.ts +13 -0
- package/testUtils/suiteDummy.ts +1 -1
- package/types/enforce/compose.d.ts +17 -32
- package/types/enforce/compounds.d.ts +17 -32
- package/types/enforce/schema.d.ts +17 -32
- package/types/parser.d.ts +8 -7
- package/types/promisify.d.ts +20 -35
- package/types/vest.d.ts +45 -60
|
@@ -3,12 +3,6 @@
|
|
|
3
3
|
factory();
|
|
4
4
|
}((function () { 'use strict';
|
|
5
5
|
|
|
6
|
-
var assign = Object.assign;
|
|
7
|
-
|
|
8
|
-
function isFunction(value) {
|
|
9
|
-
return typeof value === 'function';
|
|
10
|
-
}
|
|
11
|
-
|
|
12
6
|
function bindNot(fn) {
|
|
13
7
|
return function () {
|
|
14
8
|
var args = [];
|
|
@@ -19,6 +13,32 @@
|
|
|
19
13
|
};
|
|
20
14
|
}
|
|
21
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
|
+
|
|
22
42
|
function isNull(value) {
|
|
23
43
|
return value === null;
|
|
24
44
|
}
|
|
@@ -34,48 +54,165 @@
|
|
|
34
54
|
}
|
|
35
55
|
var isNotNullish = bindNot(isNullish);
|
|
36
56
|
|
|
57
|
+
function isFunction(value) {
|
|
58
|
+
return typeof value === 'function';
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function optionalFunctionValue(value) {
|
|
62
|
+
var args = [];
|
|
63
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
64
|
+
args[_i - 1] = arguments[_i];
|
|
65
|
+
}
|
|
66
|
+
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function defaultTo(value, defaultValue) {
|
|
70
|
+
var _a;
|
|
71
|
+
return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
|
|
72
|
+
}
|
|
73
|
+
|
|
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));
|
|
79
|
+
}
|
|
80
|
+
var isNotArray = bindNot(isArray);
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* A safe hasOwnProperty access
|
|
84
|
+
*/
|
|
85
|
+
function hasOwnProperty(obj, key) {
|
|
86
|
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
var assign = Object.assign;
|
|
90
|
+
|
|
91
|
+
function invariant(condition,
|
|
92
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
93
|
+
message) {
|
|
94
|
+
if (condition) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
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));
|
|
107
|
+
}
|
|
108
|
+
|
|
37
109
|
function isStringValue(v) {
|
|
38
110
|
return String(v) === v;
|
|
39
111
|
}
|
|
40
112
|
|
|
41
|
-
function
|
|
42
|
-
return
|
|
113
|
+
function isBoolean(value) {
|
|
114
|
+
return !!value === value;
|
|
43
115
|
}
|
|
44
|
-
var doesNotEndWith = bindNot(endsWith);
|
|
45
116
|
|
|
46
|
-
function
|
|
47
|
-
|
|
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
|
+
}
|
|
48
132
|
}
|
|
49
|
-
var notEquals = bindNot(equals);
|
|
50
133
|
|
|
51
|
-
function
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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;
|
|
56
145
|
}
|
|
57
|
-
var
|
|
146
|
+
var isNotEmpty = bindNot(isEmpty);
|
|
58
147
|
|
|
59
|
-
function
|
|
60
|
-
return
|
|
148
|
+
function isPositive(value) {
|
|
149
|
+
return greaterThan(value, 0);
|
|
61
150
|
}
|
|
62
151
|
|
|
63
|
-
function
|
|
64
|
-
|
|
152
|
+
function ruleReturn(pass, message) {
|
|
153
|
+
var output = { pass: pass };
|
|
154
|
+
if (message) {
|
|
155
|
+
output.message = message;
|
|
156
|
+
}
|
|
157
|
+
return output;
|
|
158
|
+
}
|
|
159
|
+
function failing() {
|
|
160
|
+
return ruleReturn(false);
|
|
161
|
+
}
|
|
162
|
+
function passing() {
|
|
163
|
+
return ruleReturn(true);
|
|
164
|
+
}
|
|
165
|
+
function defaultToFailing(callback) {
|
|
166
|
+
return defaultTo(callback, failing());
|
|
167
|
+
}
|
|
168
|
+
function defaultToPassing(callback) {
|
|
169
|
+
return defaultTo(callback, passing());
|
|
65
170
|
}
|
|
66
|
-
var numberNotEquals = bindNot(numberEquals);
|
|
67
171
|
|
|
68
|
-
function
|
|
69
|
-
|
|
172
|
+
function runLazyRule(lazyRule, currentValue) {
|
|
173
|
+
try {
|
|
174
|
+
return lazyRule.run(currentValue);
|
|
175
|
+
}
|
|
176
|
+
catch (_a) {
|
|
177
|
+
return failing();
|
|
178
|
+
}
|
|
70
179
|
}
|
|
71
180
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
181
|
+
function allOf(value) {
|
|
182
|
+
var rules = [];
|
|
183
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
184
|
+
rules[_i - 1] = arguments[_i];
|
|
185
|
+
}
|
|
186
|
+
return defaultToPassing(mapFirst(rules, function (rule, breakout) {
|
|
187
|
+
var res = runLazyRule(rule, value);
|
|
188
|
+
breakout(!res.pass, res);
|
|
189
|
+
}));
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
function anyOf(value) {
|
|
193
|
+
var rules = [];
|
|
194
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
195
|
+
rules[_i - 1] = arguments[_i];
|
|
196
|
+
}
|
|
197
|
+
return defaultToFailing(mapFirst(rules, function (rule, breakout) {
|
|
198
|
+
var res = runLazyRule(rule, value);
|
|
199
|
+
breakout(res.pass, res);
|
|
200
|
+
}));
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
function endsWith(value, arg1) {
|
|
204
|
+
return isStringValue(value) && isStringValue(arg1) && value.endsWith(arg1);
|
|
205
|
+
}
|
|
206
|
+
var doesNotEndWith = bindNot(endsWith);
|
|
207
|
+
|
|
208
|
+
function equals(value, arg1) {
|
|
209
|
+
return value === arg1;
|
|
210
|
+
}
|
|
211
|
+
var notEquals = bindNot(equals);
|
|
212
|
+
|
|
213
|
+
function greaterThanOrEquals(value, gte) {
|
|
214
|
+
return numberEquals(value, gte) || greaterThan(value, gte);
|
|
77
215
|
}
|
|
78
|
-
var isNotArray = bindNot(isArray);
|
|
79
216
|
|
|
80
217
|
function inside(value, arg1) {
|
|
81
218
|
if (isArray(arg1)) {
|
|
@@ -107,38 +244,8 @@
|
|
|
107
244
|
}
|
|
108
245
|
var isNotBlank = bindNot(isBlank);
|
|
109
246
|
|
|
110
|
-
function isBoolean(value) {
|
|
111
|
-
return !!value === value;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
247
|
var isNotBoolean = bindNot(isBoolean);
|
|
115
248
|
|
|
116
|
-
/**
|
|
117
|
-
* A safe hasOwnProperty access
|
|
118
|
-
*/
|
|
119
|
-
function hasOwnProperty(obj, key) {
|
|
120
|
-
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
function lengthEquals(value, arg1) {
|
|
124
|
-
return numberEquals(value.length, arg1);
|
|
125
|
-
}
|
|
126
|
-
var lengthNotEquals = bindNot(lengthEquals);
|
|
127
|
-
|
|
128
|
-
function isEmpty(value) {
|
|
129
|
-
if (!value) {
|
|
130
|
-
return true;
|
|
131
|
-
}
|
|
132
|
-
else if (hasOwnProperty(value, 'length')) {
|
|
133
|
-
return lengthEquals(value, 0);
|
|
134
|
-
}
|
|
135
|
-
else if (typeof value === 'object') {
|
|
136
|
-
return lengthEquals(Object.keys(value), 0);
|
|
137
|
-
}
|
|
138
|
-
return false;
|
|
139
|
-
}
|
|
140
|
-
var isNotEmpty = bindNot(isEmpty);
|
|
141
|
-
|
|
142
249
|
/**
|
|
143
250
|
* Validates that a given value is an even number
|
|
144
251
|
*/
|
|
@@ -178,10 +285,6 @@
|
|
|
178
285
|
return false;
|
|
179
286
|
};
|
|
180
287
|
|
|
181
|
-
function isPositive(value) {
|
|
182
|
-
return greaterThan(value, 0);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
288
|
var isNotString = bindNot(isStringValue);
|
|
186
289
|
|
|
187
290
|
function isTruthy(value) {
|
|
@@ -202,10 +305,6 @@
|
|
|
202
305
|
}
|
|
203
306
|
var isNotValueOf = bindNot(isValueOf);
|
|
204
307
|
|
|
205
|
-
function longerThan(value, arg1) {
|
|
206
|
-
return greaterThan(value.length, arg1);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
308
|
function longerThanOrEquals(value, arg1) {
|
|
210
309
|
return greaterThanOrEquals(value.length, arg1);
|
|
211
310
|
}
|
|
@@ -326,37 +425,6 @@
|
|
|
326
425
|
}
|
|
327
426
|
}
|
|
328
427
|
|
|
329
|
-
function optionalFunctionValue(value) {
|
|
330
|
-
var args = [];
|
|
331
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
332
|
-
args[_i - 1] = arguments[_i];
|
|
333
|
-
}
|
|
334
|
-
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
function defaultTo(value, defaultValue) {
|
|
338
|
-
var _a;
|
|
339
|
-
return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
function invariant(condition,
|
|
343
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
344
|
-
message) {
|
|
345
|
-
if (condition) {
|
|
346
|
-
return;
|
|
347
|
-
}
|
|
348
|
-
// If message is a string object (rather than string literal)
|
|
349
|
-
// Throw the value directly as a string
|
|
350
|
-
// Alternatively, throw an error with the message
|
|
351
|
-
throw message instanceof String
|
|
352
|
-
? message.valueOf()
|
|
353
|
-
: new Error(message ? optionalFunctionValue(message) : message);
|
|
354
|
-
}
|
|
355
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
356
|
-
function StringObject(value) {
|
|
357
|
-
return new String(optionalFunctionValue(value));
|
|
358
|
-
}
|
|
359
|
-
|
|
360
428
|
// eslint-disable-next-line max-lines-per-function
|
|
361
429
|
function createContext(init) {
|
|
362
430
|
var storage = { ancestry: [] };
|
|
@@ -473,26 +541,6 @@
|
|
|
473
541
|
}
|
|
474
542
|
}
|
|
475
543
|
|
|
476
|
-
function ruleReturn(pass, message) {
|
|
477
|
-
var output = { pass: pass };
|
|
478
|
-
if (message) {
|
|
479
|
-
output.message = message;
|
|
480
|
-
}
|
|
481
|
-
return output;
|
|
482
|
-
}
|
|
483
|
-
function failing() {
|
|
484
|
-
return ruleReturn(false);
|
|
485
|
-
}
|
|
486
|
-
function passing() {
|
|
487
|
-
return ruleReturn(true);
|
|
488
|
-
}
|
|
489
|
-
function defaultToFailing(callback) {
|
|
490
|
-
return defaultTo(callback, failing());
|
|
491
|
-
}
|
|
492
|
-
function defaultToPassing(callback) {
|
|
493
|
-
return defaultTo(callback, passing());
|
|
494
|
-
}
|
|
495
|
-
|
|
496
544
|
/**
|
|
497
545
|
* Transform the result of a rule into a standard format
|
|
498
546
|
*/
|
|
@@ -517,30 +565,47 @@
|
|
|
517
565
|
|
|
518
566
|
function enforceEager(value) {
|
|
519
567
|
var target = {};
|
|
568
|
+
// This condition is for when we don't have proxy support (ES5).
|
|
569
|
+
// In this case, we need to manually assign the rules to the target object on runtime.
|
|
570
|
+
// The follow up proxy block is used in case we do have proxy support, and we can assign each rule upon invocation.
|
|
520
571
|
if (!isProxySupported()) {
|
|
572
|
+
// We iterate over each of the rules, and add them to the target object being return by enforce
|
|
521
573
|
eachEnforceRule(function (ruleName, ruleFn) {
|
|
574
|
+
// We then wrap the rule with `genRuleCall` that adds the base enforce behavior
|
|
522
575
|
target[ruleName] = genRuleCall(target, ruleFn, ruleName);
|
|
523
576
|
});
|
|
524
577
|
return target;
|
|
525
578
|
}
|
|
579
|
+
// We create a proxy intercepting access to the target object (which is empty).
|
|
526
580
|
var proxy = new Proxy(target, {
|
|
527
581
|
get: function (_, ruleName) {
|
|
582
|
+
// On property access, we identify if it is a rule or not.
|
|
528
583
|
var rule = getRule(ruleName);
|
|
584
|
+
// If it is a rule, we wrap it with `genRuleCall` that adds the base enforce behavior
|
|
529
585
|
if (rule) {
|
|
530
586
|
return genRuleCall(proxy, rule, ruleName);
|
|
531
587
|
}
|
|
532
588
|
}
|
|
533
589
|
});
|
|
534
590
|
return proxy;
|
|
591
|
+
// This function is used to wrap a rule with the base enforce behavior
|
|
592
|
+
// It takes the target object, the rule function, and the rule name
|
|
593
|
+
// It then returns the rule, in a manner that can be used by enforce
|
|
535
594
|
function genRuleCall(target, rule, ruleName) {
|
|
536
595
|
return function ruleCall() {
|
|
537
596
|
var args = [];
|
|
538
597
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
539
598
|
args[_i] = arguments[_i];
|
|
540
599
|
}
|
|
600
|
+
// Order of operation:
|
|
601
|
+
// 1. Create a context with the value being enforced
|
|
602
|
+
// 2. Call the rule within the context, and pass over the arguments passed to it
|
|
603
|
+
// 3. Transform the result to the correct output format
|
|
541
604
|
var transformedResult = ctx.run({ value: value }, function () {
|
|
542
605
|
return transformResult.apply(void 0, __spreadArray([rule.apply(void 0, __spreadArray([value], args, false)), ruleName, value], args, false));
|
|
543
606
|
});
|
|
607
|
+
// On rule failure (the result is false), we either throw an error
|
|
608
|
+
// or throw a string value if the rule has a message defined in it.
|
|
544
609
|
invariant(transformedResult.pass, isNullish(transformedResult.message)
|
|
545
610
|
? "enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value))
|
|
546
611
|
: StringObject(transformedResult.message));
|
|
@@ -549,23 +614,6 @@
|
|
|
549
614
|
}
|
|
550
615
|
}
|
|
551
616
|
|
|
552
|
-
function mapFirst(array, callback) {
|
|
553
|
-
var broke = false;
|
|
554
|
-
var breakoutValue = null;
|
|
555
|
-
for (var i = 0; i < array.length; i++) {
|
|
556
|
-
callback(array[i], breakout, i);
|
|
557
|
-
if (broke) {
|
|
558
|
-
return breakoutValue;
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
function breakout(conditional, value) {
|
|
562
|
-
if (conditional) {
|
|
563
|
-
broke = true;
|
|
564
|
-
breakoutValue = value;
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
}
|
|
568
|
-
|
|
569
617
|
// eslint-disable-next-line max-lines-per-function
|
|
570
618
|
function genEnforceLazy(key) {
|
|
571
619
|
var registeredRules = [];
|
|
@@ -679,37 +727,6 @@
|
|
|
679
727
|
}
|
|
680
728
|
var enforce = genEnforce();
|
|
681
729
|
|
|
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
|
-
|
|
713
730
|
function noneOf(value) {
|
|
714
731
|
var rules = [];
|
|
715
732
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(n){"function"==typeof define&&define.amd?define(n):n()}((function(){function n(n){return
|
|
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 n={pass:n},t&&(n.message=t),n}function d(n,t){try{return n.run(t)}catch(n){return y(!1)}}function m(n,t){return h(n)&&h(t)&&n.endsWith(t)}function O(n,t){return n===t}function b(n,t){return r(n,t)||u(n,t)}function E(n,t){return!!(l(t)||h(t)&&h(n))&&-1!==t.indexOf(n)}function x(n,r){return t(n)&&t(r)&&Number(n)<Number(r)}function w(n,t){return r(n,t)||x(n,t)}function q(n,t,r){return b(n,t)&&w(n,r)}function S(n){return f(n)||h(n)&&!n.trim()}function T(n,t){return n in t}function A(n){return Number.isNaN(n)}function B(n){return"number"==typeof n}function P(n){return!!n}function W(n,t){if(f(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function j(n,t){return t instanceof RegExp?t.test(n):!!h(t)&&new RegExp(t).test(n)}function k(n,t){return h(n)&&h(t)&&n.startsWith(t)}function F(n){for(var t in cn){var r=cn[t];a(r)&&n(t,r)}}function I(){return null}function J(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 K(){try{return a(Proxy)}catch(n){return!1}}function R(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)?y(n):y(n.pass,s.apply(void 0,J([n.message,t,r],e,!1)))}function U(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 R.apply(void 0,J([r.apply(void 0,J([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(!K())return F((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 V(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 R.apply(void 0,J([o.apply(void 0,J([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,y(!!i.pass,null!==(u=s(t,n,i.message))&&void 0!==u?u:i.message))})),y(!0))},test:function(n){return f.run(n).pass},message:function(n){return n&&(t=n),f}};return K()?f=new Proxy(f,{get:function(t,r){return cn[r]?n(r):t[r]}}):(F((function(t){f[t]=n(t)})),f)}}(n)}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(m),Z=n(O),$=n(E),_=n(q),nn=n(S),tn=n(g),rn=n(T),en=n(A),un=n(B),on=n(h),fn=n(P),an=n(W),sn=n(j),cn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Y,doesNotStartWith:n(k),endsWith:m,equals:O,greaterThan:u,greaterThanOrEquals:b,gt:u,gte:b,inside:E,isArray:l,isBetween:q,isBlank:S,isBoolean:g,isEmpty:N,isEven:function(n){return!!t(n)&&0==n%2},isFalsy:fn,isKeyOf:T,isNaN:A,isNegative:function(n){return x(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:B,isNumeric:t,isOdd:function(n){return!!t(n)&&0!=n%2},isPositive:function(n){return u(n,0)},isString:h,isTruthy:P,isUndefined:o,isValueOf:W,lengthEquals:e,lengthNotEquals:C,lessThan:x,lessThanOrEquals:w,longerThan:function(n,t){return u(n.length,t)},longerThanOrEquals:function(n,t){return b(n.length,t)},lt:x,lte:w,matches:j,notEquals:Z,notInside:$,notMatches:sn,numberEquals:r,numberNotEquals:z,shorterThan:function(n,t){return x(n.length,t)},shorterThanOrEquals:function(n,t){return w(n.length,t)},startsWith:k},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:I})}));(function(){function n(){if(!K())return F((function(n){t[n]=V(n)})),L(U,t)}var t={context:function(){return ln.useX()},extend:function(t){L(cn,t),n()}};return n(),new Proxy(L(U,t),{get:function(n,t){return t in n?n[t]:cn[t]?V(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=d(t,n)).pass,t)})),y(!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=d(t,n)).pass,t)})),y(!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=d(t,n)).pass,y(!1))})),y(!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(d(t,n).pass&&e++,u(e,1))return!1})),y(1===e)}})}));
|