n4s 4.0.0-next-084233 → 4.1.1-dev-950c8e

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/CHANGELOG.md CHANGED
@@ -4,76 +4,22 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## 4.0.0 - 2021-12-20
8
- ### Changed or removed
9
- - b5a0108 breaking(vest): remove test.each (ealush)
10
- - 7c43eab major(context): used named export in context (ealush)
11
- - e8652bc breaking(vest, enforce): prepare next major (ealush)
12
- - dab8e00 breaking(vest, enforce): prepare next major (ealush)
7
+ ## 4.0.0 2021-12-24
13
8
 
14
- ### Added
15
- - b0a9a14 feat(vest): use key prop to retain test state after reorder (#732) (Evyatar)
16
- - 49e601a feat(n4s): enforce.compose (ealush)
17
- - 2b902cb added(n4s): add custom message support to lazy enforcements (undefined)
18
- - 220127b added(n4s): partial rule modifier (undefined)
19
- - b5ce72d feat(n4s): context propagation within enforce (undefined)
20
- - 651de44 feat(n4s): optional (undefined)
21
- - 516ff54 feat(n4s): isArrayOf (undefined)
22
- - 32fe8a5 feat(n4s): add shape and loose validations (undefined)
23
-
24
- ### Fixed and improved
25
- - 1384c08 fix(vest): only.group works in conjunction with only (#734) (Evyatar)
26
- - 7daf6d2 rule(n4s): add isNullish rule, improve isBlank (ealush)
27
- - 825e74b types(n4s): fix proxy type (ealush)
28
- - ddceca7 patch(n4s): improve partial support (ealush)
29
- - d0421dc chore(n4s): add plugins directory (ealush)
30
- - 9f9b970 vx: improve package.json generation (ealush)
31
- - 0370fc1 n4s: extract non-required modules (ealush)
32
- - 03ba92c vx: support namespaced exports (ealush)
33
- - 38a54ae vx: support installing of local packages (ealush)
34
- - 7baedf2 n4s: use named export in entry (ealush)
35
- - 366001b patch(vest): better handling of skipped async tests (ealush)
36
- - 5e9194f vx: add next release process (ealush)
37
- - 7473483 hack(n4s): use 'any' as the input for compose (ealush)
38
- - 8b30b66 patch(vest): make compose an external export (ealush)
39
- - fe83e88 patch: Some cleanups (ealush)
40
- - 780c5b7 types(n4s): Allow adding types for custom matchers (ealush)
41
- - 94e00a8 patch(vest): Add isolate module for containing re-orders (ealush)
42
- - bed7040 vx: add back to workspace (ealush)
43
- - aae250a patch(vest): Throw error when tests are called in the wrong order (ealush)
44
- - f2d458d update build artifacts (ealush)
45
- - dc99d94 patch: shorten isBlank (ealush)
46
- - package.json
47
- - packages/anyone/package.json
48
- - dbb836e patch: simplify fieldname comparison (ealush)
49
- - 3fe2f21 chore: cleanups (ealush)
50
- - .eslintrc.js
51
- - 149aab3 add(n4s): enforce.condition (ealush)
52
- - packages/anyone/README.md
53
- - package.json
54
- - d786b34 fix(n4s): make sure oneOf correctly validates single case (ealush)
55
- - 13830b9 types(n4s): simplify the types for (ealush)
56
- - packages/anyone/package.json
57
- - 40ef071 chore: cleanup residue (undefined)
58
- - eeac20e chore: remove duplicate types (undefined)
59
- - e4e2a80 tests(n4s): add paritla tests (undefined)
60
- - packages/anyone/package.json
61
- - 4d88c04 patch: add nodejs exports (undefined)
62
- - 6e57aa1 patch: remove unused exports (undefined)
63
- - 1dddaf4 patch(n4s): improve types for rule chaining (undefined)
64
- - packages/anyone/package.json
65
- - 97175f1 patch: simplify proxy test/run assignment (undefined)
66
- - 39b92f1 patch: enable enforce in es5 environments (undefined)
67
- - 26af06b chore: reduce complexity, remove all lint errors (undefined)
68
- - packages/anyone/.npmignore
69
- - .github/PULL_REQUEST_TEMPLATE.md
70
- - 5be986d chore: cleanup unused code (ealush)
71
- - ba68539 lint: handling lint of all packages (ealush)
72
- - .gitignore
73
- - cca5130 patch(n4s): add ruleReturn default values (ealush)
74
- - 75306ff fix(n4s): make enforce compound runners fall back to correct response (ealush)
75
- - 4751584 fix(n4s): make enforce chaining work (ealush)
76
- - 73b28a1 chore: some lint fixes (ealush)
9
+ - 7daf6d2 rule(n4s): add isNullish rule, improve isBlank (ealush)
10
+ - ddceca7 patch(n4s): improve partial support (ealush)
11
+ - 0370fc1 n4s: extract non-required modules (ealush)
12
+ - 7baedf2 n4s: use named export in entry (ealush)
13
+ - 780c5b7 types(n4s): Allow adding types for custom matchers (ealush)
14
+ - 149aab3 add(n4s): enforce.condition (ealush)
15
+ - d786b34 fix(n4s): make sure oneOf correctly validates single case (ealush)
16
+ - 49e601a feat(n4s): enforce.compose (ealush)
17
+ - 1dddaf4 patch(n4s): improve types for rule chaining (undefined)
18
+ - b5ce72d feat(n4s): context propagation within enforce (undefined)
19
+ - 32fe8a5 feat(n4s): add shape and loose validations (undefined)
20
+ - 39b92f1 patch: enable enforce in es5 environments (undefined)
21
+ - 75306ff fix(n4s): make enforce compound runners fall back to correct response (ealush)
22
+ - 4751584 fix(n4s): make enforce chaining work (ealush)
77
23
 
78
24
  ## 3.1.0 - 2021-08-06
79
25
 
@@ -149,6 +149,11 @@ var isEven = function (value) {
149
149
  return false;
150
150
  };
151
151
 
152
+ function isKeyOf(key, obj) {
153
+ return key in obj;
154
+ }
155
+ var isNotKeyOf = bindNot(isKeyOf);
156
+
152
157
  function isNaN$1(value) {
153
158
  return Number.isNaN(value);
154
159
  }
@@ -179,6 +184,19 @@ function isTruthy(value) {
179
184
  }
180
185
  var isFalsy = bindNot(isTruthy);
181
186
 
187
+ function isValueOf(value, objectToCheck) {
188
+ if (isNullish(objectToCheck)) {
189
+ return false;
190
+ }
191
+ for (var key in objectToCheck) {
192
+ if (objectToCheck[key] === value) {
193
+ return true;
194
+ }
195
+ }
196
+ return false;
197
+ }
198
+ var isNotValueOf = bindNot(isValueOf);
199
+
182
200
  function lessThan(value, lt) {
183
201
  return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
184
202
  }
@@ -251,6 +269,7 @@ function rules() {
251
269
  isEmpty: isEmpty,
252
270
  isEven: isEven,
253
271
  isFalsy: isFalsy,
272
+ isKeyOf: isKeyOf,
254
273
  isNaN: isNaN$1,
255
274
  isNegative: isNegative,
256
275
  isNotArray: isNotArray,
@@ -258,6 +277,7 @@ function rules() {
258
277
  isNotBlank: isNotBlank,
259
278
  isNotBoolean: isNotBoolean,
260
279
  isNotEmpty: isNotEmpty,
280
+ isNotKeyOf: isNotKeyOf,
261
281
  isNotNaN: isNotNaN,
262
282
  isNotNull: isNotNull,
263
283
  isNotNullish: isNotNullish,
@@ -265,6 +285,7 @@ function rules() {
265
285
  isNotNumeric: isNotNumeric,
266
286
  isNotString: isNotString,
267
287
  isNotUndefined: isNotUndefined,
288
+ isNotValueOf: isNotValueOf,
268
289
  isNull: isNull,
269
290
  isNullish: isNullish,
270
291
  isNumber: isNumber,
@@ -274,6 +295,7 @@ function rules() {
274
295
  isString: isStringValue,
275
296
  isTruthy: isTruthy,
276
297
  isUndefined: isUndefined,
298
+ isValueOf: isValueOf,
277
299
  lengthEquals: lengthEquals,
278
300
  lengthNotEquals: lengthNotEquals,
279
301
  lessThan: lessThan,
@@ -361,7 +383,7 @@ function __spreadArray(to, from, pack) {
361
383
  ar[i] = from[i];
362
384
  }
363
385
  }
364
- return to.concat(ar || from);
386
+ return to.concat(ar || Array.prototype.slice.call(from));
365
387
  }
366
388
 
367
389
  function optionalFunctionValue(value) {
@@ -581,7 +603,7 @@ function genEnforce() {
581
603
  // Only on the first rule access - start the chain of calls
582
604
  target[ruleName] = genEnforceLazy(ruleName);
583
605
  });
584
- return target;
606
+ return assign(enforceEager, target);
585
607
  }
586
608
  return new Proxy(assign(enforceEager, target), {
587
609
  get: function (target, key) {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("context"),r=Object.assign;function t(n){return"function"==typeof n}function e(n){return function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return!n.apply(void 0,r)}}function u(n){return null===n}var i=e(u);function o(n){return void 0===n}var a=e(o);function s(n){return u(n)||o(n)}var f=e(s);function c(n){return String(n)===n}function l(n,r){return c(n)&&c(r)&&n.endsWith(r)}var v=e(l);function N(n,r){return n===r}var h=e(N);function p(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var g=e(p);function m(n,r){return p(n)&&p(r)&&Number(n)>Number(r)}function y(n,r){return p(n)&&p(r)&&Number(n)>=Number(r)}function d(n){return!!Array.isArray(n)}var b=e(d);function E(n,r){return!!(d(r)||c(r)&&c(n))&&-1!==r.indexOf(n)}var x=e(E);function O(n,r){return p(n)&&p(r)&&Number(n)<=Number(r)}function q(n,r,t){return y(n,r)&&O(n,t)}var w=e(q);function T(n){return s(n)||c(n)&&!n.trim()}var P=e(T);function S(n){return!!n===n}var B=e(S);function W(n){return"number"==typeof n}var j=e(W);function A(n,r){return n.length===Number(r)}var k=e(A);function F(n){if(n){if(W(n))return 0===n;if(function(n,r){return Object.prototype.hasOwnProperty.call(n,r)}(n,"length"))return A(n,0);if("object"==typeof n)return A(Object.keys(n),0)}return!0}var I=e(F),J=function(n){return!!p(n)&&0==n%2};function M(n){return Number.isNaN(n)}var R=e(M);function U(n){return!!p(n)&&0>Number(n)}var _=e(U),C=function(n){return!!p(n)&&0!=n%2},X=e(c);function z(n){return!!n}var D=e(z);function G(n,r){return p(n)&&p(r)&&Number(n)<Number(r)}function H(n,r){return n.length>Number(r)}function K(n,r){return n.length>=Number(r)}function L(n,r){return r instanceof RegExp?r.test(n):!!c(r)&&new RegExp(r).test(n)}var Q=e(L);function V(n,r){return p(n)&&p(r)&&Number(n)===Number(r)}var Y=e(V);function Z(n,r){try{return r(n)}catch(n){return!1}}function $(n,r){return n.length<Number(r)}function nn(n,r){return n.length<=Number(r)}function rn(n,r){return c(n)&&c(r)&&n.startsWith(r)}var tn=e(rn);var en={condition:Z,doesNotEndWith:v,doesNotStartWith:tn,endsWith:l,equals:N,greaterThan:m,greaterThanOrEquals:y,gt:m,gte:y,inside:E,isArray:d,isBetween:q,isBlank:T,isBoolean:S,isEmpty:F,isEven:J,isFalsy:D,isNaN:M,isNegative:U,isNotArray:b,isNotBetween:w,isNotBlank:P,isNotBoolean:B,isNotEmpty:I,isNotNaN:R,isNotNull:i,isNotNullish:f,isNotNumber:j,isNotNumeric:g,isNotString:X,isNotUndefined:a,isNull:u,isNullish:s,isNumber:W,isNumeric:p,isOdd:C,isPositive:_,isString:c,isTruthy:z,isUndefined:o,lengthEquals:A,lengthNotEquals:k,lessThan:G,lessThanOrEquals:O,longerThan:H,longerThanOrEquals:K,lt:G,lte:O,matches:L,notEquals:h,notInside:x,notMatches:Q,numberEquals:V,numberNotEquals:Y,shorterThan:$,shorterThanOrEquals:nn,startsWith:rn};function un(n){return en[n]}function on(n){for(var r in en){var e=un(r);t(e)&&n(r,e)}}var an=n.createContext((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return function(n){return n?{value:n.value,meta:n.meta,parent:n.parent}:n}(t)}}):t:r(e,{parent:sn})}));function sn(){return null}function fn(n,r,t){if(t||2===arguments.length)for(var e,u=0,i=r.length;u<i;u++)!e&&u in r||(e||(e=Array.prototype.slice.call(r,0,u)),e[u]=r[u]);return n.concat(e||r)}function cn(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function ln(n,r){var t;return null!==(t=cn(n))&&void 0!==t?t:r}function vn(n,r){throw Error(ln(r,n))}function Nn(){try{return t(Proxy)}catch(n){return!1}}function hn(n,r){return n={pass:n},r&&(n.message=r),n}function pn(n){return ln(n,hn(!0))}function gn(n,r,t){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return mn(n),S(n)?hn(n):hn(n.pass,cn.apply(void 0,fn([n.message,r,t],e)))}function mn(n){S(n)||n&&S(n.pass)||vn("Incorrect return value for rule: "+JSON.stringify(n))}function yn(n){function r(r,t,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=gn.apply(void 0,fn([an.run({value:n},(function(){return t.apply(void 0,fn([n],u))})),e,n],u))).pass){if(!F(i.message))throw i.message;vn("enforce/"+e+" failed with "+JSON.stringify(n))}return r}}var t={};if(!Nn())return on((function(n,e){t[n]=r(t,e,n)})),t;var e=new Proxy(t,{get:function(n,t){if(n=un(t))return r(e,n,t)}});return e}function dn(n,r){function t(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(r(n[i],t,i),e)return u}function bn(n){var r,t=[];return function n(e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=un(e);t.push((function(n){return gn.apply(void 0,fn([o.apply(void 0,fn([n],u)),e,n],u))}));var a={run:function(n){return pn(dn(t,(function(t,e){var u,i=an.run({value:n},(function(){return t(n)}));i.pass||e(hn(!!i.pass,null!==(u=cn(r,n,i.message))&&void 0!==u?u:i.message))})))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return Nn()?a=new Proxy(a,{get:function(r,t){return un(t)?n(t):r[t]}}):(on((function(r){a[r]=n(r)})),a)}}(n)}var En,xn=(En={context:function(){return an.useX()},extend:function(n){r(en,n)}},Nn()?new Proxy(r(yn,En),{get:function(n,r){return r in n?n[r]:un(r)?bn(r):void 0}}):(on((function(n){En[n]=bn(n)})),En));exports.ctx=an,exports.enforce=xn;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("context"),r=Object.assign;function t(n){return"function"==typeof n}function e(n){return function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return!n.apply(void 0,r)}}function u(n){return null===n}var i=e(u);function o(n){return void 0===n}var a=e(o);function s(n){return u(n)||o(n)}var f=e(s);function c(n){return String(n)===n}function l(n,r){return c(n)&&c(r)&&n.endsWith(r)}var v=e(l);function N(n,r){return n===r}var p=e(N);function h(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var g=e(h);function m(n,r){return h(n)&&h(r)&&Number(n)>Number(r)}function y(n,r){return h(n)&&h(r)&&Number(n)>=Number(r)}function d(n){return!!Array.isArray(n)}var b=e(d);function O(n,r){return!!(d(r)||c(r)&&c(n))&&-1!==r.indexOf(n)}var E=e(O);function x(n,r){return h(n)&&h(r)&&Number(n)<=Number(r)}function q(n,r,t){return y(n,r)&&x(n,t)}var w=e(q);function T(n){return s(n)||c(n)&&!n.trim()}var P=e(T);function S(n){return!!n===n}var A=e(S);function B(n){return"number"==typeof n}var W=e(B);function j(n,r){return n.length===Number(r)}var k=e(j);function F(n){if(n){if(B(n))return 0===n;if(function(n,r){return Object.prototype.hasOwnProperty.call(n,r)}(n,"length"))return j(n,0);if("object"==typeof n)return j(Object.keys(n),0)}return!0}var I=e(F),J=function(n){return!!h(n)&&0==n%2};function K(n,r){return n in r}var M=e(K);function R(n){return Number.isNaN(n)}var U=e(R);function V(n){return!!h(n)&&0>Number(n)}var _=e(V),C=function(n){return!!h(n)&&0!=n%2},X=e(c);function z(n){return!!n}var D=e(z);function G(n,r){if(s(r))return!1;for(var t in r)if(r[t]===n)return!0;return!1}var H=e(G);function L(n,r){return h(n)&&h(r)&&Number(n)<Number(r)}function Q(n,r){return n.length>Number(r)}function Y(n,r){return n.length>=Number(r)}function Z(n,r){return r instanceof RegExp?r.test(n):!!c(r)&&new RegExp(r).test(n)}var $=e(Z);function nn(n,r){return h(n)&&h(r)&&Number(n)===Number(r)}var rn=e(nn);function tn(n,r){try{return r(n)}catch(n){return!1}}function en(n,r){return n.length<Number(r)}function un(n,r){return n.length<=Number(r)}function on(n,r){return c(n)&&c(r)&&n.startsWith(r)}var an=e(on);var sn={condition:tn,doesNotEndWith:v,doesNotStartWith:an,endsWith:l,equals:N,greaterThan:m,greaterThanOrEquals:y,gt:m,gte:y,inside:O,isArray:d,isBetween:q,isBlank:T,isBoolean:S,isEmpty:F,isEven:J,isFalsy:D,isKeyOf:K,isNaN:R,isNegative:V,isNotArray:b,isNotBetween:w,isNotBlank:P,isNotBoolean:A,isNotEmpty:I,isNotKeyOf:M,isNotNaN:U,isNotNull:i,isNotNullish:f,isNotNumber:W,isNotNumeric:g,isNotString:X,isNotUndefined:a,isNotValueOf:H,isNull:u,isNullish:s,isNumber:B,isNumeric:h,isOdd:C,isPositive:_,isString:c,isTruthy:z,isUndefined:o,isValueOf:G,lengthEquals:j,lengthNotEquals:k,lessThan:L,lessThanOrEquals:x,longerThan:Q,longerThanOrEquals:Y,lt:L,lte:x,matches:Z,notEquals:p,notInside:E,notMatches:$,numberEquals:nn,numberNotEquals:rn,shorterThan:en,shorterThanOrEquals:un,startsWith:on};function fn(n){return sn[n]}function cn(n){for(var r in sn){var e=fn(r);t(e)&&n(r,e)}}var ln=n.createContext((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return function(n){return n?{value:n.value,meta:n.meta,parent:n.parent}:n}(t)}}):t:r(e,{parent:vn})}));function vn(){return null}function Nn(n,r,t){if(t||2===arguments.length)for(var e,u=0,i=r.length;u<i;u++)!e&&u in r||(e||(e=Array.prototype.slice.call(r,0,u)),e[u]=r[u]);return n.concat(e||Array.prototype.slice.call(r))}function pn(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function hn(n,r){var t;return null!==(t=pn(n))&&void 0!==t?t:r}function gn(n,r){throw Error(hn(r,n))}function mn(){try{return t(Proxy)}catch(n){return!1}}function yn(n,r){return n={pass:n},r&&(n.message=r),n}function dn(n){return hn(n,yn(!0))}function bn(n,r,t){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return On(n),S(n)?yn(n):yn(n.pass,pn.apply(void 0,Nn([n.message,r,t],e)))}function On(n){S(n)||n&&S(n.pass)||gn("Incorrect return value for rule: "+JSON.stringify(n))}function En(n){function r(r,t,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=bn.apply(void 0,Nn([ln.run({value:n},(function(){return t.apply(void 0,Nn([n],u))})),e,n],u))).pass){if(!F(i.message))throw i.message;gn("enforce/"+e+" failed with "+JSON.stringify(n))}return r}}var t={};if(!mn())return cn((function(n,e){t[n]=r(t,e,n)})),t;var e=new Proxy(t,{get:function(n,t){if(n=fn(t))return r(e,n,t)}});return e}function xn(n,r){function t(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(r(n[i],t,i),e)return u}function qn(n){var r,t=[];return function n(e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=fn(e);t.push((function(n){return bn.apply(void 0,Nn([o.apply(void 0,Nn([n],u)),e,n],u))}));var a={run:function(n){return dn(xn(t,(function(t,e){var u,i=ln.run({value:n},(function(){return t(n)}));i.pass||e(yn(!!i.pass,null!==(u=pn(r,n,i.message))&&void 0!==u?u:i.message))})))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return mn()?a=new Proxy(a,{get:function(r,t){return fn(t)?n(t):r[t]}}):(cn((function(r){a[r]=n(r)})),a)}}(n)}var wn,Tn=(wn={context:function(){return ln.useX()},extend:function(n){r(sn,n)}},mn()?new Proxy(r(En,wn),{get:function(n,r){return r in n?n[r]:fn(r)?qn(r):void 0}}):(cn((function(n){wn[n]=qn(n)})),r(En,wn)));exports.ctx=ln,exports.enforce=Tn;
@@ -145,6 +145,11 @@ var isEven = function (value) {
145
145
  return false;
146
146
  };
147
147
 
148
+ function isKeyOf(key, obj) {
149
+ return key in obj;
150
+ }
151
+ var isNotKeyOf = bindNot(isKeyOf);
152
+
148
153
  function isNaN$1(value) {
149
154
  return Number.isNaN(value);
150
155
  }
@@ -175,6 +180,19 @@ function isTruthy(value) {
175
180
  }
176
181
  var isFalsy = bindNot(isTruthy);
177
182
 
183
+ function isValueOf(value, objectToCheck) {
184
+ if (isNullish(objectToCheck)) {
185
+ return false;
186
+ }
187
+ for (var key in objectToCheck) {
188
+ if (objectToCheck[key] === value) {
189
+ return true;
190
+ }
191
+ }
192
+ return false;
193
+ }
194
+ var isNotValueOf = bindNot(isValueOf);
195
+
178
196
  function lessThan(value, lt) {
179
197
  return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
180
198
  }
@@ -247,6 +265,7 @@ function rules() {
247
265
  isEmpty: isEmpty,
248
266
  isEven: isEven,
249
267
  isFalsy: isFalsy,
268
+ isKeyOf: isKeyOf,
250
269
  isNaN: isNaN$1,
251
270
  isNegative: isNegative,
252
271
  isNotArray: isNotArray,
@@ -254,6 +273,7 @@ function rules() {
254
273
  isNotBlank: isNotBlank,
255
274
  isNotBoolean: isNotBoolean,
256
275
  isNotEmpty: isNotEmpty,
276
+ isNotKeyOf: isNotKeyOf,
257
277
  isNotNaN: isNotNaN,
258
278
  isNotNull: isNotNull,
259
279
  isNotNullish: isNotNullish,
@@ -261,6 +281,7 @@ function rules() {
261
281
  isNotNumeric: isNotNumeric,
262
282
  isNotString: isNotString,
263
283
  isNotUndefined: isNotUndefined,
284
+ isNotValueOf: isNotValueOf,
264
285
  isNull: isNull,
265
286
  isNullish: isNullish,
266
287
  isNumber: isNumber,
@@ -270,6 +291,7 @@ function rules() {
270
291
  isString: isStringValue,
271
292
  isTruthy: isTruthy,
272
293
  isUndefined: isUndefined,
294
+ isValueOf: isValueOf,
273
295
  lengthEquals: lengthEquals,
274
296
  lengthNotEquals: lengthNotEquals,
275
297
  lessThan: lessThan,
@@ -357,7 +379,7 @@ function __spreadArray(to, from, pack) {
357
379
  ar[i] = from[i];
358
380
  }
359
381
  }
360
- return to.concat(ar || from);
382
+ return to.concat(ar || Array.prototype.slice.call(from));
361
383
  }
362
384
 
363
385
  function optionalFunctionValue(value) {
@@ -577,7 +599,7 @@ function genEnforce() {
577
599
  // Only on the first rule access - start the chain of calls
578
600
  target[ruleName] = genEnforceLazy(ruleName);
579
601
  });
580
- return target;
602
+ return assign(enforceEager, target);
581
603
  }
582
604
  return new Proxy(assign(enforceEager, target), {
583
605
  get: function (target, key) {
@@ -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 h=e(N);function m(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var g=e(m);function p(n,r){return m(n)&&m(r)&&Number(n)>Number(r)}function y(n,r){return m(n)&&m(r)&&Number(n)>=Number(r)}function b(n){return!!Array.isArray(n)}var d=e(b);function E(n,r){return!!(b(r)||c(r)&&c(n))&&-1!==r.indexOf(n)}var x=e(E);function O(n,r){return m(n)&&m(r)&&Number(n)<=Number(r)}function q(n,r,t){return y(n,r)&&O(n,t)}var w=e(q);function T(n){return s(n)||c(n)&&!n.trim()}var S=e(T);function B(n){return!!n===n}var P=e(B);function W(n){return"number"==typeof n}var A=e(W);function j(n,r){return n.length===Number(r)}var k=e(j);function F(n){if(n){if(W(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return j(n,0);if("object"==typeof n)return j(Object.keys(n),0)}return!0}var I=e(F);function J(n){return Number.isNaN(n)}var R=e(J);function U(n){return!!m(n)&&0>Number(n)}var M=e(U),X=e(c);function z(n){return!!n}var C=e(z);function D(n,r){return m(n)&&m(r)&&Number(n)<Number(r)}function G(n,r){return r instanceof RegExp?r.test(n):!!c(r)&&new RegExp(r).test(n)}var H=e(G);function K(n,r){return m(n)&&m(r)&&Number(n)===Number(r)}var L=e(K);function Q(n,r){return c(n)&&c(r)&&n.startsWith(r)}var V={condition:function(n,r){try{return r(n)}catch(n){return!1}},doesNotEndWith:v,doesNotStartWith:e(Q),endsWith:l,equals:N,greaterThan:p,greaterThanOrEquals:y,gt:p,gte:y,inside:E,isArray:b,isBetween:q,isBlank:T,isBoolean:B,isEmpty:F,isEven:function(n){return!!m(n)&&0==n%2},isFalsy:C,isNaN:J,isNegative:U,isNotArray:d,isNotBetween:w,isNotBlank:S,isNotBoolean:P,isNotEmpty:I,isNotNaN:R,isNotNull:i,isNotNullish:f,isNotNumber:A,isNotNumeric:g,isNotString:X,isNotUndefined:a,isNull:u,isNullish:s,isNumber:W,isNumeric:m,isOdd:function(n){return!!m(n)&&0!=n%2},isPositive:M,isString:c,isTruthy:z,isUndefined:o,lengthEquals:j,lengthNotEquals:k,lessThan:D,lessThanOrEquals:O,longerThan:function(n,r){return n.length>Number(r)},longerThanOrEquals:function(n,r){return n.length>=Number(r)},lt:D,lte:O,matches:G,notEquals:h,notInside:x,notMatches:H,numberEquals:K,numberNotEquals:L,shorterThan:function(n,r){return n.length<Number(r)},shorterThanOrEquals:function(n,r){return n.length<=Number(r)},startsWith:Q};function Y(n){for(var r in V){var e=V[r];t(e)&&n(r,e)}}var Z=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:$})}));function $(){return null}function _(n,r,t){if(t||2===arguments.length)for(var e,u=0,i=r.length;u<i;u++)!e&&u in r||(e||(e=Array.prototype.slice.call(r,0,u)),e[u]=r[u]);return n.concat(e||r)}function nn(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 rn(n,r){var t;return null!==(t=nn(n))&&void 0!==t?t:r}function tn(n,r){throw Error(rn(r,n))}function en(){try{return t(Proxy)}catch(n){return!1}}function un(n,r){return n={pass:n},r&&(n.message=r),n}function on(n,r,t){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return B(n)||n&&B(n.pass)||tn("Incorrect return value for rule: "+JSON.stringify(n)),B(n)?un(n):un(n.pass,nn.apply(void 0,_([n.message,r,t],e)))}function an(n){function r(r,t,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=on.apply(void 0,_([Z.run({value:n},(function(){return t.apply(void 0,_([n],u))})),e,n],u))).pass){if(!F(i.message))throw i.message;tn("enforce/"+e+" failed with "+JSON.stringify(n))}return r}}var t={};if(!en())return Y((function(n,e){t[n]=r(t,e,n)})),t;var e=new Proxy(t,{get:function(n,t){if(n=V[t])return r(e,n,t)}});return e}function sn(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 fn(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=V[e];t.push((function(n){return on.apply(void 0,_([o.apply(void 0,_([n],u)),e,n],u))}));var a={run:function(n){return rn(sn(t,(function(t,e){var u,i=Z.run({value:n},(function(){return t(n)}));i.pass||e(un(!!i.pass,null!==(u=nn(r,n,i.message))&&void 0!==u?u:i.message))})),un(!0))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return en()?a=new Proxy(a,{get:function(r,t){return V[t]?n(t):r[t]}}):(Y((function(r){a[r]=n(r)})),a)}}(n)}var cn,ln=(cn={context:function(){return Z.useX()},extend:function(n){r(V,n)}},en()?new Proxy(r(an,cn),{get:function(n,r){return r in n?n[r]:V[r]?fn(r):void 0}}):(Y((function(n){cn[n]=fn(n)})),cn));export{Z as ctx,ln 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 h=e(N);function m(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var p=e(m);function g(n,r){return m(n)&&m(r)&&Number(n)>Number(r)}function y(n,r){return m(n)&&m(r)&&Number(n)>=Number(r)}function b(n){return!!Array.isArray(n)}var d=e(b);function E(n,r){return!!(b(r)||c(r)&&c(n))&&-1!==r.indexOf(n)}var O=e(E);function x(n,r){return m(n)&&m(r)&&Number(n)<=Number(r)}function q(n,r,t){return y(n,r)&&x(n,t)}var w=e(q);function T(n){return s(n)||c(n)&&!n.trim()}var S=e(T);function A(n){return!!n===n}var B=e(A);function P(n){return"number"==typeof n}var W=e(P);function j(n,r){return n.length===Number(r)}var k=e(j);function F(n){if(n){if(P(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return j(n,0);if("object"==typeof n)return j(Object.keys(n),0)}return!0}var I=e(F);function J(n,r){return n in r}var K=e(J);function R(n){return Number.isNaN(n)}var U=e(R);function V(n){return!!m(n)&&0>Number(n)}var M=e(V),X=e(c);function z(n){return!!n}var C=e(z);function D(n,r){if(s(r))return!1;for(var t in r)if(r[t]===n)return!0;return!1}var G=e(D);function H(n,r){return m(n)&&m(r)&&Number(n)<Number(r)}function L(n,r){return r instanceof RegExp?r.test(n):!!c(r)&&new RegExp(r).test(n)}var Q=e(L);function Y(n,r){return m(n)&&m(r)&&Number(n)===Number(r)}var Z=e(Y);function $(n,r){return c(n)&&c(r)&&n.startsWith(r)}var _={condition:function(n,r){try{return r(n)}catch(n){return!1}},doesNotEndWith:v,doesNotStartWith:e($),endsWith:l,equals:N,greaterThan:g,greaterThanOrEquals:y,gt:g,gte:y,inside:E,isArray:b,isBetween:q,isBlank:T,isBoolean:A,isEmpty:F,isEven:function(n){return!!m(n)&&0==n%2},isFalsy:C,isKeyOf:J,isNaN:R,isNegative:V,isNotArray:d,isNotBetween:w,isNotBlank:S,isNotBoolean:B,isNotEmpty:I,isNotKeyOf:K,isNotNaN:U,isNotNull:i,isNotNullish:f,isNotNumber:W,isNotNumeric:p,isNotString:X,isNotUndefined:a,isNotValueOf:G,isNull:u,isNullish:s,isNumber:P,isNumeric:m,isOdd:function(n){return!!m(n)&&0!=n%2},isPositive:M,isString:c,isTruthy:z,isUndefined:o,isValueOf:D,lengthEquals:j,lengthNotEquals:k,lessThan:H,lessThanOrEquals:x,longerThan:function(n,r){return n.length>Number(r)},longerThanOrEquals:function(n,r){return n.length>=Number(r)},lt:H,lte:x,matches:L,notEquals:h,notInside:O,notMatches:Q,numberEquals:Y,numberNotEquals:Z,shorterThan:function(n,r){return n.length<Number(r)},shorterThanOrEquals:function(n,r){return n.length<=Number(r)},startsWith:$};function nn(n){for(var r in _){var e=_[r];t(e)&&n(r,e)}}var rn=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:tn})}));function tn(){return null}function en(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 un(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 on(n,r){var t;return null!==(t=un(n))&&void 0!==t?t:r}function an(n,r){throw Error(on(r,n))}function sn(){try{return t(Proxy)}catch(n){return!1}}function fn(n,r){return n={pass:n},r&&(n.message=r),n}function cn(n,r,t){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return A(n)||n&&A(n.pass)||an("Incorrect return value for rule: "+JSON.stringify(n)),A(n)?fn(n):fn(n.pass,un.apply(void 0,en([n.message,r,t],e)))}function ln(n){function r(r,t,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=cn.apply(void 0,en([rn.run({value:n},(function(){return t.apply(void 0,en([n],u))})),e,n],u))).pass){if(!F(i.message))throw i.message;an("enforce/"+e+" failed with "+JSON.stringify(n))}return r}}var t={};if(!sn())return nn((function(n,e){t[n]=r(t,e,n)})),t;var e=new Proxy(t,{get:function(n,t){if(n=_[t])return r(e,n,t)}});return e}function vn(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 Nn(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=_[e];t.push((function(n){return cn.apply(void 0,en([o.apply(void 0,en([n],u)),e,n],u))}));var a={run:function(n){return on(vn(t,(function(t,e){var u,i=rn.run({value:n},(function(){return t(n)}));i.pass||e(fn(!!i.pass,null!==(u=un(r,n,i.message))&&void 0!==u?u:i.message))})),fn(!0))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return sn()?a=new Proxy(a,{get:function(r,t){return _[t]?n(t):r[t]}}):(nn((function(r){a[r]=n(r)})),a)}}(n)}var hn,mn=(hn={context:function(){return rn.useX()},extend:function(n){r(_,n)}},sn()?new Proxy(r(ln,hn),{get:function(n,r){return r in n?n[r]:_[r]?Nn(r):void 0}}):(nn((function(n){hn[n]=Nn(n)})),r(ln,hn)));export{rn as ctx,mn as enforce};
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('context')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'context'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.n4s = {}, global.context));
5
- }(this, (function (exports, context) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.n4s = {}));
5
+ }(this, (function (exports) { 'use strict';
6
6
 
7
7
  var assign = Object.assign;
8
8
 
@@ -149,6 +149,11 @@
149
149
  return false;
150
150
  };
151
151
 
152
+ function isKeyOf(key, obj) {
153
+ return key in obj;
154
+ }
155
+ var isNotKeyOf = bindNot(isKeyOf);
156
+
152
157
  function isNaN$1(value) {
153
158
  return Number.isNaN(value);
154
159
  }
@@ -179,6 +184,19 @@
179
184
  }
180
185
  var isFalsy = bindNot(isTruthy);
181
186
 
187
+ function isValueOf(value, objectToCheck) {
188
+ if (isNullish(objectToCheck)) {
189
+ return false;
190
+ }
191
+ for (var key in objectToCheck) {
192
+ if (objectToCheck[key] === value) {
193
+ return true;
194
+ }
195
+ }
196
+ return false;
197
+ }
198
+ var isNotValueOf = bindNot(isValueOf);
199
+
182
200
  function lessThan(value, lt) {
183
201
  return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
184
202
  }
@@ -251,6 +269,7 @@
251
269
  isEmpty: isEmpty,
252
270
  isEven: isEven,
253
271
  isFalsy: isFalsy,
272
+ isKeyOf: isKeyOf,
254
273
  isNaN: isNaN$1,
255
274
  isNegative: isNegative,
256
275
  isNotArray: isNotArray,
@@ -258,6 +277,7 @@
258
277
  isNotBlank: isNotBlank,
259
278
  isNotBoolean: isNotBoolean,
260
279
  isNotEmpty: isNotEmpty,
280
+ isNotKeyOf: isNotKeyOf,
261
281
  isNotNaN: isNotNaN,
262
282
  isNotNull: isNotNull,
263
283
  isNotNullish: isNotNullish,
@@ -265,6 +285,7 @@
265
285
  isNotNumeric: isNotNumeric,
266
286
  isNotString: isNotString,
267
287
  isNotUndefined: isNotUndefined,
288
+ isNotValueOf: isNotValueOf,
268
289
  isNull: isNull,
269
290
  isNullish: isNullish,
270
291
  isNumber: isNumber,
@@ -274,6 +295,7 @@
274
295
  isString: isStringValue,
275
296
  isTruthy: isTruthy,
276
297
  isUndefined: isUndefined,
298
+ isValueOf: isValueOf,
277
299
  lengthEquals: lengthEquals,
278
300
  lengthNotEquals: lengthNotEquals,
279
301
  lessThan: lessThan,
@@ -308,7 +330,77 @@
308
330
  }
309
331
  }
310
332
 
311
- var ctx = context.createContext(function (ctxRef, parentContext) {
333
+ function optionalFunctionValue(value) {
334
+ var args = [];
335
+ for (var _i = 1; _i < arguments.length; _i++) {
336
+ args[_i - 1] = arguments[_i];
337
+ }
338
+ return isFunction(value) ? value.apply(void 0, args) : value;
339
+ }
340
+
341
+ function defaultTo(callback, defaultValue) {
342
+ var _a;
343
+ return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
344
+ }
345
+
346
+ /**
347
+ * Throws a timed out error.
348
+ */
349
+ function throwError(devMessage, productionMessage) {
350
+ throw new Error(devMessage );
351
+ }
352
+
353
+ // eslint-disable-next-line max-lines-per-function
354
+ function createContext(init) {
355
+ var storage = { ancestry: [] };
356
+ return {
357
+ bind: bind,
358
+ run: run,
359
+ use: use,
360
+ useX: useX
361
+ };
362
+ function useX(errorMessage) {
363
+ var _a;
364
+ return ((_a = storage.ctx) !== null && _a !== void 0 ? _a : throwError(defaultTo(errorMessage, 'Context was used after it was closed')));
365
+ }
366
+ function run(ctxRef, fn) {
367
+ var _a;
368
+ var parentContext = use();
369
+ var out = assign({}, parentContext ? parentContext : {}, (_a = optionalFunctionValue(init, ctxRef, parentContext)) !== null && _a !== void 0 ? _a : ctxRef);
370
+ var ctx = set(Object.freeze(out));
371
+ storage.ancestry.unshift(ctx);
372
+ var res = fn(ctx);
373
+ clear();
374
+ return res;
375
+ }
376
+ function bind(ctxRef, fn) {
377
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
378
+ // @ts-ignore - this one's pretty hard to get right
379
+ var returnedFn = function () {
380
+ var runTimeArgs = [];
381
+ for (var _i = 0; _i < arguments.length; _i++) {
382
+ runTimeArgs[_i] = arguments[_i];
383
+ }
384
+ return run(ctxRef, function () {
385
+ return fn.apply(void 0, runTimeArgs);
386
+ });
387
+ };
388
+ return returnedFn;
389
+ }
390
+ function use() {
391
+ return storage.ctx;
392
+ }
393
+ function set(value) {
394
+ return (storage.ctx = value);
395
+ }
396
+ function clear() {
397
+ var _a;
398
+ storage.ancestry.shift();
399
+ set((_a = storage.ancestry[0]) !== null && _a !== void 0 ? _a : null);
400
+ }
401
+ }
402
+
403
+ var ctx = createContext(function (ctxRef, parentContext) {
312
404
  var base = {
313
405
  value: ctxRef.value,
314
406
  meta: ctxRef.meta || {}
@@ -361,27 +453,7 @@
361
453
  ar[i] = from[i];
362
454
  }
363
455
  }
364
- return to.concat(ar || from);
365
- }
366
-
367
- function optionalFunctionValue(value) {
368
- var args = [];
369
- for (var _i = 1; _i < arguments.length; _i++) {
370
- args[_i - 1] = arguments[_i];
371
- }
372
- return isFunction(value) ? value.apply(void 0, args) : value;
373
- }
374
-
375
- function defaultTo(callback, defaultValue) {
376
- var _a;
377
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
378
- }
379
-
380
- /**
381
- * Throws a timed out error.
382
- */
383
- function throwError(devMessage, productionMessage) {
384
- throw new Error(devMessage );
456
+ return to.concat(ar || Array.prototype.slice.call(from));
385
457
  }
386
458
 
387
459
  function isProxySupported() {
@@ -581,7 +653,7 @@
581
653
  // Only on the first rule access - start the chain of calls
582
654
  target[ruleName] = genEnforceLazy(ruleName);
583
655
  });
584
- return target;
656
+ return assign(enforceEager, target);
585
657
  }
586
658
  return new Proxy(assign(enforceEager, target), {
587
659
  get: function (target, key) {
@@ -1 +1 @@
1
- "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("context")):"function"==typeof define&&define.amd?define(["exports","context"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).n4s={},n.context)}(this,(function(n,t){function r(n){return"function"==typeof n}function e(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function u(n){return null===n}function i(n){return void 0===n}function o(n){return null===n||i(n)}function s(n){return String(n)===n}function f(n,t){return s(n)&&s(t)&&n.endsWith(t)}function a(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function l(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function N(n,t){return c(n)&&c(t)&&Number(n)>=Number(t)}function h(n){return!!Array.isArray(n)}function p(n,t){return!!(h(t)||s(t)&&s(n))&&-1!==t.indexOf(n)}function g(n,t){return c(n)&&c(t)&&Number(n)<=Number(t)}function m(n,t,r){return N(n,t)&&g(n,r)}function v(n){return o(n)||s(n)&&!n.trim()}function d(n){return!!n===n}function y(n){return"number"==typeof n}function b(n,t){return n.length===Number(t)}function x(n){if(n){if(y(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return b(n,0);if("object"==typeof n)return b(Object.keys(n),0)}return!0}function E(n){return Number.isNaN(n)}function O(n){return!!c(n)&&0>Number(n)}function q(n){return!!n}function T(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function w(n,t){return t instanceof RegExp?t.test(n):!!s(t)&&new RegExp(t).test(n)}function P(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function S(n,t){return s(n)&&s(t)&&n.startsWith(t)}function j(n){for(var t in cn){var e=cn[t];r(e)&&n(t,e)}}function B(){return null}function W(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||t)}function A(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return r(n)?n.apply(void 0,t):n}function k(n,t){var r;return null!==(r=A(n))&&void 0!==r?r:t}function F(n,t){throw Error(k(t,n))}function I(){try{return r(Proxy)}catch(n){return!1}}function J(n,t){return n={pass:n},t&&(n.message=t),n}function M(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return d(n)||n&&d(n.pass)||F("Incorrect return value for rule: "+JSON.stringify(n)),d(n)?J(n):J(n.pass,A.apply(void 0,W([n.message,t,r],e)))}function R(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=M.apply(void 0,W([ln.run({value:n},(function(){return r.apply(void 0,W([n],u))})),e,n],u))).pass){if(!x(i.message))throw i.message;F("enforce/"+e+" failed with "+JSON.stringify(n))}return t}}var r={};if(!I())return j((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 U(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 _(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 M.apply(void 0,W([o.apply(void 0,W([n],u)),e,n],u))}));var s={run:function(n){return k(U(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]}}):(j((function(t){s[t]=n(t)})),s)}}(n)}var C,X=Object.assign,z=e(u),D=e(i),G=e(o),H=e(f),K=e(a),L=e(c),Q=e(h),V=e(p),Y=e(m),Z=e(v),$=e(d),nn=e(y),tn=e(b),rn=e(x),en=e(E),un=e(O),on=e(s),sn=e(q),fn=e(w),an=e(P),cn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:H,doesNotStartWith:e(S),endsWith:f,equals:a,greaterThan:l,greaterThanOrEquals:N,gt:l,gte:N,inside:p,isArray:h,isBetween:m,isBlank:v,isBoolean:d,isEmpty:x,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:sn,isNaN:E,isNegative:O,isNotArray:Q,isNotBetween:Y,isNotBlank:Z,isNotBoolean:$,isNotEmpty:rn,isNotNaN:en,isNotNull:z,isNotNullish:G,isNotNumber:nn,isNotNumeric:L,isNotString:on,isNotUndefined:D,isNull:u,isNullish:o,isNumber:y,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:un,isString:s,isTruthy:q,isUndefined:i,lengthEquals:b,lengthNotEquals:tn,lessThan:T,lessThanOrEquals:g,longerThan:function(n,t){return n.length>Number(t)},longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:T,lte:g,matches:w,notEquals:K,notInside:V,notMatches:fn,numberEquals:P,numberNotEquals:an,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:S},ln=t.createContext((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:B})}));C={context:function(){return ln.useX()},extend:function(n){X(cn,n)}},t=I()?new Proxy(X(R,C),{get:function(n,t){return t in n?n[t]:cn[t]?_(t):void 0}}):(j((function(n){C[n]=_(n)})),C),n.ctx=ln,n.enforce=t,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 N(n){return!!Array.isArray(n)}function p(n,t){return!!(N(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function h(n,t){return a(n)&&a(t)&&Number(n)<=Number(t)}function v(n,t,r){return l(n,t)&&h(n,r)}function d(n){return i(n)||o(n)&&!n.trim()}function g(n){return!!n===n}function y(n){return"number"==typeof n}function m(n,t){return n.length===Number(t)}function b(n){if(n){if(y(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return m(n,0);if("object"==typeof n)return m(Object.keys(n),0)}return!0}function x(n,t){return n in t}function O(n){return Number.isNaN(n)}function E(n){return!!a(n)&&0>Number(n)}function w(n){return!!n}function T(n,t){if(i(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function q(n,t){return a(n)&&a(t)&&Number(n)<Number(t)}function j(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function P(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}function S(n,t){return o(n)&&o(t)&&n.startsWith(t)}function A(n){for(var r in pn){var e=pn[r];t(e)&&n(r,e)}}function B(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 W(n,t){var r;return null!==(r=B(n))&&void 0!==r?r:t}function k(n,t){throw Error(W(t,n))}function F(){return null}function I(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||Array.prototype.slice.call(t))}function J(){try{return t(Proxy)}catch(n){return!1}}function K(n,t){return n={pass:n},t&&(n.message=t),n}function M(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return g(n)||n&&g(n.pass)||k("Incorrect return value for rule: "+JSON.stringify(n)),g(n)?K(n):K(n.pass,B.apply(void 0,I([n.message,t,r],e)))}function R(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=M.apply(void 0,I([hn.run({value:n},(function(){return r.apply(void 0,I([n],u))})),e,n],u))).pass){if(!b(i.message))throw i.message;k("enforce/"+e+" failed with "+JSON.stringify(n))}return t}}var r={};if(!J())return A((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=pn[r])return t(e,n,r)}});return e}function U(n,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 V(n){var t,r=[];return function n(e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=pn[e];r.push((function(n){return M.apply(void 0,I([o.apply(void 0,I([n],u)),e,n],u))}));var s={run:function(n){return W(U(r,(function(r,e){var u,i=hn.run({value:n},(function(){return r(n)}));i.pass||e(K(!!i.pass,null!==(u=B(t,n,i.message))&&void 0!==u?u:i.message))})),K(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return J()?s=new Proxy(s,{get:function(t,r){return pn[r]?n(r):t[r]}}):(A((function(t){s[t]=n(t)})),s)}}(n)}var X,_=Object.assign,z=r(e),C=r(u),D=r(i),G=r(s),H=r(f),L=r(a),Q=r(N),Y=r(p),Z=r(v),$=r(d),nn=r(g),tn=r(y),rn=r(m),en=r(b),un=r(x),on=r(O),sn=r(E),fn=r(o),an=r(w),cn=r(T),ln=r(j),Nn=r(P),pn={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:G,doesNotStartWith:r(S),endsWith:s,equals:f,greaterThan:c,greaterThanOrEquals:l,gt:c,gte:l,inside:p,isArray:N,isBetween:v,isBlank:d,isBoolean:g,isEmpty:b,isEven:function(n){return!!a(n)&&0==n%2},isFalsy:an,isKeyOf:x,isNaN:O,isNegative:E,isNotArray:Q,isNotBetween:Z,isNotBlank:$,isNotBoolean:nn,isNotEmpty:en,isNotKeyOf:un,isNotNaN:on,isNotNull:z,isNotNullish:D,isNotNumber:tn,isNotNumeric:L,isNotString:fn,isNotUndefined:C,isNotValueOf:cn,isNull:e,isNullish:i,isNumber:y,isNumeric:a,isOdd:function(n){return!!a(n)&&0!=n%2},isPositive:sn,isString:o,isTruthy:w,isUndefined:u,isValueOf:T,lengthEquals:m,lengthNotEquals:rn,lessThan:q,lessThanOrEquals:h,longerThan:function(n,t){return n.length>Number(t)},longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:q,lte:h,matches:j,notEquals:H,notInside:Y,notMatches:ln,numberEquals:P,numberNotEquals:Nn,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:S},hn=function(n){function t(t,u){var i,o,s=r();return t=_({},s||{},null!==(i=B(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){var t;return null!==(t=e.ctx)&&void 0!==t?t:k(W(n,"Context was used after it was closed"))}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?_(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:_(r,{parent:F})}));X={context:function(){return hn.useX()},extend:function(n){_(pn,n)}},z=J()?new Proxy(_(R,X),{get:function(n,t){return t in n?n[t]:pn[t]?V(t):void 0}}):(A((function(n){X[n]=V(n)})),_(R,X)),n.ctx=hn,n.enforce=z,Object.defineProperty(n,"__esModule",{value:!0})}));
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.0.0-next-084233",
2
+ "version": "4.1.1-dev-950c8e",
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.0-next-084233"
13
+ "context": "^2.0.1"
14
14
  },
15
15
  "module": "./dist/es/n4s.production.js",
16
16
  "exports": {
@@ -28,6 +28,7 @@ declare function isBetween(value: number | string, min: number | string, max: nu
28
28
  declare function isBlank(value: unknown): boolean;
29
29
  declare function isBoolean(value: unknown): value is boolean;
30
30
  declare function isEmpty(value: unknown): boolean;
31
+ declare function isKeyOf(key: string | symbol | number, obj: any): boolean;
31
32
  declare function isNaN(value: unknown): boolean;
32
33
  declare function isNegative(value: number | string): boolean;
33
34
  declare function isNull(value: unknown): value is null;
@@ -37,6 +38,7 @@ declare function isNumeric(value: string | number): boolean;
37
38
  declare function isStringValue(v: unknown): v is string;
38
39
  declare function isTruthy(value: unknown): boolean;
39
40
  declare function isUndefined(value?: unknown): boolean;
41
+ declare function isValueOf(value: any, objectToCheck: any): boolean;
40
42
  declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
41
43
  declare function lessThan(value: string | number, lt: string | number): boolean;
42
44
  declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
@@ -65,6 +67,7 @@ declare const baseRules: {
65
67
  isEmpty: typeof isEmpty;
66
68
  isEven: (value: any) => boolean;
67
69
  isFalsy: (value: unknown) => boolean;
70
+ isKeyOf: typeof isKeyOf;
68
71
  isNaN: typeof isNaN;
69
72
  isNegative: typeof isNegative;
70
73
  isNotArray: (value: unknown) => boolean;
@@ -72,6 +75,7 @@ declare const baseRules: {
72
75
  isNotBlank: (value: unknown) => boolean;
73
76
  isNotBoolean: (value: unknown) => boolean;
74
77
  isNotEmpty: (value: unknown) => boolean;
78
+ isNotKeyOf: (key: string | number | symbol, obj: any) => boolean;
75
79
  isNotNaN: (value: unknown) => boolean;
76
80
  isNotNull: (value: unknown) => boolean;
77
81
  isNotNullish: (value: any) => boolean;
@@ -79,6 +83,7 @@ declare const baseRules: {
79
83
  isNotNumeric: (value: string | number) => boolean;
80
84
  isNotString: (v: unknown) => boolean;
81
85
  isNotUndefined: (value?: unknown) => boolean;
86
+ isNotValueOf: (value: any, objectToCheck: any) => boolean;
82
87
  isNull: typeof isNull;
83
88
  isNullish: typeof isNullish;
84
89
  isNumber: typeof isNumber;
@@ -88,6 +93,7 @@ declare const baseRules: {
88
93
  isString: typeof isStringValue;
89
94
  isTruthy: typeof isTruthy;
90
95
  isUndefined: typeof isUndefined;
96
+ isValueOf: typeof isValueOf;
91
97
  lengthEquals: typeof lengthEquals;
92
98
  lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
93
99
  lessThan: typeof lessThan;
@@ -28,6 +28,7 @@ declare function isBetween(value: number | string, min: number | string, max: nu
28
28
  declare function isBlank(value: unknown): boolean;
29
29
  declare function isBoolean(value: unknown): value is boolean;
30
30
  declare function isEmpty(value: unknown): boolean;
31
+ declare function isKeyOf(key: string | symbol | number, obj: any): boolean;
31
32
  declare function isNaN(value: unknown): boolean;
32
33
  declare function isNegative(value: number | string): boolean;
33
34
  declare function isNull(value: unknown): value is null;
@@ -37,6 +38,7 @@ declare function isNumeric(value: string | number): boolean;
37
38
  declare function isStringValue(v: unknown): v is string;
38
39
  declare function isTruthy(value: unknown): boolean;
39
40
  declare function isUndefined(value?: unknown): boolean;
41
+ declare function isValueOf(value: any, objectToCheck: any): boolean;
40
42
  declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
41
43
  declare function lessThan(value: string | number, lt: string | number): boolean;
42
44
  declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
@@ -65,6 +67,7 @@ declare const baseRules: {
65
67
  isEmpty: typeof isEmpty;
66
68
  isEven: (value: any) => boolean;
67
69
  isFalsy: (value: unknown) => boolean;
70
+ isKeyOf: typeof isKeyOf;
68
71
  isNaN: typeof isNaN;
69
72
  isNegative: typeof isNegative;
70
73
  isNotArray: (value: unknown) => boolean;
@@ -72,6 +75,7 @@ declare const baseRules: {
72
75
  isNotBlank: (value: unknown) => boolean;
73
76
  isNotBoolean: (value: unknown) => boolean;
74
77
  isNotEmpty: (value: unknown) => boolean;
78
+ isNotKeyOf: (key: string | number | symbol, obj: any) => boolean;
75
79
  isNotNaN: (value: unknown) => boolean;
76
80
  isNotNull: (value: unknown) => boolean;
77
81
  isNotNullish: (value: any) => boolean;
@@ -79,6 +83,7 @@ declare const baseRules: {
79
83
  isNotNumeric: (value: string | number) => boolean;
80
84
  isNotString: (v: unknown) => boolean;
81
85
  isNotUndefined: (value?: unknown) => boolean;
86
+ isNotValueOf: (value: any, objectToCheck: any) => boolean;
82
87
  isNull: typeof isNull;
83
88
  isNullish: typeof isNullish;
84
89
  isNumber: typeof isNumber;
@@ -88,6 +93,7 @@ declare const baseRules: {
88
93
  isString: typeof isStringValue;
89
94
  isTruthy: typeof isTruthy;
90
95
  isUndefined: typeof isUndefined;
96
+ isValueOf: typeof isValueOf;
91
97
  lengthEquals: typeof lengthEquals;
92
98
  lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
93
99
  lessThan: typeof lessThan;