@regle/rules 0.2.2 → 0.2.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.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var core=require('@regle/core'),vue=require('vue');function $(e,t){let a,o,l,u;typeof e=="function"&&!("_validator"in e)?(a=core.InternalRuleType.Inline,o=e):{_type:a,validator:o,_active:l,_params:u}=e;let f=core.createRule({type:a,validator:o,active:l,message:t});return f._params=u,f._patched=!0,f}function v(e,t){let a=async(l,...u)=>e(l,...u),o=core.createRule({type:core.InternalRuleType.Async,validator:a,message:""});return o._params=t,o}function N(e,t){let a=(l,...u)=>e(l,...u),o=core.createRule({type:core.InternalRuleType.Inline,validator:a,message:""});return o._params=t,o}function E(e,t){let a,o,l,u="";typeof t=="function"?(a=core.InternalRuleType.Inline,o=t):({_type:a,validator:o,_params:l,_message:u}=t,l?.push(e));function f(i,...m){let[p]=core.unwrapRuleParameters([e]);return p?o(i,...m):!0}function n(i,m){let[p]=core.unwrapRuleParameters([e]);return p}let s=core.createRule({type:a,validator:f,active:n,message:u});return s._params=l,s}function y(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?e.length===0:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function b(e){return !y(typeof e=="string"?e.trim():e)}function x(e){return e==null||typeof e!="number"?!1:!isNaN(e)}function D(e,...t){if(y(e))return !0;let a=typeof e=="number"?e.toString():e;return t.every(o=>(o.lastIndex=0,o.test(a)))}function T(e){let t=vue.unref(e);return Array.isArray(t)?t.length:typeof t=="object"?Object.keys(t).length:typeof t=="number"?isNaN(t)?0:t:String(t).length}function M(e){if(y(e))return !1;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="number"&&!isNaN(e))t=new Date(e);else if(typeof e=="string"){let a=new Date(e);if(a.toString()==="Invalid Date")return !1;t=a;}return !!t}catch{return !1}}function h(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function d(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}var r={isEmpty:y,isFilled:b,size:T,regex:D,isNumber:x,isDate:M,toDate:h,toNumber:d};function z(...e){let t=e.some(n=>typeof n=="function"?n.constructor.name==="AsyncFunction":n._async),a=e.map(n=>{if(typeof n=="function")return null;{let s=n._params;return s?.length?s:[null]}}).flat().filter(n=>!!n);function o(n,s,...i){let m=[],p=0;for(let R of n)if(typeof R=="function")m.push(R(s)),p++;else {let g=R._params?.length??0;m.push(R.validator(s,...i.slice(p,g))),g&&(p+=g);}return m}function l(n){return n.some(i=>typeof i!="boolean")?{$valid:n.every(i=>typeof i=="boolean"?!!i:i.$valid),...n.reduce((i,m)=>{if(typeof m=="boolean")return i;let{$valid:p,...R}=m;return {...i,...R}},{})}:n.every(i=>!!i)}let u;e.length?u=t?async(n,...s)=>{let i=await Promise.all(o(e,n,...s));return l(i)}:(n,...s)=>{let i=o(e,n,...s);return l(i)}:u=n=>!1;let f=core.createRule({type:"and",validator:u,message:"The value does not match all of the provided validators"});return f._params=a,f}function C(...e){let t=e.some(n=>typeof n=="function"?n.constructor.name==="AsyncFunction":n._async),a=e.map(n=>typeof n=="function"?null:n._params).flat().filter(n=>!!n);function o(n,s,...i){let m=[],p=0;for(let R of n)if(typeof R=="function")m.push(R(s)),p++;else {let g=R._params?.length??0;m.push(R.validator(s,...i.slice(p,g))),g&&(p+=g);}return m}function l(n){return n.some(i=>typeof i!="boolean")?{$valid:n.some(i=>typeof i=="boolean"?!!i:i.$valid),...n.reduce((i,m)=>{if(typeof m=="boolean")return i;let{$valid:p,...R}=m;return {...i,...R}},{})}:n.some(i=>!!i)}let f=core.createRule({type:"or",validator:t?async(n,...s)=>{let i=await Promise.all(o(e,n,...s));return l(i)}:(n,...s)=>{let i=o(e,n,...s);return l(i)},message:"The value does not match any of the provided validators"});return f._params=a,f}function j(e,t){let a,o,l,u,f;typeof e=="function"?(o=e,f=e.constructor.name==="AsyncFunction"):({_type:a,validator:o,_params:u}=e,f=e._async),f?l=async(s,...i)=>r.isFilled(s)?!await o(s,...i):!0:l=(s,...i)=>r.isFilled(s)?!o(s,...i):!0;let n=core.createRule({type:"not",validator:l,message:t??"Error"});return n._params=u,n}var bt=core.createRule({type:"required",validator:e=>r.isFilled(e),message:"This field is required"});var Mt=core.createRule({type:"maxLength",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)?r.size(e)<=t:(console.warn(`[maxLength] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The maximum length allowed is ${t}`});var $t=core.createRule({type:"required",validator(e,t){return t?r.isFilled(e):!0},message:"This field is required",active(e,{$params:[t]}){return t}});var O=/^[a-zA-Z]*$/,Wt=core.createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,O)},message:"The value is not alphabetical"});var Z=/^[a-zA-Z0-9]*$/,Ht=core.createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,Z)},message:"The value must be alpha-numeric"});var zt=core.createRule({type:"between",validator:(e,t,a)=>{if(r.isFilled(e)&&r.isFilled(t)&&r.isFilled(a)){let o=r.toNumber(e),l=r.toNumber(t),u=r.toNumber(a);return r.isNumber(o)&&r.isNumber(l)&&r.isNumber(u)?o>=l&&o<=u:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${a}`),!1)}return !0},message:(e,{$params:[t,a]})=>`The value must be between ${t} and ${a}`});var X=/^[-]?\d*(\.\d+)?$/,jt=core.createRule({type:"decimal",validator(e){return r.isEmpty(e)?!0:r.regex(e,X)},message:"Value must be decimal"});var ee=/^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i,Kt=core.createRule({type:"email",validator(e){return r.isEmpty(e)?!0:r.regex(e,ee)},message:"Value must be an valid email address"});var re=/(^[0-9]*$)|(^-[0-9]+$)/,Jt=core.createRule({type:"integer",validator(e){return r.isEmpty(e)?!0:r.regex(e,re)},message:"Value must be an integer"});var tr=core.createRule({type:"maxValue",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&!isNaN(d(e))?d(e)<=t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>`The maximum value allowed is ${t}`});var ir=core.createRule({type:"minLength",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)?r.size(e)>=t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>Array.isArray(e)?`This list should have at least ${t} items`:`This field should be at least ${t} characters long`});var mr=core.createRule({type:"minValue",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&!isNaN(d(e))?d(e)>=t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>`The minimum value allowed is ${t}`});var yr=core.createRule({type:"exactLength",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)?r.size(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>`This field should be exactly ${t} characters long`});var le=/^\d*(\.\d+)?$/,br=core.createRule({type:"numeric",validator(e){return r.isEmpty(e)?!0:r.regex(e,le)},message:"This field must be numeric"});var Mr=core.createRule({type:"required",validator(e,t){return t?!0:r.isFilled(e)},message:"This field is required",active(e,{$params:[t]}){return !t}});var $r=core.createRule({type:"sameAs",validator(e,t,a="other"){return r.isEmpty(e)?!0:e===t},message(e,{$params:[t,a]}){return `Value must be equal to the ${a} value`}});var pe=/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i,Wr=core.createRule({type:"url",validator(e){return r.isEmpty(e)?!0:r.regex(e,pe)},message:"The value is not a valid URL address"});var Hr=core.createRule({type:"dateAfter",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isDate(e)&&r.isDate(t)?r.toDate(e).getTime()>r.toDate(t).getTime()?!0:{$valid:!1,error:"date-not-after"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:(e,{$params:[t]})=>`The date must be after ${t}`});var zr=core.createRule({type:"dateBefore",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isDate(e)&&r.isDate(t)?r.toDate(e).getTime()<r.toDate(t).getTime()?!0:{$valid:!1,error:"date-not-before"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:(e,{$params:[t],error:a})=>a==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${t}`});var jr=core.createRule({type:"dateBetween",validator:(e,t,a)=>r.isDate(e)&&r.isDate(t)&&r.isDate(a)?r.toDate(e).getTime()>r.toDate(t).getTime()&&r.toDate(e).getTime()<r.toDate(a).getTime():!0,message:(e,{$params:[t,a]})=>`The date must be between ${t} and ${a}`});function ce(e){if(e.length>3||e.length===0||e[0]==="0"&&e!=="0"||!e.match(/^\d+$/))return !1;let t=+e|0;return t>=0&&t<=255}var Kr=core.createRule({type:"ipAddress",validator(e){if(r.isEmpty(e))return !0;if(typeof e!="string")return !1;let t=e.split(".");return t.length===4&&t.every(ce)},message:"The value is not a valid IP address"});var Jr=core.createRule({type:"macAddress",validator(e,t=":"){if(r.isEmpty(e))return !0;if(typeof e!="string")return !1;let a=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return a!==null&&(a.length===6||a.length===8)&&a.every(xe)},message:"The value is not a valid MAC Address"}),xe=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var ea=core.createRule({type:"checked",validator:e=>r.isFilled(e)?e===!0:!0,message:"This field must be checked"});var na=core.createRule({type:"contains",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.includes(t):!0},message(e,{$params:[t]}){return `Field must contain ${t}`}});var la=core.createRule({type:"startsWith",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.startsWith(t):!0},message(e,{$params:[t]}){return `Field must end with ${t}`}});var pa=core.createRule({type:"endsWith",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.endsWith(t):!0},message(e,{$params:[t]}){return `Field must end with ${t}`}});var ga=core.createRule({type:"regex",validator(e,t){return r.isFilled(e)?r.regex(e,t):!0},message:"This field does not match the required pattern"});exports.alpha=Wt;exports.alphaNum=Ht;exports.and=z;exports.applyIf=E;exports.between=zt;exports.checked=ea;exports.contains=na;exports.dateAfter=Hr;exports.dateBefore=zr;exports.dateBetween=jr;exports.decimal=jt;exports.email=Kt;exports.endsWith=pa;exports.exactLength=yr;exports.integer=Jt;exports.ipAddress=Kr;exports.macAddress=Jr;exports.maxLength=Mt;exports.maxValue=tr;exports.minLength=ir;exports.minValue=mr;exports.not=j;exports.numeric=br;exports.or=C;exports.regex=ga;exports.required=bt;exports.requiredIf=$t;exports.requiredUnless=Mr;exports.ruleHelpers=r;exports.sameAs=$r;exports.startsWith=la;exports.url=Wr;exports.withAsync=v;exports.withMessage=$;exports.withParams=N;
1
+ 'use strict';var core=require('@regle/core'),vue=require('vue');function $(e,t){let a,o,l,u;typeof e=="function"&&!("_validator"in e)?(a=core.InternalRuleType.Inline,o=e):{_type:a,validator:o,_active:l,_params:u}=e;let f=core.createRule({type:a,validator:o,active:l,message:t});return f._params=u,f._patched=!0,f}function v(e,t){let a=async(l,...u)=>e(l,...u),o=core.createRule({type:core.InternalRuleType.Async,validator:a,message:""});return o._params=t,o}function N(e,t){let a=(l,...u)=>e(l,...u),o=core.createRule({type:core.InternalRuleType.Inline,validator:a,message:""});return o._params=t,o}function E(e,t){let a,o,l,u="";typeof t=="function"?(a=core.InternalRuleType.Inline,o=t):({_type:a,validator:o,_params:l,_message:u}=t,l?.push(e));function f(i,...m){let[p]=core.unwrapRuleParameters([e]);return p?o(i,...m):!0}function n(i,m){let[p]=core.unwrapRuleParameters([e]);return p}let s=core.createRule({type:a,validator:f,active:n,message:u});return s._params=l,s}function y(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?e.length===0:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function b(e){return !y(typeof e=="string"?e.trim():e)}function x(e){return e==null||typeof e!="number"?!1:!isNaN(e)}function D(e,...t){if(y(e))return !0;let a=typeof e=="number"?e.toString():e;return t.every(o=>(o.lastIndex=0,o.test(a)))}function T(e){let t=vue.unref(e);return Array.isArray(t)?t.length:typeof t=="object"?Object.keys(t).length:typeof t=="number"?isNaN(t)?0:t:String(t).length}function M(e){if(y(e))return !1;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="number"&&!isNaN(e))t=new Date(e);else if(typeof e=="string"){let a=new Date(e);if(a.toString()==="Invalid Date")return !1;t=a;}return !!t}catch{return !1}}function h(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function d(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}var r={isEmpty:y,isFilled:b,size:T,regex:D,isNumber:x,isDate:M,toDate:h,toNumber:d};function z(...e){let t=e.some(n=>typeof n=="function"?n.constructor.name==="AsyncFunction":n._async),a=e.map(n=>{if(typeof n=="function")return null;{let s=n._params;return s?.length?s:[null]}}).flat().filter(n=>!!n);function o(n,s,...i){let m=[],p=0;for(let R of n)if(typeof R=="function")m.push(R(s)),p++;else {let g=R._params?.length??0;m.push(R.validator(s,...i.slice(p,g))),g&&(p+=g);}return m}function l(n){return n.some(i=>typeof i!="boolean")?{$valid:n.every(i=>typeof i=="boolean"?!!i:i.$valid),...n.reduce((i,m)=>{if(typeof m=="boolean")return i;let{$valid:p,...R}=m;return {...i,...R}},{})}:n.every(i=>!!i)}let u;e.length?u=t?async(n,...s)=>{let i=await Promise.all(o(e,n,...s));return l(i)}:(n,...s)=>{let i=o(e,n,...s);return l(i)}:u=n=>!1;let f=core.createRule({type:"and",validator:u,message:"The value does not match all of the provided validators"});return f._params=a,f}function C(...e){let t=e.some(n=>typeof n=="function"?n.constructor.name==="AsyncFunction":n._async),a=e.map(n=>typeof n=="function"?null:n._params).flat().filter(n=>!!n);function o(n,s,...i){let m=[],p=0;for(let R of n)if(typeof R=="function")m.push(R(s)),p++;else {let g=R._params?.length??0;m.push(R.validator(s,...i.slice(p,g))),g&&(p+=g);}return m}function l(n){return n.some(i=>typeof i!="boolean")?{$valid:n.some(i=>typeof i=="boolean"?!!i:i.$valid),...n.reduce((i,m)=>{if(typeof m=="boolean")return i;let{$valid:p,...R}=m;return {...i,...R}},{})}:n.some(i=>!!i)}let f=core.createRule({type:"or",validator:t?async(n,...s)=>{let i=await Promise.all(o(e,n,...s));return l(i)}:(n,...s)=>{let i=o(e,n,...s);return l(i)},message:"The value does not match any of the provided validators"});return f._params=a,f}function j(e,t){let a,o,l,u,f;typeof e=="function"?(o=e,f=e.constructor.name==="AsyncFunction"):({_type:a,validator:o,_params:u}=e,f=e._async),f?l=async(s,...i)=>r.isFilled(s)?!await o(s,...i):!0:l=(s,...i)=>r.isFilled(s)?!o(s,...i):!0;let n=core.createRule({type:"not",validator:l,message:t??"Error"});return n._params=u,n}var bt=core.createRule({type:"required",validator:e=>r.isFilled(e),message:"This field is required"});var Mt=core.createRule({type:"maxLength",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)?r.size(e)<=t:(console.warn(`[maxLength] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The maximum length allowed is ${t}`});var $t=core.createRule({type:"required",validator(e,t){return t?r.isFilled(e):!0},message:"This field is required",active(e,{$params:[t]}){return t}});var O=/^[a-zA-Z]*$/,Wt=core.createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,O)},message:"The value is not alphabetical"});var Z=/^[a-zA-Z0-9]*$/,Ht=core.createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,Z)},message:"The value must be alpha-numeric"});var zt=core.createRule({type:"between",validator:(e,t,a)=>{if(r.isFilled(e)&&r.isFilled(t)&&r.isFilled(a)){let o=r.toNumber(e),l=r.toNumber(t),u=r.toNumber(a);return r.isNumber(o)&&r.isNumber(l)&&r.isNumber(u)?o>=l&&o<=u:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${a}`),!1)}return !0},message:(e,{$params:[t,a]})=>`The value must be between ${t} and ${a}`});var X=/^[-]?\d*(\.\d+)?$/,jt=core.createRule({type:"decimal",validator(e){return r.isEmpty(e)?!0:r.regex(e,X)},message:"Value must be decimal"});var ee=/^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i,Kt=core.createRule({type:"email",validator(e){return r.isEmpty(e)?!0:r.regex(e,ee)},message:"Value must be an valid email address"});var re=/(^[0-9]*$)|(^-[0-9]+$)/,Jt=core.createRule({type:"integer",validator(e){return r.isEmpty(e)?!0:r.regex(e,re)},message:"Value must be an integer"});var tr=core.createRule({type:"maxValue",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&!isNaN(d(e))?d(e)<=t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:(e,{$params:[t]})=>`The maximum value allowed is ${t}`});var ir=core.createRule({type:"minLength",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)?r.size(e)>=t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>Array.isArray(e)?`This list should have at least ${t} items`:`This field should be at least ${t} characters long`});var mr=core.createRule({type:"minValue",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&!isNaN(d(e))?d(e)>=t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:(e,{$params:[t]})=>`The minimum value allowed is ${t}`});var yr=core.createRule({type:"exactLength",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)?r.size(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>`This field should be exactly ${t} characters long`});var le=/^\d*(\.\d+)?$/,br=core.createRule({type:"numeric",validator(e){return r.isEmpty(e)?!0:r.regex(e,le)},message:"This field must be numeric"});var Mr=core.createRule({type:"required",validator(e,t){return t?!0:r.isFilled(e)},message:"This field is required",active(e,{$params:[t]}){return !t}});var $r=core.createRule({type:"sameAs",validator(e,t,a="other"){return r.isEmpty(e)?!0:e===t},message(e,{$params:[t,a]}){return `Value must be equal to the ${a} value`}});var pe=/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i,Wr=core.createRule({type:"url",validator(e){return r.isEmpty(e)?!0:r.regex(e,pe)},message:"The value is not a valid URL address"});var Hr=core.createRule({type:"dateAfter",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isDate(e)&&r.isDate(t)?r.toDate(e).getTime()>r.toDate(t).getTime()?!0:{$valid:!1,error:"date-not-after"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:(e,{$params:[t]})=>`The date must be after ${t}`});var zr=core.createRule({type:"dateBefore",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isDate(e)&&r.isDate(t)?r.toDate(e).getTime()<r.toDate(t).getTime()?!0:{$valid:!1,error:"date-not-before"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:(e,{$params:[t],error:a})=>a==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${t}`});var jr=core.createRule({type:"dateBetween",validator:(e,t,a)=>r.isDate(e)&&r.isDate(t)&&r.isDate(a)?r.toDate(e).getTime()>r.toDate(t).getTime()&&r.toDate(e).getTime()<r.toDate(a).getTime():!0,message:(e,{$params:[t,a]})=>`The date must be between ${t} and ${a}`});function ce(e){if(e.length>3||e.length===0||e[0]==="0"&&e!=="0"||!e.match(/^\d+$/))return !1;let t=+e|0;return t>=0&&t<=255}var Kr=core.createRule({type:"ipAddress",validator(e){if(r.isEmpty(e))return !0;if(typeof e!="string")return !1;let t=e.split(".");return t.length===4&&t.every(ce)},message:"The value is not a valid IP address"});var Jr=core.createRule({type:"macAddress",validator(e,t=":"){if(r.isEmpty(e))return !0;if(typeof e!="string")return !1;let a=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return a!==null&&(a.length===6||a.length===8)&&a.every(xe)},message:"The value is not a valid MAC Address"}),xe=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var ea=core.createRule({type:"checked",validator:e=>r.isFilled(e)?e===!0:!0,message:"This field must be checked"});var na=core.createRule({type:"contains",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.includes(t):!0},message(e,{$params:[t]}){return `Field must contain ${t}`}});var la=core.createRule({type:"startsWith",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.startsWith(t):!0},message(e,{$params:[t]}){return `Field must end with ${t}`}});var pa=core.createRule({type:"endsWith",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.endsWith(t):!0},message(e,{$params:[t]}){return `Field must end with ${t}`}});var ga=core.createRule({type:"regex",validator(e,t){return r.isFilled(e)?r.regex(e,t):!0},message:"This field does not match the required pattern"});exports.alpha=Wt;exports.alphaNum=Ht;exports.and=z;exports.applyIf=E;exports.between=zt;exports.checked=ea;exports.contains=na;exports.dateAfter=Hr;exports.dateBefore=zr;exports.dateBetween=jr;exports.decimal=jt;exports.email=Kt;exports.endsWith=pa;exports.exactLength=yr;exports.integer=Jt;exports.ipAddress=Kr;exports.macAddress=Jr;exports.maxLength=Mt;exports.maxValue=tr;exports.minLength=ir;exports.minValue=mr;exports.not=j;exports.numeric=br;exports.or=C;exports.regex=ga;exports.required=bt;exports.requiredIf=$t;exports.requiredUnless=Mr;exports.ruleHelpers=r;exports.sameAs=$r;exports.startsWith=la;exports.url=Wr;exports.withAsync=v;exports.withMessage=$;exports.withParams=N;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import {createRule,InternalRuleType,unwrapRuleParameters}from'@regle/core';import {unref}from'vue';function $(e,t){let a,o,l,u;typeof e=="function"&&!("_validator"in e)?(a=InternalRuleType.Inline,o=e):{_type:a,validator:o,_active:l,_params:u}=e;let f=createRule({type:a,validator:o,active:l,message:t});return f._params=u,f._patched=!0,f}function v(e,t){let a=async(l,...u)=>e(l,...u),o=createRule({type:InternalRuleType.Async,validator:a,message:""});return o._params=t,o}function N(e,t){let a=(l,...u)=>e(l,...u),o=createRule({type:InternalRuleType.Inline,validator:a,message:""});return o._params=t,o}function E(e,t){let a,o,l,u="";typeof t=="function"?(a=InternalRuleType.Inline,o=t):({_type:a,validator:o,_params:l,_message:u}=t,l?.push(e));function f(i,...m){let[p]=unwrapRuleParameters([e]);return p?o(i,...m):!0}function n(i,m){let[p]=unwrapRuleParameters([e]);return p}let s=createRule({type:a,validator:f,active:n,message:u});return s._params=l,s}function y(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?e.length===0:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function b(e){return !y(typeof e=="string"?e.trim():e)}function x(e){return e==null||typeof e!="number"?!1:!isNaN(e)}function D(e,...t){if(y(e))return !0;let a=typeof e=="number"?e.toString():e;return t.every(o=>(o.lastIndex=0,o.test(a)))}function T(e){let t=unref(e);return Array.isArray(t)?t.length:typeof t=="object"?Object.keys(t).length:typeof t=="number"?isNaN(t)?0:t:String(t).length}function M(e){if(y(e))return !1;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="number"&&!isNaN(e))t=new Date(e);else if(typeof e=="string"){let a=new Date(e);if(a.toString()==="Invalid Date")return !1;t=a;}return !!t}catch{return !1}}function h(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function d(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}var r={isEmpty:y,isFilled:b,size:T,regex:D,isNumber:x,isDate:M,toDate:h,toNumber:d};function z(...e){let t=e.some(n=>typeof n=="function"?n.constructor.name==="AsyncFunction":n._async),a=e.map(n=>{if(typeof n=="function")return null;{let s=n._params;return s?.length?s:[null]}}).flat().filter(n=>!!n);function o(n,s,...i){let m=[],p=0;for(let R of n)if(typeof R=="function")m.push(R(s)),p++;else {let g=R._params?.length??0;m.push(R.validator(s,...i.slice(p,g))),g&&(p+=g);}return m}function l(n){return n.some(i=>typeof i!="boolean")?{$valid:n.every(i=>typeof i=="boolean"?!!i:i.$valid),...n.reduce((i,m)=>{if(typeof m=="boolean")return i;let{$valid:p,...R}=m;return {...i,...R}},{})}:n.every(i=>!!i)}let u;e.length?u=t?async(n,...s)=>{let i=await Promise.all(o(e,n,...s));return l(i)}:(n,...s)=>{let i=o(e,n,...s);return l(i)}:u=n=>!1;let f=createRule({type:"and",validator:u,message:"The value does not match all of the provided validators"});return f._params=a,f}function C(...e){let t=e.some(n=>typeof n=="function"?n.constructor.name==="AsyncFunction":n._async),a=e.map(n=>typeof n=="function"?null:n._params).flat().filter(n=>!!n);function o(n,s,...i){let m=[],p=0;for(let R of n)if(typeof R=="function")m.push(R(s)),p++;else {let g=R._params?.length??0;m.push(R.validator(s,...i.slice(p,g))),g&&(p+=g);}return m}function l(n){return n.some(i=>typeof i!="boolean")?{$valid:n.some(i=>typeof i=="boolean"?!!i:i.$valid),...n.reduce((i,m)=>{if(typeof m=="boolean")return i;let{$valid:p,...R}=m;return {...i,...R}},{})}:n.some(i=>!!i)}let f=createRule({type:"or",validator:t?async(n,...s)=>{let i=await Promise.all(o(e,n,...s));return l(i)}:(n,...s)=>{let i=o(e,n,...s);return l(i)},message:"The value does not match any of the provided validators"});return f._params=a,f}function j(e,t){let a,o,l,u,f;typeof e=="function"?(o=e,f=e.constructor.name==="AsyncFunction"):({_type:a,validator:o,_params:u}=e,f=e._async),f?l=async(s,...i)=>r.isFilled(s)?!await o(s,...i):!0:l=(s,...i)=>r.isFilled(s)?!o(s,...i):!0;let n=createRule({type:"not",validator:l,message:t??"Error"});return n._params=u,n}var bt=createRule({type:"required",validator:e=>r.isFilled(e),message:"This field is required"});var Mt=createRule({type:"maxLength",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)?r.size(e)<=t:(console.warn(`[maxLength] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The maximum length allowed is ${t}`});var $t=createRule({type:"required",validator(e,t){return t?r.isFilled(e):!0},message:"This field is required",active(e,{$params:[t]}){return t}});var O=/^[a-zA-Z]*$/,Wt=createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,O)},message:"The value is not alphabetical"});var Z=/^[a-zA-Z0-9]*$/,Ht=createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,Z)},message:"The value must be alpha-numeric"});var zt=createRule({type:"between",validator:(e,t,a)=>{if(r.isFilled(e)&&r.isFilled(t)&&r.isFilled(a)){let o=r.toNumber(e),l=r.toNumber(t),u=r.toNumber(a);return r.isNumber(o)&&r.isNumber(l)&&r.isNumber(u)?o>=l&&o<=u:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${a}`),!1)}return !0},message:(e,{$params:[t,a]})=>`The value must be between ${t} and ${a}`});var X=/^[-]?\d*(\.\d+)?$/,jt=createRule({type:"decimal",validator(e){return r.isEmpty(e)?!0:r.regex(e,X)},message:"Value must be decimal"});var ee=/^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i,Kt=createRule({type:"email",validator(e){return r.isEmpty(e)?!0:r.regex(e,ee)},message:"Value must be an valid email address"});var re=/(^[0-9]*$)|(^-[0-9]+$)/,Jt=createRule({type:"integer",validator(e){return r.isEmpty(e)?!0:r.regex(e,re)},message:"Value must be an integer"});var tr=createRule({type:"maxValue",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&!isNaN(d(e))?d(e)<=t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>`The maximum value allowed is ${t}`});var ir=createRule({type:"minLength",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)?r.size(e)>=t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>Array.isArray(e)?`This list should have at least ${t} items`:`This field should be at least ${t} characters long`});var mr=createRule({type:"minValue",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&!isNaN(d(e))?d(e)>=t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>`The minimum value allowed is ${t}`});var yr=createRule({type:"exactLength",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)?r.size(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>`This field should be exactly ${t} characters long`});var le=/^\d*(\.\d+)?$/,br=createRule({type:"numeric",validator(e){return r.isEmpty(e)?!0:r.regex(e,le)},message:"This field must be numeric"});var Mr=createRule({type:"required",validator(e,t){return t?!0:r.isFilled(e)},message:"This field is required",active(e,{$params:[t]}){return !t}});var $r=createRule({type:"sameAs",validator(e,t,a="other"){return r.isEmpty(e)?!0:e===t},message(e,{$params:[t,a]}){return `Value must be equal to the ${a} value`}});var pe=/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i,Wr=createRule({type:"url",validator(e){return r.isEmpty(e)?!0:r.regex(e,pe)},message:"The value is not a valid URL address"});var Hr=createRule({type:"dateAfter",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isDate(e)&&r.isDate(t)?r.toDate(e).getTime()>r.toDate(t).getTime()?!0:{$valid:!1,error:"date-not-after"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:(e,{$params:[t]})=>`The date must be after ${t}`});var zr=createRule({type:"dateBefore",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isDate(e)&&r.isDate(t)?r.toDate(e).getTime()<r.toDate(t).getTime()?!0:{$valid:!1,error:"date-not-before"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:(e,{$params:[t],error:a})=>a==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${t}`});var jr=createRule({type:"dateBetween",validator:(e,t,a)=>r.isDate(e)&&r.isDate(t)&&r.isDate(a)?r.toDate(e).getTime()>r.toDate(t).getTime()&&r.toDate(e).getTime()<r.toDate(a).getTime():!0,message:(e,{$params:[t,a]})=>`The date must be between ${t} and ${a}`});function ce(e){if(e.length>3||e.length===0||e[0]==="0"&&e!=="0"||!e.match(/^\d+$/))return !1;let t=+e|0;return t>=0&&t<=255}var Kr=createRule({type:"ipAddress",validator(e){if(r.isEmpty(e))return !0;if(typeof e!="string")return !1;let t=e.split(".");return t.length===4&&t.every(ce)},message:"The value is not a valid IP address"});var Jr=createRule({type:"macAddress",validator(e,t=":"){if(r.isEmpty(e))return !0;if(typeof e!="string")return !1;let a=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return a!==null&&(a.length===6||a.length===8)&&a.every(xe)},message:"The value is not a valid MAC Address"}),xe=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var ea=createRule({type:"checked",validator:e=>r.isFilled(e)?e===!0:!0,message:"This field must be checked"});var na=createRule({type:"contains",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.includes(t):!0},message(e,{$params:[t]}){return `Field must contain ${t}`}});var la=createRule({type:"startsWith",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.startsWith(t):!0},message(e,{$params:[t]}){return `Field must end with ${t}`}});var pa=createRule({type:"endsWith",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.endsWith(t):!0},message(e,{$params:[t]}){return `Field must end with ${t}`}});var ga=createRule({type:"regex",validator(e,t){return r.isFilled(e)?r.regex(e,t):!0},message:"This field does not match the required pattern"});export{Wt as alpha,Ht as alphaNum,z as and,E as applyIf,zt as between,ea as checked,na as contains,Hr as dateAfter,zr as dateBefore,jr as dateBetween,jt as decimal,Kt as email,pa as endsWith,yr as exactLength,Jt as integer,Kr as ipAddress,Jr as macAddress,Mt as maxLength,tr as maxValue,ir as minLength,mr as minValue,j as not,br as numeric,C as or,ga as regex,bt as required,$t as requiredIf,Mr as requiredUnless,r as ruleHelpers,$r as sameAs,la as startsWith,Wr as url,v as withAsync,$ as withMessage,N as withParams};
1
+ import {createRule,InternalRuleType,unwrapRuleParameters}from'@regle/core';import {unref}from'vue';function $(e,t){let a,o,l,u;typeof e=="function"&&!("_validator"in e)?(a=InternalRuleType.Inline,o=e):{_type:a,validator:o,_active:l,_params:u}=e;let f=createRule({type:a,validator:o,active:l,message:t});return f._params=u,f._patched=!0,f}function v(e,t){let a=async(l,...u)=>e(l,...u),o=createRule({type:InternalRuleType.Async,validator:a,message:""});return o._params=t,o}function N(e,t){let a=(l,...u)=>e(l,...u),o=createRule({type:InternalRuleType.Inline,validator:a,message:""});return o._params=t,o}function E(e,t){let a,o,l,u="";typeof t=="function"?(a=InternalRuleType.Inline,o=t):({_type:a,validator:o,_params:l,_message:u}=t,l?.push(e));function f(i,...m){let[p]=unwrapRuleParameters([e]);return p?o(i,...m):!0}function n(i,m){let[p]=unwrapRuleParameters([e]);return p}let s=createRule({type:a,validator:f,active:n,message:u});return s._params=l,s}function y(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?e.length===0:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function b(e){return !y(typeof e=="string"?e.trim():e)}function x(e){return e==null||typeof e!="number"?!1:!isNaN(e)}function D(e,...t){if(y(e))return !0;let a=typeof e=="number"?e.toString():e;return t.every(o=>(o.lastIndex=0,o.test(a)))}function T(e){let t=unref(e);return Array.isArray(t)?t.length:typeof t=="object"?Object.keys(t).length:typeof t=="number"?isNaN(t)?0:t:String(t).length}function M(e){if(y(e))return !1;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="number"&&!isNaN(e))t=new Date(e);else if(typeof e=="string"){let a=new Date(e);if(a.toString()==="Invalid Date")return !1;t=a;}return !!t}catch{return !1}}function h(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function d(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}var r={isEmpty:y,isFilled:b,size:T,regex:D,isNumber:x,isDate:M,toDate:h,toNumber:d};function z(...e){let t=e.some(n=>typeof n=="function"?n.constructor.name==="AsyncFunction":n._async),a=e.map(n=>{if(typeof n=="function")return null;{let s=n._params;return s?.length?s:[null]}}).flat().filter(n=>!!n);function o(n,s,...i){let m=[],p=0;for(let R of n)if(typeof R=="function")m.push(R(s)),p++;else {let g=R._params?.length??0;m.push(R.validator(s,...i.slice(p,g))),g&&(p+=g);}return m}function l(n){return n.some(i=>typeof i!="boolean")?{$valid:n.every(i=>typeof i=="boolean"?!!i:i.$valid),...n.reduce((i,m)=>{if(typeof m=="boolean")return i;let{$valid:p,...R}=m;return {...i,...R}},{})}:n.every(i=>!!i)}let u;e.length?u=t?async(n,...s)=>{let i=await Promise.all(o(e,n,...s));return l(i)}:(n,...s)=>{let i=o(e,n,...s);return l(i)}:u=n=>!1;let f=createRule({type:"and",validator:u,message:"The value does not match all of the provided validators"});return f._params=a,f}function C(...e){let t=e.some(n=>typeof n=="function"?n.constructor.name==="AsyncFunction":n._async),a=e.map(n=>typeof n=="function"?null:n._params).flat().filter(n=>!!n);function o(n,s,...i){let m=[],p=0;for(let R of n)if(typeof R=="function")m.push(R(s)),p++;else {let g=R._params?.length??0;m.push(R.validator(s,...i.slice(p,g))),g&&(p+=g);}return m}function l(n){return n.some(i=>typeof i!="boolean")?{$valid:n.some(i=>typeof i=="boolean"?!!i:i.$valid),...n.reduce((i,m)=>{if(typeof m=="boolean")return i;let{$valid:p,...R}=m;return {...i,...R}},{})}:n.some(i=>!!i)}let f=createRule({type:"or",validator:t?async(n,...s)=>{let i=await Promise.all(o(e,n,...s));return l(i)}:(n,...s)=>{let i=o(e,n,...s);return l(i)},message:"The value does not match any of the provided validators"});return f._params=a,f}function j(e,t){let a,o,l,u,f;typeof e=="function"?(o=e,f=e.constructor.name==="AsyncFunction"):({_type:a,validator:o,_params:u}=e,f=e._async),f?l=async(s,...i)=>r.isFilled(s)?!await o(s,...i):!0:l=(s,...i)=>r.isFilled(s)?!o(s,...i):!0;let n=createRule({type:"not",validator:l,message:t??"Error"});return n._params=u,n}var bt=createRule({type:"required",validator:e=>r.isFilled(e),message:"This field is required"});var Mt=createRule({type:"maxLength",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)?r.size(e)<=t:(console.warn(`[maxLength] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The maximum length allowed is ${t}`});var $t=createRule({type:"required",validator(e,t){return t?r.isFilled(e):!0},message:"This field is required",active(e,{$params:[t]}){return t}});var O=/^[a-zA-Z]*$/,Wt=createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,O)},message:"The value is not alphabetical"});var Z=/^[a-zA-Z0-9]*$/,Ht=createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,Z)},message:"The value must be alpha-numeric"});var zt=createRule({type:"between",validator:(e,t,a)=>{if(r.isFilled(e)&&r.isFilled(t)&&r.isFilled(a)){let o=r.toNumber(e),l=r.toNumber(t),u=r.toNumber(a);return r.isNumber(o)&&r.isNumber(l)&&r.isNumber(u)?o>=l&&o<=u:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${a}`),!1)}return !0},message:(e,{$params:[t,a]})=>`The value must be between ${t} and ${a}`});var X=/^[-]?\d*(\.\d+)?$/,jt=createRule({type:"decimal",validator(e){return r.isEmpty(e)?!0:r.regex(e,X)},message:"Value must be decimal"});var ee=/^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i,Kt=createRule({type:"email",validator(e){return r.isEmpty(e)?!0:r.regex(e,ee)},message:"Value must be an valid email address"});var re=/(^[0-9]*$)|(^-[0-9]+$)/,Jt=createRule({type:"integer",validator(e){return r.isEmpty(e)?!0:r.regex(e,re)},message:"Value must be an integer"});var tr=createRule({type:"maxValue",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&!isNaN(d(e))?d(e)<=t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:(e,{$params:[t]})=>`The maximum value allowed is ${t}`});var ir=createRule({type:"minLength",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)?r.size(e)>=t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>Array.isArray(e)?`This list should have at least ${t} items`:`This field should be at least ${t} characters long`});var mr=createRule({type:"minValue",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&!isNaN(d(e))?d(e)>=t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:(e,{$params:[t]})=>`The minimum value allowed is ${t}`});var yr=createRule({type:"exactLength",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)?r.size(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:(e,{$params:[t]})=>`This field should be exactly ${t} characters long`});var le=/^\d*(\.\d+)?$/,br=createRule({type:"numeric",validator(e){return r.isEmpty(e)?!0:r.regex(e,le)},message:"This field must be numeric"});var Mr=createRule({type:"required",validator(e,t){return t?!0:r.isFilled(e)},message:"This field is required",active(e,{$params:[t]}){return !t}});var $r=createRule({type:"sameAs",validator(e,t,a="other"){return r.isEmpty(e)?!0:e===t},message(e,{$params:[t,a]}){return `Value must be equal to the ${a} value`}});var pe=/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i,Wr=createRule({type:"url",validator(e){return r.isEmpty(e)?!0:r.regex(e,pe)},message:"The value is not a valid URL address"});var Hr=createRule({type:"dateAfter",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isDate(e)&&r.isDate(t)?r.toDate(e).getTime()>r.toDate(t).getTime()?!0:{$valid:!1,error:"date-not-after"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:(e,{$params:[t]})=>`The date must be after ${t}`});var zr=createRule({type:"dateBefore",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isDate(e)&&r.isDate(t)?r.toDate(e).getTime()<r.toDate(t).getTime()?!0:{$valid:!1,error:"date-not-before"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:(e,{$params:[t],error:a})=>a==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${t}`});var jr=createRule({type:"dateBetween",validator:(e,t,a)=>r.isDate(e)&&r.isDate(t)&&r.isDate(a)?r.toDate(e).getTime()>r.toDate(t).getTime()&&r.toDate(e).getTime()<r.toDate(a).getTime():!0,message:(e,{$params:[t,a]})=>`The date must be between ${t} and ${a}`});function ce(e){if(e.length>3||e.length===0||e[0]==="0"&&e!=="0"||!e.match(/^\d+$/))return !1;let t=+e|0;return t>=0&&t<=255}var Kr=createRule({type:"ipAddress",validator(e){if(r.isEmpty(e))return !0;if(typeof e!="string")return !1;let t=e.split(".");return t.length===4&&t.every(ce)},message:"The value is not a valid IP address"});var Jr=createRule({type:"macAddress",validator(e,t=":"){if(r.isEmpty(e))return !0;if(typeof e!="string")return !1;let a=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return a!==null&&(a.length===6||a.length===8)&&a.every(xe)},message:"The value is not a valid MAC Address"}),xe=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var ea=createRule({type:"checked",validator:e=>r.isFilled(e)?e===!0:!0,message:"This field must be checked"});var na=createRule({type:"contains",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.includes(t):!0},message(e,{$params:[t]}){return `Field must contain ${t}`}});var la=createRule({type:"startsWith",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.startsWith(t):!0},message(e,{$params:[t]}){return `Field must end with ${t}`}});var pa=createRule({type:"endsWith",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.endsWith(t):!0},message(e,{$params:[t]}){return `Field must end with ${t}`}});var ga=createRule({type:"regex",validator(e,t){return r.isFilled(e)?r.regex(e,t):!0},message:"This field does not match the required pattern"});export{Wt as alpha,Ht as alphaNum,z as and,E as applyIf,zt as between,ea as checked,na as contains,Hr as dateAfter,zr as dateBefore,jr as dateBetween,jt as decimal,Kt as email,pa as endsWith,yr as exactLength,Jt as integer,Kr as ipAddress,Jr as macAddress,Mt as maxLength,tr as maxValue,ir as minLength,mr as minValue,j as not,br as numeric,C as or,ga as regex,bt as required,$t as requiredIf,Mr as requiredUnless,r as ruleHelpers,$r as sameAs,la as startsWith,Wr as url,v as withAsync,$ as withMessage,N as withParams};
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@regle/rules",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "Collection of rules and helpers for Regle",
5
5
  "dependencies": {
6
- "@regle/core": "0.2.2"
6
+ "@regle/core": "0.2.4"
7
7
  },
8
8
  "devDependencies": {
9
9
  "@typescript-eslint/eslint-plugin": "8.15.0",