vest 4.4.1 → 4.4.2-dev-ae93bf

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.
Files changed (49) hide show
  1. package/dist/cjs/classnames.development.js +9 -60
  2. package/dist/cjs/classnames.production.js +1 -1
  3. package/dist/cjs/enforce/compose.development.js +6 -53
  4. package/dist/cjs/enforce/compose.production.js +1 -1
  5. package/dist/cjs/enforce/compounds.development.js +16 -71
  6. package/dist/cjs/enforce/compounds.production.js +1 -1
  7. package/dist/cjs/enforce/schema.development.js +6 -58
  8. package/dist/cjs/enforce/schema.production.js +1 -1
  9. package/dist/cjs/parser.development.js +8 -59
  10. package/dist/cjs/parser.production.js +1 -1
  11. package/dist/cjs/promisify.development.js +2 -26
  12. package/dist/cjs/promisify.production.js +1 -1
  13. package/dist/cjs/vest.development.js +98 -357
  14. package/dist/cjs/vest.production.js +1 -1
  15. package/dist/es/classnames.development.js +1 -52
  16. package/dist/es/classnames.production.js +1 -1
  17. package/dist/es/enforce/compose.development.js +4 -51
  18. package/dist/es/enforce/compose.production.js +1 -1
  19. package/dist/es/enforce/compounds.development.js +11 -66
  20. package/dist/es/enforce/compounds.production.js +1 -1
  21. package/dist/es/enforce/schema.development.js +2 -54
  22. package/dist/es/enforce/schema.production.js +1 -1
  23. package/dist/es/parser.development.js +1 -52
  24. package/dist/es/parser.production.js +1 -1
  25. package/dist/es/promisify.development.js +1 -25
  26. package/dist/es/promisify.production.js +1 -1
  27. package/dist/es/vest.development.js +23 -282
  28. package/dist/es/vest.production.js +1 -1
  29. package/dist/umd/classnames.development.js +13 -13
  30. package/dist/umd/classnames.production.js +1 -1
  31. package/dist/umd/enforce/compose.development.js +121 -121
  32. package/dist/umd/enforce/compose.production.js +1 -1
  33. package/dist/umd/enforce/compounds.development.js +180 -184
  34. package/dist/umd/enforce/compounds.production.js +1 -1
  35. package/dist/umd/enforce/schema.development.js +132 -132
  36. package/dist/umd/enforce/schema.production.js +1 -1
  37. package/dist/umd/parser.development.js +13 -13
  38. package/dist/umd/parser.production.js +1 -1
  39. package/dist/umd/vest.development.js +277 -277
  40. package/dist/umd/vest.production.js +1 -1
  41. package/package.json +4 -3
  42. package/testUtils/mockThrowError.ts +2 -1
  43. package/testUtils/suiteDummy.ts +1 -1
  44. package/testUtils/testObjects.ts +0 -8
  45. package/types/enforce/compose.d.ts +14 -30
  46. package/types/enforce/compounds.d.ts +14 -30
  47. package/types/enforce/schema.d.ts +14 -30
  48. package/types/vest.d.ts +4 -3
  49. package/testUtils/itWithContext.ts +0 -23
@@ -4,27 +4,6 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.schema = {}));
5
5
  }(this, (function (exports) { 'use strict';
6
6
 
7
- function mapFirst(array, callback) {
8
- var broke = false;
9
- var breakoutValue = null;
10
- for (var i = 0; i < array.length; i++) {
11
- callback(array[i], breakout, i);
12
- if (broke) {
13
- return breakoutValue;
14
- }
15
- }
16
- function breakout(value) {
17
- broke = true;
18
- breakoutValue = value;
19
- }
20
- }
21
-
22
- var assign = Object.assign;
23
-
24
- function isFunction(value) {
25
- return typeof value === 'function';
26
- }
27
-
28
7
  function bindNot(fn) {
29
8
  return function () {
30
9
  var args = [];
@@ -35,6 +14,32 @@
35
14
  };
36
15
  }
37
16
 
17
+ function isNumeric(value) {
18
+ var str = String(value);
19
+ var num = Number(value);
20
+ var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
21
+ return Boolean(result);
22
+ }
23
+ var isNotNumeric = bindNot(isNumeric);
24
+
25
+ function numberEquals(value, eq) {
26
+ return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
27
+ }
28
+ var numberNotEquals = bindNot(numberEquals);
29
+
30
+ function lengthEquals(value, arg1) {
31
+ return numberEquals(value.length, arg1);
32
+ }
33
+ var lengthNotEquals = bindNot(lengthEquals);
34
+
35
+ function greaterThan(value, gt) {
36
+ return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
37
+ }
38
+
39
+ function longerThan(value, arg1) {
40
+ return greaterThan(value.length, arg1);
41
+ }
42
+
38
43
  function isNull(value) {
39
44
  return value === null;
40
45
  }
@@ -50,48 +55,114 @@
50
55
  }
51
56
  var isNotNullish = bindNot(isNullish);
52
57
 
58
+ function isFunction(value) {
59
+ return typeof value === 'function';
60
+ }
61
+
62
+ function optionalFunctionValue(value) {
63
+ var args = [];
64
+ for (var _i = 1; _i < arguments.length; _i++) {
65
+ args[_i - 1] = arguments[_i];
66
+ }
67
+ return isFunction(value) ? value.apply(void 0, args) : value;
68
+ }
69
+
70
+ function defaultTo(value, defaultValue) {
71
+ var _a;
72
+ return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
73
+ }
74
+
75
+ // The module is named "isArrayValue" since it
76
+ // is conflicting with a nested npm dependency.
77
+ // We may need to revisit this in the future.
78
+ function isArray(value) {
79
+ return Boolean(Array.isArray(value));
80
+ }
81
+ var isNotArray = bindNot(isArray);
82
+
83
+ /**
84
+ * A safe hasOwnProperty access
85
+ */
86
+ function hasOwnProperty(obj, key) {
87
+ return Object.prototype.hasOwnProperty.call(obj, key);
88
+ }
89
+
90
+ var assign = Object.assign;
91
+
92
+ function invariant(condition,
93
+ // eslint-disable-next-line @typescript-eslint/ban-types
94
+ message) {
95
+ if (condition) {
96
+ return;
97
+ }
98
+ // If message is a string object (rather than string literal)
99
+ // Throw the value directly as a string
100
+ // Alternatively, throw an error with the message
101
+ throw message instanceof String
102
+ ? message.valueOf()
103
+ : new Error(message ? optionalFunctionValue(message) : message);
104
+ }
105
+ // eslint-disable-next-line @typescript-eslint/ban-types
106
+ function StringObject(value) {
107
+ return new String(optionalFunctionValue(value));
108
+ }
109
+
53
110
  function isStringValue(v) {
54
111
  return String(v) === v;
55
112
  }
56
113
 
57
- function endsWith(value, arg1) {
58
- return isStringValue(value) && isStringValue(arg1) && value.endsWith(arg1);
114
+ function isBoolean(value) {
115
+ return !!value === value;
59
116
  }
60
- var doesNotEndWith = bindNot(endsWith);
61
117
 
62
- function equals(value, arg1) {
63
- return value === arg1;
118
+ function mapFirst(array, callback) {
119
+ var broke = false;
120
+ var breakoutValue = null;
121
+ for (var i = 0; i < array.length; i++) {
122
+ callback(array[i], breakout, i);
123
+ if (broke) {
124
+ return breakoutValue;
125
+ }
126
+ }
127
+ function breakout(conditional, value) {
128
+ if (conditional) {
129
+ broke = true;
130
+ breakoutValue = value;
131
+ }
132
+ }
64
133
  }
65
- var notEquals = bindNot(equals);
66
134
 
67
- function isNumeric(value) {
68
- var str = String(value);
69
- var num = Number(value);
70
- var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
71
- return Boolean(result);
135
+ function isEmpty(value) {
136
+ if (!value) {
137
+ return true;
138
+ }
139
+ else if (hasOwnProperty(value, 'length')) {
140
+ return lengthEquals(value, 0);
141
+ }
142
+ else if (typeof value === 'object') {
143
+ return lengthEquals(Object.keys(value), 0);
144
+ }
145
+ return false;
72
146
  }
73
- var isNotNumeric = bindNot(isNumeric);
147
+ var isNotEmpty = bindNot(isEmpty);
74
148
 
75
- function greaterThan(value, gt) {
76
- return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
149
+ function isPositive(value) {
150
+ return greaterThan(value, 0);
77
151
  }
78
152
 
79
- function numberEquals(value, eq) {
80
- return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
153
+ function endsWith(value, arg1) {
154
+ return isStringValue(value) && isStringValue(arg1) && value.endsWith(arg1);
81
155
  }
82
- var numberNotEquals = bindNot(numberEquals);
156
+ var doesNotEndWith = bindNot(endsWith);
83
157
 
84
- function greaterThanOrEquals(value, gte) {
85
- return numberEquals(value, gte) || greaterThan(value, gte);
158
+ function equals(value, arg1) {
159
+ return value === arg1;
86
160
  }
161
+ var notEquals = bindNot(equals);
87
162
 
88
- // The module is named "isArrayValue" since it
89
- // is conflicting with a nested npm dependency.
90
- // We may need to revisit this in the future.
91
- function isArray(value) {
92
- return Boolean(Array.isArray(value));
163
+ function greaterThanOrEquals(value, gte) {
164
+ return numberEquals(value, gte) || greaterThan(value, gte);
93
165
  }
94
- var isNotArray = bindNot(isArray);
95
166
 
96
167
  function inside(value, arg1) {
97
168
  if (isArray(arg1)) {
@@ -123,46 +194,8 @@
123
194
  }
124
195
  var isNotBlank = bindNot(isBlank);
125
196
 
126
- function isBoolean(value) {
127
- return !!value === value;
128
- }
129
-
130
197
  var isNotBoolean = bindNot(isBoolean);
131
198
 
132
- /**
133
- * A safe hasOwnProperty access
134
- */
135
- function hasOwnProperty(obj, key) {
136
- return Object.prototype.hasOwnProperty.call(obj, key);
137
- }
138
-
139
- function isNumber(value) {
140
- return Boolean(typeof value === 'number');
141
- }
142
- var isNotNumber = bindNot(isNumber);
143
-
144
- function lengthEquals(value, arg1) {
145
- return numberEquals(value.length, arg1);
146
- }
147
- var lengthNotEquals = bindNot(lengthEquals);
148
-
149
- function isEmpty(value) {
150
- if (!value) {
151
- return true;
152
- }
153
- else if (isNumber(value)) {
154
- return value === 0;
155
- }
156
- else if (hasOwnProperty(value, 'length')) {
157
- return lengthEquals(value, 0);
158
- }
159
- else if (typeof value === 'object') {
160
- return lengthEquals(Object.keys(value), 0);
161
- }
162
- return false;
163
- }
164
- var isNotEmpty = bindNot(isEmpty);
165
-
166
199
  /**
167
200
  * Validates that a given value is an even number
168
201
  */
@@ -187,6 +220,11 @@
187
220
  return lessThan(value, 0);
188
221
  }
189
222
 
223
+ function isNumber(value) {
224
+ return Boolean(typeof value === 'number');
225
+ }
226
+ var isNotNumber = bindNot(isNumber);
227
+
190
228
  /**
191
229
  * Validates that a given value is an odd number
192
230
  */
@@ -197,10 +235,6 @@
197
235
  return false;
198
236
  };
199
237
 
200
- function isPositive(value) {
201
- return greaterThan(value, 0);
202
- }
203
-
204
238
  var isNotString = bindNot(isStringValue);
205
239
 
206
240
  function isTruthy(value) {
@@ -221,10 +255,6 @@
221
255
  }
222
256
  var isNotValueOf = bindNot(isValueOf);
223
257
 
224
- function longerThan(value, arg1) {
225
- return greaterThan(value.length, arg1);
226
- }
227
-
228
258
  function longerThanOrEquals(value, arg1) {
229
259
  return greaterThanOrEquals(value.length, arg1);
230
260
  }
@@ -345,33 +375,6 @@
345
375
  }
346
376
  }
347
377
 
348
- function optionalFunctionValue(value) {
349
- var args = [];
350
- for (var _i = 1; _i < arguments.length; _i++) {
351
- args[_i - 1] = arguments[_i];
352
- }
353
- return isFunction(value) ? value.apply(void 0, args) : value;
354
- }
355
-
356
- function defaultTo(callback, defaultValue) {
357
- var _a;
358
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
359
- }
360
-
361
- function invariant(condition,
362
- // eslint-disable-next-line @typescript-eslint/ban-types
363
- message) {
364
- if (condition) {
365
- return;
366
- }
367
- // If message is a string object (rather than string literal)
368
- // Throw the value directly as a string
369
- // Alternatively, throw an error with the message
370
- throw message instanceof String
371
- ? message.valueOf()
372
- : new Error(message ? optionalFunctionValue(message) : message);
373
- }
374
-
375
378
  // eslint-disable-next-line max-lines-per-function
376
379
  function createContext(init) {
377
380
  var storage = { ancestry: [] };
@@ -382,8 +385,9 @@
382
385
  useX: useX
383
386
  };
384
387
  function useX(errorMessage) {
385
- invariant(storage.ctx, defaultTo(errorMessage, 'Context was used after it was closed'));
386
- return storage.ctx;
388
+ var ctx = use();
389
+ invariant(ctx, defaultTo(errorMessage, 'Context was used after it was closed'));
390
+ return ctx;
387
391
  }
388
392
  function run(ctxRef, fn) {
389
393
  var _a;
@@ -549,12 +553,12 @@
549
553
  for (var _i = 0; _i < arguments.length; _i++) {
550
554
  args[_i] = arguments[_i];
551
555
  }
552
- var transformedResult = transformResult.apply(void 0, __spreadArray([ctx.run({ value: value }, function () { return rule.apply(void 0, __spreadArray([value], args, false)); }),
553
- ruleName,
554
- value], args, false));
555
- invariant(transformedResult.pass, isEmpty(transformedResult.message)
556
+ var transformedResult = ctx.run({ value: value }, function () {
557
+ return transformResult.apply(void 0, __spreadArray([rule.apply(void 0, __spreadArray([value], args, false)), ruleName, value], args, false));
558
+ });
559
+ invariant(transformedResult.pass, isNullish(transformedResult.message)
556
560
  ? "enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value))
557
- : new String(transformedResult.message));
561
+ : StringObject(transformedResult.message));
558
562
  return target;
559
563
  };
560
564
  }
@@ -582,9 +586,7 @@
582
586
  return defaultToPassing(mapFirst(registeredRules, function (rule, breakout) {
583
587
  var _a;
584
588
  var res = ctx.run({ value: value }, function () { return rule(value); });
585
- if (!res.pass) {
586
- breakout(ruleReturn(!!res.pass, (_a = optionalFunctionValue(lazyMessage, value, res.message)) !== null && _a !== void 0 ? _a : res.message));
587
- }
589
+ breakout(!res.pass, ruleReturn(!!res.pass, (_a = optionalFunctionValue(lazyMessage, value, res.message)) !== null && _a !== void 0 ? _a : res.message));
588
590
  }));
589
591
  },
590
592
  test: function (value) { return proxy.run(value).pass; },
@@ -687,9 +689,7 @@
687
689
  function isArrayOf(inputArray, currentRule) {
688
690
  return defaultToPassing(mapFirst(inputArray, function (currentValue, breakout, index) {
689
691
  var res = ctx.run({ value: currentValue, set: true, meta: { index: index } }, function () { return runLazyRule(currentRule, currentValue); });
690
- if (!res.pass) {
691
- breakout(res);
692
- }
692
+ breakout(!res.pass, res);
693
693
  }));
694
694
  }
695
695
 
@@ -1 +1 @@
1
- "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).schema={})}(this,(function(n){function t(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function r(n){return"function"==typeof n}function e(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function u(n){return null===n}function i(n){return void 0===n}function o(n){return null===n||i(n)}function a(n){return String(n)===n}function f(n,t){return a(n)&&a(t)&&n.endsWith(t)}function s(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function l(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function p(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function v(n,t){return p(n,t)||l(n,t)}function h(n){return!!Array.isArray(n)}function y(n,t){return!!(h(t)||a(t)&&a(n))&&-1!==t.indexOf(n)}function N(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function d(n,t){return p(n,t)||N(n,t)}function g(n,t,r){return v(n,t)&&d(n,r)}function m(n){return o(n)||a(n)&&!n.trim()}function b(n){return!!n===n}function O(n){return"number"==typeof n}function x(n,t){return p(n.length,t)}function E(n){return!n||(O(n)?0===n:Object.prototype.hasOwnProperty.call(n,"length")?x(n,0):"object"==typeof n&&x(Object.keys(n),0))}function w(n,t){return n in t}function T(n){return Number.isNaN(n)}function q(n){return!!n}function j(n,t){if(o(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function S(n,t){return t instanceof RegExp?t.test(n):!!a(t)&&new RegExp(t).test(n)}function P(n,t){return a(n)&&a(t)&&n.startsWith(t)}function A(n){for(var t in pn){var e=pn[t];r(e)&&n(t,e)}}function B(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return r(n)?n.apply(void 0,t):n}function W(n,t){var r;return null!==(r=B(n))&&void 0!==r?r:t}function k(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?B(t):t)}function F(){return null}function I(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 J(){try{return r(Proxy)}catch(n){return!1}}function K(n,t){return n={pass:n},t&&(n.message=t),n}function M(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return k(b(n)||n&&b(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),b(n)?K(n):K(n.pass,B.apply(void 0,I([n.message,t,r],e,!1)))}function R(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return k((i=M.apply(void 0,I([vn.run({value:n},(function(){return r.apply(void 0,I([n],u,!1))})),e,n],u,!1))).pass,E(i.message)?"enforce/".concat(e," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var r={};if(!J())return A((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=pn[r])return t(e,n,r)}});return e}function U(n){var r,e=[];return function n(u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];var a=pn[u];e.push((function(n){return M.apply(void 0,I([a.apply(void 0,I([n],i,!1)),u,n],i,!1))}));var f={run:function(n){return W(t(e,(function(t,e){var u,i=vn.run({value:n},(function(){return t(n)}));i.pass||e(K(!!i.pass,null!==(u=B(r,n,i.message))&&void 0!==u?u:i.message))})),K(!0))},test:function(n){return f.run(n).pass},message:function(n){return n&&(r=n),f}};return J()?f=new Proxy(f,{get:function(t,r){return pn[r]?n(r):t[r]}}):(A((function(t){f[t]=n(t)})),f)}}(n)}function V(n,t){try{return n.run(t)}catch(n){return K(!1)}}function X(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=vn.run({value:e,set:!0,meta:{key:r}},(function(){return V(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return K(!0)}var _=Object.assign,z=e(u),C=e(i),D=e(o),G=e(f),H=e(s),L=e(c),Q=e(p),Y=e(h),Z=e(y),$=e(g),nn=e(m),tn=e(b),rn=e(O),en=e(x),un=e(E),on=e(w),an=e(T),fn=e(a),sn=e(q),cn=e(j),ln=e(S),pn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:G,doesNotStartWith:e(P),endsWith:f,equals:s,greaterThan:l,greaterThanOrEquals:v,gt:l,gte:v,inside:y,isArray:h,isBetween:g,isBlank:m,isBoolean:b,isEmpty:E,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:sn,isKeyOf:w,isNaN:T,isNegative:function(n){return N(n,0)},isNotArray:Y,isNotBetween:$,isNotBlank:nn,isNotBoolean:tn,isNotEmpty:un,isNotKeyOf:on,isNotNaN:an,isNotNull:z,isNotNullish:D,isNotNumber:rn,isNotNumeric:L,isNotString:fn,isNotUndefined:C,isNotValueOf:cn,isNull:u,isNullish:o,isNumber:O,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:function(n){return l(n,0)},isString:a,isTruthy:q,isUndefined:i,isValueOf:j,lengthEquals:x,lengthNotEquals:en,lessThan:N,lessThanOrEquals:d,longerThan:function(n,t){return l(n.length,t)},longerThanOrEquals:function(n,t){return v(n.length,t)},lt:N,lte:d,matches:S,notEquals:H,notInside:Z,notMatches:ln,numberEquals:p,numberNotEquals:Q,shorterThan:function(n,t){return N(n.length,t)},shorterThanOrEquals:function(n,t){return d(n.length,t)},startsWith:P},vn=function(n){function t(t,u){var i,o,a=r();return t=_({},a||{},null!==(i=B(n,t,a))&&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){return k(e.ctx,W(n,"Context was used after it was closed")),e.ctx}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?_(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:_(r,{parent:F})})),hn=function(){function n(){if(!J())return A((function(n){t[n]=U(n)})),_(R,t)}var t={context:function(){return vn.useX()},extend:function(t){_(pn,t),n()}};return n(),new Proxy(_(R,t),{get:function(n,t){return t in n?n[t]:pn[t]?U(t):void 0}})}();hn.extend({isArrayOf:function(n,r){return W(t(n,(function(n,t,e){(e=vn.run({value:n,set:!0,meta:{index:e}},(function(){return V(r,n)}))).pass||t(e)})),K(!0))},loose:X,optional:function(n,t){return o(n)?K(!0):V(t,n)},shape:function(n,t){var r=X(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return K(!1);return K(!0)}}),n.partial=function(n){var t,r={};for(t in n)r[t]=hn.optional(n[t]);return r},Object.defineProperty(n,"__esModule",{value:!0})}));
1
+ "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).schema={})}(this,(function(n){function t(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function r(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function e(n,t){return r(n)&&r(t)&&Number(n)===Number(t)}function u(n,t){return e(n.length,t)}function i(n,t){return r(n)&&r(t)&&Number(n)>Number(t)}function o(n){return null===n}function a(n){return void 0===n}function f(n){return null===n||a(n)}function s(n){return"function"==typeof n}function c(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return s(n)?n.apply(void 0,t):n}function l(n,t){var r;return null!==(r=c(n))&&void 0!==r?r:c(t)}function p(n){return!!Array.isArray(n)}function v(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?c(t):t)}function h(n){return String(n)===n}function y(n){return!!n===n}function N(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 d(n){return!n||(Object.prototype.hasOwnProperty.call(n,"length")?u(n,0):"object"==typeof n&&u(Object.keys(n),0))}function g(n,t){return h(n)&&h(t)&&n.endsWith(t)}function m(n,t){return n===t}function b(n,t){return e(n,t)||i(n,t)}function O(n,t){return!!(p(t)||h(t)&&h(n))&&-1!==t.indexOf(n)}function x(n,t){return r(n)&&r(t)&&Number(n)<Number(t)}function E(n,t){return e(n,t)||x(n,t)}function w(n,t,r){return b(n,t)&&E(n,r)}function T(n){return f(n)||h(n)&&!n.trim()}function q(n,t){return n in t}function j(n){return Number.isNaN(n)}function S(n){return"number"==typeof n}function P(n){return!!n}function A(n,t){if(f(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function B(n,t){return t instanceof RegExp?t.test(n):!!h(t)&&new RegExp(t).test(n)}function W(n,t){return h(n)&&h(t)&&n.startsWith(t)}function k(n){for(var t in pn){var r=pn[t];s(r)&&n(t,r)}}function F(){return null}function I(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 J(){try{return s(Proxy)}catch(n){return!1}}function K(n,t){return n={pass:n},t&&(n.message=t),n}function M(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return v(y(n)||n&&y(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),y(n)?K(n):K(n.pass,c.apply(void 0,I([n.message,t,r],e,!1)))}function R(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return v((i=vn.run({value:n},(function(){return M.apply(void 0,I([r.apply(void 0,I([n],u,!1)),e,n],u,!1))}))).pass,f(i.message)?"enforce/".concat(e," failed with ").concat(JSON.stringify(n)):new String(c(i.message))),t}}var r={};if(!J())return k((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=pn[r])return t(e,n,r)}});return e}function U(n){var t,r=[];return function n(e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=pn[e];r.push((function(n){return M.apply(void 0,I([o.apply(void 0,I([n],u,!1)),e,n],u,!1))}));var a={run:function(n){return l(N(r,(function(r,e){var u,i=vn.run({value:n},(function(){return r(n)}));e(!i.pass,K(!!i.pass,null!==(u=c(t,n,i.message))&&void 0!==u?u:i.message))})),K(!0))},test:function(n){return a.run(n).pass},message:function(n){return n&&(t=n),a}};return J()?a=new Proxy(a,{get:function(t,r){return pn[r]?n(r):t[r]}}):(k((function(t){a[t]=n(t)})),a)}}(n)}function V(n,t){try{return n.run(t)}catch(n){return K(!1)}}function X(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=vn.run({value:e,set:!0,meta:{key:r}},(function(){return V(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return K(!0)}var _=t(r),z=t(e),C=t(u),D=t(o),G=t(a),H=t(f),L=t(p),Q=Object.assign,Y=t(d),Z=t(g),$=t(m),nn=t(O),tn=t(w),rn=t(T),en=t(y),un=t(q),on=t(j),an=t(S),fn=t(h),sn=t(P),cn=t(A),ln=t(B),pn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Z,doesNotStartWith:t(W),endsWith:g,equals:m,greaterThan:i,greaterThanOrEquals:b,gt:i,gte:b,inside:O,isArray:p,isBetween:w,isBlank:T,isBoolean:y,isEmpty:d,isEven:function(n){return!!r(n)&&0==n%2},isFalsy:sn,isKeyOf:q,isNaN:j,isNegative:function(n){return x(n,0)},isNotArray:L,isNotBetween:tn,isNotBlank:rn,isNotBoolean:en,isNotEmpty:Y,isNotKeyOf:un,isNotNaN:on,isNotNull:D,isNotNullish:H,isNotNumber:an,isNotNumeric:_,isNotString:fn,isNotUndefined:G,isNotValueOf:cn,isNull:o,isNullish:f,isNumber:S,isNumeric:r,isOdd:function(n){return!!r(n)&&0!=n%2},isPositive:function(n){return i(n,0)},isString:h,isTruthy:P,isUndefined:a,isValueOf:A,lengthEquals:u,lengthNotEquals:C,lessThan:x,lessThanOrEquals:E,longerThan:function(n,t){return i(n.length,t)},longerThanOrEquals:function(n,t){return b(n.length,t)},lt:x,lte:E,matches:B,notEquals:$,notInside:nn,notMatches:ln,numberEquals:e,numberNotEquals:z,shorterThan:function(n,t){return x(n.length,t)},shorterThanOrEquals:function(n,t){return E(n.length,t)},startsWith:W},vn=function(n){function t(t,u){var i,o,a=r();return t=Q({},a||{},null!==(i=c(n,t,a))&&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,l(n,"Context was used after it was closed")),t}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?Q(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:Q(r,{parent:F})})),hn=function(){function n(){if(!J())return k((function(n){t[n]=U(n)})),Q(R,t)}var t={context:function(){return vn.useX()},extend:function(t){Q(pn,t),n()}};return n(),new Proxy(Q(R,t),{get:function(n,t){return t in n?n[t]:pn[t]?U(t):void 0}})}();hn.extend({isArrayOf:function(n,t){return l(N(n,(function(n,r,e){r(!(e=vn.run({value:n,set:!0,meta:{index:e}},(function(){return V(t,n)}))).pass,e)})),K(!0))},loose:X,optional:function(n,t){return f(n)?K(!0):V(t,n)},shape:function(n,t){var r=X(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return K(!1);return K(!0)}}),n.partial=function(n){var t,r={};for(t in n)r[t]=hn.optional(n[t]);return r},Object.defineProperty(n,"__esModule",{value:!0})}));
@@ -4,6 +4,17 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.parser = {}));
5
5
  }(this, (function (exports) { 'use strict';
6
6
 
7
+ function isNumeric(value) {
8
+ var str = String(value);
9
+ var num = Number(value);
10
+ var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
11
+ return Boolean(result);
12
+ }
13
+
14
+ function greaterThan(value, gt) {
15
+ return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
16
+ }
17
+
7
18
  function isFunction(value) {
8
19
  return typeof value === 'function';
9
20
  }
@@ -16,9 +27,9 @@
16
27
  return isFunction(value) ? value.apply(void 0, args) : value;
17
28
  }
18
29
 
19
- function defaultTo(callback, defaultValue) {
30
+ function defaultTo(value, defaultValue) {
20
31
  var _a;
21
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
32
+ return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
22
33
  }
23
34
 
24
35
  /**
@@ -42,17 +53,6 @@
42
53
  : new Error(message ? optionalFunctionValue(message) : message);
43
54
  }
44
55
 
45
- function isNumeric(value) {
46
- var str = String(value);
47
- var num = Number(value);
48
- var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
49
- return Boolean(result);
50
- }
51
-
52
- function greaterThan(value, gt) {
53
- return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
54
- }
55
-
56
56
  function isPositive(value) {
57
57
  return greaterThan(value, 0);
58
58
  }
@@ -1 +1 @@
1
- "use strict";!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).parser={})}(this,(function(t){function e(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return"function"==typeof t?t.apply(void 0,e):t}function n(t){var e=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(e))}function r(t,e){return n(t)&&n(e)&&Number(t)>Number(e)}var o,i,u;(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(u||(u={})),t.parse=function(t){function n(n,o){var i,u;return n=o?null===(i=t.tests[o])||void 0===i?void 0:i[n]:t[n],r(i=null!==(u=e(n))&&void 0!==u?u:0,0)}!function(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?e(n):n)}(t&&Object.prototype.hasOwnProperty.call(t,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var o={},i={invalid:function(t){return n(u.ERROR_COUNT,t)},tested:function(e){return e?Object.prototype.hasOwnProperty.call(o,e)?o[e]:(o[e]=Object.prototype.hasOwnProperty.call(t.tests,e)&&r(t.tests[e].testCount,0),i.tested(e)):r(t.testCount,0)},untested:function(e){return 0===t.testCount||!i.tested(e)},valid:function(e){var n;return e?!(null===(n=t.tests[e])||void 0===n||!n.valid):t.valid},warning:function(t){return n(u.WARN_COUNT,t)}};return i},Object.defineProperty(t,"__esModule",{value:!0})}));
1
+ "use strict";!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).parser={})}(this,(function(t){function e(t){var e=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(e))}function n(t,n){return e(t)&&e(n)&&Number(t)>Number(n)}function r(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return"function"==typeof t?t.apply(void 0,e):t}var o,i,u;(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(u||(u={})),t.parse=function(t){function e(e,o){var i,u;return e=o?null===(i=t.tests[o])||void 0===i?void 0:i[e]:t[e],n(i=null!==(u=r(e))&&void 0!==u?u:r(0),0)}!function(t,e){if(!t)throw e instanceof String?e.valueOf():Error(e?r(e):e)}(t&&Object.prototype.hasOwnProperty.call(t,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var o={},i={invalid:function(t){return e(u.ERROR_COUNT,t)},tested:function(e){return e?Object.prototype.hasOwnProperty.call(o,e)?o[e]:(o[e]=Object.prototype.hasOwnProperty.call(t.tests,e)&&n(t.tests[e].testCount,0),i.tested(e)):n(t.testCount,0)},untested:function(e){return 0===t.testCount||!i.tested(e)},valid:function(e){var n;return e?!(null===(n=t.tests[e])||void 0===n||!n.valid):t.valid},warning:function(t){return e(u.WARN_COUNT,t)}};return i},Object.defineProperty(t,"__esModule",{value:!0})}));