n4s 5.0.1 → 5.0.2

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 (80) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/README.md +2 -0
  3. package/compose/package.json +2 -0
  4. package/compounds/package.json +2 -0
  5. package/date/package.json +9 -0
  6. package/dist/cjs/compose.development.js +14 -97
  7. package/dist/cjs/compose.js +0 -1
  8. package/dist/cjs/compose.production.js +1 -1
  9. package/dist/cjs/compounds.development.js +30 -86
  10. package/dist/cjs/compounds.js +0 -1
  11. package/dist/cjs/compounds.production.js +1 -1
  12. package/dist/cjs/date.development.js +186 -0
  13. package/dist/cjs/date.js +6 -0
  14. package/dist/cjs/date.production.js +1 -0
  15. package/dist/cjs/email.development.js +363 -0
  16. package/dist/cjs/email.js +6 -0
  17. package/dist/cjs/email.production.js +1 -0
  18. package/dist/cjs/isURL.development.js +353 -0
  19. package/dist/cjs/isURL.js +6 -0
  20. package/dist/cjs/isURL.production.js +1 -0
  21. package/dist/cjs/n4s.development.js +205 -387
  22. package/dist/cjs/n4s.js +0 -1
  23. package/dist/cjs/n4s.production.js +1 -1
  24. package/dist/cjs/schema.development.js +19 -80
  25. package/dist/cjs/schema.js +0 -1
  26. package/dist/cjs/schema.production.js +1 -1
  27. package/dist/es/compose.development.js +14 -97
  28. package/dist/es/compose.production.js +1 -1
  29. package/dist/es/compounds.development.js +28 -84
  30. package/dist/es/compounds.production.js +1 -1
  31. package/dist/es/date.development.js +184 -0
  32. package/dist/es/date.production.js +1 -0
  33. package/dist/es/email.development.js +361 -0
  34. package/dist/es/email.production.js +1 -0
  35. package/dist/es/isURL.development.js +351 -0
  36. package/dist/es/isURL.production.js +1 -0
  37. package/dist/es/n4s.development.js +192 -372
  38. package/dist/es/n4s.production.js +1 -1
  39. package/dist/es/schema.development.js +16 -75
  40. package/dist/es/schema.production.js +1 -1
  41. package/dist/umd/compose.development.js +18 -102
  42. package/dist/umd/compose.production.js +1 -1
  43. package/dist/umd/compounds.development.js +34 -91
  44. package/dist/umd/compounds.production.js +1 -1
  45. package/dist/umd/date.development.js +190 -0
  46. package/dist/umd/date.production.js +1 -0
  47. package/dist/umd/email.development.js +367 -0
  48. package/dist/umd/email.production.js +1 -0
  49. package/dist/umd/isURL.development.js +357 -0
  50. package/dist/umd/isURL.production.js +1 -0
  51. package/dist/umd/n4s.development.js +209 -392
  52. package/dist/umd/n4s.production.js +1 -1
  53. package/dist/umd/schema.development.js +23 -85
  54. package/dist/umd/schema.production.js +1 -1
  55. package/email/package.json +9 -0
  56. package/isURL/package.json +9 -0
  57. package/package.json +162 -55
  58. package/schema/package.json +2 -0
  59. package/testUtils/TEnforceMock.ts +3 -0
  60. package/types/compose.d.ts +46 -55
  61. package/types/compose.d.ts.map +1 -0
  62. package/types/compounds.d.ts +50 -62
  63. package/types/compounds.d.ts.map +1 -0
  64. package/types/date.d.ts +18 -0
  65. package/types/date.d.ts.map +1 -0
  66. package/types/email.d.ts +12 -0
  67. package/types/email.d.ts.map +1 -0
  68. package/types/isURL.d.ts +12 -0
  69. package/types/isURL.d.ts.map +1 -0
  70. package/types/n4s.d.ts +62 -73
  71. package/types/n4s.d.ts.map +1 -0
  72. package/types/schema.d.ts +55 -63
  73. package/types/schema.d.ts.map +1 -0
  74. package/docs/.nojekyll +0 -0
  75. package/docs/README.md +0 -44
  76. package/docs/_sidebar.md +0 -5
  77. package/docs/external.md +0 -27
  78. package/docs/index.html +0 -32
  79. package/docs/rules.md +0 -1282
  80. package/tsconfig.json +0 -8
package/dist/cjs/n4s.js CHANGED
@@ -1,5 +1,4 @@
1
1
  'use strict'
2
-
3
2
  if (process.env.NODE_ENV === 'production') {
4
3
  module.exports = require('./n4s.production.js');
5
4
  } else {
@@ -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 h=e(N);function p(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var g=e(p);function m(n,r){return p(n)&&p(r)&&Number(n)>Number(r)}function y(n,r){return p(n)&&p(r)&&Number(n)>=Number(r)}function d(n){return!!Array.isArray(n)}var b=e(d);function E(n,r){return!!(d(r)||c(r)&&c(n))&&-1!==r.indexOf(n)}var x=e(E);function O(n,r){return p(n)&&p(r)&&Number(n)<=Number(r)}function q(n,r,t){return y(n,r)&&O(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 B=e(S);function W(n){return"number"==typeof n}var j=e(W);function A(n,r){return n.length===Number(r)}var k=e(A);function F(n){if(n){if(W(n))return 0===n;if(function(n,r){return Object.prototype.hasOwnProperty.call(n,r)}(n,"length"))return A(n,0);if("object"==typeof n)return A(Object.keys(n),0)}return!0}var I=e(F),J=function(n){return!!p(n)&&0==n%2};function M(n){return Number.isNaN(n)}var R=e(M);function U(n){return!!p(n)&&0>Number(n)}var _=e(U),C=function(n){return!!p(n)&&0!=n%2},X=e(c);function z(n){return!!n}var D=e(z);function G(n,r){return p(n)&&p(r)&&Number(n)<Number(r)}function H(n,r){return n.length>Number(r)}function K(n,r){return n.length>=Number(r)}function L(n,r){return r instanceof RegExp?r.test(n):!!c(r)&&new RegExp(r).test(n)}var Q=e(L);function V(n,r){return p(n)&&p(r)&&Number(n)===Number(r)}var Y=e(V);function Z(n,r){try{return r(n)}catch(n){return!1}}function $(n,r){return n.length<Number(r)}function nn(n,r){return n.length<=Number(r)}function rn(n,r){return c(n)&&c(r)&&n.startsWith(r)}var tn=e(rn);var en={condition:Z,doesNotEndWith:v,doesNotStartWith:tn,endsWith:l,equals:N,greaterThan:m,greaterThanOrEquals:y,gt:m,gte:y,inside:E,isArray:d,isBetween:q,isBlank:T,isBoolean:S,isEmpty:F,isEven:J,isFalsy:D,isNaN:M,isNegative:U,isNotArray:b,isNotBetween:w,isNotBlank:P,isNotBoolean:B,isNotEmpty:I,isNotNaN:R,isNotNull:i,isNotNullish:f,isNotNumber:j,isNotNumeric:g,isNotString:X,isNotUndefined:a,isNull:u,isNullish:s,isNumber:W,isNumeric:p,isOdd:C,isPositive:_,isString:c,isTruthy:z,isUndefined:o,lengthEquals:A,lengthNotEquals:k,lessThan:G,lessThanOrEquals:O,longerThan:H,longerThanOrEquals:K,lt:G,lte:O,matches:L,notEquals:h,notInside:x,notMatches:Q,numberEquals:V,numberNotEquals:Y,shorterThan:$,shorterThanOrEquals:nn,startsWith:rn};function un(n){return en[n]}function on(n){for(var r in en){var e=un(r);t(e)&&n(r,e)}}var an=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:sn})}));function sn(){return null}function fn(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||r)}function cn(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 ln(n,r){var t;return null!==(t=cn(n))&&void 0!==t?t:r}function vn(n,r){throw Error(ln(r,n))}function Nn(){try{return t(Proxy)}catch(n){return!1}}function hn(n,r){return n={pass:n},r&&(n.message=r),n}function pn(n){return ln(n,hn(!0))}function gn(n,r,t){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return mn(n),S(n)?hn(n):hn(n.pass,cn.apply(void 0,fn([n.message,r,t],e)))}function mn(n){S(n)||n&&S(n.pass)||vn("Incorrect return value for rule: "+JSON.stringify(n))}function yn(n){function r(r,t,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=gn.apply(void 0,fn([an.run({value:n},(function(){return t.apply(void 0,fn([n],u))})),e,n],u))).pass){if(!F(i.message))throw i.message;vn("enforce/"+e+" failed with "+JSON.stringify(n))}return r}}var t={};if(!Nn())return on((function(n,e){t[n]=r(t,e,n)})),t;var e=new Proxy(t,{get:function(n,t){if(n=un(t))return r(e,n,t)}});return e}function dn(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 bn(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=un(e);t.push((function(n){return gn.apply(void 0,fn([o.apply(void 0,fn([n],u)),e,n],u))}));var a={run:function(n){return pn(dn(t,(function(t,e){var u,i=an.run({value:n},(function(){return t(n)}));i.pass||e(hn(!!i.pass,null!==(u=cn(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 Nn()?a=new Proxy(a,{get:function(r,t){return un(t)?n(t):r[t]}}):(on((function(r){a[r]=n(r)})),a)}}(n)}var En,xn=(En={context:function(){return an.useX()},extend:function(n){r(en,n)}},Nn()?new Proxy(r(yn,En),{get:function(n,r){return r in n?n[r]:un(r)?bn(r):void 0}}):(on((function(n){En[n]=bn(n)})),En));exports.ctx=an,exports.enforce=xn;
1
+ "use strict";var n=require("vest-utils");const t=require("context").createCascade(((t,i)=>{const s={value:t.value,meta:t.meta||{}};return i?t.set?n.assign(s,{parent:()=>function(n){return{value:n.value,meta:n.meta,parent:n.parent}}(i)}):i:n.assign(s,{parent:e})}));function e(){return null}function i(t,e){return n.isStringValue(t)&&n.isStringValue(e)&&t.endsWith(e)}const s=n.bindNot(i);function r(n,t){return n===t}const u=n.bindNot(r);function o(t,e){return n.numberEquals(t,e)||n.greaterThan(t,e)}function a(t,e){return(n.isArray(e)||!(!n.isStringValue(e)||!n.isStringValue(t)))&&-1!==e.indexOf(t)}const l=n.bindNot(a);function c(t,e){return n.isNumeric(t)&&n.isNumeric(e)&&Number(t)<Number(e)}function N(t,e){return n.numberEquals(t,e)||c(t,e)}function f(n,t,e){return o(n,t)&&N(n,e)}const g=n.bindNot(f);function h(t){return n.isNullish(t)||n.isStringValue(t)&&!t.trim()}const d=n.bindNot(h),m=n.bindNot(n.isBoolean),b=t=>!!n.isNumeric(t)&&t%2==0;function p(n,t){return n in t}const E=n.bindNot(p);function y(n){return Number.isNaN(n)}const q=n.bindNot(y);function v(n){return c(n,0)}function S(n){return Boolean("number"==typeof n)}const O=n.bindNot(S),T=t=>!!n.isNumeric(t)&&t%2!=0,V=n.bindNot(n.isStringValue);function x(n){return!!n}const B=n.bindNot(x);function w(t,e){if(n.isNullish(e))return!1;for(const n in e)if(e[n]===t)return!0;return!1}const W=n.bindNot(w);function A(n,t){return o(n.length,t)}function P(t,e){return e instanceof RegExp?e.test(t):!!n.isStringValue(e)&&new RegExp(e).test(t)}const F=n.bindNot(P);function U(n,t){try{return t(n)}catch(n){return!1}}function j(n,t){return c(n.length,t)}function k(n,t){return N(n.length,t)}function I(t,e){return n.isStringValue(t)&&n.isStringValue(e)&&t.startsWith(e)}const J=n.bindNot(I);const K={condition:U,doesNotEndWith:s,doesNotStartWith:J,endsWith:i,equals:r,greaterThan:n.greaterThan,greaterThanOrEquals:o,gt:n.greaterThan,gte:o,inside:a,isArray:n.isArray,isBetween:f,isBlank:h,isBoolean:n.isBoolean,isEmpty:n.isEmpty,isEven:b,isFalsy:B,isKeyOf:p,isNaN:y,isNegative:v,isNotArray:n.isNotArray,isNotBetween:g,isNotBlank:d,isNotBoolean:m,isNotEmpty:n.isNotEmpty,isNotKeyOf:E,isNotNaN:q,isNotNull:n.isNotNull,isNotNullish:n.isNotNullish,isNotNumber:O,isNotNumeric:n.isNotNumeric,isNotString:V,isNotUndefined:n.isNotUndefined,isNotValueOf:W,isNull:n.isNull,isNullish:n.isNullish,isNumber:S,isNumeric:n.isNumeric,isOdd:T,isPositive:n.isPositive,isString:n.isStringValue,isTruthy:x,isUndefined:n.isUndefined,isValueOf:w,lengthEquals:n.lengthEquals,lengthNotEquals:n.lengthNotEquals,lessThan:c,lessThanOrEquals:N,longerThan:n.longerThan,longerThanOrEquals:A,lt:c,lte:N,matches:P,notEquals:u,notInside:l,notMatches:F,numberEquals:n.numberEquals,numberNotEquals:n.numberNotEquals,shorterThan:j,shorterThanOrEquals:k,startsWith:I};function R(n){return K[n]}function $(n,t){const e={pass:n};return t&&(e.message=t),e}function C(t){return n.defaultTo(t,$(!0))}function M(t,e,i,...s){return function(t){n.invariant(n.isBoolean(t)||t&&n.isBoolean(t.pass),"Incorrect return value for rule: "+JSON.stringify(t))}(t),n.isBoolean(t)?$(t):$(t.pass,n.optionalFunctionValue(t.message,e,i,...s))}function X(e){const i={message:function(n){return s=n,r}};let s;const r=new Proxy(i,{get:(u,o)=>{const a=R(o);return a?function(i,r,u){return function(...o){const a=t.run({value:e},(()=>M(r(e,...o),u,e,...o)));function l(){return n.isNullish(s)?n.isNullish(a.message)?`enforce/${u} failed with ${JSON.stringify(e)}`:n.StringObject(a.message):n.StringObject(s)}return n.invariant(a.pass,l()),i}}(r,a,o):i[o]}});return r}const z=function(){const e={context:()=>t.useX(),extend:t=>{n.assign(K,t)}};return new Proxy(n.assign(X,e),{get:(e,i)=>i in e?e[i]:R(i)?function(e){const i=[];let s;return function e(r){return(...u)=>{const o=R(r);i.push((n=>M(o(n,...u),r,n,...u)));let a={run:e=>C(n.mapFirst(i,((i,r)=>{var u;const o=t.run({value:e},(()=>i(e)));r(!o.pass,$(!!o.pass,null!==(u=n.optionalFunctionValue(s,e,o.message))&&void 0!==u?u:o.message))}))),test:n=>a.run(n).pass,message:n=>(n&&(s=n),a)};return a=new Proxy(a,{get:(n,t)=>R(t)?e(t):n[t]}),a}}(e)}(i):void 0})}();exports.ctx=t,exports.enforce=z;
@@ -1,43 +1,10 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var n4s = require('n4s');
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
- function isFunction(value) {
23
- return typeof value === 'function';
24
- }
25
-
26
- function optionalFunctionValue(value) {
27
- var args = [];
28
- for (var _i = 1; _i < arguments.length; _i++) {
29
- args[_i - 1] = arguments[_i];
30
- }
31
- return isFunction(value) ? value.apply(void 0, args) : value;
32
- }
33
-
34
- function defaultTo(callback, defaultValue) {
35
- var _a;
36
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
37
- }
4
+ var vestUtils = require('vest-utils');
38
5
 
39
6
  function ruleReturn(pass, message) {
40
- var output = { pass: pass };
7
+ const output = { pass };
41
8
  if (message) {
42
9
  output.message = message;
43
10
  }
@@ -50,7 +17,7 @@ function passing() {
50
17
  return ruleReturn(true);
51
18
  }
52
19
  function defaultToPassing(callback) {
53
- return defaultTo(callback, passing());
20
+ return vestUtils.defaultTo(callback, passing());
54
21
  }
55
22
 
56
23
  function runLazyRule(lazyRule, currentValue) {
@@ -63,66 +30,38 @@ function runLazyRule(lazyRule, currentValue) {
63
30
  }
64
31
 
65
32
  function isArrayOf(inputArray, currentRule) {
66
- return defaultToPassing(mapFirst(inputArray, function (currentValue, breakout, index) {
67
- var res = n4s.ctx.run({ value: currentValue, set: true, meta: { index: index } }, function () { return runLazyRule(currentRule, currentValue); });
68
- if (!res.pass) {
69
- breakout(res);
70
- }
33
+ return defaultToPassing(vestUtils.mapFirst(inputArray, (currentValue, breakout, index) => {
34
+ const res = n4s.ctx.run({ value: currentValue, set: true, meta: { index } }, () => runLazyRule(currentRule, currentValue));
35
+ breakout(!res.pass, res);
71
36
  }));
72
37
  }
73
38
 
74
39
  function loose(inputObject, shapeObject) {
75
- var _loop_1 = function (key) {
76
- var currentValue = inputObject[key];
77
- var currentRule = shapeObject[key];
78
- var res = n4s.ctx.run({ value: currentValue, set: true, meta: { key: key } }, function () {
79
- return runLazyRule(currentRule, currentValue);
80
- });
40
+ for (const key in shapeObject) {
41
+ const currentValue = inputObject[key];
42
+ const currentRule = shapeObject[key];
43
+ const res = n4s.ctx.run({ value: currentValue, set: true, meta: { key } }, () => runLazyRule(currentRule, currentValue));
81
44
  if (!res.pass) {
82
- return { value: res };
45
+ return res;
83
46
  }
84
- };
85
- for (var key in shapeObject) {
86
- var state_1 = _loop_1(key);
87
- if (typeof state_1 === "object")
88
- return state_1.value;
89
47
  }
90
48
  return passing();
91
49
  }
92
50
 
93
- function isNull(value) {
94
- return value === null;
95
- }
96
-
97
- function isUndefined(value) {
98
- return value === undefined;
99
- }
100
-
101
- function isNullish(value) {
102
- return isNull(value) || isUndefined(value);
103
- }
104
-
105
51
  function optional(value, ruleChain) {
106
- if (isNullish(value)) {
52
+ if (vestUtils.isNullish(value)) {
107
53
  return passing();
108
54
  }
109
55
  return runLazyRule(ruleChain, value);
110
56
  }
111
57
 
112
- /**
113
- * A safe hasOwnProperty access
114
- */
115
- function hasOwnProperty(obj, key) {
116
- return Object.prototype.hasOwnProperty.call(obj, key);
117
- }
118
-
119
58
  function shape(inputObject, shapeObject) {
120
- var baseRes = loose(inputObject, shapeObject);
59
+ const baseRes = loose(inputObject, shapeObject);
121
60
  if (!baseRes.pass) {
122
61
  return baseRes;
123
62
  }
124
- for (var key in inputObject) {
125
- if (!hasOwnProperty(shapeObject, key)) {
63
+ for (const key in inputObject) {
64
+ if (!vestUtils.hasOwnProperty(shapeObject, key)) {
126
65
  return failing();
127
66
  }
128
67
  }
@@ -130,15 +69,15 @@ function shape(inputObject, shapeObject) {
130
69
  }
131
70
 
132
71
  // Help needed improving the typings of this file.
133
- // Ideally, we'd be able to extend IShapeObject, but that's not possible.
72
+ // Ideally, we'd be able to extend ShapeObject, but that's not possible.
134
73
  function partial(shapeObject) {
135
- var output = {};
136
- for (var key in shapeObject) {
74
+ const output = {};
75
+ for (const key in shapeObject) {
137
76
  output[key] = n4s.enforce.optional(shapeObject[key]);
138
77
  }
139
78
  return output;
140
79
  }
141
80
 
142
- n4s.enforce.extend({ isArrayOf: isArrayOf, loose: loose, optional: optional, shape: shape });
81
+ n4s.enforce.extend({ isArrayOf, loose, optional, shape });
143
82
 
144
83
  exports.partial = partial;
@@ -1,5 +1,4 @@
1
1
  'use strict'
2
-
3
2
  if (process.env.NODE_ENV === 'production') {
4
3
  module.exports = require('./schema.production.js');
5
4
  } else {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("n4s");function r(n){return"function"==typeof n}function t(n,t){var e;return null!==(e=function(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return r(n)?n.apply(void 0,t):n}(n))&&void 0!==e?e:t}function e(n,r){return n={pass:n},r&&(n.message=r),n}function u(){return e(!1)}function o(){return e(!0)}function i(n,r){try{return n.run(r)}catch(n){return u()}}function f(r,t){var e,u=function(e){var u=r[e],o=t[e];if(!(e=n.ctx.run({value:u,set:!0,meta:{key:e}},(function(){return i(o,u)}))).pass)return{value:e}};for(e in t){var f=u(e);if("object"==typeof f)return f.value}return o()}function c(n,r){return Object.prototype.hasOwnProperty.call(n,r)}n.enforce.extend({isArrayOf:function(r,e){return function(n){return t(n,o())}(function(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}(r,(function(r,t,u){(u=n.ctx.run({value:r,set:!0,meta:{index:u}},(function(){return i(e,r)}))).pass||t(u)})))},loose:f,optional:function(n,r){return function(n){return function(n){return null===n}(n)||function(n){return void 0===n}(n)}(n)?o():i(r,n)},shape:function(n,r){var t=f(n,r);if(!t.pass)return t;for(var e in n)if(!c(r,e))return u();return o()}}),exports.partial=function(r){var t,e={};for(t in r)e[t]=n.enforce.optional(r[t]);return e};
1
+ "use strict";var n=require("n4s"),t=require("vest-utils");function r(n,t){const r={pass:n};return t&&(r.message=t),r}function e(){return r(!1)}function s(){return r(!0)}function u(n,t){try{return n.run(t)}catch(n){return e()}}function o(t,r){for(const e in r){const s=t[e],o=r[e],i=n.ctx.run({value:s,set:!0,meta:{key:e}},(()=>u(o,s)));if(!i.pass)return i}return s()}n.enforce.extend({isArrayOf:function(r,e){return o=t.mapFirst(r,((t,r,s)=>{const o=n.ctx.run({value:t,set:!0,meta:{index:s}},(()=>u(e,t)));r(!o.pass,o)})),t.defaultTo(o,s());var o},loose:o,optional:function(n,r){return t.isNullish(n)?s():u(r,n)},shape:function(n,r){const u=o(n,r);if(!u.pass)return u;for(const s in n)if(!t.hasOwnProperty(r,s))return e();return s()}}),exports.partial=function(t){const r={};for(const e in t)r[e]=n.enforce.optional(t[e]);return r};
@@ -1,77 +1,8 @@
1
1
  import { ctx } from 'n4s';
2
-
3
- function mapFirst(array, callback) {
4
- var broke = false;
5
- var breakoutValue = null;
6
- for (var i = 0; i < array.length; i++) {
7
- callback(array[i], breakout, i);
8
- if (broke) {
9
- return breakoutValue;
10
- }
11
- }
12
- function breakout(value) {
13
- broke = true;
14
- breakoutValue = value;
15
- }
16
- }
17
-
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
- function defaultTo(callback, defaultValue) {
31
- var _a;
32
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
33
- }
34
-
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
- }
2
+ import { defaultTo, assign, invariant, StringObject, mapFirst } from 'vest-utils';
72
3
 
73
4
  function ruleReturn(pass, message) {
74
- var output = { pass: pass };
5
+ const output = { pass };
75
6
  if (message) {
76
7
  output.message = message;
77
8
  }
@@ -97,41 +28,27 @@ function runLazyRule(lazyRule, currentValue) {
97
28
  }
98
29
 
99
30
  /* eslint-disable max-lines-per-function */
100
- function compose() {
101
- var composites = [];
102
- for (var _i = 0; _i < arguments.length; _i++) {
103
- composites[_i] = arguments[_i];
104
- }
105
- return Object.assign(function (value) {
106
- 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
- }
31
+ function compose(...composites) {
32
+ return assign((value) => {
33
+ const res = run(value);
34
+ invariant(res.pass, StringObject(res.message));
116
35
  }, {
117
- run: run,
118
- test: function (value) { return run(value).pass; }
36
+ run,
37
+ test: (value) => run(value).pass,
119
38
  });
120
39
  function run(value) {
121
- return ctx.run({ value: value }, function () {
122
- return defaultToPassing(mapFirst(composites, function (composite, breakout) {
40
+ return ctx.run({ value }, () => {
41
+ return defaultToPassing(mapFirst(composites, (composite, breakout) => {
123
42
  /* HACK: Just a small white lie. ~~HELP WANTED~~.
124
- The ideal is that instead of `TLazyRuleRunners` We would simply use `TLazy` to begin with.
43
+ The ideal is that instead of `LazyRuleRunners` We would simply use `Lazy` to begin with.
125
44
  The problem is that lazy rules can't really be passed to this function due to some generic hell
126
45
  so we're limiting it to a small set of functions.
127
46
  */
128
- var res = runLazyRule(composite, value);
129
- if (!res.pass) {
130
- breakout(res);
131
- }
47
+ const res = runLazyRule(composite, value);
48
+ breakout(!res.pass, res);
132
49
  }));
133
50
  });
134
51
  }
135
52
  }
136
53
 
137
- export default compose;
54
+ export { compose as default };
@@ -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 t}from"n4s";import{defaultTo as n,assign as r,invariant as s,StringObject as u,mapFirst as e}from"vest-utils";function o(t,n){const r={pass:t};return n&&(r.message=n),r}function a(t){return n(t,o(!0))}function c(t,n){try{return t.run(n)}catch(t){return o(!1)}}function f(...n){return r((t=>{const n=o(t);s(n.pass,u(n.message))}),{run:o,test:t=>o(t).pass});function o(r){return t.run({value:r},(()=>a(e(n,((t,n)=>{const s=c(t,r);n(!s.pass,s)})))))}}export{f as default};
@@ -1,39 +1,8 @@
1
1
  import { enforce } from 'n4s';
2
-
3
- function mapFirst(array, callback) {
4
- var broke = false;
5
- var breakoutValue = null;
6
- for (var i = 0; i < array.length; i++) {
7
- callback(array[i], breakout, i);
8
- if (broke) {
9
- return breakoutValue;
10
- }
11
- }
12
- function breakout(value) {
13
- broke = true;
14
- breakoutValue = value;
15
- }
16
- }
17
-
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
- function defaultTo(callback, defaultValue) {
31
- var _a;
32
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
33
- }
2
+ import { defaultTo, mapFirst, bindNot, greaterThan } from 'vest-utils';
34
3
 
35
4
  function ruleReturn(pass, message) {
36
- var output = { pass: pass };
5
+ const output = { pass };
37
6
  if (message) {
38
7
  output.message = message;
39
8
  }
@@ -61,70 +30,45 @@ function runLazyRule(lazyRule, currentValue) {
61
30
  }
62
31
  }
63
32
 
64
- function allOf(value) {
65
- var rules = [];
66
- for (var _i = 1; _i < arguments.length; _i++) {
67
- rules[_i - 1] = arguments[_i];
68
- }
69
- return defaultToPassing(mapFirst(rules, function (rule, breakout) {
70
- var res = runLazyRule(rule, value);
71
- if (!res.pass) {
72
- breakout(res);
73
- }
33
+ function allOf(value, ...rules) {
34
+ return defaultToPassing(mapFirst(rules, (rule, breakout) => {
35
+ const res = runLazyRule(rule, value);
36
+ breakout(!res.pass, res);
74
37
  }));
75
38
  }
76
39
 
77
- function anyOf(value) {
78
- var rules = [];
79
- for (var _i = 1; _i < arguments.length; _i++) {
80
- rules[_i - 1] = arguments[_i];
81
- }
82
- return defaultToFailing(mapFirst(rules, function (rule, breakout) {
83
- var res = runLazyRule(rule, value);
84
- if (res.pass) {
85
- breakout(res);
86
- }
40
+ function anyOf(value, ...rules) {
41
+ return defaultToFailing(mapFirst(rules, (rule, breakout) => {
42
+ const res = runLazyRule(rule, value);
43
+ breakout(res.pass, res);
87
44
  }));
88
45
  }
89
46
 
90
- function noneOf(value) {
91
- var rules = [];
92
- for (var _i = 1; _i < arguments.length; _i++) {
93
- rules[_i - 1] = arguments[_i];
94
- }
95
- return defaultToPassing(mapFirst(rules, function (rule, breakout) {
96
- var res = runLazyRule(rule, value);
97
- if (res.pass) {
98
- breakout(failing());
99
- }
47
+ function noneOf(value, ...rules) {
48
+ return defaultToPassing(mapFirst(rules, (rule, breakout) => {
49
+ const res = runLazyRule(rule, value);
50
+ breakout(res.pass, failing());
100
51
  }));
101
52
  }
102
53
 
103
- function lengthEquals(value, arg1) {
104
- return value.length === Number(arg1);
54
+ function equals(value, arg1) {
55
+ return value === arg1;
105
56
  }
57
+ bindNot(equals);
106
58
 
107
- function longerThan(value, arg1) {
108
- return value.length > Number(arg1);
109
- }
110
-
111
- var REQUIRED_COUNT = 1;
112
- function oneOf(value) {
113
- var rules = [];
114
- for (var _i = 1; _i < arguments.length; _i++) {
115
- rules[_i - 1] = arguments[_i];
116
- }
117
- var passing = [];
118
- rules.some(function (rule) {
119
- if (longerThan(passing, REQUIRED_COUNT)) {
120
- return false;
121
- }
122
- var res = runLazyRule(rule, value);
59
+ const REQUIRED_COUNT = 1;
60
+ function oneOf(value, ...rules) {
61
+ let passingCount = 0;
62
+ rules.some(rule => {
63
+ const res = runLazyRule(rule, value);
123
64
  if (res.pass) {
124
- passing.push(res);
65
+ passingCount++;
66
+ }
67
+ if (greaterThan(passingCount, REQUIRED_COUNT)) {
68
+ return false;
125
69
  }
126
70
  });
127
- return ruleReturn(lengthEquals(passing, REQUIRED_COUNT));
71
+ return ruleReturn(equals(passingCount, REQUIRED_COUNT));
128
72
  }
129
73
 
130
- enforce.extend({ allOf: allOf, anyOf: anyOf, noneOf: noneOf, oneOf: oneOf });
74
+ enforce.extend({ allOf, anyOf, noneOf, oneOf });
@@ -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";import{defaultTo as t,mapFirst as r,bindNot as u,greaterThan as e}from"vest-utils";function o(n,t){const r={pass:n};return t&&(r.message=t),r}function s(){return o(!1)}function f(n){return t(n,o(!0))}function c(n,t){try{return n.run(t)}catch(n){return s()}}function i(n,t){return n===t}u(i);n.extend({allOf:function(n,...t){return f(r(t,((t,r)=>{const u=c(t,n);r(!u.pass,u)})))},anyOf:function(n,...u){return e=r(u,((t,r)=>{const u=c(t,n);r(u.pass,u)})),t(e,s());var e},noneOf:function(n,...t){return f(r(t,((t,r)=>{r(c(t,n).pass,s())})))},oneOf:function(n,...t){let r=0;return t.some((t=>{if(c(t,n).pass&&r++,e(r,1))return!1})),o(i(r,1))}});