n4s 4.1.3 → 4.1.4

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.
@@ -91,7 +91,7 @@ function compose() {
91
91
  return n4s.ctx.run({ value: value }, function () {
92
92
  return defaultToPassing(mapFirst(composites, function (composite, breakout) {
93
93
  /* HACK: Just a small white lie. ~~HELP WANTED~~.
94
- 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.
95
95
  The problem is that lazy rules can't really be passed to this function due to some generic hell
96
96
  so we're limiting it to a small set of functions.
97
97
  */
@@ -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;
@@ -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(l(u,1))return!1;(r=c(r,n)).pass&&u.push(r)})),e(s(u,1))}});
@@ -127,7 +127,7 @@ function isNumber(value) {
127
127
  var isNotNumber = bindNot(isNumber);
128
128
 
129
129
  function lengthEquals(value, arg1) {
130
- return value.length === Number(arg1);
130
+ return numberEquals(value.length, arg1);
131
131
  }
132
132
  var lengthNotEquals = bindNot(lengthEquals);
133
133
 
@@ -207,11 +207,11 @@ function isValueOf(value, objectToCheck) {
207
207
  var isNotValueOf = bindNot(isValueOf);
208
208
 
209
209
  function longerThan(value, arg1) {
210
- return value.length > Number(arg1);
210
+ return greaterThan(value.length, arg1);
211
211
  }
212
212
 
213
213
  function longerThanOrEquals(value, arg1) {
214
- return value.length >= Number(arg1);
214
+ return greaterThanOrEquals(value.length, arg1);
215
215
  }
216
216
 
217
217
  function matches(value, regex) {
@@ -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) {
@@ -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 g(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var h=e(g);function m(n,r){return g(n)&&g(r)&&Number(n)>Number(r)}function y(n,r){return g(n)&&g(r)&&Number(n)===Number(r)}var d=e(y);function b(n,r){return y(n,r)||m(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 y(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 n.length===Number(r)}var J=e(I);function K(n){if(n){if(k(n))return 0===n;if(function(n,r){return Object.prototype.hasOwnProperty.call(n,r)}(n,"length"))return I(n,0);if("object"==typeof n)return I(Object.keys(n),0)}return!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 m(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 n.length>Number(r)}function $(n,r){return n.length>=Number(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 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:b,gt:m,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:y,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 mn(n,r){return n={pass:n},r&&(n.message=r),n}function yn(n){return function(n,r){var t;return null!==(t=pn(n))&&void 0!==t?t:r}(n,mn(!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)?mn(n):mn(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 yn(En(t,(function(t,e){var u,i=ln.run({value:n},(function(){return t(n)}));i.pass||e(mn(!!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,wn=(qn={context:function(){return ln.useX()},extend:function(n){r(sn,n)}},hn()?new Proxy(r(On,qn),{get:function(n,r){return r in n?n[r]:fn(r)?xn(r):void 0}}):(cn((function(n){qn[n]=xn(n)})),r(On,qn)));exports.ctx=ln,exports.enforce=wn;
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){if(n){if(k(n))return 0===n;if(function(n,r){return Object.prototype.hasOwnProperty.call(n,r)}(n,"length"))return I(n,0);if("object"==typeof n)return I(Object.keys(n),0)}return!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,wn=(qn={context:function(){return ln.useX()},extend:function(n){r(sn,n)}},hn()?new Proxy(r(On,qn),{get:function(n,r){return r in n?n[r]:fn(r)?xn(r):void 0}}):(cn((function(n){qn[n]=xn(n)})),r(On,qn)));exports.ctx=ln,exports.enforce=wn;
@@ -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) {
@@ -89,7 +89,7 @@ function compose() {
89
89
  return ctx.run({ value: value }, function () {
90
90
  return defaultToPassing(mapFirst(composites, function (composite, breakout) {
91
91
  /* HACK: Just a small white lie. ~~HELP WANTED~~.
92
- 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.
93
93
  The problem is that lazy rules can't really be passed to this function due to some generic hell
94
94
  so we're limiting it to a small set of functions.
95
95
  */
@@ -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;
@@ -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){var t=i.length;if(o(t)&&o(1)&&Number(t)>Number(1))return!1;(r=e(r,n)).pass&&i.push(r)})),u(f(i.length,1))}});
@@ -123,7 +123,7 @@ function isNumber(value) {
123
123
  var isNotNumber = bindNot(isNumber);
124
124
 
125
125
  function lengthEquals(value, arg1) {
126
- return value.length === Number(arg1);
126
+ return numberEquals(value.length, arg1);
127
127
  }
128
128
  var lengthNotEquals = bindNot(lengthEquals);
129
129
 
@@ -203,11 +203,11 @@ function isValueOf(value, objectToCheck) {
203
203
  var isNotValueOf = bindNot(isValueOf);
204
204
 
205
205
  function longerThan(value, arg1) {
206
- return value.length > Number(arg1);
206
+ return greaterThan(value.length, arg1);
207
207
  }
208
208
 
209
209
  function longerThanOrEquals(value, arg1) {
210
- return value.length >= Number(arg1);
210
+ return greaterThanOrEquals(value.length, arg1);
211
211
  }
212
212
 
213
213
  function matches(value, regex) {
@@ -233,11 +233,11 @@ function condition(value, callback) {
233
233
  }
234
234
 
235
235
  function shorterThan(value, arg1) {
236
- return value.length < Number(arg1);
236
+ return lessThan(value.length, arg1);
237
237
  }
238
238
 
239
239
  function shorterThanOrEquals(value, arg1) {
240
- return value.length <= Number(arg1);
240
+ return lessThanOrEquals(value.length, arg1);
241
241
  }
242
242
 
243
243
  function startsWith(value, arg1) {
@@ -1 +1 @@
1
- import{createContext as n}from"context";var 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 null===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 g=e(N);function h(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var p=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)}var d=e(y);function b(n,r){return y(n,r)||m(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 h(n)&&h(r)&&Number(n)<Number(r)}function S(n,r){return y(n,r)||w(n,r)}function T(n,r,t){return b(n,r)&&S(n,t)}var A=e(T);function B(n){return s(n)||c(n)&&!n.trim()}var P=e(B);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 n.length===Number(r)}var J=e(I);function K(n){if(n){if(k(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return I(n,0);if("object"==typeof n)return I(Object.keys(n),0)}return!0}var R=e(K);function U(n,r){return n in r}var V=e(U);function M(n){return Number.isNaN(n)}var X=e(M),z=e(c);function C(n){return!!n}var D=e(C);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 r instanceof RegExp?r.test(n):!!c(r)&&new RegExp(r).test(n)}var Q=e(L);function Y(n,r){return c(n)&&c(r)&&n.startsWith(r)}var Z={condition:function(n,r){try{return r(n)}catch(n){return!1}},doesNotEndWith:v,doesNotStartWith:e(Y),endsWith:l,equals:N,greaterThan:m,greaterThanOrEquals:b,gt:m,gte:b,inside:x,isArray:O,isBetween:T,isBlank:B,isBoolean:W,isEmpty:K,isEven:function(n){return!!h(n)&&0==n%2},isFalsy:D,isKeyOf:U,isNaN:M,isNegative:function(n){return w(n,0)},isNotArray:E,isNotBetween:A,isNotBlank:P,isNotBoolean:j,isNotEmpty:R,isNotKeyOf:V,isNotNaN:X,isNotNull:i,isNotNullish:f,isNotNumber:F,isNotNumeric:p,isNotString:z,isNotUndefined:a,isNotValueOf:H,isNull:u,isNullish:s,isNumber:k,isNumeric:h,isOdd:function(n){return!!h(n)&&0!=n%2},isPositive:function(n){return m(n,0)},isString:c,isTruthy:C,isUndefined:o,isValueOf:G,lengthEquals:I,lengthNotEquals:J,lessThan:w,lessThanOrEquals:S,longerThan:function(n,r){return n.length>Number(r)},longerThanOrEquals:function(n,r){return n.length>=Number(r)},lt:w,lte:S,matches:L,notEquals:g,notInside:q,notMatches:Q,numberEquals:y,numberNotEquals:d,shorterThan:function(n,r){return n.length<Number(r)},shorterThanOrEquals:function(n,r){return n.length<=Number(r)},startsWith:Y};function $(n){for(var r in Z){var e=Z[r];t(e)&&n(r,e)}}var _=n((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:r(e,{parent:nn})}));function nn(){return null}function rn(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 tn(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 en(n,r){if(!n)throw r instanceof String?r.valueOf():Error(r?tn(r):r)}function un(){try{return t(Proxy)}catch(n){return!1}}function on(n,r){var t;return null!==(t=tn(n))&&void 0!==t?t:r}function an(n,r){return n={pass:n},r&&(n.message=r),n}function sn(n,r,t){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return en(W(n)||n&&W(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),W(n)?an(n):an(n.pass,tn.apply(void 0,rn([n.message,r,t],e,!1)))}function fn(n){function r(r,t,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return en((i=sn.apply(void 0,rn([_.run({value:n},(function(){return t.apply(void 0,rn([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(!un())return $((function(n,e){t[n]=r(t,e,n)})),t;var e=new Proxy(t,{get:function(n,t){if(n=Z[t])return r(e,n,t)}});return e}function cn(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 ln(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=Z[e];t.push((function(n){return sn.apply(void 0,rn([o.apply(void 0,rn([n],u,!1)),e,n],u,!1))}));var a={run:function(n){return on(cn(t,(function(t,e){var u,i=_.run({value:n},(function(){return t(n)}));i.pass||e(an(!!i.pass,null!==(u=tn(r,n,i.message))&&void 0!==u?u:i.message))})),an(!0))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return un()?a=new Proxy(a,{get:function(r,t){return Z[t]?n(t):r[t]}}):($((function(r){a[r]=n(r)})),a)}}(n)}var vn,Nn=(vn={context:function(){return _.useX()},extend:function(n){r(Z,n)}},un()?new Proxy(r(fn,vn),{get:function(n,r){return r in n?n[r]:Z[r]?ln(r):void 0}}):($((function(n){vn[n]=ln(n)})),r(fn,vn)));export{_ as ctx,Nn as enforce};
1
+ import{createContext as n}from"context";var 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 null===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 g=e(N);function h(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var p=e(h);function y(n,r){return h(n)&&h(r)&&Number(n)>Number(r)}function m(n,r){return h(n)&&h(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 h(n)&&h(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 A=e(T);function B(n){return s(n)||c(n)&&!n.trim()}var P=e(B);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){if(n){if(k(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return I(n,0);if("object"==typeof n)return I(Object.keys(n),0)}return!0}var R=e(K);function U(n,r){return n in r}var V=e(U);function M(n){return Number.isNaN(n)}var X=e(M),z=e(c);function C(n){return!!n}var D=e(C);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 r instanceof RegExp?r.test(n):!!c(r)&&new RegExp(r).test(n)}var Q=e(L);function Y(n,r){return c(n)&&c(r)&&n.startsWith(r)}var Z={condition:function(n,r){try{return r(n)}catch(n){return!1}},doesNotEndWith:v,doesNotStartWith:e(Y),endsWith:l,equals:N,greaterThan:y,greaterThanOrEquals:b,gt:y,gte:b,inside:x,isArray:O,isBetween:T,isBlank:B,isBoolean:W,isEmpty:K,isEven:function(n){return!!h(n)&&0==n%2},isFalsy:D,isKeyOf:U,isNaN:M,isNegative:function(n){return w(n,0)},isNotArray:E,isNotBetween:A,isNotBlank:P,isNotBoolean:j,isNotEmpty:R,isNotKeyOf:V,isNotNaN:X,isNotNull:i,isNotNullish:f,isNotNumber:F,isNotNumeric:p,isNotString:z,isNotUndefined:a,isNotValueOf:H,isNull:u,isNullish:s,isNumber:k,isNumeric:h,isOdd:function(n){return!!h(n)&&0!=n%2},isPositive:function(n){return y(n,0)},isString:c,isTruthy:C,isUndefined:o,isValueOf:G,lengthEquals:I,lengthNotEquals:J,lessThan:w,lessThanOrEquals:S,longerThan:function(n,r){return y(n.length,r)},longerThanOrEquals:function(n,r){return b(n.length,r)},lt:w,lte:S,matches:L,notEquals:g,notInside:q,notMatches:Q,numberEquals:m,numberNotEquals:d,shorterThan:function(n,r){return w(n.length,r)},shorterThanOrEquals:function(n,r){return S(n.length,r)},startsWith:Y};function $(n){for(var r in Z){var e=Z[r];t(e)&&n(r,e)}}var _=n((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:r(e,{parent:nn})}));function nn(){return null}function rn(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 tn(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 en(n,r){if(!n)throw r instanceof String?r.valueOf():Error(r?tn(r):r)}function un(){try{return t(Proxy)}catch(n){return!1}}function on(n,r){var t;return null!==(t=tn(n))&&void 0!==t?t:r}function an(n,r){return n={pass:n},r&&(n.message=r),n}function sn(n,r,t){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return en(W(n)||n&&W(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),W(n)?an(n):an(n.pass,tn.apply(void 0,rn([n.message,r,t],e,!1)))}function fn(n){function r(r,t,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return en((i=sn.apply(void 0,rn([_.run({value:n},(function(){return t.apply(void 0,rn([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(!un())return $((function(n,e){t[n]=r(t,e,n)})),t;var e=new Proxy(t,{get:function(n,t){if(n=Z[t])return r(e,n,t)}});return e}function cn(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 ln(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=Z[e];t.push((function(n){return sn.apply(void 0,rn([o.apply(void 0,rn([n],u,!1)),e,n],u,!1))}));var a={run:function(n){return on(cn(t,(function(t,e){var u,i=_.run({value:n},(function(){return t(n)}));i.pass||e(an(!!i.pass,null!==(u=tn(r,n,i.message))&&void 0!==u?u:i.message))})),an(!0))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return un()?a=new Proxy(a,{get:function(r,t){return Z[t]?n(t):r[t]}}):($((function(r){a[r]=n(r)})),a)}}(n)}var vn,Nn=(vn={context:function(){return _.useX()},extend:function(n){r(Z,n)}},un()?new Proxy(r(fn,vn),{get:function(n,r){return r in n?n[r]:Z[r]?ln(r):void 0}}):($((function(n){vn[n]=ln(n)})),r(fn,vn)));export{_ as ctx,Nn as enforce};
@@ -126,7 +126,7 @@ function shape(inputObject, shapeObject) {
126
126
  }
127
127
 
128
128
  // Help needed improving the typings of this file.
129
- // Ideally, we'd be able to extend IShapeObject, but that's not possible.
129
+ // Ideally, we'd be able to extend ShapeObject, but that's not possible.
130
130
  function partial(shapeObject) {
131
131
  var output = {};
132
132
  for (var key in shapeObject) {
@@ -93,7 +93,7 @@
93
93
  return n4s.ctx.run({ value: value }, function () {
94
94
  return defaultToPassing(mapFirst(composites, function (composite, breakout) {
95
95
  /* HACK: Just a small white lie. ~~HELP WANTED~~.
96
- The ideal is that instead of `TLazyRuleRunners` We would simply use `TLazy` to begin with.
96
+ The ideal is that instead of `LazyRuleRunners` We would simply use `Lazy` to begin with.
97
97
  The problem is that lazy rules can't really be passed to this function due to some generic hell
98
98
  so we're limiting it to a small set of functions.
99
99
  */
@@ -104,12 +104,27 @@
104
104
  }));
105
105
  }
106
106
 
107
+ function isNumeric(value) {
108
+ var str = String(value);
109
+ var num = Number(value);
110
+ var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
111
+ return Boolean(result);
112
+ }
113
+
114
+ function numberEquals(value, eq) {
115
+ return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
116
+ }
117
+
107
118
  function lengthEquals(value, arg1) {
108
- return value.length === Number(arg1);
119
+ return numberEquals(value.length, arg1);
120
+ }
121
+
122
+ function greaterThan(value, gt) {
123
+ return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
109
124
  }
110
125
 
111
126
  function longerThan(value, arg1) {
112
- return value.length > Number(arg1);
127
+ return greaterThan(value.length, arg1);
113
128
  }
114
129
 
115
130
  var REQUIRED_COUNT = 1;
@@ -1 +1 @@
1
- "use strict";!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("n4s")):"function"==typeof define&&define.amd?define(["n4s"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).n4s)}(this,(function(n){function e(n,e){function t(n){r=!0,f=n}for(var r=!1,f=null,o=0;o<n.length;o++)if(e(n[o],t,o),r)return f}function t(n,e){var t;return null!==(t=function(n){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];return"function"==typeof n?n.apply(void 0,e):n}(n))&&void 0!==t?t:e}function r(n,e){return n={pass:n},e&&(n.message=e),n}function f(n,e){try{return n.run(e)}catch(n){return r(!1)}}n.enforce.extend({allOf:function(n){for(var o=[],u=1;u<arguments.length;u++)o[u-1]=arguments[u];return t(e(o,(function(e,t){(e=f(e,n)).pass||t(e)})),r(!0))},anyOf:function(n){for(var o=[],u=1;u<arguments.length;u++)o[u-1]=arguments[u];return t(e(o,(function(e,t){(e=f(e,n)).pass&&t(e)})),r(!1))},noneOf:function(n){for(var o=[],u=1;u<arguments.length;u++)o[u-1]=arguments[u];return t(e(o,(function(e,t){f(e,n).pass&&t(r(!1))})),r(!0))},oneOf:function(n){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];var o=[];return e.some((function(e){if(o.length>Number(1))return!1;(e=f(e,n)).pass&&o.push(e)})),r(o.length===Number(1))}})}));
1
+ "use strict";!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("n4s")):"function"==typeof define&&define.amd?define(["n4s"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).n4s)}(this,(function(n){function e(n,e){function r(n){t=!0,u=n}for(var t=!1,u=null,f=0;f<n.length;f++)if(e(n[f],r,f),t)return u}function r(n,e){var r;return null!==(r=function(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return"function"==typeof n?n.apply(void 0,e):n}(n))&&void 0!==r?r:e}function t(n,e){return n={pass:n},e&&(n.message=e),n}function u(n,e){try{return n.run(e)}catch(n){return t(!1)}}function f(n){var e=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(e))}function o(n,e){return f(n)&&f(e)&&Number(n)===Number(e)}n.enforce.extend({allOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return r(e(f,(function(e,r){(e=u(e,n)).pass||r(e)})),t(!0))},anyOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return r(e(f,(function(e,r){(e=u(e,n)).pass&&r(e)})),t(!1))},noneOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return r(e(f,(function(e,r){u(e,n).pass&&r(t(!1))})),t(!0))},oneOf:function(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var i=[];return e.some((function(e){var r=i.length;if(f(r)&&f(1)&&Number(r)>Number(1))return!1;(e=u(e,n)).pass&&i.push(e)})),t(o(i.length,1))}})}));
@@ -127,7 +127,7 @@
127
127
  var isNotNumber = bindNot(isNumber);
128
128
 
129
129
  function lengthEquals(value, arg1) {
130
- return value.length === Number(arg1);
130
+ return numberEquals(value.length, arg1);
131
131
  }
132
132
  var lengthNotEquals = bindNot(lengthEquals);
133
133
 
@@ -207,11 +207,11 @@
207
207
  var isNotValueOf = bindNot(isValueOf);
208
208
 
209
209
  function longerThan(value, arg1) {
210
- return value.length > Number(arg1);
210
+ return greaterThan(value.length, arg1);
211
211
  }
212
212
 
213
213
  function longerThanOrEquals(value, arg1) {
214
- return value.length >= Number(arg1);
214
+ return greaterThanOrEquals(value.length, arg1);
215
215
  }
216
216
 
217
217
  function matches(value, regex) {
@@ -237,11 +237,11 @@
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) {
@@ -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).n4s={})}(this,(function(n){function t(n){return"function"==typeof n}function r(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function e(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function f(n,t){return n===t}function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function c(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}function l(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}function N(n,t){return l(n,t)||c(n,t)}function p(n){return!!Array.isArray(n)}function h(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function v(n,t){return a(n)&&a(t)&&Number(n)<Number(t)}function g(n,t){return l(n,t)||v(n,t)}function d(n,t,r){return N(n,t)&&g(n,r)}function y(n){return i(n)||o(n)&&!n.trim()}function m(n){return!!n===n}function b(n){return"number"==typeof n}function x(n,t){return n.length===Number(t)}function O(n){if(n){if(b(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return x(n,0);if("object"==typeof n)return x(Object.keys(n),0)}return!0}function E(n,t){return n in t}function w(n){return Number.isNaN(n)}function T(n){return!!n}function q(n,t){if(i(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):!!o(t)&&new RegExp(t).test(n)}function j(n,t){return o(n)&&o(t)&&n.startsWith(t)}function P(n){for(var r in ln){var e=ln[r];t(e)&&n(r,e)}}function A(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 B(n,t){var r;return null!==(r=A(n))&&void 0!==r?r:t}function W(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?A(t):t)}function k(){return null}function F(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 I(){try{return t(Proxy)}catch(n){return!1}}function J(n,t){return n={pass:n},t&&(n.message=t),n}function K(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return W(m(n)||n&&m(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),m(n)?J(n):J(n.pass,A.apply(void 0,F([n.message,t,r],e,!1)))}function M(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return W((i=K.apply(void 0,F([Nn.run({value:n},(function(){return r.apply(void 0,F([n],u,!1))})),e,n],u,!1))).pass,O(i.message)?"enforce/".concat(e," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var r={};if(!I())return P((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=ln[r])return t(e,n,r)}});return e}function R(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 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=ln[e];r.push((function(n){return K.apply(void 0,F([o.apply(void 0,F([n],u,!1)),e,n],u,!1))}));var s={run:function(n){return B(R(r,(function(r,e){var u,i=Nn.run({value:n},(function(){return r(n)}));i.pass||e(J(!!i.pass,null!==(u=A(t,n,i.message))&&void 0!==u?u:i.message))})),J(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return I()?s=new Proxy(s,{get:function(t,r){return ln[r]?n(r):t[r]}}):(P((function(t){s[t]=n(t)})),s)}}(n)}var V,X=Object.assign,_=r(e),z=r(u),C=r(i),D=r(s),G=r(f),H=r(a),L=r(l),Q=r(p),Y=r(h),Z=r(d),$=r(y),nn=r(m),tn=r(b),rn=r(x),en=r(O),un=r(E),on=r(w),sn=r(o),fn=r(T),an=r(q),cn=r(S),ln={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:D,doesNotStartWith:r(j),endsWith:s,equals:f,greaterThan:c,greaterThanOrEquals:N,gt:c,gte:N,inside:h,isArray:p,isBetween:d,isBlank:y,isBoolean:m,isEmpty:O,isEven:function(n){return!!a(n)&&0==n%2},isFalsy:fn,isKeyOf:E,isNaN:w,isNegative:function(n){return v(n,0)},isNotArray:Q,isNotBetween:Z,isNotBlank:$,isNotBoolean:nn,isNotEmpty:en,isNotKeyOf:un,isNotNaN:on,isNotNull:_,isNotNullish:C,isNotNumber:tn,isNotNumeric:H,isNotString:sn,isNotUndefined:z,isNotValueOf:an,isNull:e,isNullish:i,isNumber:b,isNumeric:a,isOdd:function(n){return!!a(n)&&0!=n%2},isPositive:function(n){return c(n,0)},isString:o,isTruthy:T,isUndefined:u,isValueOf:q,lengthEquals:x,lengthNotEquals:rn,lessThan:v,lessThanOrEquals:g,longerThan:function(n,t){return n.length>Number(t)},longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:v,lte:g,matches:S,notEquals:G,notInside:Y,notMatches:cn,numberEquals:l,numberNotEquals:L,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:j},Nn=function(n){function t(t,u){var i,o,s=r();return t=X({},s||{},null!==(i=A(n,t,s))&&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 W(e.ctx,B(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?X(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:X(r,{parent:k})}));V={context:function(){return Nn.useX()},extend:function(n){X(ln,n)}},_=I()?new Proxy(X(M,V),{get:function(n,t){return t in n?n[t]:ln[t]?U(t):void 0}}):(P((function(n){V[n]=U(n)})),X(M,V)),n.ctx=Nn,n.enforce=_,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).n4s={})}(this,(function(n){function t(n){return"function"==typeof n}function r(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function e(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function f(n,t){return n===t}function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function c(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}function l(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}function p(n,t){return l(n,t)||c(n,t)}function h(n){return!!Array.isArray(n)}function v(n,t){return!!(h(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function N(n,t){return a(n)&&a(t)&&Number(n)<Number(t)}function g(n,t){return l(n,t)||N(n,t)}function d(n,t,r){return p(n,t)&&g(n,r)}function y(n){return i(n)||o(n)&&!n.trim()}function m(n){return!!n===n}function b(n){return"number"==typeof n}function x(n,t){return l(n.length,t)}function O(n){if(n){if(b(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return x(n,0);if("object"==typeof n)return x(Object.keys(n),0)}return!0}function E(n,t){return n in t}function w(n){return Number.isNaN(n)}function T(n){return!!n}function q(n,t){if(i(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):!!o(t)&&new RegExp(t).test(n)}function j(n,t){return o(n)&&o(t)&&n.startsWith(t)}function P(n){for(var r in ln){var e=ln[r];t(e)&&n(r,e)}}function A(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 B(n,t){var r;return null!==(r=A(n))&&void 0!==r?r:t}function W(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?A(t):t)}function k(){return null}function F(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 I(){try{return t(Proxy)}catch(n){return!1}}function J(n,t){return n={pass:n},t&&(n.message=t),n}function K(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return W(m(n)||n&&m(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),m(n)?J(n):J(n.pass,A.apply(void 0,F([n.message,t,r],e,!1)))}function M(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return W((i=K.apply(void 0,F([pn.run({value:n},(function(){return r.apply(void 0,F([n],u,!1))})),e,n],u,!1))).pass,O(i.message)?"enforce/".concat(e," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var r={};if(!I())return P((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=ln[r])return t(e,n,r)}});return e}function R(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 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=ln[e];r.push((function(n){return K.apply(void 0,F([o.apply(void 0,F([n],u,!1)),e,n],u,!1))}));var s={run:function(n){return B(R(r,(function(r,e){var u,i=pn.run({value:n},(function(){return r(n)}));i.pass||e(J(!!i.pass,null!==(u=A(t,n,i.message))&&void 0!==u?u:i.message))})),J(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return I()?s=new Proxy(s,{get:function(t,r){return ln[r]?n(r):t[r]}}):(P((function(t){s[t]=n(t)})),s)}}(n)}var V,X=Object.assign,_=r(e),z=r(u),C=r(i),D=r(s),G=r(f),H=r(a),L=r(l),Q=r(h),Y=r(v),Z=r(d),$=r(y),nn=r(m),tn=r(b),rn=r(x),en=r(O),un=r(E),on=r(w),sn=r(o),fn=r(T),an=r(q),cn=r(S),ln={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:D,doesNotStartWith:r(j),endsWith:s,equals:f,greaterThan:c,greaterThanOrEquals:p,gt:c,gte:p,inside:v,isArray:h,isBetween:d,isBlank:y,isBoolean:m,isEmpty:O,isEven:function(n){return!!a(n)&&0==n%2},isFalsy:fn,isKeyOf:E,isNaN:w,isNegative:function(n){return N(n,0)},isNotArray:Q,isNotBetween:Z,isNotBlank:$,isNotBoolean:nn,isNotEmpty:en,isNotKeyOf:un,isNotNaN:on,isNotNull:_,isNotNullish:C,isNotNumber:tn,isNotNumeric:H,isNotString:sn,isNotUndefined:z,isNotValueOf:an,isNull:e,isNullish:i,isNumber:b,isNumeric:a,isOdd:function(n){return!!a(n)&&0!=n%2},isPositive:function(n){return c(n,0)},isString:o,isTruthy:T,isUndefined:u,isValueOf:q,lengthEquals:x,lengthNotEquals:rn,lessThan:N,lessThanOrEquals:g,longerThan:function(n,t){return c(n.length,t)},longerThanOrEquals:function(n,t){return p(n.length,t)},lt:N,lte:g,matches:S,notEquals:G,notInside:Y,notMatches:cn,numberEquals:l,numberNotEquals:L,shorterThan:function(n,t){return N(n.length,t)},shorterThanOrEquals:function(n,t){return g(n.length,t)},startsWith:j},pn=function(n){function t(t,u){var i,o,s=r();return t=X({},s||{},null!==(i=A(n,t,s))&&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 W(e.ctx,B(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?X(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:X(r,{parent:k})}));V={context:function(){return pn.useX()},extend:function(n){X(ln,n)}},_=I()?new Proxy(X(M,V),{get:function(n,t){return t in n?n[t]:ln[t]?U(t):void 0}}):(P((function(n){V[n]=U(n)})),X(M,V)),n.ctx=pn,n.enforce=_,Object.defineProperty(n,"__esModule",{value:!0})}));
@@ -130,7 +130,7 @@
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) {
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.1.3",
2
+ "version": "4.1.4",
3
3
  "license": "MIT",
4
4
  "main": "./dist/cjs/n4s.js",
5
5
  "types": "./types/n4s.d.ts",
@@ -10,7 +10,7 @@
10
10
  "release": "vx release"
11
11
  },
12
12
  "dependencies": {
13
- "context": "^2.0.2"
13
+ "context": "^2.0.3"
14
14
  },
15
15
  "module": "./dist/es/n4s.production.js",
16
16
  "exports": {
@@ -2,19 +2,19 @@ type DropFirst<T extends unknown[]> = T extends [
2
2
  unknown,
3
3
  ...infer U
4
4
  ] ? U : never;
5
- type TStringable = string | ((...args: any[]) => string);
6
- type TRuleReturn = boolean | {
5
+ type Stringable = string | ((...args: any[]) => string);
6
+ type RuleReturn = boolean | {
7
7
  pass: boolean;
8
- message?: TStringable;
8
+ message?: Stringable;
9
9
  };
10
- type TRuleDetailedResult = {
10
+ type RuleDetailedResult = {
11
11
  pass: boolean;
12
12
  message?: string;
13
13
  };
14
- type TArgs = any[];
15
- type TBaseRules = typeof baseRules;
16
- type KBaseRules = keyof TBaseRules;
17
- declare function condition(value: any, callback: (value: any) => TRuleReturn): TRuleReturn;
14
+ type Args = any[];
15
+ type BaseRules = typeof baseRules;
16
+ type KBaseRules = keyof BaseRules;
17
+ declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
18
18
  declare function endsWith(value: string, arg1: string): boolean;
19
19
  declare function equals(value: unknown, arg1: unknown): boolean;
20
20
  declare function greaterThan(value: number | string, gt: number | string): boolean;
@@ -113,29 +113,29 @@ declare const baseRules: {
113
113
  shorterThanOrEquals: typeof shorterThanOrEquals;
114
114
  startsWith: typeof startsWith;
115
115
  };
116
- type TRules<E = Record<string, unknown>> = n4s.EnforceCustomMatchers<TRules<E> & E> & Record<string, (...args: TArgs) => TRules<E> & E> & {
117
- [P in KBaseRules]: (...args: DropFirst<Parameters<TBaseRules[P]>> | TArgs) => TRules<E> & E;
116
+ type Rules<E = Record<string, unknown>> = n4s.EnforceCustomMatchers<Rules<E> & E> & Record<string, (...args: Args) => Rules<E> & E> & {
117
+ [P in KBaseRules]: (...args: DropFirst<Parameters<BaseRules[P]>> | Args) => Rules<E> & E;
118
118
  };
119
119
  /* eslint-disable @typescript-eslint/no-namespace, @typescript-eslint/no-empty-interface */
120
120
  declare global {
121
121
  namespace n4s {
122
- interface IRules<E> extends TRules<E> {
122
+ interface IRules<E> extends Rules<E> {
123
123
  }
124
124
  }
125
125
  }
126
- type TLazyRules = n4s.IRules<TLazyRuleMethods>;
127
- type TLazy = TLazyRules & TLazyRuleMethods &
126
+ type LazyRules = n4s.IRules<LazyRuleMethods>;
127
+ type Lazy = LazyRules & LazyRuleMethods &
128
128
  // This is a "catch all" hack to make TS happy while not
129
129
  // losing type hints
130
130
  Record<string, (...args: any[]) => any>;
131
- type TLazyRuleMethods = TLazyRuleRunners & {
132
- message: (message: TLazyMessage) => TLazy;
131
+ type LazyRuleMethods = LazyRuleRunners & {
132
+ message: (message: LazyMessage) => Lazy;
133
133
  };
134
- type TLazyRuleRunners = {
134
+ type LazyRuleRunners = {
135
135
  test: (value: unknown) => boolean;
136
- run: (value: unknown) => TRuleDetailedResult;
136
+ run: (value: unknown) => RuleDetailedResult;
137
137
  };
138
- type TComposeResult = TLazyRuleRunners & ((value: any) => void);
139
- type TLazyMessage = string | ((value: unknown, originalMessage?: TStringable) => string);
140
- declare function compose(...composites: TLazyRuleRunners[]): TComposeResult;
138
+ type ComposeResult = LazyRuleRunners & ((value: any) => void);
139
+ type LazyMessage = string | ((value: unknown, originalMessage?: Stringable) => string);
140
+ declare function compose(...composites: LazyRuleRunners[]): ComposeResult;
141
141
  export { compose as default };
@@ -2,19 +2,19 @@ type DropFirst<T extends unknown[]> = T extends [
2
2
  unknown,
3
3
  ...infer U
4
4
  ] ? U : never;
5
- type TStringable = string | ((...args: any[]) => string);
6
- type TRuleReturn = boolean | {
5
+ type Stringable = string | ((...args: any[]) => string);
6
+ type RuleReturn = boolean | {
7
7
  pass: boolean;
8
- message?: TStringable;
8
+ message?: Stringable;
9
9
  };
10
- type TRuleDetailedResult = {
10
+ type RuleDetailedResult = {
11
11
  pass: boolean;
12
12
  message?: string;
13
13
  };
14
- type TArgs = any[];
15
- type TBaseRules = typeof baseRules;
16
- type KBaseRules = keyof TBaseRules;
17
- declare function condition(value: any, callback: (value: any) => TRuleReturn): TRuleReturn;
14
+ type Args = any[];
15
+ type BaseRules = typeof baseRules;
16
+ type KBaseRules = keyof BaseRules;
17
+ declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
18
18
  declare function endsWith(value: string, arg1: string): boolean;
19
19
  declare function equals(value: unknown, arg1: unknown): boolean;
20
20
  declare function greaterThan(value: number | string, gt: number | string): boolean;
@@ -113,33 +113,33 @@ declare const baseRules: {
113
113
  shorterThanOrEquals: typeof shorterThanOrEquals;
114
114
  startsWith: typeof startsWith;
115
115
  };
116
- type TRules<E = Record<string, unknown>> = n4s.EnforceCustomMatchers<TRules<E> & E> & Record<string, (...args: TArgs) => TRules<E> & E> & {
117
- [P in KBaseRules]: (...args: DropFirst<Parameters<TBaseRules[P]>> | TArgs) => TRules<E> & E;
116
+ type Rules<E = Record<string, unknown>> = n4s.EnforceCustomMatchers<Rules<E> & E> & Record<string, (...args: Args) => Rules<E> & E> & {
117
+ [P in KBaseRules]: (...args: DropFirst<Parameters<BaseRules[P]>> | Args) => Rules<E> & E;
118
118
  };
119
119
  /* eslint-disable @typescript-eslint/no-namespace, @typescript-eslint/no-empty-interface */
120
120
  declare global {
121
121
  namespace n4s {
122
- interface IRules<E> extends TRules<E> {
122
+ interface IRules<E> extends Rules<E> {
123
123
  }
124
124
  }
125
125
  }
126
- type TLazyRules = n4s.IRules<TLazyRuleMethods>;
127
- type TLazy = TLazyRules & TLazyRuleMethods &
126
+ type LazyRules = n4s.IRules<LazyRuleMethods>;
127
+ type Lazy = LazyRules & LazyRuleMethods &
128
128
  // This is a "catch all" hack to make TS happy while not
129
129
  // losing type hints
130
130
  Record<string, (...args: any[]) => any>;
131
- type TLazyRuleMethods = TLazyRuleRunners & {
132
- message: (message: TLazyMessage) => TLazy;
131
+ type LazyRuleMethods = LazyRuleRunners & {
132
+ message: (message: LazyMessage) => Lazy;
133
133
  };
134
- type TLazyRuleRunners = {
134
+ type LazyRuleRunners = {
135
135
  test: (value: unknown) => boolean;
136
- run: (value: unknown) => TRuleDetailedResult;
136
+ run: (value: unknown) => RuleDetailedResult;
137
137
  };
138
- type TLazyMessage = string | ((value: unknown, originalMessage?: TStringable) => string);
139
- declare function allOf(value: unknown, ...rules: TLazy[]): TRuleDetailedResult;
140
- declare function anyOf(value: unknown, ...rules: TLazy[]): TRuleDetailedResult;
141
- declare function noneOf(value: unknown, ...rules: TLazy[]): TRuleDetailedResult;
142
- declare function oneOf(value: unknown, ...rules: TLazy[]): TRuleDetailedResult;
138
+ type LazyMessage = string | ((value: unknown, originalMessage?: Stringable) => string);
139
+ declare function allOf(value: unknown, ...rules: Lazy[]): RuleDetailedResult;
140
+ declare function anyOf(value: unknown, ...rules: Lazy[]): RuleDetailedResult;
141
+ declare function noneOf(value: unknown, ...rules: Lazy[]): RuleDetailedResult;
142
+ declare function oneOf(value: unknown, ...rules: Lazy[]): RuleDetailedResult;
143
143
  declare global {
144
144
  namespace n4s {
145
145
  interface EnforceCustomMatchers<R> {
package/types/n4s.d.ts CHANGED
@@ -10,31 +10,31 @@ type CTXType = {
10
10
  set?: boolean;
11
11
  parent: () => CTXType | null;
12
12
  };
13
- type TEnforceContext = null | {
13
+ type EnforceContext = null | {
14
14
  meta: Record<string, any>;
15
15
  value: any;
16
- parent: () => TEnforceContext;
16
+ parent: () => EnforceContext;
17
17
  };
18
18
  type DropFirst<T extends unknown[]> = T extends [
19
19
  unknown,
20
20
  ...infer U
21
21
  ] ? U : never;
22
- type TStringable = string | ((...args: any[]) => string);
23
- type TRuleReturn = boolean | {
22
+ type Stringable = string | ((...args: any[]) => string);
23
+ type RuleReturn = boolean | {
24
24
  pass: boolean;
25
- message?: TStringable;
25
+ message?: Stringable;
26
26
  };
27
- type TRuleDetailedResult = {
27
+ type RuleDetailedResult = {
28
28
  pass: boolean;
29
29
  message?: string;
30
30
  };
31
- type TArgs = any[];
32
- type TRuleValue = any;
33
- type TRuleBase = (value: TRuleValue, ...args: TArgs) => TRuleReturn;
34
- type TRule = Record<string, TRuleBase>;
35
- type TBaseRules = typeof baseRules;
36
- type KBaseRules = keyof TBaseRules;
37
- declare function condition(value: any, callback: (value: any) => TRuleReturn): TRuleReturn;
31
+ type Args = any[];
32
+ type RuleValue = any;
33
+ type RuleBase = (value: RuleValue, ...args: Args) => RuleReturn;
34
+ type Rule = Record<string, RuleBase>;
35
+ type BaseRules = typeof baseRules;
36
+ type KBaseRules = keyof BaseRules;
37
+ declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
38
38
  declare function endsWith(value: string, arg1: string): boolean;
39
39
  declare function equals(value: unknown, arg1: unknown): boolean;
40
40
  declare function greaterThan(value: number | string, gt: number | string): boolean;
@@ -133,37 +133,37 @@ declare const baseRules: {
133
133
  shorterThanOrEquals: typeof shorterThanOrEquals;
134
134
  startsWith: typeof startsWith;
135
135
  };
136
- type TRules<E = Record<string, unknown>> = n4s.EnforceCustomMatchers<TRules<E> & E> & Record<string, (...args: TArgs) => TRules<E> & E> & {
137
- [P in KBaseRules]: (...args: DropFirst<Parameters<TBaseRules[P]>> | TArgs) => TRules<E> & E;
136
+ type Rules<E = Record<string, unknown>> = n4s.EnforceCustomMatchers<Rules<E> & E> & Record<string, (...args: Args) => Rules<E> & E> & {
137
+ [P in KBaseRules]: (...args: DropFirst<Parameters<BaseRules[P]>> | Args) => Rules<E> & E;
138
138
  };
139
139
  /* eslint-disable @typescript-eslint/no-namespace, @typescript-eslint/no-empty-interface */
140
140
  declare global {
141
141
  namespace n4s {
142
- interface IRules<E> extends TRules<E> {
142
+ interface IRules<E> extends Rules<E> {
143
143
  }
144
144
  }
145
145
  }
146
146
  type IRules = n4s.IRules<Record<string, any>>;
147
- declare function enforceEager(value: TRuleValue): IRules;
148
- type TEnforceEager = typeof enforceEager;
149
- type TLazyRules = n4s.IRules<TLazyRuleMethods>;
150
- type TLazy = TLazyRules & TLazyRuleMethods &
147
+ declare function enforceEager(value: RuleValue): IRules;
148
+ type EnforceEager = typeof enforceEager;
149
+ type LazyRules = n4s.IRules<LazyRuleMethods>;
150
+ type Lazy = LazyRules & LazyRuleMethods &
151
151
  // This is a "catch all" hack to make TS happy while not
152
152
  // losing type hints
153
153
  Record<string, (...args: any[]) => any>;
154
- type TLazyRuleMethods = TLazyRuleRunners & {
155
- message: (message: TLazyMessage) => TLazy;
154
+ type LazyRuleMethods = LazyRuleRunners & {
155
+ message: (message: LazyMessage) => Lazy;
156
156
  };
157
- type TLazyRuleRunners = {
157
+ type LazyRuleRunners = {
158
158
  test: (value: unknown) => boolean;
159
- run: (value: unknown) => TRuleDetailedResult;
159
+ run: (value: unknown) => RuleDetailedResult;
160
160
  };
161
- type TLazyMessage = string | ((value: unknown, originalMessage?: TStringable) => string);
162
- declare const enforce: TEnforce;
163
- type TEnforce = TEnforceMethods & TLazyRules & TEnforceEager;
164
- type TEnforceMethods = {
165
- context: () => TEnforceContext;
166
- extend: (customRules: TRule) => void;
161
+ type LazyMessage = string | ((value: unknown, originalMessage?: Stringable) => string);
162
+ declare const enforce: Enforce;
163
+ type Enforce = EnforceMethods & LazyRules & EnforceEager;
164
+ type EnforceMethods = {
165
+ context: () => EnforceContext;
166
+ extend: (customRules: Rule) => void;
167
167
  };
168
168
  declare global {
169
169
  namespace n4s {
package/types/schema.d.ts CHANGED
@@ -2,19 +2,19 @@ type DropFirst<T extends unknown[]> = T extends [
2
2
  unknown,
3
3
  ...infer U
4
4
  ] ? U : never;
5
- type TStringable = string | ((...args: any[]) => string);
6
- type TRuleReturn = boolean | {
5
+ type Stringable = string | ((...args: any[]) => string);
6
+ type RuleReturn = boolean | {
7
7
  pass: boolean;
8
- message?: TStringable;
8
+ message?: Stringable;
9
9
  };
10
- type TRuleDetailedResult = {
10
+ type RuleDetailedResult = {
11
11
  pass: boolean;
12
12
  message?: string;
13
13
  };
14
- type TArgs = any[];
15
- type TBaseRules = typeof baseRules;
16
- type KBaseRules = keyof TBaseRules;
17
- declare function condition(value: any, callback: (value: any) => TRuleReturn): TRuleReturn;
14
+ type Args = any[];
15
+ type BaseRules = typeof baseRules;
16
+ type KBaseRules = keyof BaseRules;
17
+ declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
18
18
  declare function endsWith(value: string, arg1: string): boolean;
19
19
  declare function equals(value: unknown, arg1: unknown): boolean;
20
20
  declare function greaterThan(value: number | string, gt: number | string): boolean;
@@ -113,37 +113,37 @@ declare const baseRules: {
113
113
  shorterThanOrEquals: typeof shorterThanOrEquals;
114
114
  startsWith: typeof startsWith;
115
115
  };
116
- type TRules<E = Record<string, unknown>> = n4s.EnforceCustomMatchers<TRules<E> & E> & Record<string, (...args: TArgs) => TRules<E> & E> & {
117
- [P in KBaseRules]: (...args: DropFirst<Parameters<TBaseRules[P]>> | TArgs) => TRules<E> & E;
116
+ type Rules<E = Record<string, unknown>> = n4s.EnforceCustomMatchers<Rules<E> & E> & Record<string, (...args: Args) => Rules<E> & E> & {
117
+ [P in KBaseRules]: (...args: DropFirst<Parameters<BaseRules[P]>> | Args) => Rules<E> & E;
118
118
  };
119
119
  /* eslint-disable @typescript-eslint/no-namespace, @typescript-eslint/no-empty-interface */
120
120
  declare global {
121
121
  namespace n4s {
122
- interface IRules<E> extends TRules<E> {
122
+ interface IRules<E> extends Rules<E> {
123
123
  }
124
124
  }
125
125
  }
126
- type TLazyRules = n4s.IRules<TLazyRuleMethods>;
127
- type TLazy = TLazyRules & TLazyRuleMethods &
126
+ type LazyRules = n4s.IRules<LazyRuleMethods>;
127
+ type Lazy = LazyRules & LazyRuleMethods &
128
128
  // This is a "catch all" hack to make TS happy while not
129
129
  // losing type hints
130
130
  Record<string, (...args: any[]) => any>;
131
- type TLazyRuleMethods = TLazyRuleRunners & {
132
- message: (message: TLazyMessage) => TLazy;
131
+ type LazyRuleMethods = LazyRuleRunners & {
132
+ message: (message: LazyMessage) => Lazy;
133
133
  };
134
- type TLazyRuleRunners = {
134
+ type LazyRuleRunners = {
135
135
  test: (value: unknown) => boolean;
136
- run: (value: unknown) => TRuleDetailedResult;
136
+ run: (value: unknown) => RuleDetailedResult;
137
137
  };
138
- type TLazyMessage = string | ((value: unknown, originalMessage?: TStringable) => string);
139
- declare function isArrayOf(inputArray: any[], currentRule: TLazyRuleRunners): TRuleDetailedResult;
140
- interface IShapeObject extends Record<string, any>, Record<string, TLazyRuleRunners> {
138
+ type LazyMessage = string | ((value: unknown, originalMessage?: Stringable) => string);
139
+ declare function isArrayOf(inputArray: any[], currentRule: LazyRuleRunners): RuleDetailedResult;
140
+ interface ShapeObject extends Record<string, any>, Record<string, LazyRuleRunners> {
141
141
  }
142
- declare function loose(inputObject: Record<string, any>, shapeObject: IShapeObject): TRuleDetailedResult;
143
- declare function optional(value: any, ruleChain: TLazy): TRuleDetailedResult;
144
- declare function shape(inputObject: Record<string, any>, shapeObject: IShapeObject): TRuleDetailedResult;
142
+ declare function loose(inputObject: Record<string, any>, shapeObject: ShapeObject): RuleDetailedResult;
143
+ declare function optional(value: any, ruleChain: Lazy): RuleDetailedResult;
144
+ declare function shape(inputObject: Record<string, any>, shapeObject: ShapeObject): RuleDetailedResult;
145
145
  // Help needed improving the typings of this file.
146
- // Ideally, we'd be able to extend IShapeObject, but that's not possible.
146
+ // Ideally, we'd be able to extend ShapeObject, but that's not possible.
147
147
  declare function partial<T extends Record<any, any>>(shapeObject: T): T;
148
148
  declare global {
149
149
  namespace n4s {