n4s 4.3.0-dev-c4ba9b → 4.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Enforce - n4s
2
2
 
3
+ [![Join Discord](https://badgen.net/discord/online-members/WmADZpJnSe?icon=discord&label=Discord)](https://discord.gg/WmADZpJnSe) [![Version](https://badgen.net/npm/v/vest?&icon=npm)](https://www.npmjs.com/package/n4s) [![Downloads](https://badgen.net/npm/dt/n4s?label=Downloads)](https://www.npmjs.com/package/n4s) [![bundlephobia](https://badgen.net/bundlephobia/minzip/n4s)](https://bundlephobia.com/package/n4s) [![Status](https://badgen.net/github/status/ealush/vest)](https://github.com/ealush/vest/actions)
4
+
3
5
  Enforce is a validations assertions library. It provides rules that you can test your data against.
4
6
 
5
7
  By default, enforce throws an error when your validations fail. These errors should be caught by a validation testing framework such as [Vest](https://github.com/ealush/vest).
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var n4s = require('n4s');
4
3
  var vestUtils = require('vest-utils');
4
+ var n4s = require('n4s');
5
5
 
6
6
  function ruleReturn(pass, message) {
7
7
  var output = { pass: pass };
@@ -1 +1 @@
1
- "use strict";var n=require("n4s"),r=require("vest-utils");function t(n,r){var t={pass:n};return r&&(t.message=r),t}function u(n){return r.defaultTo(n,t(!0))}function e(n,r){try{return n.run(r)}catch(n){return t(!1)}}module.exports=function(){for(var t=[],s=0;s<arguments.length;s++)t[s]=arguments[s];return r.assign((function(n){var t=a(n);r.invariant(t.pass,r.StringObject(t.message))}),{run:a,test:function(n){return a(n).pass}});function a(s){return n.ctx.run({value:s},(function(){return u(r.mapFirst(t,(function(n,r){var t=e(n,s);r(!t.pass,t)})))}))}};
1
+ "use strict";var n=require("vest-utils"),r=require("n4s");function t(n,r){var t={pass:n};return r&&(t.message=r),t}function u(r){return n.defaultTo(r,t(!0))}function e(n,r){try{return n.run(r)}catch(n){return t(!1)}}module.exports=function(){for(var t=[],s=0;s<arguments.length;s++)t[s]=arguments[s];return n.assign((function(r){var t=a(r);n.invariant(t.pass,n.StringObject(t.message))}),{run:a,test:function(n){return a(n).pass}});function a(s){return r.ctx.run({value:s},(function(){return u(n.mapFirst(t,(function(n,r){var t=e(n,s);r(!t.pass,t)})))}))}};
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var n4s = require('n4s');
4
3
  var vestUtils = require('vest-utils');
4
+ var n4s = require('n4s');
5
5
 
6
6
  function ruleReturn(pass, message) {
7
7
  var output = { pass: pass };
@@ -1 +1 @@
1
- "use strict";var n=require("n4s"),r=require("vest-utils");function t(n,r){var t={pass:n};return r&&(t.message=r),t}function e(){return t(!1)}function u(n){return r.defaultTo(n,e())}function f(n){return r.defaultTo(n,t(!0))}function a(n,r){try{return n.run(r)}catch(n){return e()}}function o(n,r){return n===r}r.bindNot(o);n.enforce.extend({allOf:function(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return f(r.mapFirst(t,(function(r,t){var e=a(r,n);t(!e.pass,e)})))},anyOf:function(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return u(r.mapFirst(t,(function(r,t){var e=a(r,n);t(e.pass,e)})))},noneOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return f(r.mapFirst(t,(function(r,t){t(a(r,n).pass,e())})))},oneOf:function(n){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];var f=0;return e.some((function(t){if(a(t,n).pass&&f++,r.greaterThan(f,1))return!1})),t(o(f,1))}});
1
+ "use strict";var n=require("vest-utils"),r=require("n4s");function t(n,r){var t={pass:n};return r&&(t.message=r),t}function e(){return t(!1)}function u(r){return n.defaultTo(r,e())}function f(r){return n.defaultTo(r,t(!0))}function a(n,r){try{return n.run(r)}catch(n){return e()}}function o(n,r){return n===r}n.bindNot(o);r.enforce.extend({allOf:function(r){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return f(n.mapFirst(t,(function(n,t){var e=a(n,r);t(!e.pass,e)})))},anyOf:function(r){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return u(n.mapFirst(t,(function(n,t){var e=a(n,r);t(e.pass,e)})))},noneOf:function(r){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return f(n.mapFirst(t,(function(n,t){t(a(n,r).pass,e())})))},oneOf:function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];var f=0;return e.some((function(t){if(a(t,r).pass&&f++,n.greaterThan(f,1))return!1})),t(o(f,1))}});
@@ -121,9 +121,7 @@ function matches(value, regex) {
121
121
  else if (vestUtils.isStringValue(regex)) {
122
122
  return new RegExp(regex).test(value);
123
123
  }
124
- else {
125
- return false;
126
- }
124
+ return false;
127
125
  }
128
126
  var notMatches = vestUtils.bindNot(matches);
129
127
 
@@ -322,17 +320,19 @@ function transformResult(result, ruleName, value) {
322
320
  if (vestUtils.isBoolean(result)) {
323
321
  return ruleReturn(result);
324
322
  }
325
- else {
326
- return ruleReturn(result.pass, vestUtils.optionalFunctionValue.apply(void 0, __spreadArray([result.message, ruleName, value], args, false)));
327
- }
323
+ return ruleReturn(result.pass, vestUtils.optionalFunctionValue.apply(void 0, __spreadArray([result.message, ruleName, value], args, false)));
328
324
  }
329
325
  function validateResult(result) {
330
326
  // if result is boolean, or if result.pass is boolean
331
327
  vestUtils.invariant(vestUtils.isBoolean(result) || (result && vestUtils.isBoolean(result.pass)), 'Incorrect return value for rule: ' + JSON.stringify(result));
332
328
  }
333
329
 
330
+ // eslint-disable-next-line max-lines-per-function
334
331
  function enforceEager(value) {
335
- var target = {};
332
+ var target = {
333
+ message: message
334
+ };
335
+ var customMessage = undefined;
336
336
  // This condition is for when we don't have proxy support (ES5).
337
337
  // In this case, we need to manually assign the rules to the target object on runtime.
338
338
  // The follow up proxy block is used in case we do have proxy support, and we can assign each rule upon invocation.
@@ -346,13 +346,14 @@ function enforceEager(value) {
346
346
  }
347
347
  // We create a proxy intercepting access to the target object (which is empty).
348
348
  var proxy = new Proxy(target, {
349
- get: function (_, ruleName) {
349
+ get: function (_, key) {
350
350
  // On property access, we identify if it is a rule or not.
351
- var rule = getRule(ruleName);
351
+ var rule = getRule(key);
352
352
  // If it is a rule, we wrap it with `genRuleCall` that adds the base enforce behavior
353
353
  if (rule) {
354
- return genRuleCall(proxy, rule, ruleName);
354
+ return genRuleCall(proxy, rule, key);
355
355
  }
356
+ return target[key];
356
357
  }
357
358
  });
358
359
  return proxy;
@@ -372,14 +373,24 @@ function enforceEager(value) {
372
373
  var transformedResult = ctx.run({ value: value }, function () {
373
374
  return transformResult.apply(void 0, __spreadArray([rule.apply(void 0, __spreadArray([value], args, false)), ruleName, value], args, false));
374
375
  });
376
+ function enforceMessage() {
377
+ if (!vestUtils.isNullish(customMessage))
378
+ return vestUtils.StringObject(customMessage);
379
+ if (vestUtils.isNullish(transformedResult.message)) {
380
+ return "enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value));
381
+ }
382
+ return vestUtils.StringObject(transformedResult.message);
383
+ }
375
384
  // On rule failure (the result is false), we either throw an error
376
385
  // or throw a string value if the rule has a message defined in it.
377
- vestUtils.invariant(transformedResult.pass, vestUtils.isNullish(transformedResult.message)
378
- ? "enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value))
379
- : vestUtils.StringObject(transformedResult.message));
386
+ vestUtils.invariant(transformedResult.pass, enforceMessage());
380
387
  return target;
381
388
  };
382
389
  }
390
+ function message(input) {
391
+ customMessage = input;
392
+ return proxy;
393
+ }
383
394
  }
384
395
 
385
396
  // eslint-disable-next-line max-lines-per-function
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("vest-utils"),t=require("context");function r(t,r){return n.isStringValue(t)&&n.isStringValue(r)&&t.endsWith(r)}var i=n.bindNot(r);function e(n,t){return n===t}var u=n.bindNot(e);function s(t,r){return n.numberEquals(t,r)||n.greaterThan(t,r)}function o(t,r){return(n.isArray(r)||!(!n.isStringValue(r)||!n.isStringValue(t)))&&-1!==r.indexOf(t)}var a=n.bindNot(o);function l(t,r){return n.isNumeric(t)&&n.isNumeric(r)&&Number(t)<Number(r)}function c(t,r){return n.numberEquals(t,r)||l(t,r)}function f(n,t,r){return s(n,t)&&c(n,r)}var N=n.bindNot(f);function v(t){return n.isNullish(t)||n.isStringValue(t)&&!t.trim()}var g=n.bindNot(v),d=n.bindNot(n.isBoolean),h=function(t){return!!n.isNumeric(t)&&t%2==0};function p(n,t){return n in t}var m=n.bindNot(p);function y(n){return Number.isNaN(n)}var b=n.bindNot(y);function E(n){return l(n,0)}function q(n){return Boolean("number"==typeof n)}var S=n.bindNot(q),x=function(t){return!!n.isNumeric(t)&&t%2!=0},O=n.bindNot(n.isStringValue);function T(n){return!!n}var V=n.bindNot(T);function B(t,r){if(n.isNullish(r))return!1;for(var i in r)if(r[i]===t)return!0;return!1}var w=n.bindNot(B);function A(n,t){return s(n.length,t)}function P(t,r){return r instanceof RegExp?r.test(t):!!n.isStringValue(r)&&new RegExp(r).test(t)}var F=n.bindNot(P);function W(n,t){try{return t(n)}catch(n){return!1}}function U(n,t){return l(n.length,t)}function j(n,t){return c(n.length,t)}function k(t,r){return n.isStringValue(t)&&n.isStringValue(r)&&t.startsWith(r)}var I=n.bindNot(k);var J={condition:W,doesNotEndWith:i,doesNotStartWith:I,endsWith:r,equals:e,greaterThan:n.greaterThan,greaterThanOrEquals:s,gt:n.greaterThan,gte:s,inside:o,isArray:n.isArray,isBetween:f,isBlank:v,isBoolean:n.isBoolean,isEmpty:n.isEmpty,isEven:h,isFalsy:V,isKeyOf:p,isNaN:y,isNegative:E,isNotArray:n.isNotArray,isNotBetween:N,isNotBlank:g,isNotBoolean:d,isNotEmpty:n.isNotEmpty,isNotKeyOf:m,isNotNaN:b,isNotNull:n.isNotNull,isNotNullish:n.isNotNullish,isNotNumber:S,isNotNumeric:n.isNotNumeric,isNotString:O,isNotUndefined:n.isNotUndefined,isNotValueOf:w,isNull:n.isNull,isNullish:n.isNullish,isNumber:q,isNumeric:n.isNumeric,isOdd:x,isPositive:n.isPositive,isString:n.isStringValue,isTruthy:T,isUndefined:n.isUndefined,isValueOf:B,lengthEquals:n.lengthEquals,lengthNotEquals:n.lengthNotEquals,lessThan:l,lessThanOrEquals:c,longerThan:n.longerThan,longerThanOrEquals:A,lt:l,lte:c,matches:P,notEquals:u,notInside:a,notMatches:F,numberEquals:n.numberEquals,numberNotEquals:n.numberNotEquals,shorterThan:U,shorterThanOrEquals:j,startsWith:k};function K(n){return J[n]}function M(t){for(var r in J){var i=K(r);n.isFunction(i)&&t(r,i)}}var R=t.createCascade((function(t,r){var i={value:t.value,meta:t.meta||{}};return r?t.set?n.assign(i,{parent:function(){return function(n){if(!n)return null;return{value:n.value,meta:n.meta,parent:n.parent}}(r)}}):r:n.assign(i,{parent:_})}));function _(){return null}function C(n,t,r){if(r||2===arguments.length)for(var i,e=0,u=t.length;e<u;e++)!i&&e in t||(i||(i=Array.prototype.slice.call(t,0,e)),i[e]=t[e]);return n.concat(i||Array.prototype.slice.call(t))}function X(){try{return n.isFunction(Proxy)}catch(n){return!1}}function z(n,t){var r={pass:n};return t&&(r.message=t),r}function D(t){return n.defaultTo(t,z(!0))}function G(t,r,i){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return H(t),n.isBoolean(t)?z(t):z(t.pass,n.optionalFunctionValue.apply(void 0,C([t.message,r,i],e,!1)))}function H(t){n.invariant(n.isBoolean(t)||t&&n.isBoolean(t.pass),"Incorrect return value for rule: "+JSON.stringify(t))}function L(t){var r={};if(!X())return M((function(n,t){r[n]=e(r,t,n)})),r;var i=new Proxy(r,{get:function(n,t){var r=K(t);if(r)return e(i,r,t)}});return i;function e(r,i,e){return function(){for(var u=[],s=0;s<arguments.length;s++)u[s]=arguments[s];var o=R.run({value:t},(function(){return G.apply(void 0,C([i.apply(void 0,C([t],u,!1)),e,t],u,!1))}));return n.invariant(o.pass,n.isNullish(o.message)?"enforce/".concat(e," failed with ").concat(JSON.stringify(t)):n.StringObject(o.message)),r}}}function Q(t){var r,i=[];return function t(e){return function(){for(var u=[],s=0;s<arguments.length;s++)u[s]=arguments[s];var o=K(e);i.push((function(n){return G.apply(void 0,C([o.apply(void 0,C([n],u,!1)),e,n],u,!1))}));var a={run:function(t){return D(n.mapFirst(i,(function(i,e){var u,s=R.run({value:t},(function(){return i(t)}));e(!s.pass,z(!!s.pass,null!==(u=n.optionalFunctionValue(r,t,s.message))&&void 0!==u?u:s.message))})))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return X()?(a=new Proxy(a,{get:function(n,r){return K(r)?t(r):n[r]}}),a):(M((function(n){a[n]=t(n)})),a)}}(t)}var Y=function(){var t={context:function(){return R.useX()},extend:function(t){n.assign(J,t),r()}};return r(),new Proxy(n.assign(L,t),{get:function(n,t){return t in n?n[t]:K(t)?Q(t):void 0}});function r(){if(!X())return M((function(n){t[n]=Q(n)})),n.assign(L,t)}}();exports.ctx=R,exports.enforce=Y;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("vest-utils"),t=require("context");function r(t,r){return n.isStringValue(t)&&n.isStringValue(r)&&t.endsWith(r)}var i=n.bindNot(r);function e(n,t){return n===t}var u=n.bindNot(e);function s(t,r){return n.numberEquals(t,r)||n.greaterThan(t,r)}function o(t,r){return(n.isArray(r)||!(!n.isStringValue(r)||!n.isStringValue(t)))&&-1!==r.indexOf(t)}var a=n.bindNot(o);function l(t,r){return n.isNumeric(t)&&n.isNumeric(r)&&Number(t)<Number(r)}function c(t,r){return n.numberEquals(t,r)||l(t,r)}function f(n,t,r){return s(n,t)&&c(n,r)}var N=n.bindNot(f);function g(t){return n.isNullish(t)||n.isStringValue(t)&&!t.trim()}var v=n.bindNot(g),d=n.bindNot(n.isBoolean),h=function(t){return!!n.isNumeric(t)&&t%2==0};function p(n,t){return n in t}var m=n.bindNot(p);function y(n){return Number.isNaN(n)}var b=n.bindNot(y);function E(n){return l(n,0)}function q(n){return Boolean("number"==typeof n)}var S=n.bindNot(q),O=function(t){return!!n.isNumeric(t)&&t%2!=0},x=n.bindNot(n.isStringValue);function T(n){return!!n}var V=n.bindNot(T);function B(t,r){if(n.isNullish(r))return!1;for(var i in r)if(r[i]===t)return!0;return!1}var w=n.bindNot(B);function A(n,t){return s(n.length,t)}function P(t,r){return r instanceof RegExp?r.test(t):!!n.isStringValue(r)&&new RegExp(r).test(t)}var F=n.bindNot(P);function W(n,t){try{return t(n)}catch(n){return!1}}function U(n,t){return l(n.length,t)}function j(n,t){return c(n.length,t)}function k(t,r){return n.isStringValue(t)&&n.isStringValue(r)&&t.startsWith(r)}var I=n.bindNot(k);var J={condition:W,doesNotEndWith:i,doesNotStartWith:I,endsWith:r,equals:e,greaterThan:n.greaterThan,greaterThanOrEquals:s,gt:n.greaterThan,gte:s,inside:o,isArray:n.isArray,isBetween:f,isBlank:g,isBoolean:n.isBoolean,isEmpty:n.isEmpty,isEven:h,isFalsy:V,isKeyOf:p,isNaN:y,isNegative:E,isNotArray:n.isNotArray,isNotBetween:N,isNotBlank:v,isNotBoolean:d,isNotEmpty:n.isNotEmpty,isNotKeyOf:m,isNotNaN:b,isNotNull:n.isNotNull,isNotNullish:n.isNotNullish,isNotNumber:S,isNotNumeric:n.isNotNumeric,isNotString:x,isNotUndefined:n.isNotUndefined,isNotValueOf:w,isNull:n.isNull,isNullish:n.isNullish,isNumber:q,isNumeric:n.isNumeric,isOdd:O,isPositive:n.isPositive,isString:n.isStringValue,isTruthy:T,isUndefined:n.isUndefined,isValueOf:B,lengthEquals:n.lengthEquals,lengthNotEquals:n.lengthNotEquals,lessThan:l,lessThanOrEquals:c,longerThan:n.longerThan,longerThanOrEquals:A,lt:l,lte:c,matches:P,notEquals:u,notInside:a,notMatches:F,numberEquals:n.numberEquals,numberNotEquals:n.numberNotEquals,shorterThan:U,shorterThanOrEquals:j,startsWith:k};function K(n){return J[n]}function M(t){for(var r in J){var i=K(r);n.isFunction(i)&&t(r,i)}}var R=t.createCascade((function(t,r){var i={value:t.value,meta:t.meta||{}};return r?t.set?n.assign(i,{parent:function(){return function(n){if(!n)return null;return{value:n.value,meta:n.meta,parent:n.parent}}(r)}}):r:n.assign(i,{parent:_})}));function _(){return null}function C(n,t,r){if(r||2===arguments.length)for(var i,e=0,u=t.length;e<u;e++)!i&&e in t||(i||(i=Array.prototype.slice.call(t,0,e)),i[e]=t[e]);return n.concat(i||Array.prototype.slice.call(t))}function X(){try{return n.isFunction(Proxy)}catch(n){return!1}}function z(n,t){var r={pass:n};return t&&(r.message=t),r}function D(t){return n.defaultTo(t,z(!0))}function G(t,r,i){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return H(t),n.isBoolean(t)?z(t):z(t.pass,n.optionalFunctionValue.apply(void 0,C([t.message,r,i],e,!1)))}function H(t){n.invariant(n.isBoolean(t)||t&&n.isBoolean(t.pass),"Incorrect return value for rule: "+JSON.stringify(t))}function L(t){var r={message:function(n){return i=n,e}},i=void 0;if(!X())return M((function(n,t){r[n]=u(r,t,n)})),r;var e=new Proxy(r,{get:function(n,t){var i=K(t);return i?u(e,i,t):r[t]}});return e;function u(r,e,u){return function(){for(var s=[],o=0;o<arguments.length;o++)s[o]=arguments[o];var a=R.run({value:t},(function(){return G.apply(void 0,C([e.apply(void 0,C([t],s,!1)),u,t],s,!1))}));function l(){return n.isNullish(i)?n.isNullish(a.message)?"enforce/".concat(u," failed with ").concat(JSON.stringify(t)):n.StringObject(a.message):n.StringObject(i)}return n.invariant(a.pass,l()),r}}}function Q(t){var r,i=[];return function t(e){return function(){for(var u=[],s=0;s<arguments.length;s++)u[s]=arguments[s];var o=K(e);i.push((function(n){return G.apply(void 0,C([o.apply(void 0,C([n],u,!1)),e,n],u,!1))}));var a={run:function(t){return D(n.mapFirst(i,(function(i,e){var u,s=R.run({value:t},(function(){return i(t)}));e(!s.pass,z(!!s.pass,null!==(u=n.optionalFunctionValue(r,t,s.message))&&void 0!==u?u:s.message))})))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return X()?(a=new Proxy(a,{get:function(n,r){return K(r)?t(r):n[r]}}),a):(M((function(n){a[n]=t(n)})),a)}}(t)}var Y=function(){var t={context:function(){return R.useX()},extend:function(t){n.assign(J,t),r()}};return r(),new Proxy(n.assign(L,t),{get:function(n,t){return t in n?n[t]:K(t)?Q(t):void 0}});function r(){if(!X())return M((function(n){t[n]=Q(n)})),n.assign(L,t)}}();exports.ctx=R,exports.enforce=Y;
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var n4s = require('n4s');
6
5
  var vestUtils = require('vest-utils');
6
+ var n4s = require('n4s');
7
7
 
8
8
  function ruleReturn(pass, message) {
9
9
  var output = { pass: pass };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("n4s"),n=require("vest-utils");function e(r,n){var e={pass:r};return n&&(e.message=n),e}function t(){return e(!1)}function u(){return e(!0)}function a(r,n){try{return r.run(n)}catch(r){return t()}}function i(n,e){var t=function(t){var u=n[t],i=e[t],o=r.ctx.run({value:u,set:!0,meta:{key:t}},(function(){return a(i,u)}));if(!o.pass)return{value:o}};for(var i in e){var o=t(i);if("object"==typeof o)return o.value}return u()}r.enforce.extend({isArrayOf:function(e,t){return i=n.mapFirst(e,(function(n,e,u){var i=r.ctx.run({value:n,set:!0,meta:{index:u}},(function(){return a(t,n)}));e(!i.pass,i)})),n.defaultTo(i,u());var i},loose:i,optional:function(r,e){return n.isNullish(r)?u():a(e,r)},shape:function(r,e){var a=i(r,e);if(!a.pass)return a;for(var o in r)if(!n.hasOwnProperty(e,o))return t();return u()}}),exports.partial=function(n){var e={};for(var t in n)e[t]=r.enforce.optional(n[t]);return e};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("vest-utils"),n=require("n4s");function e(r,n){var e={pass:r};return n&&(e.message=n),e}function t(){return e(!1)}function u(){return e(!0)}function a(r,n){try{return r.run(n)}catch(r){return t()}}function i(r,e){var t=function(t){var u=r[t],i=e[t],o=n.ctx.run({value:u,set:!0,meta:{key:t}},(function(){return a(i,u)}));if(!o.pass)return{value:o}};for(var i in e){var o=t(i);if("object"==typeof o)return o.value}return u()}n.enforce.extend({isArrayOf:function(e,t){return i=r.mapFirst(e,(function(r,e,u){var i=n.ctx.run({value:r,set:!0,meta:{index:u}},(function(){return a(t,r)}));e(!i.pass,i)})),r.defaultTo(i,u());var i},loose:i,optional:function(n,e){return r.isNullish(n)?u():a(e,n)},shape:function(n,e){var a=i(n,e);if(!a.pass)return a;for(var o in n)if(!r.hasOwnProperty(e,o))return t();return u()}}),exports.partial=function(r){var e={};for(var t in r)e[t]=n.enforce.optional(r[t]);return e};
@@ -1,5 +1,5 @@
1
- import { ctx } from 'n4s';
2
1
  import { defaultTo, assign, invariant, StringObject, mapFirst } from 'vest-utils';
2
+ import { ctx } from 'n4s';
3
3
 
4
4
  function ruleReturn(pass, message) {
5
5
  var output = { pass: pass };
@@ -1 +1 @@
1
- import{ctx as n}from"n4s";import{defaultTo as r,assign as t,invariant as u,StringObject as e,mapFirst as s}from"vest-utils";function o(n,r){var t={pass:n};return r&&(t.message=r),t}function a(n){return r(n,o(!0))}function f(n,r){try{return n.run(r)}catch(n){return o(!1)}}function i(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];return t((function(n){var r=i(n);u(r.pass,e(r.message))}),{run:i,test:function(n){return i(n).pass}});function i(t){return n.run({value:t},(function(){return a(s(r,(function(n,r){var u=f(n,t);r(!u.pass,u)})))}))}}export{i as default};
1
+ import{defaultTo as n,assign as r,invariant as t,StringObject as u,mapFirst as e}from"vest-utils";import{ctx as s}from"n4s";function o(n,r){var t={pass:n};return r&&(t.message=r),t}function a(r){return n(r,o(!0))}function f(n,r){try{return n.run(r)}catch(n){return o(!1)}}function i(){for(var n=[],o=0;o<arguments.length;o++)n[o]=arguments[o];return r((function(n){var r=i(n);t(r.pass,u(r.message))}),{run:i,test:function(n){return i(n).pass}});function i(r){return s.run({value:r},(function(){return a(e(n,(function(n,t){var u=f(n,r);t(!u.pass,u)})))}))}}export{i as default};
@@ -1,5 +1,5 @@
1
- import { enforce } from 'n4s';
2
1
  import { defaultTo, mapFirst, bindNot, greaterThan } from 'vest-utils';
2
+ import { enforce } from 'n4s';
3
3
 
4
4
  function ruleReturn(pass, message) {
5
5
  var output = { pass: pass };
@@ -1 +1 @@
1
- import{enforce as n}from"n4s";import{defaultTo as r,mapFirst as t,bindNot as u,greaterThan as f}from"vest-utils";function o(n,r){var t={pass:n};return r&&(t.message=r),t}function e(){return o(!1)}function i(n){return r(n,e())}function a(n){return r(n,o(!0))}function c(n,r){try{return n.run(r)}catch(n){return e()}}function s(n,r){return n===r}u(s);n.extend({allOf:function(n){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];return a(t(r,(function(r,t){var u=c(r,n);t(!u.pass,u)})))},anyOf:function(n){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];return i(t(r,(function(r,t){var u=c(r,n);t(u.pass,u)})))},noneOf:function(n){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];return a(t(r,(function(r,t){t(c(r,n).pass,e())})))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var u=0;return r.some((function(r){if(c(r,n).pass&&u++,f(u,1))return!1})),o(s(u,1))}});
1
+ import{defaultTo as n,mapFirst as r,bindNot as t,greaterThan as u}from"vest-utils";import{enforce as f}from"n4s";function o(n,r){var t={pass:n};return r&&(t.message=r),t}function e(){return o(!1)}function i(r){return n(r,e())}function a(r){return n(r,o(!0))}function c(n,r){try{return n.run(r)}catch(n){return e()}}function s(n,r){return n===r}t(s);f.extend({allOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return a(r(t,(function(r,t){var u=c(r,n);t(!u.pass,u)})))},anyOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return i(r(t,(function(r,t){var u=c(r,n);t(u.pass,u)})))},noneOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return a(r(t,(function(r,t){t(c(r,n).pass,e())})))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var f=0;return r.some((function(r){if(c(r,n).pass&&f++,u(f,1))return!1})),o(s(f,1))}});
@@ -117,9 +117,7 @@ function matches(value, regex) {
117
117
  else if (isStringValue(regex)) {
118
118
  return new RegExp(regex).test(value);
119
119
  }
120
- else {
121
- return false;
122
- }
120
+ return false;
123
121
  }
124
122
  var notMatches = bindNot(matches);
125
123
 
@@ -318,17 +316,19 @@ function transformResult(result, ruleName, value) {
318
316
  if (isBoolean(result)) {
319
317
  return ruleReturn(result);
320
318
  }
321
- else {
322
- return ruleReturn(result.pass, optionalFunctionValue.apply(void 0, __spreadArray([result.message, ruleName, value], args, false)));
323
- }
319
+ return ruleReturn(result.pass, optionalFunctionValue.apply(void 0, __spreadArray([result.message, ruleName, value], args, false)));
324
320
  }
325
321
  function validateResult(result) {
326
322
  // if result is boolean, or if result.pass is boolean
327
323
  invariant(isBoolean(result) || (result && isBoolean(result.pass)), 'Incorrect return value for rule: ' + JSON.stringify(result));
328
324
  }
329
325
 
326
+ // eslint-disable-next-line max-lines-per-function
330
327
  function enforceEager(value) {
331
- var target = {};
328
+ var target = {
329
+ message: message
330
+ };
331
+ var customMessage = undefined;
332
332
  // This condition is for when we don't have proxy support (ES5).
333
333
  // In this case, we need to manually assign the rules to the target object on runtime.
334
334
  // The follow up proxy block is used in case we do have proxy support, and we can assign each rule upon invocation.
@@ -342,13 +342,14 @@ function enforceEager(value) {
342
342
  }
343
343
  // We create a proxy intercepting access to the target object (which is empty).
344
344
  var proxy = new Proxy(target, {
345
- get: function (_, ruleName) {
345
+ get: function (_, key) {
346
346
  // On property access, we identify if it is a rule or not.
347
- var rule = getRule(ruleName);
347
+ var rule = getRule(key);
348
348
  // If it is a rule, we wrap it with `genRuleCall` that adds the base enforce behavior
349
349
  if (rule) {
350
- return genRuleCall(proxy, rule, ruleName);
350
+ return genRuleCall(proxy, rule, key);
351
351
  }
352
+ return target[key];
352
353
  }
353
354
  });
354
355
  return proxy;
@@ -368,14 +369,24 @@ function enforceEager(value) {
368
369
  var transformedResult = ctx.run({ value: value }, function () {
369
370
  return transformResult.apply(void 0, __spreadArray([rule.apply(void 0, __spreadArray([value], args, false)), ruleName, value], args, false));
370
371
  });
372
+ function enforceMessage() {
373
+ if (!isNullish(customMessage))
374
+ return StringObject(customMessage);
375
+ if (isNullish(transformedResult.message)) {
376
+ return "enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value));
377
+ }
378
+ return StringObject(transformedResult.message);
379
+ }
371
380
  // On rule failure (the result is false), we either throw an error
372
381
  // or throw a string value if the rule has a message defined in it.
373
- invariant(transformedResult.pass, isNullish(transformedResult.message)
374
- ? "enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value))
375
- : StringObject(transformedResult.message));
382
+ invariant(transformedResult.pass, enforceMessage());
376
383
  return target;
377
384
  };
378
385
  }
386
+ function message(input) {
387
+ customMessage = input;
388
+ return proxy;
389
+ }
379
390
  }
380
391
 
381
392
  // eslint-disable-next-line max-lines-per-function
@@ -1 +1 @@
1
- import{bindNot as n,isStringValue as t,numberEquals as r,greaterThan as e,isArray as u,isNumeric as i,isNullish as o,isBoolean as a,isEmpty as s,isNotArray as f,isNotEmpty as c,isNotNull as l,isNotNullish as v,isNotNumeric as N,isNotUndefined as h,isNull as p,isPositive as g,isUndefined as m,lengthEquals as y,lengthNotEquals as d,longerThan as E,numberNotEquals as O,isFunction as x,assign as q,defaultTo as T,optionalFunctionValue as b,invariant as w,StringObject as B,mapFirst as W}from"vest-utils";import{createCascade as P}from"context";function S(n,r){return t(n)&&t(r)&&n.endsWith(r)}var A=n(S);function k(n,t){return n===t}var I=n(k);function J(n,t){return r(n,t)||e(n,t)}function K(n,r){return(u(r)||!(!t(r)||!t(n)))&&-1!==r.indexOf(n)}var R=n(K);function U(n,t){return i(n)&&i(t)&&Number(n)<Number(t)}function V(n,t){return r(n,t)||U(n,t)}function F(n,t,r){return J(n,t)&&V(n,r)}var M=n(F);function X(n){return o(n)||t(n)&&!n.trim()}var j=n(X),z=n(a),C=function(n){return!!i(n)&&n%2==0};function D(n,t){return n in t}var G=n(D);function H(n){return Number.isNaN(n)}var L=n(H);function Q(n){return U(n,0)}function Y(n){return Boolean("number"==typeof n)}var Z=n(Y),$=function(n){return!!i(n)&&n%2!=0},_=n(t);function nn(n){return!!n}var tn=n(nn);function rn(n,t){if(o(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}var en=n(rn);function un(n,t){return J(n.length,t)}function on(n,r){return r instanceof RegExp?r.test(n):!!t(r)&&new RegExp(r).test(n)}var an=n(on);function sn(n,t){try{return t(n)}catch(n){return!1}}function fn(n,t){return U(n.length,t)}function cn(n,t){return V(n.length,t)}function ln(n,r){return t(n)&&t(r)&&n.startsWith(r)}var vn=n(ln);var Nn={condition:sn,doesNotEndWith:A,doesNotStartWith:vn,endsWith:S,equals:k,greaterThan:e,greaterThanOrEquals:J,gt:e,gte:J,inside:K,isArray:u,isBetween:F,isBlank:X,isBoolean:a,isEmpty:s,isEven:C,isFalsy:tn,isKeyOf:D,isNaN:H,isNegative:Q,isNotArray:f,isNotBetween:M,isNotBlank:j,isNotBoolean:z,isNotEmpty:c,isNotKeyOf:G,isNotNaN:L,isNotNull:l,isNotNullish:v,isNotNumber:Z,isNotNumeric:N,isNotString:_,isNotUndefined:h,isNotValueOf:en,isNull:p,isNullish:o,isNumber:Y,isNumeric:i,isOdd:$,isPositive:g,isString:t,isTruthy:nn,isUndefined:m,isValueOf:rn,lengthEquals:y,lengthNotEquals:d,lessThan:U,lessThanOrEquals:V,longerThan:E,longerThanOrEquals:un,lt:U,lte:V,matches:on,notEquals:I,notInside:R,notMatches:an,numberEquals:r,numberNotEquals:O,shorterThan:fn,shorterThanOrEquals:cn,startsWith:ln};function hn(n){return Nn[n]}function pn(n){for(var t in Nn){var r=hn(t);x(r)&&n(t,r)}}var gn=P((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?q(r,{parent:function(){return function(n){if(!n)return null;return{value:n.value,meta:n.meta,parent:n.parent}}(t)}}):t:q(r,{parent:mn})}));function mn(){return null}function yn(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 dn(){try{return x(Proxy)}catch(n){return!1}}function En(n,t){var r={pass:n};return t&&(r.message=t),r}function On(n){return T(n,En(!0))}function xn(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return qn(n),a(n)?En(n):En(n.pass,b.apply(void 0,yn([n.message,t,r],e,!1)))}function qn(n){w(a(n)||n&&a(n.pass),"Incorrect return value for rule: "+JSON.stringify(n))}function Tn(n){var t={};if(!dn())return pn((function(n,r){t[n]=e(t,r,n)})),t;var r=new Proxy(t,{get:function(n,t){var u=hn(t);if(u)return e(r,u,t)}});return r;function e(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var a=gn.run({value:n},(function(){return xn.apply(void 0,yn([r.apply(void 0,yn([n],u,!1)),e,n],u,!1))}));return w(a.pass,o(a.message)?"enforce/".concat(e," failed with ").concat(JSON.stringify(n)):B(a.message)),t}}}function bn(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=hn(e);r.push((function(n){return xn.apply(void 0,yn([o.apply(void 0,yn([n],u,!1)),e,n],u,!1))}));var a={run:function(n){return On(W(r,(function(r,e){var u,i=gn.run({value:n},(function(){return r(n)}));e(!i.pass,En(!!i.pass,null!==(u=b(t,n,i.message))&&void 0!==u?u:i.message))})))},test:function(n){return a.run(n).pass},message:function(n){return n&&(t=n),a}};return dn()?(a=new Proxy(a,{get:function(t,r){return hn(r)?n(r):t[r]}}),a):(pn((function(t){a[t]=n(t)})),a)}}(n)}var wn=function(){var n={context:function(){return gn.useX()},extend:function(n){q(Nn,n),t()}};return t(),new Proxy(q(Tn,n),{get:function(n,t){return t in n?n[t]:hn(t)?bn(t):void 0}});function t(){if(!dn())return pn((function(t){n[t]=bn(t)})),q(Tn,n)}}();export{gn as ctx,wn as enforce};
1
+ import{bindNot as n,isStringValue as t,numberEquals as r,greaterThan as e,isArray as u,isNumeric as i,isNullish as o,isBoolean as a,isEmpty as s,isNotArray as f,isNotEmpty as c,isNotNull as l,isNotNullish as v,isNotNumeric as N,isNotUndefined as h,isNull as g,isPositive as p,isUndefined as m,lengthEquals as y,lengthNotEquals as d,longerThan as E,numberNotEquals as O,isFunction as x,assign as q,defaultTo as T,optionalFunctionValue as b,invariant as w,StringObject as B,mapFirst as W}from"vest-utils";import{createCascade as P}from"context";function S(n,r){return t(n)&&t(r)&&n.endsWith(r)}var A=n(S);function k(n,t){return n===t}var I=n(k);function J(n,t){return r(n,t)||e(n,t)}function K(n,r){return(u(r)||!(!t(r)||!t(n)))&&-1!==r.indexOf(n)}var R=n(K);function U(n,t){return i(n)&&i(t)&&Number(n)<Number(t)}function V(n,t){return r(n,t)||U(n,t)}function F(n,t,r){return J(n,t)&&V(n,r)}var M=n(F);function X(n){return o(n)||t(n)&&!n.trim()}var j=n(X),z=n(a),C=function(n){return!!i(n)&&n%2==0};function D(n,t){return n in t}var G=n(D);function H(n){return Number.isNaN(n)}var L=n(H);function Q(n){return U(n,0)}function Y(n){return Boolean("number"==typeof n)}var Z=n(Y),$=function(n){return!!i(n)&&n%2!=0},_=n(t);function nn(n){return!!n}var tn=n(nn);function rn(n,t){if(o(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}var en=n(rn);function un(n,t){return J(n.length,t)}function on(n,r){return r instanceof RegExp?r.test(n):!!t(r)&&new RegExp(r).test(n)}var an=n(on);function sn(n,t){try{return t(n)}catch(n){return!1}}function fn(n,t){return U(n.length,t)}function cn(n,t){return V(n.length,t)}function ln(n,r){return t(n)&&t(r)&&n.startsWith(r)}var vn=n(ln);var Nn={condition:sn,doesNotEndWith:A,doesNotStartWith:vn,endsWith:S,equals:k,greaterThan:e,greaterThanOrEquals:J,gt:e,gte:J,inside:K,isArray:u,isBetween:F,isBlank:X,isBoolean:a,isEmpty:s,isEven:C,isFalsy:tn,isKeyOf:D,isNaN:H,isNegative:Q,isNotArray:f,isNotBetween:M,isNotBlank:j,isNotBoolean:z,isNotEmpty:c,isNotKeyOf:G,isNotNaN:L,isNotNull:l,isNotNullish:v,isNotNumber:Z,isNotNumeric:N,isNotString:_,isNotUndefined:h,isNotValueOf:en,isNull:g,isNullish:o,isNumber:Y,isNumeric:i,isOdd:$,isPositive:p,isString:t,isTruthy:nn,isUndefined:m,isValueOf:rn,lengthEquals:y,lengthNotEquals:d,lessThan:U,lessThanOrEquals:V,longerThan:E,longerThanOrEquals:un,lt:U,lte:V,matches:on,notEquals:I,notInside:R,notMatches:an,numberEquals:r,numberNotEquals:O,shorterThan:fn,shorterThanOrEquals:cn,startsWith:ln};function hn(n){return Nn[n]}function gn(n){for(var t in Nn){var r=hn(t);x(r)&&n(t,r)}}var pn=P((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?q(r,{parent:function(){return function(n){if(!n)return null;return{value:n.value,meta:n.meta,parent:n.parent}}(t)}}):t:q(r,{parent:mn})}));function mn(){return null}function yn(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 dn(){try{return x(Proxy)}catch(n){return!1}}function En(n,t){var r={pass:n};return t&&(r.message=t),r}function On(n){return T(n,En(!0))}function xn(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return qn(n),a(n)?En(n):En(n.pass,b.apply(void 0,yn([n.message,t,r],e,!1)))}function qn(n){w(a(n)||n&&a(n.pass),"Incorrect return value for rule: "+JSON.stringify(n))}function Tn(n){var t={message:function(n){return r=n,e}},r=void 0;if(!dn())return gn((function(n,r){t[n]=u(t,r,n)})),t;var e=new Proxy(t,{get:function(n,r){var i=hn(r);return i?u(e,i,r):t[r]}});return e;function u(t,e,u){return function(){for(var i=[],a=0;a<arguments.length;a++)i[a]=arguments[a];var s=pn.run({value:n},(function(){return xn.apply(void 0,yn([e.apply(void 0,yn([n],i,!1)),u,n],i,!1))}));function f(){return o(r)?o(s.message)?"enforce/".concat(u," failed with ").concat(JSON.stringify(n)):B(s.message):B(r)}return w(s.pass,f()),t}}}function bn(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=hn(e);r.push((function(n){return xn.apply(void 0,yn([o.apply(void 0,yn([n],u,!1)),e,n],u,!1))}));var a={run:function(n){return On(W(r,(function(r,e){var u,i=pn.run({value:n},(function(){return r(n)}));e(!i.pass,En(!!i.pass,null!==(u=b(t,n,i.message))&&void 0!==u?u:i.message))})))},test:function(n){return a.run(n).pass},message:function(n){return n&&(t=n),a}};return dn()?(a=new Proxy(a,{get:function(t,r){return hn(r)?n(r):t[r]}}),a):(gn((function(t){a[t]=n(t)})),a)}}(n)}var wn=function(){var n={context:function(){return pn.useX()},extend:function(n){q(Nn,n),t()}};return t(),new Proxy(q(Tn,n),{get:function(n,t){return t in n?n[t]:hn(t)?bn(t):void 0}});function t(){if(!dn())return gn((function(t){n[t]=bn(t)})),q(Tn,n)}}();export{pn as ctx,wn as enforce};
@@ -1,5 +1,5 @@
1
- import { ctx, enforce } from 'n4s';
2
1
  import { defaultTo, mapFirst, isNullish, hasOwnProperty } from 'vest-utils';
2
+ import { ctx, enforce } from 'n4s';
3
3
 
4
4
  function ruleReturn(pass, message) {
5
5
  var output = { pass: pass };
@@ -1 +1 @@
1
- import{ctx as r,enforce as n}from"n4s";import{defaultTo as t,mapFirst as u,isNullish as e,hasOwnProperty as o}from"vest-utils";function a(r,n){var t={pass:r};return n&&(t.message=n),t}function i(){return a(!1)}function f(){return a(!0)}function s(r,n){try{return r.run(n)}catch(r){return i()}}function c(n,t){var u=function(u){var e=n[u],o=t[u],a=r.run({value:e,set:!0,meta:{key:u}},(function(){return s(o,e)}));if(!a.pass)return{value:a}};for(var e in t){var o=u(e);if("object"==typeof o)return o.value}return f()}function v(r){var t={};for(var u in r)t[u]=n.optional(r[u]);return t}n.extend({isArrayOf:function(n,e){return o=u(n,(function(n,t,u){var o=r.run({value:n,set:!0,meta:{index:u}},(function(){return s(e,n)}));t(!o.pass,o)})),t(o,f());var o},loose:c,optional:function(r,n){return e(r)?f():s(n,r)},shape:function(r,n){var t=c(r,n);if(!t.pass)return t;for(var u in r)if(!o(n,u))return i();return f()}});export{v as partial};
1
+ import{defaultTo as r,mapFirst as n,isNullish as t,hasOwnProperty as u}from"vest-utils";import{ctx as e,enforce as o}from"n4s";function a(r,n){var t={pass:r};return n&&(t.message=n),t}function i(){return a(!1)}function f(){return a(!0)}function s(r,n){try{return r.run(n)}catch(r){return i()}}function c(r,n){var t=function(t){var u=r[t],o=n[t],a=e.run({value:u,set:!0,meta:{key:t}},(function(){return s(o,u)}));if(!a.pass)return{value:a}};for(var u in n){var o=t(u);if("object"==typeof o)return o.value}return f()}function v(r){var n={};for(var t in r)n[t]=o.optional(r[t]);return n}o.extend({isArrayOf:function(t,u){return o=n(t,(function(r,n,t){var o=e.run({value:r,set:!0,meta:{index:t}},(function(){return s(u,r)}));n(!o.pass,o)})),r(o,f());var o},loose:c,optional:function(r,n){return t(r)?f():s(n,r)},shape:function(r,n){var t=c(r,n);if(!t.pass)return t;for(var e in r)if(!u(n,e))return i();return f()}});export{v as partial};
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('n4s'), require('vest-utils')) :
3
- typeof define === 'function' && define.amd ? define(['n4s', 'vest-utils'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.compose = factory(global.n4s, global["vest-utils"]));
5
- })(this, (function (n4s, vestUtils) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('vest-utils'), require('n4s')) :
3
+ typeof define === 'function' && define.amd ? define(['vest-utils', 'n4s'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.compose = factory(global["vest-utils"], global.n4s));
5
+ })(this, (function (vestUtils, n4s) { 'use strict';
6
6
 
7
7
  function ruleReturn(pass, message) {
8
8
  var output = { pass: pass };
@@ -1 +1 @@
1
- !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("n4s"),require("vest-utils")):"function"==typeof define&&define.amd?define(["n4s","vest-utils"],t):(n="undefined"!=typeof globalThis?globalThis:n||self).compose=t(n.n4s,n["vest-utils"])}(this,(function(n,t){"use strict";function e(n,t){var e={pass:n};return t&&(e.message=t),e}function r(n){return t.defaultTo(n,e(!0))}function u(n,t){try{return n.run(t)}catch(n){return e(!1)}}return function(){for(var e=[],s=0;s<arguments.length;s++)e[s]=arguments[s];return t.assign((function(n){var e=i(n);t.invariant(e.pass,t.StringObject(e.message))}),{run:i,test:function(n){return i(n).pass}});function i(s){return n.ctx.run({value:s},(function(){return r(t.mapFirst(e,(function(n,t){var e=u(n,s);t(!e.pass,e)})))}))}}}));
1
+ !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vest-utils"),require("n4s")):"function"==typeof define&&define.amd?define(["vest-utils","n4s"],t):(n="undefined"!=typeof globalThis?globalThis:n||self).compose=t(n["vest-utils"],n.n4s)}(this,(function(n,t){"use strict";function e(n,t){var e={pass:n};return t&&(e.message=t),e}function r(t){return n.defaultTo(t,e(!0))}function u(n,t){try{return n.run(t)}catch(n){return e(!1)}}return function(){for(var e=[],s=0;s<arguments.length;s++)e[s]=arguments[s];return n.assign((function(t){var e=i(t);n.invariant(e.pass,n.StringObject(e.message))}),{run:i,test:function(n){return i(n).pass}});function i(s){return t.ctx.run({value:s},(function(){return r(n.mapFirst(e,(function(n,t){var e=u(n,s);t(!e.pass,e)})))}))}}}));
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('n4s'), require('vest-utils')) :
3
- typeof define === 'function' && define.amd ? define(['n4s', 'vest-utils'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.n4s, global["vest-utils"]));
5
- })(this, (function (n4s, vestUtils) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('vest-utils'), require('n4s')) :
3
+ typeof define === 'function' && define.amd ? define(['vest-utils', 'n4s'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["vest-utils"], global.n4s));
5
+ })(this, (function (vestUtils, n4s) { 'use strict';
6
6
 
7
7
  function ruleReturn(pass, message) {
8
8
  var output = { pass: pass };
@@ -1 +1 @@
1
- !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("n4s"),require("vest-utils")):"function"==typeof define&&define.amd?define(["n4s","vest-utils"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).n4s,n["vest-utils"])}(this,(function(n,t){"use strict";function e(n,t){var e={pass:n};return t&&(e.message=t),e}function r(){return e(!1)}function u(n){return t.defaultTo(n,r())}function f(n){return t.defaultTo(n,e(!0))}function o(n,t){try{return n.run(t)}catch(n){return r()}}function i(n,t){return n===t}t.bindNot(i);n.enforce.extend({allOf:function(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return f(t.mapFirst(e,(function(t,e){var r=o(t,n);e(!r.pass,r)})))},anyOf:function(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return u(t.mapFirst(e,(function(t,e){var r=o(t,n);e(r.pass,r)})))},noneOf:function(n){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];return f(t.mapFirst(e,(function(t,e){e(o(t,n).pass,r())})))},oneOf:function(n){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];var f=0;return r.some((function(e){if(o(e,n).pass&&f++,t.greaterThan(f,1))return!1})),e(i(f,1))}})}));
1
+ !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("vest-utils"),require("n4s")):"function"==typeof define&&define.amd?define(["vest-utils","n4s"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self)["vest-utils"],n.n4s)}(this,(function(n,t){"use strict";function e(n,t){var e={pass:n};return t&&(e.message=t),e}function r(){return e(!1)}function u(t){return n.defaultTo(t,r())}function f(t){return n.defaultTo(t,e(!0))}function o(n,t){try{return n.run(t)}catch(n){return r()}}function i(n,t){return n===t}n.bindNot(i);t.enforce.extend({allOf:function(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return f(n.mapFirst(e,(function(n,e){var r=o(n,t);e(!r.pass,r)})))},anyOf:function(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return u(n.mapFirst(e,(function(n,e){var r=o(n,t);e(r.pass,r)})))},noneOf:function(t){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];return f(n.mapFirst(e,(function(n,e){e(o(n,t).pass,r())})))},oneOf:function(t){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];var f=0;return r.some((function(e){if(o(e,t).pass&&f++,n.greaterThan(f,1))return!1})),e(i(f,1))}})}));
@@ -120,9 +120,7 @@
120
120
  else if (vestUtils.isStringValue(regex)) {
121
121
  return new RegExp(regex).test(value);
122
122
  }
123
- else {
124
- return false;
125
- }
123
+ return false;
126
124
  }
127
125
  var notMatches = vestUtils.bindNot(matches);
128
126
 
@@ -321,17 +319,19 @@
321
319
  if (vestUtils.isBoolean(result)) {
322
320
  return ruleReturn(result);
323
321
  }
324
- else {
325
- return ruleReturn(result.pass, vestUtils.optionalFunctionValue.apply(void 0, __spreadArray([result.message, ruleName, value], args, false)));
326
- }
322
+ return ruleReturn(result.pass, vestUtils.optionalFunctionValue.apply(void 0, __spreadArray([result.message, ruleName, value], args, false)));
327
323
  }
328
324
  function validateResult(result) {
329
325
  // if result is boolean, or if result.pass is boolean
330
326
  vestUtils.invariant(vestUtils.isBoolean(result) || (result && vestUtils.isBoolean(result.pass)), 'Incorrect return value for rule: ' + JSON.stringify(result));
331
327
  }
332
328
 
329
+ // eslint-disable-next-line max-lines-per-function
333
330
  function enforceEager(value) {
334
- var target = {};
331
+ var target = {
332
+ message: message
333
+ };
334
+ var customMessage = undefined;
335
335
  // This condition is for when we don't have proxy support (ES5).
336
336
  // In this case, we need to manually assign the rules to the target object on runtime.
337
337
  // The follow up proxy block is used in case we do have proxy support, and we can assign each rule upon invocation.
@@ -345,13 +345,14 @@
345
345
  }
346
346
  // We create a proxy intercepting access to the target object (which is empty).
347
347
  var proxy = new Proxy(target, {
348
- get: function (_, ruleName) {
348
+ get: function (_, key) {
349
349
  // On property access, we identify if it is a rule or not.
350
- var rule = getRule(ruleName);
350
+ var rule = getRule(key);
351
351
  // If it is a rule, we wrap it with `genRuleCall` that adds the base enforce behavior
352
352
  if (rule) {
353
- return genRuleCall(proxy, rule, ruleName);
353
+ return genRuleCall(proxy, rule, key);
354
354
  }
355
+ return target[key];
355
356
  }
356
357
  });
357
358
  return proxy;
@@ -371,14 +372,24 @@
371
372
  var transformedResult = ctx.run({ value: value }, function () {
372
373
  return transformResult.apply(void 0, __spreadArray([rule.apply(void 0, __spreadArray([value], args, false)), ruleName, value], args, false));
373
374
  });
375
+ function enforceMessage() {
376
+ if (!vestUtils.isNullish(customMessage))
377
+ return vestUtils.StringObject(customMessage);
378
+ if (vestUtils.isNullish(transformedResult.message)) {
379
+ return "enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value));
380
+ }
381
+ return vestUtils.StringObject(transformedResult.message);
382
+ }
374
383
  // On rule failure (the result is false), we either throw an error
375
384
  // or throw a string value if the rule has a message defined in it.
376
- vestUtils.invariant(transformedResult.pass, vestUtils.isNullish(transformedResult.message)
377
- ? "enforce/".concat(ruleName, " failed with ").concat(JSON.stringify(value))
378
- : vestUtils.StringObject(transformedResult.message));
385
+ vestUtils.invariant(transformedResult.pass, enforceMessage());
379
386
  return target;
380
387
  };
381
388
  }
389
+ function message(input) {
390
+ customMessage = input;
391
+ return proxy;
392
+ }
382
393
  }
383
394
 
384
395
  // eslint-disable-next-line max-lines-per-function
@@ -1 +1 @@
1
- !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vest-utils"),require("context")):"function"==typeof define&&define.amd?define(["exports","vest-utils","context"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).n4s={},n["vest-utils"],n.context)}(this,(function(n,t,r){"use strict";function e(n,r){return t.isStringValue(n)&&t.isStringValue(r)&&n.endsWith(r)}var i=t.bindNot(e);function u(n,t){return n===t}var o=t.bindNot(u);function s(n,r){return t.numberEquals(n,r)||t.greaterThan(n,r)}function a(n,r){return(t.isArray(r)||!(!t.isStringValue(r)||!t.isStringValue(n)))&&-1!==r.indexOf(n)}var l=t.bindNot(a);function c(n,r){return t.isNumeric(n)&&t.isNumeric(r)&&Number(n)<Number(r)}function f(n,r){return t.numberEquals(n,r)||c(n,r)}function N(n,t,r){return s(n,t)&&f(n,r)}var g=t.bindNot(N);function v(n){return t.isNullish(n)||t.isStringValue(n)&&!n.trim()}var d=t.bindNot(v),h=t.bindNot(t.isBoolean),p=function(n){return!!t.isNumeric(n)&&n%2==0};function m(n,t){return n in t}var y=t.bindNot(m);function b(n){return Number.isNaN(n)}var E=t.bindNot(b);function q(n){return c(n,0)}function x(n){return Boolean("number"==typeof n)}var S=t.bindNot(x),T=function(n){return!!t.isNumeric(n)&&n%2!=0},O=t.bindNot(t.isStringValue);function V(n){return!!n}var B=t.bindNot(V);function w(n,r){if(t.isNullish(r))return!1;for(var e in r)if(r[e]===n)return!0;return!1}var A=t.bindNot(w);function P(n,t){return s(n.length,t)}function F(n,r){return r instanceof RegExp?r.test(n):!!t.isStringValue(r)&&new RegExp(r).test(n)}var W=t.bindNot(F);function U(n,t){try{return t(n)}catch(n){return!1}}function j(n,t){return c(n.length,t)}function k(n,t){return f(n.length,t)}function I(n,r){return t.isStringValue(n)&&t.isStringValue(r)&&n.startsWith(r)}var J=t.bindNot(I);var K={condition:U,doesNotEndWith:i,doesNotStartWith:J,endsWith:e,equals:u,greaterThan:t.greaterThan,greaterThanOrEquals:s,gt:t.greaterThan,gte:s,inside:a,isArray:t.isArray,isBetween:N,isBlank:v,isBoolean:t.isBoolean,isEmpty:t.isEmpty,isEven:p,isFalsy:B,isKeyOf:m,isNaN:b,isNegative:q,isNotArray:t.isNotArray,isNotBetween:g,isNotBlank:d,isNotBoolean:h,isNotEmpty:t.isNotEmpty,isNotKeyOf:y,isNotNaN:E,isNotNull:t.isNotNull,isNotNullish:t.isNotNullish,isNotNumber:S,isNotNumeric:t.isNotNumeric,isNotString:O,isNotUndefined:t.isNotUndefined,isNotValueOf:A,isNull:t.isNull,isNullish:t.isNullish,isNumber:x,isNumeric:t.isNumeric,isOdd:T,isPositive:t.isPositive,isString:t.isStringValue,isTruthy:V,isUndefined:t.isUndefined,isValueOf:w,lengthEquals:t.lengthEquals,lengthNotEquals:t.lengthNotEquals,lessThan:c,lessThanOrEquals:f,longerThan:t.longerThan,longerThanOrEquals:P,lt:c,lte:f,matches:F,notEquals:o,notInside:l,notMatches:W,numberEquals:t.numberEquals,numberNotEquals:t.numberNotEquals,shorterThan:j,shorterThanOrEquals:k,startsWith:I};function M(n){return K[n]}function R(n){for(var r in K){var e=M(r);t.isFunction(e)&&n(r,e)}}var _=r.createCascade((function(n,r){var e={value:n.value,meta:n.meta||{}};return r?n.set?t.assign(e,{parent:function(){return function(n){if(!n)return null;return{value:n.value,meta:n.meta,parent:n.parent}}(r)}}):r:t.assign(e,{parent:C})}));function C(){return null}function X(n,t,r){if(r||2===arguments.length)for(var e,i=0,u=t.length;i<u;i++)!e&&i in t||(e||(e=Array.prototype.slice.call(t,0,i)),e[i]=t[i]);return n.concat(e||Array.prototype.slice.call(t))}function z(){try{return t.isFunction(Proxy)}catch(n){return!1}}function D(n,t){var r={pass:n};return t&&(r.message=t),r}function G(n){return t.defaultTo(n,D(!0))}function H(n,r,e){for(var i=[],u=3;u<arguments.length;u++)i[u-3]=arguments[u];return L(n),t.isBoolean(n)?D(n):D(n.pass,t.optionalFunctionValue.apply(void 0,X([n.message,r,e],i,!1)))}function L(n){t.invariant(t.isBoolean(n)||n&&t.isBoolean(n.pass),"Incorrect return value for rule: "+JSON.stringify(n))}function Q(n){var r={};if(!z())return R((function(n,t){r[n]=i(r,t,n)})),r;var e=new Proxy(r,{get:function(n,t){var r=M(t);if(r)return i(e,r,t)}});return e;function i(r,e,i){return function(){for(var u=[],o=0;o<arguments.length;o++)u[o]=arguments[o];var s=_.run({value:n},(function(){return H.apply(void 0,X([e.apply(void 0,X([n],u,!1)),i,n],u,!1))}));return t.invariant(s.pass,t.isNullish(s.message)?"enforce/".concat(i," failed with ").concat(JSON.stringify(n)):t.StringObject(s.message)),r}}}function Y(n){var r,e=[];return function n(i){return function(){for(var u=[],o=0;o<arguments.length;o++)u[o]=arguments[o];var s=M(i);e.push((function(n){return H.apply(void 0,X([s.apply(void 0,X([n],u,!1)),i,n],u,!1))}));var a={run:function(n){return G(t.mapFirst(e,(function(e,i){var u,o=_.run({value:n},(function(){return e(n)}));i(!o.pass,D(!!o.pass,null!==(u=t.optionalFunctionValue(r,n,o.message))&&void 0!==u?u:o.message))})))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return z()?(a=new Proxy(a,{get:function(t,r){return M(r)?n(r):t[r]}}),a):(R((function(t){a[t]=n(t)})),a)}}(n)}var Z=function(){var n={context:function(){return _.useX()},extend:function(n){t.assign(K,n),r()}};return r(),new Proxy(t.assign(Q,n),{get:function(n,t){return t in n?n[t]:M(t)?Y(t):void 0}});function r(){if(!z())return R((function(t){n[t]=Y(t)})),t.assign(Q,n)}}();n.ctx=_,n.enforce=Z,Object.defineProperty(n,"__esModule",{value:!0})}));
1
+ !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vest-utils"),require("context")):"function"==typeof define&&define.amd?define(["exports","vest-utils","context"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).n4s={},n["vest-utils"],n.context)}(this,(function(n,t,r){"use strict";function e(n,r){return t.isStringValue(n)&&t.isStringValue(r)&&n.endsWith(r)}var i=t.bindNot(e);function u(n,t){return n===t}var o=t.bindNot(u);function s(n,r){return t.numberEquals(n,r)||t.greaterThan(n,r)}function a(n,r){return(t.isArray(r)||!(!t.isStringValue(r)||!t.isStringValue(n)))&&-1!==r.indexOf(n)}var l=t.bindNot(a);function c(n,r){return t.isNumeric(n)&&t.isNumeric(r)&&Number(n)<Number(r)}function f(n,r){return t.numberEquals(n,r)||c(n,r)}function N(n,t,r){return s(n,t)&&f(n,r)}var g=t.bindNot(N);function v(n){return t.isNullish(n)||t.isStringValue(n)&&!n.trim()}var d=t.bindNot(v),h=t.bindNot(t.isBoolean),p=function(n){return!!t.isNumeric(n)&&n%2==0};function m(n,t){return n in t}var y=t.bindNot(m);function b(n){return Number.isNaN(n)}var E=t.bindNot(b);function q(n){return c(n,0)}function S(n){return Boolean("number"==typeof n)}var x=t.bindNot(S),T=function(n){return!!t.isNumeric(n)&&n%2!=0},O=t.bindNot(t.isStringValue);function V(n){return!!n}var B=t.bindNot(V);function w(n,r){if(t.isNullish(r))return!1;for(var e in r)if(r[e]===n)return!0;return!1}var A=t.bindNot(w);function P(n,t){return s(n.length,t)}function F(n,r){return r instanceof RegExp?r.test(n):!!t.isStringValue(r)&&new RegExp(r).test(n)}var W=t.bindNot(F);function j(n,t){try{return t(n)}catch(n){return!1}}function U(n,t){return c(n.length,t)}function k(n,t){return f(n.length,t)}function I(n,r){return t.isStringValue(n)&&t.isStringValue(r)&&n.startsWith(r)}var J=t.bindNot(I);var K={condition:j,doesNotEndWith:i,doesNotStartWith:J,endsWith:e,equals:u,greaterThan:t.greaterThan,greaterThanOrEquals:s,gt:t.greaterThan,gte:s,inside:a,isArray:t.isArray,isBetween:N,isBlank:v,isBoolean:t.isBoolean,isEmpty:t.isEmpty,isEven:p,isFalsy:B,isKeyOf:m,isNaN:b,isNegative:q,isNotArray:t.isNotArray,isNotBetween:g,isNotBlank:d,isNotBoolean:h,isNotEmpty:t.isNotEmpty,isNotKeyOf:y,isNotNaN:E,isNotNull:t.isNotNull,isNotNullish:t.isNotNullish,isNotNumber:x,isNotNumeric:t.isNotNumeric,isNotString:O,isNotUndefined:t.isNotUndefined,isNotValueOf:A,isNull:t.isNull,isNullish:t.isNullish,isNumber:S,isNumeric:t.isNumeric,isOdd:T,isPositive:t.isPositive,isString:t.isStringValue,isTruthy:V,isUndefined:t.isUndefined,isValueOf:w,lengthEquals:t.lengthEquals,lengthNotEquals:t.lengthNotEquals,lessThan:c,lessThanOrEquals:f,longerThan:t.longerThan,longerThanOrEquals:P,lt:c,lte:f,matches:F,notEquals:o,notInside:l,notMatches:W,numberEquals:t.numberEquals,numberNotEquals:t.numberNotEquals,shorterThan:U,shorterThanOrEquals:k,startsWith:I};function M(n){return K[n]}function R(n){for(var r in K){var e=M(r);t.isFunction(e)&&n(r,e)}}var _=r.createCascade((function(n,r){var e={value:n.value,meta:n.meta||{}};return r?n.set?t.assign(e,{parent:function(){return function(n){if(!n)return null;return{value:n.value,meta:n.meta,parent:n.parent}}(r)}}):r:t.assign(e,{parent:C})}));function C(){return null}function X(n,t,r){if(r||2===arguments.length)for(var e,i=0,u=t.length;i<u;i++)!e&&i in t||(e||(e=Array.prototype.slice.call(t,0,i)),e[i]=t[i]);return n.concat(e||Array.prototype.slice.call(t))}function z(){try{return t.isFunction(Proxy)}catch(n){return!1}}function D(n,t){var r={pass:n};return t&&(r.message=t),r}function G(n){return t.defaultTo(n,D(!0))}function H(n,r,e){for(var i=[],u=3;u<arguments.length;u++)i[u-3]=arguments[u];return L(n),t.isBoolean(n)?D(n):D(n.pass,t.optionalFunctionValue.apply(void 0,X([n.message,r,e],i,!1)))}function L(n){t.invariant(t.isBoolean(n)||n&&t.isBoolean(n.pass),"Incorrect return value for rule: "+JSON.stringify(n))}function Q(n){var r={message:function(n){return e=n,i}},e=void 0;if(!z())return R((function(n,t){r[n]=u(r,t,n)})),r;var i=new Proxy(r,{get:function(n,t){var e=M(t);return e?u(i,e,t):r[t]}});return i;function u(r,i,u){return function(){for(var o=[],s=0;s<arguments.length;s++)o[s]=arguments[s];var a=_.run({value:n},(function(){return H.apply(void 0,X([i.apply(void 0,X([n],o,!1)),u,n],o,!1))}));function l(){return t.isNullish(e)?t.isNullish(a.message)?"enforce/".concat(u," failed with ").concat(JSON.stringify(n)):t.StringObject(a.message):t.StringObject(e)}return t.invariant(a.pass,l()),r}}}function Y(n){var r,e=[];return function n(i){return function(){for(var u=[],o=0;o<arguments.length;o++)u[o]=arguments[o];var s=M(i);e.push((function(n){return H.apply(void 0,X([s.apply(void 0,X([n],u,!1)),i,n],u,!1))}));var a={run:function(n){return G(t.mapFirst(e,(function(e,i){var u,o=_.run({value:n},(function(){return e(n)}));i(!o.pass,D(!!o.pass,null!==(u=t.optionalFunctionValue(r,n,o.message))&&void 0!==u?u:o.message))})))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return z()?(a=new Proxy(a,{get:function(t,r){return M(r)?n(r):t[r]}}),a):(R((function(t){a[t]=n(t)})),a)}}(n)}var Z=function(){var n={context:function(){return _.useX()},extend:function(n){t.assign(K,n),r()}};return r(),new Proxy(t.assign(Q,n),{get:function(n,t){return t in n?n[t]:M(t)?Y(t):void 0}});function r(){if(!z())return R((function(t){n[t]=Y(t)})),t.assign(Q,n)}}();n.ctx=_,n.enforce=Z,Object.defineProperty(n,"__esModule",{value:!0})}));
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('n4s'), require('vest-utils')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'n4s', 'vest-utils'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.schema = {}, global.n4s, global["vest-utils"]));
5
- })(this, (function (exports, n4s, vestUtils) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vest-utils'), require('n4s')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'vest-utils', 'n4s'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.schema = {}, global["vest-utils"], global.n4s));
5
+ })(this, (function (exports, vestUtils, n4s) { 'use strict';
6
6
 
7
7
  function ruleReturn(pass, message) {
8
8
  var output = { pass: pass };
@@ -1 +1 @@
1
- !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("n4s"),require("vest-utils")):"function"==typeof define&&define.amd?define(["exports","n4s","vest-utils"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).schema={},e.n4s,e["vest-utils"])}(this,(function(e,n,r){"use strict";function t(e,n){var r={pass:e};return n&&(r.message=n),r}function u(){return t(!1)}function i(){return t(!0)}function o(e,n){try{return e.run(n)}catch(e){return u()}}function f(e,r){var t=function(t){var u=e[t],i=r[t],f=n.ctx.run({value:u,set:!0,meta:{key:t}},(function(){return o(i,u)}));if(!f.pass)return{value:f}};for(var u in r){var f=t(u);if("object"==typeof f)return f.value}return i()}n.enforce.extend({isArrayOf:function(e,t){return u=r.mapFirst(e,(function(e,r,u){var i=n.ctx.run({value:e,set:!0,meta:{index:u}},(function(){return o(t,e)}));r(!i.pass,i)})),r.defaultTo(u,i());var u},loose:f,optional:function(e,n){return r.isNullish(e)?i():o(n,e)},shape:function(e,n){var t=f(e,n);if(!t.pass)return t;for(var o in e)if(!r.hasOwnProperty(n,o))return u();return i()}}),e.partial=function(e){var r={};for(var t in e)r[t]=n.enforce.optional(e[t]);return r},Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("vest-utils"),require("n4s")):"function"==typeof define&&define.amd?define(["exports","vest-utils","n4s"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).schema={},e["vest-utils"],e.n4s)}(this,(function(e,n,r){"use strict";function t(e,n){var r={pass:e};return n&&(r.message=n),r}function u(){return t(!1)}function i(){return t(!0)}function o(e,n){try{return e.run(n)}catch(e){return u()}}function f(e,n){var t=function(t){var u=e[t],i=n[t],f=r.ctx.run({value:u,set:!0,meta:{key:t}},(function(){return o(i,u)}));if(!f.pass)return{value:f}};for(var u in n){var f=t(u);if("object"==typeof f)return f.value}return i()}r.enforce.extend({isArrayOf:function(e,t){return u=n.mapFirst(e,(function(e,n,u){var i=r.ctx.run({value:e,set:!0,meta:{index:u}},(function(){return o(t,e)}));n(!i.pass,i)})),n.defaultTo(u,i());var u},loose:f,optional:function(e,r){return n.isNullish(e)?i():o(r,e)},shape:function(e,r){var t=f(e,r);if(!t.pass)return t;for(var o in e)if(!n.hasOwnProperty(r,o))return u();return i()}}),e.partial=function(e){var n={};for(var t in e)n[t]=r.enforce.optional(e[t]);return n},Object.defineProperty(e,"__esModule",{value:!0})}));
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.3.0-dev-c4ba9b",
2
+ "version": "4.3.2",
3
3
  "license": "MIT",
4
4
  "main": "./dist/cjs/n4s.js",
5
5
  "types": "./types/n4s.d.ts",
@@ -10,8 +10,8 @@
10
10
  "release": "vx release"
11
11
  },
12
12
  "dependencies": {
13
- "context": "^3.1.0-dev-c4ba9b",
14
- "vest-utils": "^0.1.0-dev-c4ba9b"
13
+ "context": "^3.0.4",
14
+ "vest-utils": "^0.0.4"
15
15
  },
16
16
  "module": "./dist/es/n4s.production.js",
17
17
  "exports": {
@@ -126,7 +126,7 @@
126
126
  "default": "./dist/cjs/n4s.production.js"
127
127
  },
128
128
  "./package.json": "./package.json",
129
- "./": "./"
129
+ "./*": "./*"
130
130
  },
131
131
  "repository": {
132
132
  "type": "git",
package/tsconfig.json CHANGED
@@ -3,8 +3,8 @@
3
3
  "rootDir": ".",
4
4
  "compilerOptions": {
5
5
  "baseUrl": ".",
6
- "declarationMap": true,
7
6
  "declarationDir": "./types",
7
+ "declarationMap": true,
8
8
  "outDir": "./dist",
9
9
  "paths": {
10
10
  "compose": ["src/exports/compose.ts"],
@@ -1 +1 @@
1
- {"version":3,"file":"compounds.d.ts","sourceRoot":"","sources":["../src/exports/compounds.ts","../src/lib/ruleReturn.ts","../src/rules/endsWith.ts","../src/rules/equals.ts","../src/rules/greaterThanOrEquals.ts","../src/rules/inside.ts","../src/rules/lessThan.ts","../src/rules/lessThanOrEquals.ts","../src/rules/isBetween.ts","../src/rules/isBlank.ts","../src/rules/isBoolean.ts","../src/rules/isEven.ts","../src/rules/isKeyOf.ts","../src/rules/isNaN.ts","../src/rules/isNegative.ts","../src/rules/isNumber.ts","../src/rules/isOdd.ts","../src/rules/isString.ts","../src/rules/isTruthy.ts","../src/rules/isValueOf.ts","../src/rules/longerThanOrEquals.ts","../src/rules/matches.ts","../src/rules/ruleCondition.ts","../src/rules/shorterThan.ts","../src/rules/shorterThanOrEquals.ts","../src/rules/startsWith.ts","../src/runtime/rules.ts","../src/runtime/runtimeRules.ts","../src/lib/eachEnforceRule.ts","../src/runtime/enforceContext.ts","../src/lib/isProxySupported.ts","../src/lib/transformResult.ts","../src/runtime/genEnforceLazy.ts","../src/lib/runLazyRule.ts","../src/plugins/compounds/allOf.ts","../src/plugins/compounds/anyOf.ts","../src/lib/enforceUtilityTypes.ts","../src/plugins/compounds/noneOf.ts","../src/plugins/compounds/oneOf.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,KAAK,mBAAmB,GAAG,CACzB,KAAK,EAAE,OAAO,EACd,GAAG,KAAK,EAAE,IAAI,EAAE,KACb,kBAAkB,CAAC;AAGxB,QAAQ,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,qBAAqB,CAAC,CAAC;YAC/B,KAAK,EAAE,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACpD,KAAK,EAAE,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACpD,MAAM,EAAE,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACrD,KAAK,EAAE,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;SACrD;KACF;CACF"}
1
+ {"version":3,"file":"compounds.d.ts","sourceRoot":"","sources":["../src/exports/compounds.ts","../src/lib/ruleReturn.ts","../src/rules/endsWith.ts","../src/rules/equals.ts","../src/rules/greaterThanOrEquals.ts","../src/rules/inside.ts","../src/rules/lessThan.ts","../src/rules/lessThanOrEquals.ts","../src/rules/isBetween.ts","../src/rules/isBlank.ts","../src/rules/isBoolean.ts","../src/rules/isEven.ts","../src/rules/isKeyOf.ts","../src/rules/isNaN.ts","../src/rules/isNegative.ts","../src/rules/isNumber.ts","../src/rules/isOdd.ts","../src/rules/isString.ts","../src/rules/isTruthy.ts","../src/rules/isValueOf.ts","../src/rules/longerThanOrEquals.ts","../src/rules/matches.ts","../src/rules/ruleCondition.ts","../src/rules/shorterThan.ts","../src/rules/shorterThanOrEquals.ts","../src/rules/startsWith.ts","../src/runtime/rules.ts","../src/runtime/runtimeRules.ts","../src/lib/eachEnforceRule.ts","../src/runtime/enforceContext.ts","../src/lib/isProxySupported.ts","../src/lib/transformResult.ts","../src/runtime/genEnforceLazy.ts","../src/lib/runLazyRule.ts","../src/plugins/compounds/allOf.ts","../src/plugins/compounds/anyOf.ts","../src/lib/enforceUtilityTypes.ts","../src/plugins/compounds/noneOf.ts","../src/plugins/compounds/oneOf.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,KAAK,mBAAmB,GAAG,CACzB,KAAK,EAAE,OAAO,EACd,GAAG,KAAK,EAAE,IAAI,EAAE,KACb,kBAAkB,CAAC;AAGxB,QAAQ,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,qBAAqB,CAAC,CAAC;YAC/B,KAAK,EAAE,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACpD,KAAK,EAAE,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACpD,MAAM,EAAE,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACrD,KAAK,EAAE,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;SACrD;KACF;CACF"}
package/types/n4s.d.ts CHANGED
@@ -119,7 +119,11 @@ declare global {
119
119
  }
120
120
  }
121
121
  type IRules = n4s.IRules<Record<string, any>>;
122
- type EnforceEager = (value: RuleValue) => IRules;
122
+ type TModifiers = {
123
+ message: (input: string) => EnforceEagerReturn;
124
+ };
125
+ type EnforceEagerReturn = IRules & TModifiers;
126
+ type EnforceEager = (value: RuleValue) => EnforceEagerReturn;
123
127
  type LazyRules = n4s.IRules<LazyRuleMethods>;
124
128
  type Lazy = LazyRules & LazyRuleMethods &
125
129
  // This is a "catch all" hack to make TS happy while not
@@ -1 +1 @@
1
- {"version":3,"file":"n4s.d.ts","sourceRoot":"","sources":["../src/n4s.ts","../src/lib/ruleReturn.ts","../src/rules/endsWith.ts","../src/rules/equals.ts","../src/rules/greaterThanOrEquals.ts","../src/rules/inside.ts","../src/rules/lessThan.ts","../src/rules/lessThanOrEquals.ts","../src/rules/isBetween.ts","../src/rules/isBlank.ts","../src/rules/isBoolean.ts","../src/rules/isEven.ts","../src/rules/isKeyOf.ts","../src/rules/isNaN.ts","../src/rules/isNegative.ts","../src/rules/isNumber.ts","../src/rules/isOdd.ts","../src/rules/isString.ts","../src/rules/isTruthy.ts","../src/rules/isValueOf.ts","../src/rules/longerThanOrEquals.ts","../src/rules/matches.ts","../src/rules/ruleCondition.ts","../src/rules/shorterThan.ts","../src/rules/shorterThanOrEquals.ts","../src/rules/startsWith.ts","../src/runtime/rules.ts","../src/runtime/runtimeRules.ts","../src/lib/eachEnforceRule.ts","../src/runtime/enforceContext.ts","../src/lib/isProxySupported.ts","../src/lib/transformResult.ts","../src/runtime/enforceEager.ts","../src/runtime/genEnforceLazy.ts","../src/runtime/enforce.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,QAAQ,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,qBAAqB,CAAC,CAAC;SAAI;KACtC;CACF;AARD,OAAO,gBAAW,CAAgB"}
1
+ {"version":3,"file":"n4s.d.ts","sourceRoot":"","sources":["../src/n4s.ts","../src/lib/ruleReturn.ts","../src/rules/endsWith.ts","../src/rules/equals.ts","../src/rules/greaterThanOrEquals.ts","../src/rules/inside.ts","../src/rules/lessThan.ts","../src/rules/lessThanOrEquals.ts","../src/rules/isBetween.ts","../src/rules/isBlank.ts","../src/rules/isBoolean.ts","../src/rules/isEven.ts","../src/rules/isKeyOf.ts","../src/rules/isNaN.ts","../src/rules/isNegative.ts","../src/rules/isNumber.ts","../src/rules/isOdd.ts","../src/rules/isString.ts","../src/rules/isTruthy.ts","../src/rules/isValueOf.ts","../src/rules/longerThanOrEquals.ts","../src/rules/matches.ts","../src/rules/ruleCondition.ts","../src/rules/shorterThan.ts","../src/rules/shorterThanOrEquals.ts","../src/rules/startsWith.ts","../src/runtime/rules.ts","../src/runtime/runtimeRules.ts","../src/lib/eachEnforceRule.ts","../src/runtime/enforceContext.ts","../src/lib/isProxySupported.ts","../src/lib/transformResult.ts","../src/runtime/enforceEager.ts","../src/runtime/genEnforceLazy.ts","../src/runtime/enforce.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,QAAQ,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,qBAAqB,CAAC,CAAC;SAAI;KACtC;CACF;AARD,OAAO,gBAAW,CAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/exports/schema.ts","../src/lib/enforceUtilityTypes.ts","../src/lib/ruleReturn.ts","../src/rules/endsWith.ts","../src/rules/equals.ts","../src/rules/greaterThanOrEquals.ts","../src/rules/inside.ts","../src/rules/lessThan.ts","../src/rules/lessThanOrEquals.ts","../src/rules/isBetween.ts","../src/rules/isBlank.ts","../src/rules/isBoolean.ts","../src/rules/isEven.ts","../src/rules/isKeyOf.ts","../src/rules/isNaN.ts","../src/rules/isNegative.ts","../src/rules/isNumber.ts","../src/rules/isOdd.ts","../src/rules/isString.ts","../src/rules/isTruthy.ts","../src/rules/isValueOf.ts","../src/rules/longerThanOrEquals.ts","../src/rules/matches.ts","../src/rules/ruleCondition.ts","../src/rules/shorterThan.ts","../src/rules/shorterThanOrEquals.ts","../src/rules/startsWith.ts","../src/runtime/rules.ts","../src/runtime/runtimeRules.ts","../src/lib/eachEnforceRule.ts","../src/runtime/enforceContext.ts","../src/lib/isProxySupported.ts","../src/lib/transformResult.ts","../src/runtime/genEnforceLazy.ts","../src/lib/runLazyRule.ts","../src/plugins/schema/isArrayOf.ts","../src/plugins/schema/schemaTypes.ts","../src/plugins/schema/loose.ts","../src/plugins/schema/optional.ts","../src/plugins/schema/shape.ts","../src/plugins/schema/partial.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,QAAQ,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,qBAAqB,CAAC,CAAC;YAC/B,SAAS,EAAE,oBAAoB,CAAC,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC;YACrD,KAAK,EAAE,oBAAoB,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7C,KAAK,EAAE,oBAAoB,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7C,QAAQ,EAAE,oBAAoB,CAAC,OAAO,QAAQ,EAAE,CAAC,CAAC,CAAC;SACpD;KACF;CACF;AAdD,OAAO,WAAW,CAAgB"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/exports/schema.ts","../src/lib/enforceUtilityTypes.ts","../src/lib/ruleReturn.ts","../src/rules/endsWith.ts","../src/rules/equals.ts","../src/rules/greaterThanOrEquals.ts","../src/rules/inside.ts","../src/rules/lessThan.ts","../src/rules/lessThanOrEquals.ts","../src/rules/isBetween.ts","../src/rules/isBlank.ts","../src/rules/isBoolean.ts","../src/rules/isEven.ts","../src/rules/isKeyOf.ts","../src/rules/isNaN.ts","../src/rules/isNegative.ts","../src/rules/isNumber.ts","../src/rules/isOdd.ts","../src/rules/isString.ts","../src/rules/isTruthy.ts","../src/rules/isValueOf.ts","../src/rules/longerThanOrEquals.ts","../src/rules/matches.ts","../src/rules/ruleCondition.ts","../src/rules/shorterThan.ts","../src/rules/shorterThanOrEquals.ts","../src/rules/startsWith.ts","../src/runtime/rules.ts","../src/runtime/runtimeRules.ts","../src/lib/eachEnforceRule.ts","../src/runtime/enforceContext.ts","../src/lib/isProxySupported.ts","../src/lib/transformResult.ts","../src/runtime/genEnforceLazy.ts","../src/lib/runLazyRule.ts","../src/plugins/schema/isArrayOf.ts","../src/plugins/schema/schemaTypes.ts","../src/plugins/schema/loose.ts","../src/plugins/schema/optional.ts","../src/plugins/schema/shape.ts","../src/plugins/schema/partial.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,QAAQ,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,qBAAqB,CAAC,CAAC;YAC/B,SAAS,EAAE,oBAAoB,CAAC,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC;YACrD,KAAK,EAAE,oBAAoB,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7C,KAAK,EAAE,oBAAoB,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7C,QAAQ,EAAE,oBAAoB,CAAC,OAAO,QAAQ,EAAE,CAAC,CAAC,CAAC;SACpD;KACF;CACF;AAdD,OAAO,WAAW,CAAgB"}