n4s 4.1.1 → 4.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -57,8 +57,13 @@ function greaterThan(value, gt) {
57
57
  return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
58
58
  }
59
59
 
60
+ function numberEquals(value, eq) {
61
+ return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
62
+ }
63
+ var numberNotEquals = bindNot(numberEquals);
64
+
60
65
  function greaterThanOrEquals(value, gte) {
61
- return isNumeric(value) && isNumeric(gte) && Number(value) >= Number(gte);
66
+ return numberEquals(value, gte) || greaterThan(value, gte);
62
67
  }
63
68
 
64
69
  // The module is named "isArrayValue" since it
@@ -81,8 +86,12 @@ function inside(value, arg1) {
81
86
  }
82
87
  var notInside = bindNot(inside);
83
88
 
89
+ function lessThan(value, lt) {
90
+ return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
91
+ }
92
+
84
93
  function lessThanOrEquals(value, lte) {
85
- return isNumeric(value) && isNumeric(lte) && Number(value) <= Number(lte);
94
+ return numberEquals(value, lte) || lessThan(value, lte);
86
95
  }
87
96
 
88
97
  function isBetween(value, min, max) {
@@ -114,7 +123,7 @@ function isNumber(value) {
114
123
  var isNotNumber = bindNot(isNumber);
115
124
 
116
125
  function lengthEquals(value, arg1) {
117
- return value.length === Number(arg1);
126
+ return numberEquals(value.length, arg1);
118
127
  }
119
128
  var lengthNotEquals = bindNot(lengthEquals);
120
129
 
@@ -156,12 +165,8 @@ function isNaN$1(value) {
156
165
  var isNotNaN = bindNot(isNaN$1);
157
166
 
158
167
  function isNegative(value) {
159
- if (isNumeric(value)) {
160
- return Number(value) < 0;
161
- }
162
- return false;
168
+ return lessThan(value, 0);
163
169
  }
164
- var isPositive = bindNot(isNegative);
165
170
 
166
171
  /**
167
172
  * Validates that a given value is an odd number
@@ -173,6 +178,10 @@ var isOdd = function (value) {
173
178
  return false;
174
179
  };
175
180
 
181
+ function isPositive(value) {
182
+ return greaterThan(value, 0);
183
+ }
184
+
176
185
  var isNotString = bindNot(isStringValue);
177
186
 
178
187
  function isTruthy(value) {
@@ -193,16 +202,12 @@ function isValueOf(value, objectToCheck) {
193
202
  }
194
203
  var isNotValueOf = bindNot(isValueOf);
195
204
 
196
- function lessThan(value, lt) {
197
- return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
198
- }
199
-
200
205
  function longerThan(value, arg1) {
201
- return value.length > Number(arg1);
206
+ return greaterThan(value.length, arg1);
202
207
  }
203
208
 
204
209
  function longerThanOrEquals(value, arg1) {
205
- return value.length >= Number(arg1);
210
+ return greaterThanOrEquals(value.length, arg1);
206
211
  }
207
212
 
208
213
  function matches(value, regex) {
@@ -218,11 +223,6 @@ function matches(value, regex) {
218
223
  }
219
224
  var notMatches = bindNot(matches);
220
225
 
221
- function numberEquals(value, eq) {
222
- return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
223
- }
224
- var numberNotEquals = bindNot(numberEquals);
225
-
226
226
  function condition(value, callback) {
227
227
  try {
228
228
  return callback(value);
@@ -233,11 +233,11 @@ function condition(value, callback) {
233
233
  }
234
234
 
235
235
  function shorterThan(value, arg1) {
236
- return value.length < Number(arg1);
236
+ return lessThan(value.length, arg1);
237
237
  }
238
238
 
239
239
  function shorterThanOrEquals(value, arg1) {
240
- return value.length <= Number(arg1);
240
+ return lessThanOrEquals(value.length, arg1);
241
241
  }
242
242
 
243
243
  function startsWith(value, arg1) {
@@ -390,16 +390,18 @@ function optionalFunctionValue(value) {
390
390
  return isFunction(value) ? value.apply(void 0, args) : value;
391
391
  }
392
392
 
393
- function defaultTo(callback, defaultValue) {
394
- var _a;
395
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
396
- }
397
-
398
- /**
399
- * Throws a timed out error.
400
- */
401
- function throwError(devMessage, productionMessage) {
402
- throw new Error(devMessage );
393
+ function invariant(condition,
394
+ // eslint-disable-next-line @typescript-eslint/ban-types
395
+ message) {
396
+ if (condition) {
397
+ return;
398
+ }
399
+ // If message is a string object (rather than string literal)
400
+ // Throw the value directly as a string
401
+ // Alternatively, throw an error with the message
402
+ throw message instanceof String
403
+ ? message.valueOf()
404
+ : new Error(message ? optionalFunctionValue(message) : message);
403
405
  }
404
406
 
405
407
  function isProxySupported() {
@@ -411,6 +413,11 @@ function isProxySupported() {
411
413
  }
412
414
  }
413
415
 
416
+ function defaultTo(callback, defaultValue) {
417
+ var _a;
418
+ return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
419
+ }
420
+
414
421
  function ruleReturn(pass, message) {
415
422
  var output = { pass: pass };
416
423
  if (message) {
@@ -439,15 +446,12 @@ function transformResult(result, ruleName, value) {
439
446
  return ruleReturn(result);
440
447
  }
441
448
  else {
442
- return ruleReturn(result.pass, optionalFunctionValue.apply(void 0, __spreadArray([result.message, ruleName, value], args)));
449
+ return ruleReturn(result.pass, optionalFunctionValue.apply(void 0, __spreadArray([result.message, ruleName, value], args, false)));
443
450
  }
444
451
  }
445
452
  function validateResult(result) {
446
453
  // if result is boolean, or if result.pass is boolean
447
- if (isBoolean(result) || (result && isBoolean(result.pass))) {
448
- return;
449
- }
450
- throwError('Incorrect return value for rule: ' + JSON.stringify(result));
454
+ invariant(isBoolean(result) || (result && isBoolean(result.pass)), 'Incorrect return value for rule: ' + JSON.stringify(result));
451
455
  }
452
456
 
453
457
  function enforceEager(value) {
@@ -473,18 +477,12 @@ function enforceEager(value) {
473
477
  for (var _i = 0; _i < arguments.length; _i++) {
474
478
  args[_i] = arguments[_i];
475
479
  }
476
- var transformedResult = transformResult.apply(void 0, __spreadArray([ctx.run({ value: value }, function () { return rule.apply(void 0, __spreadArray([value], args)); }),
480
+ var transformedResult = transformResult.apply(void 0, __spreadArray([ctx.run({ value: value }, function () { return rule.apply(void 0, __spreadArray([value], args, false)); }),
477
481
  ruleName,
478
- value], args));
479
- if (!transformedResult.pass) {
480
- if (isEmpty(transformedResult.message)) {
481
- throwError("enforce/" + ruleName + " failed with " + JSON.stringify(value));
482
- }
483
- else {
484
- // Explicitly throw a string so that vest.test can pick it up as the validation error message
485
- throw transformedResult.message;
486
- }
487
- }
482
+ value], args, false));
483
+ invariant(transformedResult.pass, isEmpty(transformedResult.message)
484
+ ? "enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value))
485
+ : new String(transformedResult.message));
488
486
  return target;
489
487
  };
490
488
  }
@@ -520,7 +518,7 @@ function genEnforceLazy(key) {
520
518
  }
521
519
  var rule = getRule(ruleName);
522
520
  registeredRules.push(function (value) {
523
- return transformResult.apply(void 0, __spreadArray([rule.apply(void 0, __spreadArray([value], args)), ruleName, value], args));
521
+ return transformResult.apply(void 0, __spreadArray([rule.apply(void 0, __spreadArray([value], args, false)), ruleName, value], args, false));
524
522
  });
525
523
  var proxy = {
526
524
  run: function (value) {
@@ -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 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
+ import{createContext as n}from"context";var r=Object.assign;function t(n){return"function"==typeof n}function e(n){return function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return!n.apply(void 0,r)}}function u(n){return null===n}var i=e(u);function o(n){return void 0===n}var a=e(o);function s(n){return null===n||o(n)}var f=e(s);function c(n){return String(n)===n}function l(n,r){return c(n)&&c(r)&&n.endsWith(r)}var v=e(l);function N(n,r){return n===r}var g=e(N);function h(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var p=e(h);function y(n,r){return h(n)&&h(r)&&Number(n)>Number(r)}function m(n,r){return h(n)&&h(r)&&Number(n)===Number(r)}var d=e(m);function b(n,r){return m(n,r)||y(n,r)}function O(n){return!!Array.isArray(n)}var E=e(O);function x(n,r){return!!(O(r)||c(r)&&c(n))&&-1!==r.indexOf(n)}var q=e(x);function w(n,r){return h(n)&&h(r)&&Number(n)<Number(r)}function S(n,r){return m(n,r)||w(n,r)}function T(n,r,t){return b(n,r)&&S(n,t)}var A=e(T);function B(n){return s(n)||c(n)&&!n.trim()}var P=e(B);function W(n){return!!n===n}var j=e(W);function k(n){return"number"==typeof n}var F=e(k);function I(n,r){return m(n.length,r)}var J=e(I);function K(n){if(n){if(k(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return I(n,0);if("object"==typeof n)return I(Object.keys(n),0)}return!0}var R=e(K);function U(n,r){return n in r}var V=e(U);function M(n){return Number.isNaN(n)}var X=e(M),z=e(c);function C(n){return!!n}var D=e(C);function G(n,r){if(s(r))return!1;for(var t in r)if(r[t]===n)return!0;return!1}var H=e(G);function L(n,r){return r instanceof RegExp?r.test(n):!!c(r)&&new RegExp(r).test(n)}var Q=e(L);function Y(n,r){return c(n)&&c(r)&&n.startsWith(r)}var Z={condition:function(n,r){try{return r(n)}catch(n){return!1}},doesNotEndWith:v,doesNotStartWith:e(Y),endsWith:l,equals:N,greaterThan:y,greaterThanOrEquals:b,gt:y,gte:b,inside:x,isArray:O,isBetween:T,isBlank:B,isBoolean:W,isEmpty:K,isEven:function(n){return!!h(n)&&0==n%2},isFalsy:D,isKeyOf:U,isNaN:M,isNegative:function(n){return w(n,0)},isNotArray:E,isNotBetween:A,isNotBlank:P,isNotBoolean:j,isNotEmpty:R,isNotKeyOf:V,isNotNaN:X,isNotNull:i,isNotNullish:f,isNotNumber:F,isNotNumeric:p,isNotString:z,isNotUndefined:a,isNotValueOf:H,isNull:u,isNullish:s,isNumber:k,isNumeric:h,isOdd:function(n){return!!h(n)&&0!=n%2},isPositive:function(n){return y(n,0)},isString:c,isTruthy:C,isUndefined:o,isValueOf:G,lengthEquals:I,lengthNotEquals:J,lessThan:w,lessThanOrEquals:S,longerThan:function(n,r){return y(n.length,r)},longerThanOrEquals:function(n,r){return b(n.length,r)},lt:w,lte:S,matches:L,notEquals:g,notInside:q,notMatches:Q,numberEquals:m,numberNotEquals:d,shorterThan:function(n,r){return w(n.length,r)},shorterThanOrEquals:function(n,r){return S(n.length,r)},startsWith:Y};function $(n){for(var r in Z){var e=Z[r];t(e)&&n(r,e)}}var _=n((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:r(e,{parent:nn})}));function nn(){return null}function rn(n,r,t){if(t||2===arguments.length)for(var e,u=0,i=r.length;u<i;u++)!e&&u in r||(e||(e=Array.prototype.slice.call(r,0,u)),e[u]=r[u]);return n.concat(e||Array.prototype.slice.call(r))}function tn(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function en(n,r){if(!n)throw r instanceof String?r.valueOf():Error(r?tn(r):r)}function un(){try{return t(Proxy)}catch(n){return!1}}function on(n,r){var t;return null!==(t=tn(n))&&void 0!==t?t:r}function an(n,r){return n={pass:n},r&&(n.message=r),n}function sn(n,r,t){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return en(W(n)||n&&W(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),W(n)?an(n):an(n.pass,tn.apply(void 0,rn([n.message,r,t],e,!1)))}function fn(n){function r(r,t,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return en((i=sn.apply(void 0,rn([_.run({value:n},(function(){return t.apply(void 0,rn([n],u,!1))})),e,n],u,!1))).pass,K(i.message)?"enforce/".concat(e," failed with ").concat(JSON.stringify(n)):new String(i.message)),r}}var t={};if(!un())return $((function(n,e){t[n]=r(t,e,n)})),t;var e=new Proxy(t,{get:function(n,t){if(n=Z[t])return r(e,n,t)}});return e}function cn(n,r){function t(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(r(n[i],t,i),e)return u}function ln(n){var r,t=[];return function n(e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=Z[e];t.push((function(n){return sn.apply(void 0,rn([o.apply(void 0,rn([n],u,!1)),e,n],u,!1))}));var a={run:function(n){return on(cn(t,(function(t,e){var u,i=_.run({value:n},(function(){return t(n)}));i.pass||e(an(!!i.pass,null!==(u=tn(r,n,i.message))&&void 0!==u?u:i.message))})),an(!0))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return un()?a=new Proxy(a,{get:function(r,t){return Z[t]?n(t):r[t]}}):($((function(r){a[r]=n(r)})),a)}}(n)}var vn,Nn=(vn={context:function(){return _.useX()},extend:function(n){r(Z,n)}},un()?new Proxy(r(fn,vn),{get:function(n,r){return r in n?n[r]:Z[r]?ln(r):void 0}}):($((function(n){vn[n]=ln(n)})),r(fn,vn)));export{_ as ctx,Nn as enforce};
@@ -126,7 +126,7 @@ function shape(inputObject, shapeObject) {
126
126
  }
127
127
 
128
128
  // Help needed improving the typings of this file.
129
- // Ideally, we'd be able to extend IShapeObject, but that's not possible.
129
+ // Ideally, we'd be able to extend ShapeObject, but that's not possible.
130
130
  function partial(shapeObject) {
131
131
  var output = {};
132
132
  for (var key in shapeObject) {
@@ -4,6 +4,32 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.compose = factory(global.n4s));
5
5
  }(this, (function (n4s) { 'use strict';
6
6
 
7
+ function isFunction(value) {
8
+ return typeof value === 'function';
9
+ }
10
+
11
+ function optionalFunctionValue(value) {
12
+ var args = [];
13
+ for (var _i = 1; _i < arguments.length; _i++) {
14
+ args[_i - 1] = arguments[_i];
15
+ }
16
+ return isFunction(value) ? value.apply(void 0, args) : value;
17
+ }
18
+
19
+ function invariant(condition,
20
+ // eslint-disable-next-line @typescript-eslint/ban-types
21
+ message) {
22
+ if (condition) {
23
+ return;
24
+ }
25
+ // If message is a string object (rather than string literal)
26
+ // Throw the value directly as a string
27
+ // Alternatively, throw an error with the message
28
+ throw message instanceof String
29
+ ? message.valueOf()
30
+ : new Error(message ? optionalFunctionValue(message) : message);
31
+ }
32
+
7
33
  function mapFirst(array, callback) {
8
34
  var broke = false;
9
35
  var breakoutValue = null;
@@ -19,61 +45,11 @@
19
45
  }
20
46
  }
21
47
 
22
- function isFunction(value) {
23
- return typeof value === 'function';
24
- }
25
-
26
- function optionalFunctionValue(value) {
27
- var args = [];
28
- for (var _i = 1; _i < arguments.length; _i++) {
29
- args[_i - 1] = arguments[_i];
30
- }
31
- return isFunction(value) ? value.apply(void 0, args) : value;
32
- }
33
-
34
48
  function defaultTo(callback, defaultValue) {
35
49
  var _a;
36
50
  return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
37
51
  }
38
52
 
39
- /**
40
- * Throws a timed out error.
41
- */
42
- function throwError(devMessage, productionMessage) {
43
- throw new Error(devMessage );
44
- }
45
-
46
- /**
47
- * A safe hasOwnProperty access
48
- */
49
- function hasOwnProperty(obj, key) {
50
- return Object.prototype.hasOwnProperty.call(obj, key);
51
- }
52
-
53
- function isNumber(value) {
54
- return Boolean(typeof value === 'number');
55
- }
56
-
57
- function lengthEquals(value, arg1) {
58
- return value.length === Number(arg1);
59
- }
60
-
61
- function isEmpty(value) {
62
- if (!value) {
63
- return true;
64
- }
65
- else if (isNumber(value)) {
66
- return value === 0;
67
- }
68
- else if (hasOwnProperty(value, 'length')) {
69
- return lengthEquals(value, 0);
70
- }
71
- else if (typeof value === 'object') {
72
- return lengthEquals(Object.keys(value), 0);
73
- }
74
- return true;
75
- }
76
-
77
53
  function ruleReturn(pass, message) {
78
54
  var output = { pass: pass };
79
55
  if (message) {
@@ -108,15 +84,7 @@
108
84
  }
109
85
  return Object.assign(function (value) {
110
86
  var res = run(value);
111
- if (!res.pass) {
112
- if (isEmpty(res.message)) {
113
- throwError();
114
- }
115
- else {
116
- // Explicitly throw a string so that vest.test can pick it up as the validation error message
117
- throw res.message;
118
- }
119
- }
87
+ invariant(res.pass, new String(res.message));
120
88
  }, {
121
89
  run: run,
122
90
  test: function (value) { return run(value).pass; }
@@ -125,7 +93,7 @@
125
93
  return n4s.ctx.run({ value: value }, function () {
126
94
  return defaultToPassing(mapFirst(composites, function (composite, breakout) {
127
95
  /* HACK: Just a small white lie. ~~HELP WANTED~~.
128
- The ideal is that instead of `TLazyRuleRunners` We would simply use `TLazy` to begin with.
96
+ The ideal is that instead of `LazyRuleRunners` We would simply use `Lazy` to begin with.
129
97
  The problem is that lazy rules can't really be passed to this function due to some generic hell
130
98
  so we're limiting it to a small set of functions.
131
99
  */
@@ -1 +1 @@
1
- "use strict";!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("n4s")):"function"==typeof define&&define.amd?define(["n4s"],e):(n="undefined"!=typeof globalThis?globalThis:n||self).compose=e(n.n4s)}(this,(function(n){function e(n,e){function t(n){r=!0,o=n}for(var r=!1,o=null,u=0;u<n.length;u++)if(e(n[u],t,u),r)return o}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){if(n){if("number"==typeof n)return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return n.length===Number(0);if("object"==typeof n)return Object.keys(n).length===Number(0)}return!0}function o(n,e){return n={pass:n},e&&(n.message=e),n}return function(){function u(r){return n.ctx.run({value:r},(function(){return t(e(f,(function(n,e){try{var t=n.run(r)}catch(n){t=o(!1)}t.pass||e(t)})),o(!0))}))}for(var f=[],i=0;i<arguments.length;i++)f[i]=arguments[i];return Object.assign((function(n){if(!(n=u(n)).pass){if(r(n.message))throw Error(t(void 0,void 0));throw n.message}}),{run:u,test:function(n){return u(n).pass}})}}));
1
+ "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("n4s")):"function"==typeof define&&define.amd?define(["n4s"],t):(n="undefined"!=typeof globalThis?globalThis:n||self).compose=t(n.n4s)}(this,(function(n){function t(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return"function"==typeof n?n.apply(void 0,t):n}function e(n,t){function e(n){r=!0,o=n}for(var r=!1,o=null,u=0;u<n.length;u++)if(t(n[u],e,u),r)return o}function r(n,e){var r;return null!==(r=t(n))&&void 0!==r?r:e}function o(n,t){return n={pass:n},t&&(n.message=t),n}return function(){function u(t){return n.ctx.run({value:t},(function(){return r(e(f,(function(n,e){try{var r=n.run(t)}catch(n){r=o(!1)}r.pass||e(r)})),o(!0))}))}for(var f=[],i=0;i<arguments.length;i++)f[i]=arguments[i];return Object.assign((function(n){n=u(n);var e=new String(n.message);if(!n.pass)throw e instanceof String?e.valueOf():Error(e?t(e):e)}),{run:u,test:function(n){return u(n).pass}})}}));
@@ -104,12 +104,27 @@
104
104
  }));
105
105
  }
106
106
 
107
+ function isNumeric(value) {
108
+ var str = String(value);
109
+ var num = Number(value);
110
+ var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
111
+ return Boolean(result);
112
+ }
113
+
114
+ function numberEquals(value, eq) {
115
+ return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
116
+ }
117
+
107
118
  function lengthEquals(value, arg1) {
108
- return value.length === Number(arg1);
119
+ return numberEquals(value.length, arg1);
120
+ }
121
+
122
+ function greaterThan(value, gt) {
123
+ return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
109
124
  }
110
125
 
111
126
  function longerThan(value, arg1) {
112
- return value.length > Number(arg1);
127
+ return greaterThan(value.length, arg1);
113
128
  }
114
129
 
115
130
  var REQUIRED_COUNT = 1;
@@ -1 +1 @@
1
- "use strict";!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("n4s")):"function"==typeof define&&define.amd?define(["n4s"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).n4s)}(this,(function(n){function e(n,e){function t(n){r=!0,f=n}for(var r=!1,f=null,o=0;o<n.length;o++)if(e(n[o],t,o),r)return f}function t(n,e){var t;return null!==(t=function(n){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];return"function"==typeof n?n.apply(void 0,e):n}(n))&&void 0!==t?t:e}function r(n,e){return n={pass:n},e&&(n.message=e),n}function f(n,e){try{return n.run(e)}catch(n){return r(!1)}}n.enforce.extend({allOf:function(n){for(var o=[],u=1;u<arguments.length;u++)o[u-1]=arguments[u];return t(e(o,(function(e,t){(e=f(e,n)).pass||t(e)})),r(!0))},anyOf:function(n){for(var o=[],u=1;u<arguments.length;u++)o[u-1]=arguments[u];return t(e(o,(function(e,t){(e=f(e,n)).pass&&t(e)})),r(!1))},noneOf:function(n){for(var o=[],u=1;u<arguments.length;u++)o[u-1]=arguments[u];return t(e(o,(function(e,t){f(e,n).pass&&t(r(!1))})),r(!0))},oneOf:function(n){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];var o=[];return e.some((function(e){if(o.length>Number(1))return!1;(e=f(e,n)).pass&&o.push(e)})),r(o.length===Number(1))}})}));
1
+ "use strict";!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("n4s")):"function"==typeof define&&define.amd?define(["n4s"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).n4s)}(this,(function(n){function e(n,e){function r(n){t=!0,u=n}for(var t=!1,u=null,f=0;f<n.length;f++)if(e(n[f],r,f),t)return u}function r(n,e){var r;return null!==(r=function(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return"function"==typeof n?n.apply(void 0,e):n}(n))&&void 0!==r?r:e}function t(n,e){return n={pass:n},e&&(n.message=e),n}function u(n,e){try{return n.run(e)}catch(n){return t(!1)}}function f(n){var e=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(e))}function o(n,e){return f(n)&&f(e)&&Number(n)===Number(e)}n.enforce.extend({allOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return r(e(f,(function(e,r){(e=u(e,n)).pass||r(e)})),t(!0))},anyOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return r(e(f,(function(e,r){(e=u(e,n)).pass&&r(e)})),t(!1))},noneOf:function(n){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return r(e(f,(function(e,r){u(e,n).pass&&r(t(!1))})),t(!0))},oneOf:function(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var i=[];return e.some((function(e){var r=i.length;if(f(r)&&f(1)&&Number(r)>Number(1))return!1;(e=u(e,n)).pass&&i.push(e)})),t(o(i.length,1))}})}));
@@ -61,8 +61,13 @@
61
61
  return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
62
62
  }
63
63
 
64
+ function numberEquals(value, eq) {
65
+ return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
66
+ }
67
+ var numberNotEquals = bindNot(numberEquals);
68
+
64
69
  function greaterThanOrEquals(value, gte) {
65
- return isNumeric(value) && isNumeric(gte) && Number(value) >= Number(gte);
70
+ return numberEquals(value, gte) || greaterThan(value, gte);
66
71
  }
67
72
 
68
73
  // The module is named "isArrayValue" since it
@@ -85,8 +90,12 @@
85
90
  }
86
91
  var notInside = bindNot(inside);
87
92
 
93
+ function lessThan(value, lt) {
94
+ return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
95
+ }
96
+
88
97
  function lessThanOrEquals(value, lte) {
89
- return isNumeric(value) && isNumeric(lte) && Number(value) <= Number(lte);
98
+ return numberEquals(value, lte) || lessThan(value, lte);
90
99
  }
91
100
 
92
101
  function isBetween(value, min, max) {
@@ -118,7 +127,7 @@
118
127
  var isNotNumber = bindNot(isNumber);
119
128
 
120
129
  function lengthEquals(value, arg1) {
121
- return value.length === Number(arg1);
130
+ return numberEquals(value.length, arg1);
122
131
  }
123
132
  var lengthNotEquals = bindNot(lengthEquals);
124
133
 
@@ -160,12 +169,8 @@
160
169
  var isNotNaN = bindNot(isNaN$1);
161
170
 
162
171
  function isNegative(value) {
163
- if (isNumeric(value)) {
164
- return Number(value) < 0;
165
- }
166
- return false;
172
+ return lessThan(value, 0);
167
173
  }
168
- var isPositive = bindNot(isNegative);
169
174
 
170
175
  /**
171
176
  * Validates that a given value is an odd number
@@ -177,6 +182,10 @@
177
182
  return false;
178
183
  };
179
184
 
185
+ function isPositive(value) {
186
+ return greaterThan(value, 0);
187
+ }
188
+
180
189
  var isNotString = bindNot(isStringValue);
181
190
 
182
191
  function isTruthy(value) {
@@ -197,16 +206,12 @@
197
206
  }
198
207
  var isNotValueOf = bindNot(isValueOf);
199
208
 
200
- function lessThan(value, lt) {
201
- return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
202
- }
203
-
204
209
  function longerThan(value, arg1) {
205
- return value.length > Number(arg1);
210
+ return greaterThan(value.length, arg1);
206
211
  }
207
212
 
208
213
  function longerThanOrEquals(value, arg1) {
209
- return value.length >= Number(arg1);
214
+ return greaterThanOrEquals(value.length, arg1);
210
215
  }
211
216
 
212
217
  function matches(value, regex) {
@@ -222,11 +227,6 @@
222
227
  }
223
228
  var notMatches = bindNot(matches);
224
229
 
225
- function numberEquals(value, eq) {
226
- return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
227
- }
228
- var numberNotEquals = bindNot(numberEquals);
229
-
230
230
  function condition(value, callback) {
231
231
  try {
232
232
  return callback(value);
@@ -237,11 +237,11 @@
237
237
  }
238
238
 
239
239
  function shorterThan(value, arg1) {
240
- return value.length < Number(arg1);
240
+ return lessThan(value.length, arg1);
241
241
  }
242
242
 
243
243
  function shorterThanOrEquals(value, arg1) {
244
- return value.length <= Number(arg1);
244
+ return lessThanOrEquals(value.length, arg1);
245
245
  }
246
246
 
247
247
  function startsWith(value, arg1) {
@@ -343,11 +343,18 @@
343
343
  return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
344
344
  }
345
345
 
346
- /**
347
- * Throws a timed out error.
348
- */
349
- function throwError(devMessage, productionMessage) {
350
- throw new Error(devMessage );
346
+ function invariant(condition,
347
+ // eslint-disable-next-line @typescript-eslint/ban-types
348
+ message) {
349
+ if (condition) {
350
+ return;
351
+ }
352
+ // If message is a string object (rather than string literal)
353
+ // Throw the value directly as a string
354
+ // Alternatively, throw an error with the message
355
+ throw message instanceof String
356
+ ? message.valueOf()
357
+ : new Error(message ? optionalFunctionValue(message) : message);
351
358
  }
352
359
 
353
360
  // eslint-disable-next-line max-lines-per-function
@@ -360,8 +367,8 @@
360
367
  useX: useX
361
368
  };
362
369
  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')));
370
+ invariant(storage.ctx, defaultTo(errorMessage, 'Context was used after it was closed'));
371
+ return storage.ctx;
365
372
  }
366
373
  function run(ctxRef, fn) {
367
374
  var _a;
@@ -493,15 +500,12 @@
493
500
  return ruleReturn(result);
494
501
  }
495
502
  else {
496
- return ruleReturn(result.pass, optionalFunctionValue.apply(void 0, __spreadArray([result.message, ruleName, value], args)));
503
+ return ruleReturn(result.pass, optionalFunctionValue.apply(void 0, __spreadArray([result.message, ruleName, value], args, false)));
497
504
  }
498
505
  }
499
506
  function validateResult(result) {
500
507
  // if result is boolean, or if result.pass is boolean
501
- if (isBoolean(result) || (result && isBoolean(result.pass))) {
502
- return;
503
- }
504
- throwError('Incorrect return value for rule: ' + JSON.stringify(result));
508
+ invariant(isBoolean(result) || (result && isBoolean(result.pass)), 'Incorrect return value for rule: ' + JSON.stringify(result));
505
509
  }
506
510
 
507
511
  function enforceEager(value) {
@@ -527,18 +531,12 @@
527
531
  for (var _i = 0; _i < arguments.length; _i++) {
528
532
  args[_i] = arguments[_i];
529
533
  }
530
- var transformedResult = transformResult.apply(void 0, __spreadArray([ctx.run({ value: value }, function () { return rule.apply(void 0, __spreadArray([value], args)); }),
534
+ var transformedResult = transformResult.apply(void 0, __spreadArray([ctx.run({ value: value }, function () { return rule.apply(void 0, __spreadArray([value], args, false)); }),
531
535
  ruleName,
532
- value], args));
533
- if (!transformedResult.pass) {
534
- if (isEmpty(transformedResult.message)) {
535
- throwError("enforce/" + ruleName + " failed with " + JSON.stringify(value));
536
- }
537
- else {
538
- // Explicitly throw a string so that vest.test can pick it up as the validation error message
539
- throw transformedResult.message;
540
- }
541
- }
536
+ value], args, false));
537
+ invariant(transformedResult.pass, isEmpty(transformedResult.message)
538
+ ? "enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value))
539
+ : new String(transformedResult.message));
542
540
  return target;
543
541
  };
544
542
  }
@@ -574,7 +572,7 @@
574
572
  }
575
573
  var rule = getRule(ruleName);
576
574
  registeredRules.push(function (value) {
577
- return transformResult.apply(void 0, __spreadArray([rule.apply(void 0, __spreadArray([value], args)), ruleName, value], args));
575
+ return transformResult.apply(void 0, __spreadArray([rule.apply(void 0, __spreadArray([value], args, false)), ruleName, value], args, false));
578
576
  });
579
577
  var proxy = {
580
578
  run: function (value) {
@@ -1 +1 @@
1
- "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).n4s={})}(this,(function(n){function t(n){return"function"==typeof n}function r(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function e(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function f(n,t){return n===t}function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function c(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}function l(n,t){return a(n)&&a(t)&&Number(n)>=Number(t)}function N(n){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})}));
1
+ "use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).n4s={})}(this,(function(n){function t(n){return"function"==typeof n}function r(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function e(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function f(n,t){return n===t}function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function c(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}function l(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}function p(n,t){return l(n,t)||c(n,t)}function h(n){return!!Array.isArray(n)}function v(n,t){return!!(h(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function N(n,t){return a(n)&&a(t)&&Number(n)<Number(t)}function g(n,t){return l(n,t)||N(n,t)}function d(n,t,r){return p(n,t)&&g(n,r)}function y(n){return i(n)||o(n)&&!n.trim()}function m(n){return!!n===n}function b(n){return"number"==typeof n}function x(n,t){return l(n.length,t)}function O(n){if(n){if(b(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return x(n,0);if("object"==typeof n)return x(Object.keys(n),0)}return!0}function E(n,t){return n in t}function w(n){return Number.isNaN(n)}function T(n){return!!n}function q(n,t){if(i(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function S(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function j(n,t){return o(n)&&o(t)&&n.startsWith(t)}function P(n){for(var r in ln){var e=ln[r];t(e)&&n(r,e)}}function A(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function B(n,t){var r;return null!==(r=A(n))&&void 0!==r?r:t}function W(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?A(t):t)}function k(){return null}function F(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||Array.prototype.slice.call(t))}function I(){try{return t(Proxy)}catch(n){return!1}}function J(n,t){return n={pass:n},t&&(n.message=t),n}function K(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return W(m(n)||n&&m(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),m(n)?J(n):J(n.pass,A.apply(void 0,F([n.message,t,r],e,!1)))}function M(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return W((i=K.apply(void 0,F([pn.run({value:n},(function(){return r.apply(void 0,F([n],u,!1))})),e,n],u,!1))).pass,O(i.message)?"enforce/".concat(e," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var r={};if(!I())return P((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=ln[r])return t(e,n,r)}});return e}function R(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function U(n){var t,r=[];return function n(e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=ln[e];r.push((function(n){return K.apply(void 0,F([o.apply(void 0,F([n],u,!1)),e,n],u,!1))}));var s={run:function(n){return B(R(r,(function(r,e){var u,i=pn.run({value:n},(function(){return r(n)}));i.pass||e(J(!!i.pass,null!==(u=A(t,n,i.message))&&void 0!==u?u:i.message))})),J(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return I()?s=new Proxy(s,{get:function(t,r){return ln[r]?n(r):t[r]}}):(P((function(t){s[t]=n(t)})),s)}}(n)}var V,X=Object.assign,_=r(e),z=r(u),C=r(i),D=r(s),G=r(f),H=r(a),L=r(l),Q=r(h),Y=r(v),Z=r(d),$=r(y),nn=r(m),tn=r(b),rn=r(x),en=r(O),un=r(E),on=r(w),sn=r(o),fn=r(T),an=r(q),cn=r(S),ln={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:D,doesNotStartWith:r(j),endsWith:s,equals:f,greaterThan:c,greaterThanOrEquals:p,gt:c,gte:p,inside:v,isArray:h,isBetween:d,isBlank:y,isBoolean:m,isEmpty:O,isEven:function(n){return!!a(n)&&0==n%2},isFalsy:fn,isKeyOf:E,isNaN:w,isNegative:function(n){return N(n,0)},isNotArray:Q,isNotBetween:Z,isNotBlank:$,isNotBoolean:nn,isNotEmpty:en,isNotKeyOf:un,isNotNaN:on,isNotNull:_,isNotNullish:C,isNotNumber:tn,isNotNumeric:H,isNotString:sn,isNotUndefined:z,isNotValueOf:an,isNull:e,isNullish:i,isNumber:b,isNumeric:a,isOdd:function(n){return!!a(n)&&0!=n%2},isPositive:function(n){return c(n,0)},isString:o,isTruthy:T,isUndefined:u,isValueOf:q,lengthEquals:x,lengthNotEquals:rn,lessThan:N,lessThanOrEquals:g,longerThan:function(n,t){return c(n.length,t)},longerThanOrEquals:function(n,t){return p(n.length,t)},lt:N,lte:g,matches:S,notEquals:G,notInside:Y,notMatches:cn,numberEquals:l,numberNotEquals:L,shorterThan:function(n,t){return N(n.length,t)},shorterThanOrEquals:function(n,t){return g(n.length,t)},startsWith:j},pn=function(n){function t(t,u){var i,o,s=r();return t=X({},s||{},null!==(i=A(n,t,s))&&void 0!==i?i:t),i=e.ctx=Object.freeze(t),e.ancestry.unshift(i),u=u(i),e.ancestry.shift(),e.ctx=null!==(o=e.ancestry[0])&&void 0!==o?o:null,u}function r(){return e.ctx}var e={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:r,useX:function(n){return W(e.ctx,B(n,"Context was used after it was closed")),e.ctx}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?X(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:X(r,{parent:k})}));V={context:function(){return pn.useX()},extend:function(n){X(ln,n)}},_=I()?new Proxy(X(M,V),{get:function(n,t){return t in n?n[t]:ln[t]?U(t):void 0}}):(P((function(n){V[n]=U(n)})),X(M,V)),n.ctx=pn,n.enforce=_,Object.defineProperty(n,"__esModule",{value:!0})}));
@@ -130,7 +130,7 @@
130
130
  }
131
131
 
132
132
  // Help needed improving the typings of this file.
133
- // Ideally, we'd be able to extend IShapeObject, but that's not possible.
133
+ // Ideally, we'd be able to extend ShapeObject, but that's not possible.
134
134
  function partial(shapeObject) {
135
135
  var output = {};
136
136
  for (var key in shapeObject) {