n4s 4.1.2 → 4.1.5
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/compose.development.js +28 -60
- package/dist/cjs/compose.production.js +1 -1
- package/dist/cjs/compounds.development.js +20 -5
- package/dist/cjs/compounds.production.js +1 -1
- package/dist/cjs/n4s.development.js +54 -52
- package/dist/cjs/n4s.production.js +1 -1
- package/dist/cjs/schema.development.js +1 -1
- package/dist/es/compose.development.js +28 -60
- package/dist/es/compose.production.js +1 -1
- package/dist/es/compounds.development.js +20 -5
- package/dist/es/compounds.production.js +1 -1
- package/dist/es/n4s.development.js +54 -52
- package/dist/es/n4s.production.js +1 -1
- package/dist/es/schema.development.js +1 -1
- package/dist/umd/compose.development.js +28 -60
- package/dist/umd/compose.production.js +1 -1
- package/dist/umd/compounds.development.js +20 -5
- package/dist/umd/compounds.production.js +1 -1
- package/dist/umd/n4s.development.js +51 -49
- package/dist/umd/n4s.production.js +1 -1
- package/dist/umd/schema.development.js +1 -1
- package/package.json +2 -2
- package/types/compose.d.ts +22 -21
- package/types/compounds.d.ts +24 -23
- package/types/n4s.d.ts +32 -31
- package/types/schema.d.ts +26 -25
|
@@ -2,6 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
var n4s = require('n4s');
|
|
4
4
|
|
|
5
|
+
function isFunction(value) {
|
|
6
|
+
return typeof value === 'function';
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function optionalFunctionValue(value) {
|
|
10
|
+
var args = [];
|
|
11
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
12
|
+
args[_i - 1] = arguments[_i];
|
|
13
|
+
}
|
|
14
|
+
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function invariant(condition,
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
19
|
+
message) {
|
|
20
|
+
if (condition) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
// If message is a string object (rather than string literal)
|
|
24
|
+
// Throw the value directly as a string
|
|
25
|
+
// Alternatively, throw an error with the message
|
|
26
|
+
throw message instanceof String
|
|
27
|
+
? message.valueOf()
|
|
28
|
+
: new Error(message ? optionalFunctionValue(message) : message);
|
|
29
|
+
}
|
|
30
|
+
|
|
5
31
|
function mapFirst(array, callback) {
|
|
6
32
|
var broke = false;
|
|
7
33
|
var breakoutValue = null;
|
|
@@ -17,61 +43,11 @@ function mapFirst(array, callback) {
|
|
|
17
43
|
}
|
|
18
44
|
}
|
|
19
45
|
|
|
20
|
-
function isFunction(value) {
|
|
21
|
-
return typeof value === 'function';
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function optionalFunctionValue(value) {
|
|
25
|
-
var args = [];
|
|
26
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
27
|
-
args[_i - 1] = arguments[_i];
|
|
28
|
-
}
|
|
29
|
-
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
46
|
function defaultTo(callback, defaultValue) {
|
|
33
47
|
var _a;
|
|
34
48
|
return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
|
|
35
49
|
}
|
|
36
50
|
|
|
37
|
-
/**
|
|
38
|
-
* Throws a timed out error.
|
|
39
|
-
*/
|
|
40
|
-
function throwError(devMessage, productionMessage) {
|
|
41
|
-
throw new Error(devMessage );
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* A safe hasOwnProperty access
|
|
46
|
-
*/
|
|
47
|
-
function hasOwnProperty(obj, key) {
|
|
48
|
-
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function isNumber(value) {
|
|
52
|
-
return Boolean(typeof value === 'number');
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function lengthEquals(value, arg1) {
|
|
56
|
-
return value.length === Number(arg1);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function isEmpty(value) {
|
|
60
|
-
if (!value) {
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
else if (isNumber(value)) {
|
|
64
|
-
return value === 0;
|
|
65
|
-
}
|
|
66
|
-
else if (hasOwnProperty(value, 'length')) {
|
|
67
|
-
return lengthEquals(value, 0);
|
|
68
|
-
}
|
|
69
|
-
else if (typeof value === 'object') {
|
|
70
|
-
return lengthEquals(Object.keys(value), 0);
|
|
71
|
-
}
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
51
|
function ruleReturn(pass, message) {
|
|
76
52
|
var output = { pass: pass };
|
|
77
53
|
if (message) {
|
|
@@ -106,15 +82,7 @@ function compose() {
|
|
|
106
82
|
}
|
|
107
83
|
return Object.assign(function (value) {
|
|
108
84
|
var res = run(value);
|
|
109
|
-
|
|
110
|
-
if (isEmpty(res.message)) {
|
|
111
|
-
throwError();
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
// Explicitly throw a string so that vest.test can pick it up as the validation error message
|
|
115
|
-
throw res.message;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
85
|
+
invariant(res.pass, new String(res.message));
|
|
118
86
|
}, {
|
|
119
87
|
run: run,
|
|
120
88
|
test: function (value) { return run(value).pass; }
|
|
@@ -123,7 +91,7 @@ function compose() {
|
|
|
123
91
|
return n4s.ctx.run({ value: value }, function () {
|
|
124
92
|
return defaultToPassing(mapFirst(composites, function (composite, breakout) {
|
|
125
93
|
/* HACK: Just a small white lie. ~~HELP WANTED~~.
|
|
126
|
-
The ideal is that instead of `
|
|
94
|
+
The ideal is that instead of `LazyRuleRunners` We would simply use `Lazy` to begin with.
|
|
127
95
|
The problem is that lazy rules can't really be passed to this function due to some generic hell
|
|
128
96
|
so we're limiting it to a small set of functions.
|
|
129
97
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var n=require("n4s");function r(n
|
|
1
|
+
"use strict";var n=require("n4s");function r(n){return"function"==typeof n}function t(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return r(n)?n.apply(void 0,t):n}function u(n,r){if(!n)throw r instanceof String?r.valueOf():Error(r?t(r):r)}function e(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,o=0;o<n.length;o++)if(r(n[o],t,o),u)return e}function o(n,r){return n={pass:n},r&&(n.message=r),n}function i(n){return function(n,r){var u;return null!==(u=t(n))&&void 0!==u?u:r}(n,o(!0))}function f(n,r){try{return n.run(r)}catch(n){return o(!1)}}module.exports=function(){function r(r){return n.ctx.run({value:r},(function(){return i(e(t,(function(n,t){(n=f(n,r)).pass||t(n)})))}))}for(var t=[],o=0;o<arguments.length;o++)t[o]=arguments[o];return Object.assign((function(n){u((n=r(n)).pass,new String(n.message))}),{run:r,test:function(n){return r(n).pass}})};
|
|
@@ -102,12 +102,27 @@ function noneOf(value) {
|
|
|
102
102
|
}));
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
+
function isNumeric(value) {
|
|
106
|
+
var str = String(value);
|
|
107
|
+
var num = Number(value);
|
|
108
|
+
var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
|
|
109
|
+
return Boolean(result);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function numberEquals(value, eq) {
|
|
113
|
+
return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
|
|
114
|
+
}
|
|
115
|
+
|
|
105
116
|
function lengthEquals(value, arg1) {
|
|
106
|
-
return value.length
|
|
117
|
+
return numberEquals(value.length, arg1);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function greaterThan(value, gt) {
|
|
121
|
+
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
107
122
|
}
|
|
108
123
|
|
|
109
124
|
function longerThan(value, arg1) {
|
|
110
|
-
return value.length
|
|
125
|
+
return greaterThan(value.length, arg1);
|
|
111
126
|
}
|
|
112
127
|
|
|
113
128
|
var REQUIRED_COUNT = 1;
|
|
@@ -118,13 +133,13 @@ function oneOf(value) {
|
|
|
118
133
|
}
|
|
119
134
|
var passing = [];
|
|
120
135
|
rules.some(function (rule) {
|
|
121
|
-
if (longerThan(passing, REQUIRED_COUNT)) {
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
124
136
|
var res = runLazyRule(rule, value);
|
|
125
137
|
if (res.pass) {
|
|
126
138
|
passing.push(res);
|
|
127
139
|
}
|
|
140
|
+
if (longerThan(passing, REQUIRED_COUNT)) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
128
143
|
});
|
|
129
144
|
return ruleReturn(lengthEquals(passing, REQUIRED_COUNT));
|
|
130
145
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var n=require("n4s");function r(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,f=0;f<n.length;f++)if(r(n[f],t,f),u)return e}function t(n){return"function"==typeof n}function u(n,r){var u;return null!==(u=function(n){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];return t(n)?n.apply(void 0,r):n}(n))&&void 0!==u?u:r}function e(n,r){return n={pass:n},r&&(n.message=r),n}function f(){return e(!1)}function o(n){return u(n,f())}function i(n){return u(n,e(!0))}function c(n,r){try{return n.run(r)}catch(n){return f()}}function a(n,r){return n
|
|
1
|
+
"use strict";var n=require("n4s");function r(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,f=0;f<n.length;f++)if(r(n[f],t,f),u)return e}function t(n){return"function"==typeof n}function u(n,r){var u;return null!==(u=function(n){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];return t(n)?n.apply(void 0,r):n}(n))&&void 0!==u?u:r}function e(n,r){return n={pass:n},r&&(n.message=r),n}function f(){return e(!1)}function o(n){return u(n,f())}function i(n){return u(n,e(!0))}function c(n,r){try{return n.run(r)}catch(n){return f()}}function a(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}function s(n,r){return function(n,r){return a(n)&&a(r)&&Number(n)===Number(r)}(n.length,r)}function l(n,r){return function(n,r){return a(n)&&a(r)&&Number(n)>Number(r)}(n.length,r)}n.enforce.extend({allOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return i(r(t,(function(r,t){(r=c(r,n)).pass||t(r)})))},anyOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return o(r(t,(function(r,t){(r=c(r,n)).pass&&t(r)})))},noneOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return i(r(t,(function(r,t){c(r,n).pass&&t(f())})))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var u=[];return r.some((function(r){if((r=c(r,n)).pass&&u.push(r),l(u,1))return!1})),e(s(u,1))}});
|
|
@@ -61,8 +61,13 @@ function greaterThan(value, gt) {
|
|
|
61
61
|
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
function numberEquals(value, eq) {
|
|
65
|
+
return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
|
|
66
|
+
}
|
|
67
|
+
var numberNotEquals = bindNot(numberEquals);
|
|
68
|
+
|
|
64
69
|
function greaterThanOrEquals(value, gte) {
|
|
65
|
-
return
|
|
70
|
+
return numberEquals(value, gte) || greaterThan(value, gte);
|
|
66
71
|
}
|
|
67
72
|
|
|
68
73
|
// The module is named "isArrayValue" since it
|
|
@@ -85,8 +90,12 @@ function inside(value, arg1) {
|
|
|
85
90
|
}
|
|
86
91
|
var notInside = bindNot(inside);
|
|
87
92
|
|
|
93
|
+
function lessThan(value, lt) {
|
|
94
|
+
return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
|
|
95
|
+
}
|
|
96
|
+
|
|
88
97
|
function lessThanOrEquals(value, lte) {
|
|
89
|
-
return
|
|
98
|
+
return numberEquals(value, lte) || lessThan(value, lte);
|
|
90
99
|
}
|
|
91
100
|
|
|
92
101
|
function isBetween(value, min, max) {
|
|
@@ -118,7 +127,7 @@ function isNumber(value) {
|
|
|
118
127
|
var isNotNumber = bindNot(isNumber);
|
|
119
128
|
|
|
120
129
|
function lengthEquals(value, arg1) {
|
|
121
|
-
return value.length
|
|
130
|
+
return numberEquals(value.length, arg1);
|
|
122
131
|
}
|
|
123
132
|
var lengthNotEquals = bindNot(lengthEquals);
|
|
124
133
|
|
|
@@ -135,7 +144,7 @@ function isEmpty(value) {
|
|
|
135
144
|
else if (typeof value === 'object') {
|
|
136
145
|
return lengthEquals(Object.keys(value), 0);
|
|
137
146
|
}
|
|
138
|
-
return
|
|
147
|
+
return false;
|
|
139
148
|
}
|
|
140
149
|
var isNotEmpty = bindNot(isEmpty);
|
|
141
150
|
|
|
@@ -160,12 +169,8 @@ function isNaN$1(value) {
|
|
|
160
169
|
var isNotNaN = bindNot(isNaN$1);
|
|
161
170
|
|
|
162
171
|
function isNegative(value) {
|
|
163
|
-
|
|
164
|
-
return Number(value) < 0;
|
|
165
|
-
}
|
|
166
|
-
return false;
|
|
172
|
+
return lessThan(value, 0);
|
|
167
173
|
}
|
|
168
|
-
var isPositive = bindNot(isNegative);
|
|
169
174
|
|
|
170
175
|
/**
|
|
171
176
|
* Validates that a given value is an odd number
|
|
@@ -177,6 +182,10 @@ var isOdd = function (value) {
|
|
|
177
182
|
return false;
|
|
178
183
|
};
|
|
179
184
|
|
|
185
|
+
function isPositive(value) {
|
|
186
|
+
return greaterThan(value, 0);
|
|
187
|
+
}
|
|
188
|
+
|
|
180
189
|
var isNotString = bindNot(isStringValue);
|
|
181
190
|
|
|
182
191
|
function isTruthy(value) {
|
|
@@ -197,16 +206,12 @@ function isValueOf(value, objectToCheck) {
|
|
|
197
206
|
}
|
|
198
207
|
var isNotValueOf = bindNot(isValueOf);
|
|
199
208
|
|
|
200
|
-
function lessThan(value, lt) {
|
|
201
|
-
return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
209
|
function longerThan(value, arg1) {
|
|
205
|
-
return value.length
|
|
210
|
+
return greaterThan(value.length, arg1);
|
|
206
211
|
}
|
|
207
212
|
|
|
208
213
|
function longerThanOrEquals(value, arg1) {
|
|
209
|
-
return value.length
|
|
214
|
+
return greaterThanOrEquals(value.length, arg1);
|
|
210
215
|
}
|
|
211
216
|
|
|
212
217
|
function matches(value, regex) {
|
|
@@ -222,11 +227,6 @@ function matches(value, regex) {
|
|
|
222
227
|
}
|
|
223
228
|
var notMatches = bindNot(matches);
|
|
224
229
|
|
|
225
|
-
function numberEquals(value, eq) {
|
|
226
|
-
return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
|
|
227
|
-
}
|
|
228
|
-
var numberNotEquals = bindNot(numberEquals);
|
|
229
|
-
|
|
230
230
|
function condition(value, callback) {
|
|
231
231
|
try {
|
|
232
232
|
return callback(value);
|
|
@@ -237,11 +237,11 @@ function condition(value, callback) {
|
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
function shorterThan(value, arg1) {
|
|
240
|
-
return value.length
|
|
240
|
+
return lessThan(value.length, arg1);
|
|
241
241
|
}
|
|
242
242
|
|
|
243
243
|
function shorterThanOrEquals(value, arg1) {
|
|
244
|
-
return value.length
|
|
244
|
+
return lessThanOrEquals(value.length, arg1);
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
function startsWith(value, arg1) {
|
|
@@ -394,16 +394,18 @@ function optionalFunctionValue(value) {
|
|
|
394
394
|
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
395
395
|
}
|
|
396
396
|
|
|
397
|
-
function
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
throw
|
|
397
|
+
function invariant(condition,
|
|
398
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
399
|
+
message) {
|
|
400
|
+
if (condition) {
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
// If message is a string object (rather than string literal)
|
|
404
|
+
// Throw the value directly as a string
|
|
405
|
+
// Alternatively, throw an error with the message
|
|
406
|
+
throw message instanceof String
|
|
407
|
+
? message.valueOf()
|
|
408
|
+
: new Error(message ? optionalFunctionValue(message) : message);
|
|
407
409
|
}
|
|
408
410
|
|
|
409
411
|
function isProxySupported() {
|
|
@@ -415,6 +417,11 @@ function isProxySupported() {
|
|
|
415
417
|
}
|
|
416
418
|
}
|
|
417
419
|
|
|
420
|
+
function defaultTo(callback, defaultValue) {
|
|
421
|
+
var _a;
|
|
422
|
+
return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
|
|
423
|
+
}
|
|
424
|
+
|
|
418
425
|
function ruleReturn(pass, message) {
|
|
419
426
|
var output = { pass: pass };
|
|
420
427
|
if (message) {
|
|
@@ -448,10 +455,7 @@ function transformResult(result, ruleName, value) {
|
|
|
448
455
|
}
|
|
449
456
|
function validateResult(result) {
|
|
450
457
|
// if result is boolean, or if result.pass is boolean
|
|
451
|
-
|
|
452
|
-
return;
|
|
453
|
-
}
|
|
454
|
-
throwError('Incorrect return value for rule: ' + JSON.stringify(result));
|
|
458
|
+
invariant(isBoolean(result) || (result && isBoolean(result.pass)), 'Incorrect return value for rule: ' + JSON.stringify(result));
|
|
455
459
|
}
|
|
456
460
|
|
|
457
461
|
function enforceEager(value) {
|
|
@@ -480,15 +484,9 @@ function enforceEager(value) {
|
|
|
480
484
|
var transformedResult = transformResult.apply(void 0, __spreadArray([ctx.run({ value: value }, function () { return rule.apply(void 0, __spreadArray([value], args, false)); }),
|
|
481
485
|
ruleName,
|
|
482
486
|
value], args, false));
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
}
|
|
487
|
-
else {
|
|
488
|
-
// Explicitly throw a string so that vest.test can pick it up as the validation error message
|
|
489
|
-
throw transformedResult.message;
|
|
490
|
-
}
|
|
491
|
-
}
|
|
487
|
+
invariant(transformedResult.pass, isEmpty(transformedResult.message)
|
|
488
|
+
? "enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value))
|
|
489
|
+
: new String(transformedResult.message));
|
|
492
490
|
return target;
|
|
493
491
|
};
|
|
494
492
|
}
|
|
@@ -596,15 +594,10 @@ function genEnforce() {
|
|
|
596
594
|
context: function () { return ctx.useX(); },
|
|
597
595
|
extend: function (customRules) {
|
|
598
596
|
assign(baseRules, customRules);
|
|
597
|
+
handleNoProxy(); // TODO: REMOVE when we stop supporting ES5
|
|
599
598
|
}
|
|
600
599
|
};
|
|
601
|
-
|
|
602
|
-
eachEnforceRule(function (ruleName) {
|
|
603
|
-
// Only on the first rule access - start the chain of calls
|
|
604
|
-
target[ruleName] = genEnforceLazy(ruleName);
|
|
605
|
-
});
|
|
606
|
-
return assign(enforceEager, target);
|
|
607
|
-
}
|
|
600
|
+
handleNoProxy();
|
|
608
601
|
return new Proxy(assign(enforceEager, target), {
|
|
609
602
|
get: function (target, key) {
|
|
610
603
|
if (key in target) {
|
|
@@ -617,6 +610,15 @@ function genEnforce() {
|
|
|
617
610
|
return genEnforceLazy(key);
|
|
618
611
|
}
|
|
619
612
|
});
|
|
613
|
+
function handleNoProxy() {
|
|
614
|
+
if (!isProxySupported()) {
|
|
615
|
+
eachEnforceRule(function (ruleName) {
|
|
616
|
+
// Only on the first rule access - start the chain of calls
|
|
617
|
+
target[ruleName] = genEnforceLazy(ruleName);
|
|
618
|
+
});
|
|
619
|
+
return assign(enforceEager, target);
|
|
620
|
+
}
|
|
621
|
+
}
|
|
620
622
|
}
|
|
621
623
|
var enforce = genEnforce();
|
|
622
624
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("context"),r=Object.assign;function t(n){return"function"==typeof n}function e(n){return function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return!n.apply(void 0,r)}}function u(n){return null===n}var i=e(u);function o(n){return void 0===n}var a=e(o);function s(n){return u(n)||o(n)}var f=e(s);function c(n){return String(n)===n}function l(n,r){return c(n)&&c(r)&&n.endsWith(r)}var v=e(l);function N(n,r){return n===r}var p=e(N);function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("context"),r=Object.assign;function t(n){return"function"==typeof n}function e(n){return function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return!n.apply(void 0,r)}}function u(n){return null===n}var i=e(u);function o(n){return void 0===n}var a=e(o);function s(n){return u(n)||o(n)}var f=e(s);function c(n){return String(n)===n}function l(n,r){return c(n)&&c(r)&&n.endsWith(r)}var v=e(l);function N(n,r){return n===r}var p=e(N);function g(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var h=e(g);function y(n,r){return g(n)&&g(r)&&Number(n)>Number(r)}function m(n,r){return g(n)&&g(r)&&Number(n)===Number(r)}var d=e(m);function b(n,r){return m(n,r)||y(n,r)}function O(n){return!!Array.isArray(n)}var E=e(O);function x(n,r){return!!(O(r)||c(r)&&c(n))&&-1!==r.indexOf(n)}var q=e(x);function w(n,r){return g(n)&&g(r)&&Number(n)<Number(r)}function S(n,r){return m(n,r)||w(n,r)}function T(n,r,t){return b(n,r)&&S(n,t)}var P=e(T);function A(n){return s(n)||c(n)&&!n.trim()}var B=e(A);function W(n){return!!n===n}var j=e(W);function k(n){return"number"==typeof n}var F=e(k);function I(n,r){return m(n.length,r)}var J=e(I);function K(n){return!n||(k(n)?0===n:function(n,r){return Object.prototype.hasOwnProperty.call(n,r)}(n,"length")?I(n,0):"object"==typeof n&&I(Object.keys(n),0))}var M=e(K),R=function(n){return!!g(n)&&0==n%2};function U(n,r){return n in r}var V=e(U);function _(n){return Number.isNaN(n)}var C=e(_);function X(n){return w(n,0)}var z=function(n){return!!g(n)&&0!=n%2};function D(n){return y(n,0)}var G=e(c);function H(n){return!!n}var L=e(H);function Q(n,r){if(s(r))return!1;for(var t in r)if(r[t]===n)return!0;return!1}var Y=e(Q);function Z(n,r){return y(n.length,r)}function $(n,r){return b(n.length,r)}function nn(n,r){return r instanceof RegExp?r.test(n):!!c(r)&&new RegExp(r).test(n)}var rn=e(nn);function tn(n,r){try{return r(n)}catch(n){return!1}}function en(n,r){return w(n.length,r)}function un(n,r){return S(n.length,r)}function on(n,r){return c(n)&&c(r)&&n.startsWith(r)}var an=e(on);var sn={condition:tn,doesNotEndWith:v,doesNotStartWith:an,endsWith:l,equals:N,greaterThan:y,greaterThanOrEquals:b,gt:y,gte:b,inside:x,isArray:O,isBetween:T,isBlank:A,isBoolean:W,isEmpty:K,isEven:R,isFalsy:L,isKeyOf:U,isNaN:_,isNegative:X,isNotArray:E,isNotBetween:P,isNotBlank:B,isNotBoolean:j,isNotEmpty:M,isNotKeyOf:V,isNotNaN:C,isNotNull:i,isNotNullish:f,isNotNumber:F,isNotNumeric:h,isNotString:G,isNotUndefined:a,isNotValueOf:Y,isNull:u,isNullish:s,isNumber:k,isNumeric:g,isOdd:z,isPositive:D,isString:c,isTruthy:H,isUndefined:o,isValueOf:Q,lengthEquals:I,lengthNotEquals:J,lessThan:w,lessThanOrEquals:S,longerThan:Z,longerThanOrEquals:$,lt:w,lte:S,matches:nn,notEquals:p,notInside:q,notMatches:rn,numberEquals:m,numberNotEquals:d,shorterThan:en,shorterThanOrEquals:un,startsWith:on};function fn(n){return sn[n]}function cn(n){for(var r in sn){var e=fn(r);t(e)&&n(r,e)}}var ln=n.createContext((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return function(n){return n?{value:n.value,meta:n.meta,parent:n.parent}:n}(t)}}):t:r(e,{parent:vn})}));function vn(){return null}function Nn(n,r,t){if(t||2===arguments.length)for(var e,u=0,i=r.length;u<i;u++)!e&&u in r||(e||(e=Array.prototype.slice.call(r,0,u)),e[u]=r[u]);return n.concat(e||Array.prototype.slice.call(r))}function pn(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function gn(n,r){if(!n)throw r instanceof String?r.valueOf():Error(r?pn(r):r)}function hn(){try{return t(Proxy)}catch(n){return!1}}function yn(n,r){return n={pass:n},r&&(n.message=r),n}function mn(n){return function(n,r){var t;return null!==(t=pn(n))&&void 0!==t?t:r}(n,yn(!0))}function dn(n,r,t){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return bn(n),W(n)?yn(n):yn(n.pass,pn.apply(void 0,Nn([n.message,r,t],e,!1)))}function bn(n){gn(W(n)||n&&W(n.pass),"Incorrect return value for rule: "+JSON.stringify(n))}function On(n){function r(r,t,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return gn((i=dn.apply(void 0,Nn([ln.run({value:n},(function(){return t.apply(void 0,Nn([n],u,!1))})),e,n],u,!1))).pass,K(i.message)?"enforce/".concat(e," failed with ").concat(JSON.stringify(n)):new String(i.message)),r}}var t={};if(!hn())return cn((function(n,e){t[n]=r(t,e,n)})),t;var e=new Proxy(t,{get:function(n,t){if(n=fn(t))return r(e,n,t)}});return e}function En(n,r){function t(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(r(n[i],t,i),e)return u}function xn(n){var r,t=[];return function n(e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=fn(e);t.push((function(n){return dn.apply(void 0,Nn([o.apply(void 0,Nn([n],u,!1)),e,n],u,!1))}));var a={run:function(n){return mn(En(t,(function(t,e){var u,i=ln.run({value:n},(function(){return t(n)}));i.pass||e(yn(!!i.pass,null!==(u=pn(r,n,i.message))&&void 0!==u?u:i.message))})))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return hn()?a=new Proxy(a,{get:function(r,t){return fn(t)?n(t):r[t]}}):(cn((function(r){a[r]=n(r)})),a)}}(n)}var qn=function(){function n(){if(!hn())return cn((function(n){t[n]=xn(n)})),r(On,t)}var t={context:function(){return ln.useX()},extend:function(t){r(sn,t),n()}};return n(),new Proxy(r(On,t),{get:function(n,r){return r in n?n[r]:fn(r)?xn(r):void 0}})}();exports.ctx=ln,exports.enforce=qn;
|
|
@@ -130,7 +130,7 @@ function shape(inputObject, shapeObject) {
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
// Help needed improving the typings of this file.
|
|
133
|
-
// Ideally, we'd be able to extend
|
|
133
|
+
// Ideally, we'd be able to extend ShapeObject, but that's not possible.
|
|
134
134
|
function partial(shapeObject) {
|
|
135
135
|
var output = {};
|
|
136
136
|
for (var key in shapeObject) {
|
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
import { ctx } from 'n4s';
|
|
2
2
|
|
|
3
|
+
function isFunction(value) {
|
|
4
|
+
return typeof value === 'function';
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
function optionalFunctionValue(value) {
|
|
8
|
+
var args = [];
|
|
9
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
10
|
+
args[_i - 1] = arguments[_i];
|
|
11
|
+
}
|
|
12
|
+
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function invariant(condition,
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
17
|
+
message) {
|
|
18
|
+
if (condition) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
// If message is a string object (rather than string literal)
|
|
22
|
+
// Throw the value directly as a string
|
|
23
|
+
// Alternatively, throw an error with the message
|
|
24
|
+
throw message instanceof String
|
|
25
|
+
? message.valueOf()
|
|
26
|
+
: new Error(message ? optionalFunctionValue(message) : message);
|
|
27
|
+
}
|
|
28
|
+
|
|
3
29
|
function mapFirst(array, callback) {
|
|
4
30
|
var broke = false;
|
|
5
31
|
var breakoutValue = null;
|
|
@@ -15,61 +41,11 @@ function mapFirst(array, callback) {
|
|
|
15
41
|
}
|
|
16
42
|
}
|
|
17
43
|
|
|
18
|
-
function isFunction(value) {
|
|
19
|
-
return typeof value === 'function';
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function optionalFunctionValue(value) {
|
|
23
|
-
var args = [];
|
|
24
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
25
|
-
args[_i - 1] = arguments[_i];
|
|
26
|
-
}
|
|
27
|
-
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
44
|
function defaultTo(callback, defaultValue) {
|
|
31
45
|
var _a;
|
|
32
46
|
return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
|
|
33
47
|
}
|
|
34
48
|
|
|
35
|
-
/**
|
|
36
|
-
* Throws a timed out error.
|
|
37
|
-
*/
|
|
38
|
-
function throwError(devMessage, productionMessage) {
|
|
39
|
-
throw new Error(devMessage );
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* A safe hasOwnProperty access
|
|
44
|
-
*/
|
|
45
|
-
function hasOwnProperty(obj, key) {
|
|
46
|
-
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function isNumber(value) {
|
|
50
|
-
return Boolean(typeof value === 'number');
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function lengthEquals(value, arg1) {
|
|
54
|
-
return value.length === Number(arg1);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function isEmpty(value) {
|
|
58
|
-
if (!value) {
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
else if (isNumber(value)) {
|
|
62
|
-
return value === 0;
|
|
63
|
-
}
|
|
64
|
-
else if (hasOwnProperty(value, 'length')) {
|
|
65
|
-
return lengthEquals(value, 0);
|
|
66
|
-
}
|
|
67
|
-
else if (typeof value === 'object') {
|
|
68
|
-
return lengthEquals(Object.keys(value), 0);
|
|
69
|
-
}
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
49
|
function ruleReturn(pass, message) {
|
|
74
50
|
var output = { pass: pass };
|
|
75
51
|
if (message) {
|
|
@@ -104,15 +80,7 @@ function compose() {
|
|
|
104
80
|
}
|
|
105
81
|
return Object.assign(function (value) {
|
|
106
82
|
var res = run(value);
|
|
107
|
-
|
|
108
|
-
if (isEmpty(res.message)) {
|
|
109
|
-
throwError();
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
// Explicitly throw a string so that vest.test can pick it up as the validation error message
|
|
113
|
-
throw res.message;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
83
|
+
invariant(res.pass, new String(res.message));
|
|
116
84
|
}, {
|
|
117
85
|
run: run,
|
|
118
86
|
test: function (value) { return run(value).pass; }
|
|
@@ -121,7 +89,7 @@ function compose() {
|
|
|
121
89
|
return ctx.run({ value: value }, function () {
|
|
122
90
|
return defaultToPassing(mapFirst(composites, function (composite, breakout) {
|
|
123
91
|
/* HACK: Just a small white lie. ~~HELP WANTED~~.
|
|
124
|
-
The ideal is that instead of `
|
|
92
|
+
The ideal is that instead of `LazyRuleRunners` We would simply use `Lazy` to begin with.
|
|
125
93
|
The problem is that lazy rules can't really be passed to this function due to some generic hell
|
|
126
94
|
so we're limiting it to a small set of functions.
|
|
127
95
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ctx as n}from"n4s";function r(n
|
|
1
|
+
import{ctx as n}from"n4s";function r(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];return"function"==typeof n?n.apply(void 0,r):n}function t(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,o=0;o<n.length;o++)if(r(n[o],t,o),u)return e}function u(n,t){var u;return null!==(u=r(n))&&void 0!==u?u:t}function e(n,r){return n={pass:n},r&&(n.message=r),n}export default function(){function o(r){return n.run({value:r},(function(){return u(t(f,(function(n,t){try{var u=n.run(r)}catch(n){u=e(!1)}u.pass||t(u)})),e(!0))}))}for(var f=[],i=0;i<arguments.length;i++)f[i]=arguments[i];return Object.assign((function(n){n=o(n);var t=new String(n.message);if(!n.pass)throw t instanceof String?t.valueOf():Error(t?r(t):t)}),{run:o,test:function(n){return o(n).pass}})}
|
|
@@ -100,12 +100,27 @@ function noneOf(value) {
|
|
|
100
100
|
}));
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
+
function isNumeric(value) {
|
|
104
|
+
var str = String(value);
|
|
105
|
+
var num = Number(value);
|
|
106
|
+
var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
|
|
107
|
+
return Boolean(result);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
function numberEquals(value, eq) {
|
|
111
|
+
return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
|
|
112
|
+
}
|
|
113
|
+
|
|
103
114
|
function lengthEquals(value, arg1) {
|
|
104
|
-
return value.length
|
|
115
|
+
return numberEquals(value.length, arg1);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function greaterThan(value, gt) {
|
|
119
|
+
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
105
120
|
}
|
|
106
121
|
|
|
107
122
|
function longerThan(value, arg1) {
|
|
108
|
-
return value.length
|
|
123
|
+
return greaterThan(value.length, arg1);
|
|
109
124
|
}
|
|
110
125
|
|
|
111
126
|
var REQUIRED_COUNT = 1;
|
|
@@ -116,13 +131,13 @@ function oneOf(value) {
|
|
|
116
131
|
}
|
|
117
132
|
var passing = [];
|
|
118
133
|
rules.some(function (rule) {
|
|
119
|
-
if (longerThan(passing, REQUIRED_COUNT)) {
|
|
120
|
-
return false;
|
|
121
|
-
}
|
|
122
134
|
var res = runLazyRule(rule, value);
|
|
123
135
|
if (res.pass) {
|
|
124
136
|
passing.push(res);
|
|
125
137
|
}
|
|
138
|
+
if (longerThan(passing, REQUIRED_COUNT)) {
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
126
141
|
});
|
|
127
142
|
return ruleReturn(lengthEquals(passing, REQUIRED_COUNT));
|
|
128
143
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{enforce as n}from"n4s";function r(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,
|
|
1
|
+
import{enforce as n}from"n4s";function r(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,o=0;o<n.length;o++)if(r(n[o],t,o),u)return e}function t(n,r){var t;return null!==(t=function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];return"function"==typeof n?n.apply(void 0,r):n}(n))&&void 0!==t?t:r}function u(n,r){return n={pass:n},r&&(n.message=r),n}function e(n,r){try{return n.run(r)}catch(n){return u(!1)}}function o(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}function f(n,r){return o(n)&&o(r)&&Number(n)===Number(r)}n.extend({allOf:function(n){for(var o=[],f=1;f<arguments.length;f++)o[f-1]=arguments[f];return t(r(o,(function(r,t){(r=e(r,n)).pass||t(r)})),u(!0))},anyOf:function(n){for(var o=[],f=1;f<arguments.length;f++)o[f-1]=arguments[f];return t(r(o,(function(r,t){(r=e(r,n)).pass&&t(r)})),u(!1))},noneOf:function(n){for(var o=[],f=1;f<arguments.length;f++)o[f-1]=arguments[f];return t(r(o,(function(r,t){e(r,n).pass&&t(u(!1))})),u(!0))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var i=[];return r.some((function(r){if((r=e(r,n)).pass&&i.push(r),o(r=i.length)&&o(1)&&Number(r)>Number(1))return!1})),u(f(i.length,1))}});
|