@regle/rules 0.1.1 → 0.1.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
@@ -0,0 +1,17 @@
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/victorgarciaesgi/regle/master/.github/images/regle-github-banner.png" alt="regle cover">
3
+ </p>
4
+
5
+ # Regle
6
+
7
+
8
+ Regle \ʁɛɡl\ (French word for 'rule' ) is a Typescript-first model-based validation library for Vue 3.
9
+ It's heavily inspired by Vuelidate.
10
+
11
+ > ⚠️ Project is still in development, do not use it in production
12
+ > API or function names can still change
13
+
14
+
15
+ # 📚 Documentation
16
+
17
+ [![Documentation](https://raw.githubusercontent.com/victorgarciaesgi/regle/refs/heads/main/.github/images/redirectDoc.svg)](https://regle.vercel.app/)
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import {createRule,defineType,InternalRuleType,unwrapRuleParameters}from'@regle/core';import {unref}from'vue';function $(e,t){let a,o,s,u;typeof e=="function"&&!("_validator"in e)?(a=InternalRuleType.Inline,o=e):{_type:a,validator:o,_active:s,_params:u}=e;let f=createRule({type:a,validator:o,active:s,message:t});return f._params=u,f._patched=!0,f}function F(e,t){let a=async(s,...u)=>e(s,...u),o=createRule({type:defineType(InternalRuleType.Async),validator:a,message:""});return o._params=t,o}function I(e,t){let a=(s,...u)=>e(s,...u),o=createRule({type:defineType(InternalRuleType.Inline),validator:a,message:""});return o._params=t,o}function k(e,t){let a,o,s,u="";typeof t=="function"?(a=InternalRuleType.Inline,o=t):({_type:a,validator:o,_params:s,_message:u}=t,s?.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 l=createRule({type:a,validator:f,active:n,message:u});return l._params=s,l}function d(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 c(e){return !d(typeof e=="string"?e.trim():e)}function T(e){return e==null||typeof e!="number"?!1:!isNaN(e)}function x(e,...t){if(d(e))return !0;let a=typeof e=="number"?e.toString():e;return t.every(o=>(o.lastIndex=0,o.test(a)))}function D(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 b(e){if(d(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 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 P(e){return typeof e=="number"?e:e.trim()!==e?null:+e}var r={isEmpty:d,isFilled:c,size:D,regex:x,isNumber:T,isDate:b,toDate:h,toNumber:P};function L(...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 l=n._params;return l?.length?l:[null]}}).flat().filter(n=>!!n);function o(n,l,...i){let m=[],p=0;for(let R of n)if(typeof R=="function")m.push(R(l)),p++;else {let y=R._params?.length??0;m.push(R.validator(l,...i.slice(p,y))),y&&(p+=y);}return m}function s(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,...l)=>{let i=await Promise.all(o(e,n,...l));return s(i)}:(n,...l)=>{let i=o(e,n,...l);return s(i)}:u=n=>!1;let f=createRule({type:defineType("and"),validator:u,message:"The value does not match all of the provided validators"});return f._params=a,f}function j(...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,l,...i){let m=[],p=0;for(let R of n)if(typeof R=="function")m.push(R(l)),p++;else {let y=R._params?.length??0;m.push(R.validator(l,...i.slice(p,y))),y&&(p+=y);}return m}function s(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 u=t?async(n,...l)=>{let i=await Promise.all(o(e,n,...l));return s(i)}:(n,...l)=>{let i=o(e,n,...l);return s(i)},f=createRule({type:defineType("or"),validator:u,message:"The value does not match any of the provided validators"});return f._params=a,f}function B(e,t){let a,o,s,u,f;typeof e=="function"?(o=e,f=e.constructor.name==="AsyncFunction"):({_type:a,validator:o,_params:u}=e,f=e._async),f?s=async(l,...i)=>r.isFilled(l)?!await o(l,...i):!0:s=(l,...i)=>r.isFilled(l)?!o(l,...i):!0;let n=createRule({type:defineType("not"),validator:s,message:t??"Error"});return n._params=u,n}var qt=createRule({type:defineType("required"),validator:e=>r.isFilled(e),message:"This field is required"});var Kt=createRule({type:defineType("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]})=>`The maximum length allowed is ${t}`});var Jt=createRule({type:defineType("required"),validator(e,t){return t?r.isFilled(e):!0},message:"This field is required",active(e,{$params:[t]}){return t}});var re=/^[a-zA-Z]*$/,er=createRule({type:defineType("alpha"),validator(e){return r.isEmpty(e)?!0:r.regex(e,re)},message:"The value is not alphabetical"});var ie=/^[a-zA-Z0-9]*$/,ar=createRule({type:defineType("alpha"),validator(e){return r.isEmpty(e)?!0:r.regex(e,ie)},message:"The value must be alpha-numeric"});var sr=createRule({type:defineType("between"),validator:(e,t,a)=>{if(r.isFilled(e)&&r.isFilled(t)&&r.isFilled(a)){let o=r.toNumber(e),s=r.toNumber(t),u=r.toNumber(a);return r.isNumber(o)&&r.isNumber(s)&&r.isNumber(u)?o>=s&&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 me=/^[-]?\d*(\.\d+)?$/,pr=createRule({type:defineType("decimal"),validator(e){return r.isEmpty(e)?!0:r.regex(e,me)},message:"Value must be decimal"});var Re=/^(?:[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,gr=createRule({type:defineType("email"),validator(e){return r.isEmpty(e)?!0:r.regex(e,Re)},message:"Value must be an valid email address"});var ge=/(^[0-9]*$)|(^-[0-9]+$)/,Dr=createRule({type:defineType("integer"),validator(e){return r.isEmpty(e)?!0:r.regex(e,ge)},message:"Value must be an integer"});var Mr=createRule({type:defineType("maxValue"),validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&r.isNumber(e)?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 Vr=createRule({type:defineType("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]})=>`This field should be at least ${t} characters long`});var _r=createRule({type:defineType("minValue"),validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&r.isNumber(e)?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 Er=createRule({type:defineType("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 Ae=/^\d*(\.\d+)?$/,Cr=createRule({type:defineType("numeric"),validator(e){return r.isEmpty(e)?!0:r.regex(e,Ae)},message:"This field must be numeric"});var jr=createRule({type:defineType("required"),validator(e,t){return t?!0:r.isFilled(e)},message:"This field is required",active(e,{$params:[t]}){return !t}});var Or=createRule({type:defineType("sameAs"),validator(e,t){return r.isEmpty(e)?!0:e===t},message(e,{$params:[t]}){return `Value must be equal to "${t}"`}});var Ie=/^(?:(?:(?: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,Xr=createRule({type:defineType("url"),validator(e){return r.isEmpty(e)?!0:r.regex(e,Ie)},message:"The value is not a valid URL address"});var rn=createRule({type:defineType("dateAfter"),validator:(e,t)=>r.isDate(e)&&r.isDate(t)?r.toDate(e).getTime()>r.toDate(t).getTime():!0,message:(e,{$params:[t]})=>`The date must be after ${t}`});var ln=createRule({type:defineType("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 inputs must be Dates":`The date must be before ${t}`});var fn=createRule({type:defineType("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 Se(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 yn=createRule({type:defineType("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(Se)},message:"The value is not a valid IP address"});var xn=createRule({type:defineType("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(Ke)},message:"The value is not a valid MAC Address"}),Ke=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var hn=createRule({type:defineType("checked"),validator:e=>e===!0,message:"This field must be checked"});export{er as alpha,ar as alphaNum,L as and,k as applyIf,sr as between,hn as checked,rn as dateAfter,ln as dateBefore,fn as dateBetween,pr as decimal,gr as email,Er as exactLength,Dr as integer,yn as ipAddress,xn as macAddress,Kt as maxLength,Mr as maxValue,Vr as minLength,_r as minValue,B as not,Cr as numeric,j as or,qt as required,Jt as requiredIf,jr as requiredUnless,r as ruleHelpers,Or as sameAs,Xr as url,F as withAsync,$ as withMessage,I as withParams};
1
+ import {createRule,defineType,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 F(e,t){let a=async(l,...u)=>e(l,...u),o=createRule({type:defineType(InternalRuleType.Async),validator:a,message:""});return o._params=t,o}function I(e,t){let a=(l,...u)=>e(l,...u),o=createRule({type:defineType(InternalRuleType.Inline),validator:a,message:""});return o._params=t,o}function k(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 d(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 c(e){return !d(typeof e=="string"?e.trim():e)}function T(e){return e==null||typeof e!="number"?!1:!isNaN(e)}function x(e,...t){if(d(e))return !0;let a=typeof e=="number"?e.toString():e;return t.every(o=>(o.lastIndex=0,o.test(a)))}function D(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 b(e){if(d(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 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 P(e){return typeof e=="number"?e:e.trim()!==e?null:+e}var r={isEmpty:d,isFilled:c,size:D,regex:x,isNumber:T,isDate:b,toDate:h,toNumber:P};function L(...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 y=R._params?.length??0;m.push(R.validator(s,...i.slice(p,y))),y&&(p+=y);}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:defineType("and"),validator:u,message:"The value does not match all of the provided validators"});return f._params=a,f}function j(...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 y=R._params?.length??0;m.push(R.validator(s,...i.slice(p,y))),y&&(p+=y);}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 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)},f=createRule({type:defineType("or"),validator:u,message:"The value does not match any of the provided validators"});return f._params=a,f}function B(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:defineType("not"),validator:l,message:t??"Error"});return n._params=u,n}var qt=createRule({type:defineType("required"),validator:e=>r.isFilled(e),message:"This field is required"});var Kt=createRule({type:defineType("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 Jt=createRule({type:defineType("required"),validator(e,t){return t?r.isFilled(e):!0},message:"This field is required",active(e,{$params:[t]}){return t}});var re=/^[a-zA-Z]*$/,er=createRule({type:defineType("alpha"),validator(e){return r.isEmpty(e)?!0:r.regex(e,re)},message:"The value is not alphabetical"});var ie=/^[a-zA-Z0-9]*$/,ar=createRule({type:defineType("alpha"),validator(e){return r.isEmpty(e)?!0:r.regex(e,ie)},message:"The value must be alpha-numeric"});var lr=createRule({type:defineType("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 me=/^[-]?\d*(\.\d+)?$/,pr=createRule({type:defineType("decimal"),validator(e){return r.isEmpty(e)?!0:r.regex(e,me)},message:"Value must be decimal"});var Re=/^(?:[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,gr=createRule({type:defineType("email"),validator(e){return r.isEmpty(e)?!0:r.regex(e,Re)},message:"Value must be an valid email address"});var ge=/(^[0-9]*$)|(^-[0-9]+$)/,Dr=createRule({type:defineType("integer"),validator(e){return r.isEmpty(e)?!0:r.regex(e,ge)},message:"Value must be an integer"});var Mr=createRule({type:defineType("maxValue"),validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&r.isNumber(e)?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 Vr=createRule({type:defineType("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 _r=createRule({type:defineType("minValue"),validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&r.isNumber(e)?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 Er=createRule({type:defineType("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 Ae=/^\d*(\.\d+)?$/,Cr=createRule({type:defineType("numeric"),validator(e){return r.isEmpty(e)?!0:r.regex(e,Ae)},message:"This field must be numeric"});var jr=createRule({type:defineType("required"),validator(e,t){return t?!0:r.isFilled(e)},message:"This field is required",active(e,{$params:[t]}){return !t}});var Or=createRule({type:defineType("sameAs"),validator(e,t){return r.isEmpty(e)?!0:e===t},message(e,{$params:[t]}){return `Value must be equal to "${t}"`}});var Ie=/^(?:(?:(?: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,Xr=createRule({type:defineType("url"),validator(e){return r.isEmpty(e)?!0:r.regex(e,Ie)},message:"The value is not a valid URL address"});var rn=createRule({type:defineType("dateAfter"),validator:(e,t)=>r.isDate(e)&&r.isDate(t)?r.toDate(e).getTime()>r.toDate(t).getTime():!0,message:(e,{$params:[t]})=>`The date must be after ${t}`});var sn=createRule({type:defineType("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 inputs must be Dates":`The date must be before ${t}`});var fn=createRule({type:defineType("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 Se(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 yn=createRule({type:defineType("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(Se)},message:"The value is not a valid IP address"});var xn=createRule({type:defineType("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(Ke)},message:"The value is not a valid MAC Address"}),Ke=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var hn=createRule({type:defineType("checked"),validator:e=>e===!0,message:"This field must be checked"});export{er as alpha,ar as alphaNum,L as and,k as applyIf,lr as between,hn as checked,rn as dateAfter,sn as dateBefore,fn as dateBetween,pr as decimal,gr as email,Er as exactLength,Dr as integer,yn as ipAddress,xn as macAddress,Kt as maxLength,Mr as maxValue,Vr as minLength,_r as minValue,B as not,Cr as numeric,j as or,qt as required,Jt as requiredIf,jr as requiredUnless,r as ruleHelpers,Or as sameAs,Xr as url,F as withAsync,$ as withMessage,I as withParams};
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@regle/rules",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Collection of rules and helpers for Regle",
5
5
  "dependencies": {
6
- "@regle/core": "0.1.1"
6
+ "@regle/core": "0.1.2"
7
7
  },
8
8
  "devDependencies": {
9
9
  "@types/prettier": "3.0.0",