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.
@@ -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
- if (!res.pass) {
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 `TLazyRuleRunners` We would simply use `TLazy` to begin with.
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,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){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){throw Error(u(r,n))}function o(n,r){return n.length===Number(r)}function f(n){if(n){if(function(n){return"number"==typeof n}(n))return 0===n;if(function(n,r){return Object.prototype.hasOwnProperty.call(n,r)}(n,"length"))return o(n,0);if("object"==typeof n)return o(Object.keys(n),0)}return!0}function i(n,r){return n={pass:n},r&&(n.message=r),n}function c(n){return u(n,i(!0))}function s(n,r){try{return n.run(r)}catch(n){return i(!1)}}module.exports=function(){function t(t){return n.ctx.run({value:t},(function(){return c(r(u,(function(n,r){(n=s(n,t)).pass||r(n)})))}))}for(var u=[],o=0;o<arguments.length;o++)u[o]=arguments[o];return Object.assign((function(n){if(!(n=t(n)).pass){if(!f(n.message))throw n.message;e()}}),{run:t,test:function(n){return t(n).pass}})};
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 === Number(arg1);
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 > Number(arg1);
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.length===Number(r)}function s(n,r){return n.length>Number(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(s(u,1))return!1;(r=c(r,n)).pass&&u.push(r)})),e(a(u,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){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 isNumeric(value) && isNumeric(gte) && Number(value) >= Number(gte);
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 isNumeric(value) && isNumeric(lte) && Number(value) <= Number(lte);
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 === Number(arg1);
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 true;
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
- if (isNumeric(value)) {
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 > Number(arg1);
210
+ return greaterThan(value.length, arg1);
206
211
  }
207
212
 
208
213
  function longerThanOrEquals(value, arg1) {
209
- return value.length >= Number(arg1);
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 < Number(arg1);
240
+ return lessThan(value.length, arg1);
241
241
  }
242
242
 
243
243
  function shorterThanOrEquals(value, arg1) {
244
- return value.length <= Number(arg1);
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 defaultTo(callback, defaultValue) {
398
- var _a;
399
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
400
- }
401
-
402
- /**
403
- * Throws a timed out error.
404
- */
405
- function throwError(devMessage, productionMessage) {
406
- throw new Error(devMessage );
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
- if (isBoolean(result) || (result && isBoolean(result.pass))) {
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
- if (!transformedResult.pass) {
484
- if (isEmpty(transformedResult.message)) {
485
- throwError("enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value)));
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
- if (!isProxySupported()) {
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 h(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var g=e(h);function m(n,r){return h(n)&&h(r)&&Number(n)>Number(r)}function y(n,r){return h(n)&&h(r)&&Number(n)>=Number(r)}function d(n){return!!Array.isArray(n)}var b=e(d);function O(n,r){return!!(d(r)||c(r)&&c(n))&&-1!==r.indexOf(n)}var E=e(O);function x(n,r){return h(n)&&h(r)&&Number(n)<=Number(r)}function q(n,r,t){return y(n,r)&&x(n,t)}var w=e(q);function T(n){return s(n)||c(n)&&!n.trim()}var P=e(T);function S(n){return!!n===n}var A=e(S);function B(n){return"number"==typeof n}var W=e(B);function j(n,r){return n.length===Number(r)}var k=e(j);function F(n){if(n){if(B(n))return 0===n;if(function(n,r){return Object.prototype.hasOwnProperty.call(n,r)}(n,"length"))return j(n,0);if("object"==typeof n)return j(Object.keys(n),0)}return!0}var I=e(F),J=function(n){return!!h(n)&&0==n%2};function K(n,r){return n in r}var M=e(K);function R(n){return Number.isNaN(n)}var U=e(R);function V(n){return!!h(n)&&0>Number(n)}var _=e(V),C=function(n){return!!h(n)&&0!=n%2},X=e(c);function z(n){return!!n}var D=e(z);function G(n,r){if(s(r))return!1;for(var t in r)if(r[t]===n)return!0;return!1}var H=e(G);function L(n,r){return h(n)&&h(r)&&Number(n)<Number(r)}function Q(n,r){return n.length>Number(r)}function Y(n,r){return n.length>=Number(r)}function Z(n,r){return r instanceof RegExp?r.test(n):!!c(r)&&new RegExp(r).test(n)}var $=e(Z);function nn(n,r){return h(n)&&h(r)&&Number(n)===Number(r)}var rn=e(nn);function tn(n,r){try{return r(n)}catch(n){return!1}}function en(n,r){return n.length<Number(r)}function un(n,r){return n.length<=Number(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:m,greaterThanOrEquals:y,gt:m,gte:y,inside:O,isArray:d,isBetween:q,isBlank:T,isBoolean:S,isEmpty:F,isEven:J,isFalsy:D,isKeyOf:K,isNaN:R,isNegative:V,isNotArray:b,isNotBetween:w,isNotBlank:P,isNotBoolean:A,isNotEmpty:I,isNotKeyOf:M,isNotNaN:U,isNotNull:i,isNotNullish:f,isNotNumber:W,isNotNumeric:g,isNotString:X,isNotUndefined:a,isNotValueOf:H,isNull:u,isNullish:s,isNumber:B,isNumeric:h,isOdd:C,isPositive:_,isString:c,isTruthy:z,isUndefined:o,isValueOf:G,lengthEquals:j,lengthNotEquals:k,lessThan:L,lessThanOrEquals:x,longerThan:Q,longerThanOrEquals:Y,lt:L,lte:x,matches:Z,notEquals:p,notInside:E,notMatches:$,numberEquals:nn,numberNotEquals:rn,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 hn(n,r){var t;return null!==(t=pn(n))&&void 0!==t?t:r}function gn(n,r){throw Error(hn(r,n))}function mn(){try{return t(Proxy)}catch(n){return!1}}function yn(n,r){return n={pass:n},r&&(n.message=r),n}function dn(n){return hn(n,yn(!0))}function bn(n,r,t){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return On(n),S(n)?yn(n):yn(n.pass,pn.apply(void 0,Nn([n.message,r,t],e,!1)))}function On(n){S(n)||n&&S(n.pass)||gn("Incorrect return value for rule: "+JSON.stringify(n))}function En(n){function r(r,t,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=bn.apply(void 0,Nn([ln.run({value:n},(function(){return t.apply(void 0,Nn([n],u,!1))})),e,n],u,!1))).pass){if(!F(i.message))throw i.message;gn("enforce/".concat(e," failed with ").concat(JSON.stringify(n)))}return r}}var t={};if(!mn())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 xn(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 qn(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 bn.apply(void 0,Nn([o.apply(void 0,Nn([n],u,!1)),e,n],u,!1))}));var a={run:function(n){return dn(xn(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 mn()?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 wn,Tn=(wn={context:function(){return ln.useX()},extend:function(n){r(sn,n)}},mn()?new Proxy(r(En,wn),{get:function(n,r){return r in n?n[r]:fn(r)?qn(r):void 0}}):(cn((function(n){wn[n]=qn(n)})),r(En,wn)));exports.ctx=ln,exports.enforce=Tn;
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 IShapeObject, but that's not possible.
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
- if (!res.pass) {
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 `TLazyRuleRunners` We would simply use `TLazy` to begin with.
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,r){function t(n){e=!0,u=n}for(var e=!1,u=null,o=0;o<n.length;o++)if(r(n[o],t,o),e)return u}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 e(n){if(n){if("number"==typeof n)return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return n.length===Number(0);if("object"==typeof n)return Object.keys(n).length===Number(0)}return!0}function u(n,r){return n={pass:n},r&&(n.message=r),n}export default function(){function o(e){return n.run({value:e},(function(){return t(r(f,(function(n,r){try{var t=n.run(e)}catch(n){t=u(!1)}t.pass||r(t)})),u(!0))}))}for(var f=[],i=0;i<arguments.length;i++)f[i]=arguments[i];return Object.assign((function(n){if(!(n=o(n)).pass){if(e(n.message))throw Error(t(void 0,void 0));throw n.message}}),{run:o,test:function(n){return o(n).pass}})}
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 === Number(arg1);
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 > Number(arg1);
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,f=0;f<n.length;f++)if(r(n[f],t,f),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)}}n.extend({allOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return t(r(f,(function(r,t){(r=e(r,n)).pass||t(r)})),u(!0))},anyOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return t(r(f,(function(r,t){(r=e(r,n)).pass&&t(r)})),u(!1))},noneOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return t(r(f,(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 f=[];return r.some((function(r){if(f.length>Number(1))return!1;(r=e(r,n)).pass&&f.push(r)})),u(f.length===Number(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,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))}});