n4s 4.1.3 → 4.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/compose.development.js +1 -1
- package/dist/cjs/compounds.development.js +20 -5
- package/dist/cjs/compounds.production.js +1 -1
- package/dist/cjs/n4s.development.js +17 -13
- package/dist/cjs/n4s.production.js +1 -1
- package/dist/cjs/schema.development.js +1 -1
- package/dist/es/compose.development.js +1 -1
- package/dist/es/compounds.development.js +20 -5
- package/dist/es/compounds.production.js +1 -1
- package/dist/es/n4s.development.js +17 -13
- package/dist/es/n4s.production.js +1 -1
- package/dist/es/schema.development.js +1 -1
- package/dist/umd/compose.development.js +1 -1
- package/dist/umd/compounds.development.js +20 -5
- package/dist/umd/compounds.production.js +1 -1
- package/dist/umd/n4s.development.js +17 -13
- package/dist/umd/n4s.production.js +1 -1
- package/dist/umd/schema.development.js +1 -1
- package/package.json +2 -2
- package/types/compose.d.ts +20 -20
- package/types/compounds.d.ts +22 -22
- package/types/n4s.d.ts +30 -30
- package/types/schema.d.ts +24 -24
|
@@ -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 `
|
|
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
|
|
117
|
+
return numberEquals(value.length, arg1);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function greaterThan(value, gt) {
|
|
121
|
+
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
107
122
|
}
|
|
108
123
|
|
|
109
124
|
function longerThan(value, arg1) {
|
|
110
|
-
return value.length
|
|
125
|
+
return greaterThan(value.length, arg1);
|
|
111
126
|
}
|
|
112
127
|
|
|
113
128
|
var REQUIRED_COUNT = 1;
|
|
@@ -118,13 +133,13 @@ function oneOf(value) {
|
|
|
118
133
|
}
|
|
119
134
|
var passing = [];
|
|
120
135
|
rules.some(function (rule) {
|
|
121
|
-
if (longerThan(passing, REQUIRED_COUNT)) {
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
124
136
|
var res = runLazyRule(rule, value);
|
|
125
137
|
if (res.pass) {
|
|
126
138
|
passing.push(res);
|
|
127
139
|
}
|
|
140
|
+
if (longerThan(passing, REQUIRED_COUNT)) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
128
143
|
});
|
|
129
144
|
return ruleReturn(lengthEquals(passing, REQUIRED_COUNT));
|
|
130
145
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var n=require("n4s");function r(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,f=0;f<n.length;f++)if(r(n[f],t,f),u)return e}function t(n){return"function"==typeof n}function u(n,r){var u;return null!==(u=function(n){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];return t(n)?n.apply(void 0,r):n}(n))&&void 0!==u?u:r}function e(n,r){return n={pass:n},r&&(n.message=r),n}function f(){return e(!1)}function o(n){return u(n,f())}function i(n){return u(n,e(!0))}function c(n,r){try{return n.run(r)}catch(n){return f()}}function a(n,r){return n
|
|
1
|
+
"use strict";var n=require("n4s");function r(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,f=0;f<n.length;f++)if(r(n[f],t,f),u)return e}function t(n){return"function"==typeof n}function u(n,r){var u;return null!==(u=function(n){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];return t(n)?n.apply(void 0,r):n}(n))&&void 0!==u?u:r}function e(n,r){return n={pass:n},r&&(n.message=r),n}function f(){return e(!1)}function o(n){return u(n,f())}function i(n){return u(n,e(!0))}function c(n,r){try{return n.run(r)}catch(n){return f()}}function a(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}function s(n,r){return function(n,r){return a(n)&&a(r)&&Number(n)===Number(r)}(n.length,r)}function l(n,r){return function(n,r){return a(n)&&a(r)&&Number(n)>Number(r)}(n.length,r)}n.enforce.extend({allOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return i(r(t,(function(r,t){(r=c(r,n)).pass||t(r)})))},anyOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return o(r(t,(function(r,t){(r=c(r,n)).pass&&t(r)})))},noneOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return i(r(t,(function(r,t){c(r,n).pass&&t(f())})))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var u=[];return r.some((function(r){if((r=c(r,n)).pass&&u.push(r),l(u,1))return!1})),e(s(u,1))}});
|
|
@@ -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
|
|
130
|
+
return numberEquals(value.length, arg1);
|
|
131
131
|
}
|
|
132
132
|
var lengthNotEquals = bindNot(lengthEquals);
|
|
133
133
|
|
|
@@ -144,7 +144,7 @@ function isEmpty(value) {
|
|
|
144
144
|
else if (typeof value === 'object') {
|
|
145
145
|
return lengthEquals(Object.keys(value), 0);
|
|
146
146
|
}
|
|
147
|
-
return
|
|
147
|
+
return false;
|
|
148
148
|
}
|
|
149
149
|
var isNotEmpty = bindNot(isEmpty);
|
|
150
150
|
|
|
@@ -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
|
|
210
|
+
return greaterThan(value.length, arg1);
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
function longerThanOrEquals(value, arg1) {
|
|
214
|
-
return value.length
|
|
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
|
|
240
|
+
return lessThan(value.length, arg1);
|
|
241
241
|
}
|
|
242
242
|
|
|
243
243
|
function shorterThanOrEquals(value, arg1) {
|
|
244
|
-
return value.length
|
|
244
|
+
return lessThanOrEquals(value.length, arg1);
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
function startsWith(value, arg1) {
|
|
@@ -594,15 +594,10 @@ function genEnforce() {
|
|
|
594
594
|
context: function () { return ctx.useX(); },
|
|
595
595
|
extend: function (customRules) {
|
|
596
596
|
assign(baseRules, customRules);
|
|
597
|
+
handleNoProxy(); // TODO: REMOVE when we stop supporting ES5
|
|
597
598
|
}
|
|
598
599
|
};
|
|
599
|
-
|
|
600
|
-
eachEnforceRule(function (ruleName) {
|
|
601
|
-
// Only on the first rule access - start the chain of calls
|
|
602
|
-
target[ruleName] = genEnforceLazy(ruleName);
|
|
603
|
-
});
|
|
604
|
-
return assign(enforceEager, target);
|
|
605
|
-
}
|
|
600
|
+
handleNoProxy();
|
|
606
601
|
return new Proxy(assign(enforceEager, target), {
|
|
607
602
|
get: function (target, key) {
|
|
608
603
|
if (key in target) {
|
|
@@ -615,6 +610,15 @@ function genEnforce() {
|
|
|
615
610
|
return genEnforceLazy(key);
|
|
616
611
|
}
|
|
617
612
|
});
|
|
613
|
+
function handleNoProxy() {
|
|
614
|
+
if (!isProxySupported()) {
|
|
615
|
+
eachEnforceRule(function (ruleName) {
|
|
616
|
+
// Only on the first rule access - start the chain of calls
|
|
617
|
+
target[ruleName] = genEnforceLazy(ruleName);
|
|
618
|
+
});
|
|
619
|
+
return assign(enforceEager, target);
|
|
620
|
+
}
|
|
621
|
+
}
|
|
618
622
|
}
|
|
619
623
|
var enforce = genEnforce();
|
|
620
624
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("context"),r=Object.assign;function t(n){return"function"==typeof n}function e(n){return function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return!n.apply(void 0,r)}}function u(n){return null===n}var i=e(u);function o(n){return void 0===n}var a=e(o);function s(n){return u(n)||o(n)}var f=e(s);function c(n){return String(n)===n}function l(n,r){return c(n)&&c(r)&&n.endsWith(r)}var v=e(l);function N(n,r){return n===r}var p=e(N);function g(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var h=e(g);function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("context"),r=Object.assign;function t(n){return"function"==typeof n}function e(n){return function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return!n.apply(void 0,r)}}function u(n){return null===n}var i=e(u);function o(n){return void 0===n}var a=e(o);function s(n){return u(n)||o(n)}var f=e(s);function c(n){return String(n)===n}function l(n,r){return c(n)&&c(r)&&n.endsWith(r)}var v=e(l);function N(n,r){return n===r}var p=e(N);function g(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var h=e(g);function y(n,r){return g(n)&&g(r)&&Number(n)>Number(r)}function m(n,r){return g(n)&&g(r)&&Number(n)===Number(r)}var d=e(m);function b(n,r){return m(n,r)||y(n,r)}function O(n){return!!Array.isArray(n)}var E=e(O);function x(n,r){return!!(O(r)||c(r)&&c(n))&&-1!==r.indexOf(n)}var q=e(x);function w(n,r){return g(n)&&g(r)&&Number(n)<Number(r)}function S(n,r){return m(n,r)||w(n,r)}function T(n,r,t){return b(n,r)&&S(n,t)}var P=e(T);function A(n){return s(n)||c(n)&&!n.trim()}var B=e(A);function W(n){return!!n===n}var j=e(W);function k(n){return"number"==typeof n}var F=e(k);function I(n,r){return m(n.length,r)}var J=e(I);function K(n){return!n||(k(n)?0===n:function(n,r){return Object.prototype.hasOwnProperty.call(n,r)}(n,"length")?I(n,0):"object"==typeof n&&I(Object.keys(n),0))}var M=e(K),R=function(n){return!!g(n)&&0==n%2};function U(n,r){return n in r}var V=e(U);function _(n){return Number.isNaN(n)}var C=e(_);function X(n){return w(n,0)}var z=function(n){return!!g(n)&&0!=n%2};function D(n){return y(n,0)}var G=e(c);function H(n){return!!n}var L=e(H);function Q(n,r){if(s(r))return!1;for(var t in r)if(r[t]===n)return!0;return!1}var Y=e(Q);function Z(n,r){return y(n.length,r)}function $(n,r){return b(n.length,r)}function nn(n,r){return r instanceof RegExp?r.test(n):!!c(r)&&new RegExp(r).test(n)}var rn=e(nn);function tn(n,r){try{return r(n)}catch(n){return!1}}function en(n,r){return w(n.length,r)}function un(n,r){return S(n.length,r)}function on(n,r){return c(n)&&c(r)&&n.startsWith(r)}var an=e(on);var sn={condition:tn,doesNotEndWith:v,doesNotStartWith:an,endsWith:l,equals:N,greaterThan:y,greaterThanOrEquals:b,gt:y,gte:b,inside:x,isArray:O,isBetween:T,isBlank:A,isBoolean:W,isEmpty:K,isEven:R,isFalsy:L,isKeyOf:U,isNaN:_,isNegative:X,isNotArray:E,isNotBetween:P,isNotBlank:B,isNotBoolean:j,isNotEmpty:M,isNotKeyOf:V,isNotNaN:C,isNotNull:i,isNotNullish:f,isNotNumber:F,isNotNumeric:h,isNotString:G,isNotUndefined:a,isNotValueOf:Y,isNull:u,isNullish:s,isNumber:k,isNumeric:g,isOdd:z,isPositive:D,isString:c,isTruthy:H,isUndefined:o,isValueOf:Q,lengthEquals:I,lengthNotEquals:J,lessThan:w,lessThanOrEquals:S,longerThan:Z,longerThanOrEquals:$,lt:w,lte:S,matches:nn,notEquals:p,notInside:q,notMatches:rn,numberEquals:m,numberNotEquals:d,shorterThan:en,shorterThanOrEquals:un,startsWith:on};function fn(n){return sn[n]}function cn(n){for(var r in sn){var e=fn(r);t(e)&&n(r,e)}}var ln=n.createContext((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return function(n){return n?{value:n.value,meta:n.meta,parent:n.parent}:n}(t)}}):t:r(e,{parent:vn})}));function vn(){return null}function Nn(n,r,t){if(t||2===arguments.length)for(var e,u=0,i=r.length;u<i;u++)!e&&u in r||(e||(e=Array.prototype.slice.call(r,0,u)),e[u]=r[u]);return n.concat(e||Array.prototype.slice.call(r))}function pn(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function gn(n,r){if(!n)throw r instanceof String?r.valueOf():Error(r?pn(r):r)}function hn(){try{return t(Proxy)}catch(n){return!1}}function yn(n,r){return n={pass:n},r&&(n.message=r),n}function mn(n){return function(n,r){var t;return null!==(t=pn(n))&&void 0!==t?t:r}(n,yn(!0))}function dn(n,r,t){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return bn(n),W(n)?yn(n):yn(n.pass,pn.apply(void 0,Nn([n.message,r,t],e,!1)))}function bn(n){gn(W(n)||n&&W(n.pass),"Incorrect return value for rule: "+JSON.stringify(n))}function On(n){function r(r,t,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return gn((i=dn.apply(void 0,Nn([ln.run({value:n},(function(){return t.apply(void 0,Nn([n],u,!1))})),e,n],u,!1))).pass,K(i.message)?"enforce/".concat(e," failed with ").concat(JSON.stringify(n)):new String(i.message)),r}}var t={};if(!hn())return cn((function(n,e){t[n]=r(t,e,n)})),t;var e=new Proxy(t,{get:function(n,t){if(n=fn(t))return r(e,n,t)}});return e}function En(n,r){function t(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(r(n[i],t,i),e)return u}function xn(n){var r,t=[];return function n(e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=fn(e);t.push((function(n){return dn.apply(void 0,Nn([o.apply(void 0,Nn([n],u,!1)),e,n],u,!1))}));var a={run:function(n){return mn(En(t,(function(t,e){var u,i=ln.run({value:n},(function(){return t(n)}));i.pass||e(yn(!!i.pass,null!==(u=pn(r,n,i.message))&&void 0!==u?u:i.message))})))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return hn()?a=new Proxy(a,{get:function(r,t){return fn(t)?n(t):r[t]}}):(cn((function(r){a[r]=n(r)})),a)}}(n)}var qn=function(){function n(){if(!hn())return cn((function(n){t[n]=xn(n)})),r(On,t)}var t={context:function(){return ln.useX()},extend:function(t){r(sn,t),n()}};return n(),new Proxy(r(On,t),{get:function(n,r){return r in n?n[r]:fn(r)?xn(r):void 0}})}();exports.ctx=ln,exports.enforce=qn;
|
|
@@ -130,7 +130,7 @@ function shape(inputObject, shapeObject) {
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
// Help needed improving the typings of this file.
|
|
133
|
-
// Ideally, we'd be able to extend
|
|
133
|
+
// Ideally, we'd be able to extend ShapeObject, but that's not possible.
|
|
134
134
|
function partial(shapeObject) {
|
|
135
135
|
var output = {};
|
|
136
136
|
for (var key in shapeObject) {
|
|
@@ -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 `
|
|
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
|
|
115
|
+
return numberEquals(value.length, arg1);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function greaterThan(value, gt) {
|
|
119
|
+
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
105
120
|
}
|
|
106
121
|
|
|
107
122
|
function longerThan(value, arg1) {
|
|
108
|
-
return value.length
|
|
123
|
+
return greaterThan(value.length, arg1);
|
|
109
124
|
}
|
|
110
125
|
|
|
111
126
|
var REQUIRED_COUNT = 1;
|
|
@@ -116,13 +131,13 @@ function oneOf(value) {
|
|
|
116
131
|
}
|
|
117
132
|
var passing = [];
|
|
118
133
|
rules.some(function (rule) {
|
|
119
|
-
if (longerThan(passing, REQUIRED_COUNT)) {
|
|
120
|
-
return false;
|
|
121
|
-
}
|
|
122
134
|
var res = runLazyRule(rule, value);
|
|
123
135
|
if (res.pass) {
|
|
124
136
|
passing.push(res);
|
|
125
137
|
}
|
|
138
|
+
if (longerThan(passing, REQUIRED_COUNT)) {
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
126
141
|
});
|
|
127
142
|
return ruleReturn(lengthEquals(passing, REQUIRED_COUNT));
|
|
128
143
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{enforce as n}from"n4s";function r(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,
|
|
1
|
+
import{enforce as n}from"n4s";function r(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,o=0;o<n.length;o++)if(r(n[o],t,o),u)return e}function t(n,r){var t;return null!==(t=function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];return"function"==typeof n?n.apply(void 0,r):n}(n))&&void 0!==t?t:r}function u(n,r){return n={pass:n},r&&(n.message=r),n}function e(n,r){try{return n.run(r)}catch(n){return u(!1)}}function o(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}function f(n,r){return o(n)&&o(r)&&Number(n)===Number(r)}n.extend({allOf:function(n){for(var o=[],f=1;f<arguments.length;f++)o[f-1]=arguments[f];return t(r(o,(function(r,t){(r=e(r,n)).pass||t(r)})),u(!0))},anyOf:function(n){for(var o=[],f=1;f<arguments.length;f++)o[f-1]=arguments[f];return t(r(o,(function(r,t){(r=e(r,n)).pass&&t(r)})),u(!1))},noneOf:function(n){for(var o=[],f=1;f<arguments.length;f++)o[f-1]=arguments[f];return t(r(o,(function(r,t){e(r,n).pass&&t(u(!1))})),u(!0))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var i=[];return r.some((function(r){if((r=e(r,n)).pass&&i.push(r),o(r=i.length)&&o(1)&&Number(r)>Number(1))return!1})),u(f(i.length,1))}});
|
|
@@ -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
|
|
126
|
+
return numberEquals(value.length, arg1);
|
|
127
127
|
}
|
|
128
128
|
var lengthNotEquals = bindNot(lengthEquals);
|
|
129
129
|
|
|
@@ -140,7 +140,7 @@ function isEmpty(value) {
|
|
|
140
140
|
else if (typeof value === 'object') {
|
|
141
141
|
return lengthEquals(Object.keys(value), 0);
|
|
142
142
|
}
|
|
143
|
-
return
|
|
143
|
+
return false;
|
|
144
144
|
}
|
|
145
145
|
var isNotEmpty = bindNot(isEmpty);
|
|
146
146
|
|
|
@@ -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
|
|
206
|
+
return greaterThan(value.length, arg1);
|
|
207
207
|
}
|
|
208
208
|
|
|
209
209
|
function longerThanOrEquals(value, arg1) {
|
|
210
|
-
return value.length
|
|
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
|
|
236
|
+
return lessThan(value.length, arg1);
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
function shorterThanOrEquals(value, arg1) {
|
|
240
|
-
return value.length
|
|
240
|
+
return lessThanOrEquals(value.length, arg1);
|
|
241
241
|
}
|
|
242
242
|
|
|
243
243
|
function startsWith(value, arg1) {
|
|
@@ -590,15 +590,10 @@ function genEnforce() {
|
|
|
590
590
|
context: function () { return ctx.useX(); },
|
|
591
591
|
extend: function (customRules) {
|
|
592
592
|
assign(baseRules, customRules);
|
|
593
|
+
handleNoProxy(); // TODO: REMOVE when we stop supporting ES5
|
|
593
594
|
}
|
|
594
595
|
};
|
|
595
|
-
|
|
596
|
-
eachEnforceRule(function (ruleName) {
|
|
597
|
-
// Only on the first rule access - start the chain of calls
|
|
598
|
-
target[ruleName] = genEnforceLazy(ruleName);
|
|
599
|
-
});
|
|
600
|
-
return assign(enforceEager, target);
|
|
601
|
-
}
|
|
596
|
+
handleNoProxy();
|
|
602
597
|
return new Proxy(assign(enforceEager, target), {
|
|
603
598
|
get: function (target, key) {
|
|
604
599
|
if (key in target) {
|
|
@@ -611,6 +606,15 @@ function genEnforce() {
|
|
|
611
606
|
return genEnforceLazy(key);
|
|
612
607
|
}
|
|
613
608
|
});
|
|
609
|
+
function handleNoProxy() {
|
|
610
|
+
if (!isProxySupported()) {
|
|
611
|
+
eachEnforceRule(function (ruleName) {
|
|
612
|
+
// Only on the first rule access - start the chain of calls
|
|
613
|
+
target[ruleName] = genEnforceLazy(ruleName);
|
|
614
|
+
});
|
|
615
|
+
return assign(enforceEager, target);
|
|
616
|
+
}
|
|
617
|
+
}
|
|
614
618
|
}
|
|
615
619
|
var enforce = genEnforce();
|
|
616
620
|
|
|
@@ -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
|
|
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){return!n||(k(n)?0===n:Object.prototype.hasOwnProperty.call(n,"length")?I(n,0):"object"==typeof n&&I(Object.keys(n),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=function(){function n(){if(!un())return $((function(n){t[n]=ln(n)})),r(fn,t)}var t={context:function(){return _.useX()},extend:function(t){r(Z,t),n()}};return n(),new Proxy(r(fn,t),{get:function(n,r){return r in n?n[r]:Z[r]?ln(r):void 0}})}();export{_ as ctx,vn 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
|
|
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 `
|
|
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
|
|
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
|
|
127
|
+
return greaterThan(value.length, arg1);
|
|
113
128
|
}
|
|
114
129
|
|
|
115
130
|
var REQUIRED_COUNT = 1;
|
|
@@ -120,13 +135,13 @@
|
|
|
120
135
|
}
|
|
121
136
|
var passing = [];
|
|
122
137
|
rules.some(function (rule) {
|
|
123
|
-
if (longerThan(passing, REQUIRED_COUNT)) {
|
|
124
|
-
return false;
|
|
125
|
-
}
|
|
126
138
|
var res = runLazyRule(rule, value);
|
|
127
139
|
if (res.pass) {
|
|
128
140
|
passing.push(res);
|
|
129
141
|
}
|
|
142
|
+
if (longerThan(passing, REQUIRED_COUNT)) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
130
145
|
});
|
|
131
146
|
return ruleReturn(lengthEquals(passing, REQUIRED_COUNT));
|
|
132
147
|
}
|
|
@@ -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,
|
|
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,u=n}for(var r=!1,u=null,f=0;f<n.length;f++)if(e(n[f],t,f),r)return u}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 u(n,e){try{return n.run(e)}catch(n){return r(!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 t(e(f,(function(e,t){(e=u(e,n)).pass||t(e)})),r(!0))},anyOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return t(e(f,(function(e,t){(e=u(e,n)).pass&&t(e)})),r(!1))},noneOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return t(e(f,(function(e,t){u(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 i=[];return e.some((function(e){if((e=u(e,n)).pass&&i.push(e),f(e=i.length)&&f(1)&&Number(e)>Number(1))return!1})),r(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
|
|
130
|
+
return numberEquals(value.length, arg1);
|
|
131
131
|
}
|
|
132
132
|
var lengthNotEquals = bindNot(lengthEquals);
|
|
133
133
|
|
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
else if (typeof value === 'object') {
|
|
145
145
|
return lengthEquals(Object.keys(value), 0);
|
|
146
146
|
}
|
|
147
|
-
return
|
|
147
|
+
return false;
|
|
148
148
|
}
|
|
149
149
|
var isNotEmpty = bindNot(isEmpty);
|
|
150
150
|
|
|
@@ -207,11 +207,11 @@
|
|
|
207
207
|
var isNotValueOf = bindNot(isValueOf);
|
|
208
208
|
|
|
209
209
|
function longerThan(value, arg1) {
|
|
210
|
-
return value.length
|
|
210
|
+
return greaterThan(value.length, arg1);
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
function longerThanOrEquals(value, arg1) {
|
|
214
|
-
return value.length
|
|
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
|
|
240
|
+
return lessThan(value.length, arg1);
|
|
241
241
|
}
|
|
242
242
|
|
|
243
243
|
function shorterThanOrEquals(value, arg1) {
|
|
244
|
-
return value.length
|
|
244
|
+
return lessThanOrEquals(value.length, arg1);
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
function startsWith(value, arg1) {
|
|
@@ -644,15 +644,10 @@
|
|
|
644
644
|
context: function () { return ctx.useX(); },
|
|
645
645
|
extend: function (customRules) {
|
|
646
646
|
assign(baseRules, customRules);
|
|
647
|
+
handleNoProxy(); // TODO: REMOVE when we stop supporting ES5
|
|
647
648
|
}
|
|
648
649
|
};
|
|
649
|
-
|
|
650
|
-
eachEnforceRule(function (ruleName) {
|
|
651
|
-
// Only on the first rule access - start the chain of calls
|
|
652
|
-
target[ruleName] = genEnforceLazy(ruleName);
|
|
653
|
-
});
|
|
654
|
-
return assign(enforceEager, target);
|
|
655
|
-
}
|
|
650
|
+
handleNoProxy();
|
|
656
651
|
return new Proxy(assign(enforceEager, target), {
|
|
657
652
|
get: function (target, key) {
|
|
658
653
|
if (key in target) {
|
|
@@ -665,6 +660,15 @@
|
|
|
665
660
|
return genEnforceLazy(key);
|
|
666
661
|
}
|
|
667
662
|
});
|
|
663
|
+
function handleNoProxy() {
|
|
664
|
+
if (!isProxySupported()) {
|
|
665
|
+
eachEnforceRule(function (ruleName) {
|
|
666
|
+
// Only on the first rule access - start the chain of calls
|
|
667
|
+
target[ruleName] = genEnforceLazy(ruleName);
|
|
668
|
+
});
|
|
669
|
+
return assign(enforceEager, target);
|
|
670
|
+
}
|
|
671
|
+
}
|
|
668
672
|
}
|
|
669
673
|
var enforce = genEnforce();
|
|
670
674
|
|
|
@@ -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
|
|
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 v(n){return!!Array.isArray(n)}function h(n,t){return!!(v(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){return!n||(b(n)?0===n:Object.prototype.hasOwnProperty.call(n,"length")?x(n,0):"object"==typeof n&&x(Object.keys(n),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 cn){var e=cn[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([ln.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=cn[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=cn[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=ln.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 cn[r]?n(r):t[r]}}):(P((function(t){s[t]=n(t)})),s)}}(n)}var V=Object.assign,X=r(e),_=r(u),z=r(i),C=r(s),D=r(f),G=r(a),H=r(l),L=r(v),Q=r(h),Y=r(d),Z=r(y),$=r(m),nn=r(b),tn=r(x),rn=r(O),en=r(E),un=r(w),on=r(o),sn=r(T),fn=r(q),an=r(S),cn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:C,doesNotStartWith:r(j),endsWith:s,equals:f,greaterThan:c,greaterThanOrEquals:p,gt:c,gte:p,inside:h,isArray:v,isBetween:d,isBlank:y,isBoolean:m,isEmpty:O,isEven:function(n){return!!a(n)&&0==n%2},isFalsy:sn,isKeyOf:E,isNaN:w,isNegative:function(n){return N(n,0)},isNotArray:L,isNotBetween:Y,isNotBlank:Z,isNotBoolean:$,isNotEmpty:rn,isNotKeyOf:en,isNotNaN:un,isNotNull:X,isNotNullish:z,isNotNumber:nn,isNotNumeric:G,isNotString:on,isNotUndefined:_,isNotValueOf:fn,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:tn,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:D,notInside:Q,notMatches:an,numberEquals:l,numberNotEquals:H,shorterThan:function(n,t){return N(n.length,t)},shorterThanOrEquals:function(n,t){return g(n.length,t)},startsWith:j},ln=function(n){function t(t,u){var i,o,s=r();return t=V({},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?V(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:V(r,{parent:k})}));X=function(){function n(){if(!I())return P((function(n){t[n]=U(n)})),V(M,t)}var t={context:function(){return ln.useX()},extend:function(t){V(cn,t),n()}};return n(),new Proxy(V(M,t),{get:function(n,t){return t in n?n[t]:cn[t]?U(t):void 0}})}(),n.ctx=ln,n.enforce=X,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
|
|
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.
|
|
2
|
+
"version": "4.1.6",
|
|
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.
|
|
13
|
+
"context": "^2.0.5"
|
|
14
14
|
},
|
|
15
15
|
"module": "./dist/es/n4s.production.js",
|
|
16
16
|
"exports": {
|
package/types/compose.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
|
|
6
|
-
type
|
|
5
|
+
type Stringable = string | ((...args: any[]) => string);
|
|
6
|
+
type RuleReturn = boolean | {
|
|
7
7
|
pass: boolean;
|
|
8
|
-
message?:
|
|
8
|
+
message?: Stringable;
|
|
9
9
|
};
|
|
10
|
-
type
|
|
10
|
+
type RuleDetailedResult = {
|
|
11
11
|
pass: boolean;
|
|
12
12
|
message?: string;
|
|
13
13
|
};
|
|
14
|
-
type
|
|
15
|
-
type
|
|
16
|
-
type KBaseRules = keyof
|
|
17
|
-
declare function condition(value: any, callback: (value: any) =>
|
|
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
|
|
117
|
-
[P in KBaseRules]: (...args: DropFirst<Parameters<
|
|
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
|
|
122
|
+
interface IRules<E> extends Rules<E> {
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
type
|
|
127
|
-
type
|
|
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
|
|
132
|
-
message: (message:
|
|
131
|
+
type LazyRuleMethods = LazyRuleRunners & {
|
|
132
|
+
message: (message: LazyMessage) => Lazy;
|
|
133
133
|
};
|
|
134
|
-
type
|
|
134
|
+
type LazyRuleRunners = {
|
|
135
135
|
test: (value: unknown) => boolean;
|
|
136
|
-
run: (value: unknown) =>
|
|
136
|
+
run: (value: unknown) => RuleDetailedResult;
|
|
137
137
|
};
|
|
138
|
-
type
|
|
139
|
-
type
|
|
140
|
-
declare function compose(...composites:
|
|
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 };
|
package/types/compounds.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
|
|
6
|
-
type
|
|
5
|
+
type Stringable = string | ((...args: any[]) => string);
|
|
6
|
+
type RuleReturn = boolean | {
|
|
7
7
|
pass: boolean;
|
|
8
|
-
message?:
|
|
8
|
+
message?: Stringable;
|
|
9
9
|
};
|
|
10
|
-
type
|
|
10
|
+
type RuleDetailedResult = {
|
|
11
11
|
pass: boolean;
|
|
12
12
|
message?: string;
|
|
13
13
|
};
|
|
14
|
-
type
|
|
15
|
-
type
|
|
16
|
-
type KBaseRules = keyof
|
|
17
|
-
declare function condition(value: any, callback: (value: any) =>
|
|
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
|
|
117
|
-
[P in KBaseRules]: (...args: DropFirst<Parameters<
|
|
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
|
|
122
|
+
interface IRules<E> extends Rules<E> {
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
type
|
|
127
|
-
type
|
|
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
|
|
132
|
-
message: (message:
|
|
131
|
+
type LazyRuleMethods = LazyRuleRunners & {
|
|
132
|
+
message: (message: LazyMessage) => Lazy;
|
|
133
133
|
};
|
|
134
|
-
type
|
|
134
|
+
type LazyRuleRunners = {
|
|
135
135
|
test: (value: unknown) => boolean;
|
|
136
|
-
run: (value: unknown) =>
|
|
136
|
+
run: (value: unknown) => RuleDetailedResult;
|
|
137
137
|
};
|
|
138
|
-
type
|
|
139
|
-
declare function allOf(value: unknown, ...rules:
|
|
140
|
-
declare function anyOf(value: unknown, ...rules:
|
|
141
|
-
declare function noneOf(value: unknown, ...rules:
|
|
142
|
-
declare function oneOf(value: unknown, ...rules:
|
|
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
|
|
13
|
+
type EnforceContext = null | {
|
|
14
14
|
meta: Record<string, any>;
|
|
15
15
|
value: any;
|
|
16
|
-
parent: () =>
|
|
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
|
|
23
|
-
type
|
|
22
|
+
type Stringable = string | ((...args: any[]) => string);
|
|
23
|
+
type RuleReturn = boolean | {
|
|
24
24
|
pass: boolean;
|
|
25
|
-
message?:
|
|
25
|
+
message?: Stringable;
|
|
26
26
|
};
|
|
27
|
-
type
|
|
27
|
+
type RuleDetailedResult = {
|
|
28
28
|
pass: boolean;
|
|
29
29
|
message?: string;
|
|
30
30
|
};
|
|
31
|
-
type
|
|
32
|
-
type
|
|
33
|
-
type
|
|
34
|
-
type
|
|
35
|
-
type
|
|
36
|
-
type KBaseRules = keyof
|
|
37
|
-
declare function condition(value: any, callback: (value: any) =>
|
|
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
|
|
137
|
-
[P in KBaseRules]: (...args: DropFirst<Parameters<
|
|
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
|
|
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:
|
|
148
|
-
type
|
|
149
|
-
type
|
|
150
|
-
type
|
|
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
|
|
155
|
-
message: (message:
|
|
154
|
+
type LazyRuleMethods = LazyRuleRunners & {
|
|
155
|
+
message: (message: LazyMessage) => Lazy;
|
|
156
156
|
};
|
|
157
|
-
type
|
|
157
|
+
type LazyRuleRunners = {
|
|
158
158
|
test: (value: unknown) => boolean;
|
|
159
|
-
run: (value: unknown) =>
|
|
159
|
+
run: (value: unknown) => RuleDetailedResult;
|
|
160
160
|
};
|
|
161
|
-
type
|
|
162
|
-
declare const enforce:
|
|
163
|
-
type
|
|
164
|
-
type
|
|
165
|
-
context: () =>
|
|
166
|
-
extend: (customRules:
|
|
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
|
|
6
|
-
type
|
|
5
|
+
type Stringable = string | ((...args: any[]) => string);
|
|
6
|
+
type RuleReturn = boolean | {
|
|
7
7
|
pass: boolean;
|
|
8
|
-
message?:
|
|
8
|
+
message?: Stringable;
|
|
9
9
|
};
|
|
10
|
-
type
|
|
10
|
+
type RuleDetailedResult = {
|
|
11
11
|
pass: boolean;
|
|
12
12
|
message?: string;
|
|
13
13
|
};
|
|
14
|
-
type
|
|
15
|
-
type
|
|
16
|
-
type KBaseRules = keyof
|
|
17
|
-
declare function condition(value: any, callback: (value: any) =>
|
|
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
|
|
117
|
-
[P in KBaseRules]: (...args: DropFirst<Parameters<
|
|
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
|
|
122
|
+
interface IRules<E> extends Rules<E> {
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
type
|
|
127
|
-
type
|
|
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
|
|
132
|
-
message: (message:
|
|
131
|
+
type LazyRuleMethods = LazyRuleRunners & {
|
|
132
|
+
message: (message: LazyMessage) => Lazy;
|
|
133
133
|
};
|
|
134
|
-
type
|
|
134
|
+
type LazyRuleRunners = {
|
|
135
135
|
test: (value: unknown) => boolean;
|
|
136
|
-
run: (value: unknown) =>
|
|
136
|
+
run: (value: unknown) => RuleDetailedResult;
|
|
137
137
|
};
|
|
138
|
-
type
|
|
139
|
-
declare function isArrayOf(inputArray: any[], currentRule:
|
|
140
|
-
interface
|
|
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:
|
|
143
|
-
declare function optional(value: any, ruleChain:
|
|
144
|
-
declare function shape(inputObject: Record<string, any>, shapeObject:
|
|
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
|
|
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 {
|