@regle/rules 1.2.0-beta.8 → 1.2.0
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/regle-rules.min.mjs +1 -1
- package/dist/regle-rules.mjs +6 -1
- package/package.json +2 -2
package/dist/regle-rules.min.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {createRule,InternalRuleType,unwrapRuleParameters}from'@regle/core';import {unref,computed,toValue}from'vue';function D(e,t){let a,n,o,f;typeof e=="function"&&!("_validator"in e)?(a=InternalRuleType.Inline,n=e):{_type:a,validator:n,_active:o,_params:f}=e;let l=createRule({type:a,validator:n,active:o,message:t}),u=[...f??[]];if(l._params=u,l._message_patched=true,typeof l=="function"){if(f!=null){let i=l(...u);return i._message_patched=true,i}return l}else return l}function F(e,t){let a,n,o,f,l;typeof e=="function"&&!("_validator"in e)?(a=InternalRuleType.Inline,n=e):{_type:a,validator:n,_active:o,_params:f,_message:l}=e;let u=createRule({type:a,validator:n,active:o,message:l,tooltip:t}),i=[...f??[]];if(u._params=i,u._tooltip_patched=true,typeof u=="function"){let p=u(...i);return u._tooltip_patched=true,p}else return u}function N(e,t){let a,n,o=[],f="";typeof e=="function"?(a=InternalRuleType.Inline,n=async(u,...i)=>e(u,...i),o=[t]):({_type:a,_message:f}=e,o=o=e._params?.concat(t),n=async(...u)=>e.validator(u));let l=createRule({type:InternalRuleType.Async,validator:n,message:f});return l._params=l._params?.concat(o),l(...t??[])}function P(e,t){let a,n,o=[],f="";typeof e=="function"?(a=InternalRuleType.Inline,n=(u,...i)=>e(u,...i),o=[t]):({_type:a,validator:n,_message:f}=e,o=o=e._params?.concat(t));let l=createRule({type:InternalRuleType.Inline,validator:n,message:f});return l._params=l._params?.concat(o),l(...t)}function S(e,t){let a,n,o=[],f="";typeof t=="function"?(a=InternalRuleType.Inline,n=t,o=[e]):({_type:a,validator:n,_message:f}=t,o=t._params?.concat([e]));function l(s,...c){let[x]=unwrapRuleParameters([e]);return x?n(s,...c):true}function u(s){let[c]=unwrapRuleParameters([e]);return c}let i=createRule({type:a,validator:l,active:u,message:f}),p=[...o??[]];return i._params=p,typeof i=="function"?i(...p):i}function m(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function b(e){if(m(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let a=new Date(e);if(a.toString()==="Invalid Date")return !1;t=a;}return !!t}catch{return false}}function y(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 r(e,t=true){return !m(typeof e=="string"?e.trim():e,t)}function g(e){return e==null||typeof e!="number"?false:!isNaN(e)}function R(e,...t){if(m(e))return true;let a=typeof e=="number"?e.toString():e;return t.every(n=>(n.lastIndex=0,n.test(a)))}function M(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 d(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}function L(...e){let t=e.some(i=>typeof i=="function"?i.constructor.name==="AsyncFunction":i._async),a=e.map(i=>{if(typeof i=="function")return null;{let p=i._params;return p?.length?p:[]}}).flat().filter(i=>!!i);function n(i,p,...s){let c=[],x=0;for(let T of i)if(typeof T=="function")c.push(T(p)),x++;else {let h=T._params?.length??0;c.push(T.validator(p,...s.slice(x,h))),h&&(x+=h);}return c}function o(i){return i?.some(s=>typeof s!="boolean")?{$valid:i.every(s=>typeof s=="boolean"?!!s:s.$valid),...i.reduce((s,c)=>{if(typeof c=="boolean")return s;let{$valid:x,...T}=c;return {...s,...T}},{})}:i.every(s=>!!s)}let f;e.length?f=t?async(i,...p)=>{let s=await Promise.all(n(e,i,...p));return o(s)}:(i,...p)=>{let s=n(e,i,...p);return o(s)}:f=i=>false;let l=createRule({type:"and",validator:f,message:"The value does not match all of the provided validators"}),u=[...a??[]];return l._params=u,typeof l=="function"?l(...u):l}function U(...e){let t=e.some(i=>typeof i=="function"?i.constructor.name==="AsyncFunction":i._async),a=e.map(i=>typeof i=="function"?null:i._params).flat().filter(i=>!!i);function n(i,p,...s){let c=[],x=0;for(let T of i)if(typeof T=="function")c.push(T(p)),x++;else {let h=T._params?.length??0;c.push(T.validator(p,...s.slice(x,h))),h&&(x+=h);}return c}function o(i){return i.some(s=>typeof s!="boolean")?{$valid:i.some(s=>typeof s=="boolean"?!!s:s.$valid),...i.reduce((s,c)=>{if(typeof c=="boolean")return s;let{$valid:x,...T}=c;return {...s,...T}},{})}:i.some(s=>!!s)}let l=createRule({type:"or",validator:t?async(i,...p)=>{let s=await Promise.all(n(e,i,...p));return o(s)}:(i,...p)=>{let s=n(e,i,...p);return o(s)},message:"The value does not match any of the provided validators"}),u=[...a??[]];return l._params=u,typeof l=="function"?l(...u):l}function B(e,t){let a,n,o,f,l;typeof e=="function"?(n=e,l=e.constructor.name==="AsyncFunction"):({_type:a,validator:n,_params:f}=e,l=e._async),l?o=async(p,...s)=>r(p)?!await n(p,...s):true:o=(p,...s)=>r(p)?!n(p,...s):true;let u=createRule({type:"not",validator:o,message:t??"Error"}),i=[...f??[]];return u._params=i,typeof u=="function"?u(...i):u}var J=/^[a-zA-Z]*$/,H=/^[\w.]+$/,nn=createRule({type:"alpha",validator(e,t){return m(e)?true:t?.allowSymbols?R(e,H):R(e,J)},message:"The value is not alphabetical"});var X=/^[a-zA-Z0-9]*$/,Y=/^[a-zA-Z0-9_]*$/,sn=createRule({type:"alphaNum",validator(e,t){return m(e)?true:t?.allowSymbols?R(e,Y):R(e,X)},message:"The value must be alpha-numeric"});var fn=createRule({type:"between",validator:(e,t,a,n)=>{let{allowEqual:o=true}=n??{};if(r(e)&&r(t)&&r(a)){let f=d(e),l=d(t),u=d(a);return g(f)&&g(l)&&g(u)?o?f>=l&&f<=u:f>l&&f<u:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${a}`),false)}return true},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var cn=createRule({type:"boolean",validator:e=>r(e)?typeof e=="boolean":true,message:"The value must be a native boolean"});var xn=createRule({type:"checked",validator:e=>r(e)?e===true:true,message:"The field must be checked"});var Pn=createRule({type:"contains",validator(e,t){return r(e)&&r(t)?e.includes(t):true},message({$params:[e]}){return `The value must contain ${e}`}});var Vn=createRule({type:"date",validator:e=>r(e)?e instanceof Date:true,message:"The value must be a native Date constructor"});function ae(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function w(e){return e?new Intl.DateTimeFormat(ae(),{dateStyle:"short"}).format(new Date(e)):"?"}var Nn=createRule({type:"dateAfter",validator:(e,t,a)=>{let{allowEqual:n=true}=a??{};return r(e)&&r(t)?b(e)&&b(t)?(n?y(e).getTime()>=y(t).getTime():y(e).getTime()>y(t).getTime())?true:{$valid:false,error:"date-not-after"}:{$valid:false,error:"value-or-parameter-not-a-date"}:true},message:({$params:[e],error:t})=>t==="value-or-parameter-not-a-date"?"The values must be dates":`The date must be after ${w(e)}`});var qn=createRule({type:"dateBefore",validator:(e,t,a)=>{let{allowEqual:n=true}=a??{};return r(e)&&r(t)?b(e)&&b(t)?(n?y(e).getTime()<=y(t).getTime():y(e).getTime()<y(t).getTime())?true:{$valid:false,error:"date-not-before"}:{$valid:false,error:"value-or-parameter-not-a-date"}:true},message:({$params:[e],error:t})=>t==="value-or-parameter-not-a-date"?"The values must be dates":`The date must be before ${w(e)}`});var Kn=createRule({type:"dateBetween",validator:(e,t,a,n)=>{let{allowEqual:o=true}=n??{};return b(e)&&b(t)&&b(a)?o?y(e).getTime()>=y(t).getTime()&&y(e).getTime()<=y(a).getTime():y(e).getTime()>y(t).getTime()&&y(e).getTime()<y(a).getTime():true},message:({$params:[e,t]})=>`The date must be between ${w(e)} and ${w(t)}`});var ue=/^[-]?\d*(\.\d+)?$/,Hn=createRule({type:"decimal",validator(e){return m(e)?true:R(e,ue)},message:"The value must be decimal"});var fe=/^(?:[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,jn=createRule({type:"email",validator(e){return m(e)?true:R(e,fe)},message:"The value must be an valid email address"});var rr=createRule({type:"endsWith",validator(e,t){return r(e)&&r(t)?e.endsWith(t):true},message({$params:[e]}){return `The value must end with ${e}`}});var sr=createRule({type:"exactLength",validator:(e,t)=>r(e,false)&&r(t)?g(t)?M(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true,message:({$params:[e]})=>`The value should be exactly ${e} characters long`});var fr=createRule({type:"exactValue",validator:(e,t)=>r(e)&&r(t)?g(t)&&!isNaN(d(e))?d(e)===t:(console.warn(`[exactValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true,message:({$params:[e]})=>`The value must be equal to ${e}`});var ce=/^[a-fA-F0-9]*$/,gr=createRule({type:"hexadecimal",validator(e){return m(e)?true:R(e,ce)},message:"The value must be hexadecimal"});var Te=/(^[0-9]*$)|(^-[0-9]+$)/,br=createRule({type:"integer",validator(e){return m(e)?true:R(e,Te)},message:"The value must be an integer"});function xe(e){if(e.length>3||e.length===0||e[0]==="0"&&e!=="0"||!e.match(/^\d+$/))return false;let t=+e|0;return t>=0&&t<=255}var Dr=createRule({type:"ipv4Address",validator(e){if(m(e))return true;if(typeof e!="string")return false;let t=e.split(".");return t.length===4&&t.every(xe)},message:"The value is not a valid IPv4 address"});function vr(e){let t=computed(()=>toValue(e));return D(P((n,o)=>r(n)&&r(o)?o===n:true,[t]),({$params:[n]})=>`Value should be ${n}.`)}var Wr=createRule({type:"macAddress",validator(e,t=":"){if(m(e))return true;if(typeof e!="string")return false;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(Pe)},message:"The value is not a valid MAC Address"}),Pe=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var Nr=createRule({type:"maxLength",validator:(e,t,a)=>{let{allowEqual:n=true}=a??{};return r(e,false)&&r(t)?g(t)?n?M(e)<=t:M(e)<t:(console.warn(`[maxLength] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),false):true},message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The value length should not exceed ${t}`});var Sr=createRule({type:"maxValue",validator:(e,t,a)=>{let{allowEqual:n=true}=a??{};return r(e)&&r(t)?g(t)&&!isNaN(d(e))?n?d(e)<=t:d(e)<t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true},message:({$params:[e,t]})=>{let{allowEqual:a=true}=t??{};return a?`The value must be less than or equal to ${e}`:`The value must be less than ${e}`}});var Gr=createRule({type:"minLength",validator:(e,t,a)=>{let{allowEqual:n=true}=a??{};return r(e,false)&&r(t)?g(t)?n?M(e)>=t:M(e)>t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true},message:({$value:e,$params:[t]})=>Array.isArray(e)?`The list should have at least ${t} items`:`The value length should be at least ${t}`});var Zr=createRule({type:"minValue",validator:(e,t,a)=>{let{allowEqual:n=true}=a??{};return r(e)&&r(t)?g(t)&&!isNaN(d(e))?n?d(e)>=t:d(e)>t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true},message:({$params:[e,t]})=>{let{allowEqual:a=true}=t??{};return a?`The value must be greater than or equal to ${e}`:`The value must be greater than ${e}`}});function We(e){let t=Object.keys(e).filter(n=>typeof e[e[n]]!="number"),a={};for(let n of t)a[n]=e[n];return Object.values(a)}function Xr(e){let t=computed(()=>toValue(e));return D(P((n,o)=>r(n)&&!m(o)?We(o).includes(n):true,[t]),({$params:[n]})=>`The value should be one of those options: ${Object.values(n).join(", ")}.`)}var ta=createRule({type:"number",validator:e=>r(e)?g(e):true,message:"The value must be a native number"});var Oe=/^\d*(\.\d+)?$/,ia=createRule({type:"numeric",validator(e){return m(e)?true:R(e,Oe)},message:"The value must be numeric"});function ua(e){let t=computed(()=>toValue(e));return D(P((n,o)=>r(n)&&r(o,false)?o.includes(n):true,[t]),({$params:[n]})=>`The value should be one of those options: ${n.join(", ")}.`)}var Ra=createRule({type:"regex",validator(e,t){if(r(e)){let a=Array.isArray(t)?t:[t];return R(e,...a)}return true},message:"The value does not match the required pattern"});var da=createRule({type:"required",validator:e=>r(e),message:"This field is required"});var Ma=createRule({type:"required",validator(e,t){return t?r(e):true},message:"This field is required",active({$params:[e]}){return e}});var wa=createRule({type:"required",validator(e,t){return t?true:r(e)},message:"This field is required",active({$params:[e]}){return !e}});var Va=createRule({type:"sameAs",validator(e,t,a){return m(e)?true:e===t},message({$params:[e,t="other"]}){return `The value must be equal to the ${t} value`}});var Fa=createRule({type:"startsWith",validator(e,t){return r(e)&&r(t)?e.startsWith(t):true},message({$params:[e]}){return `The value must end with ${e}`}});var Ea=createRule({type:"string",validator:e=>r(e)?typeof e=="string":true,message:"The value must be a string"});function Sa(){return ()=>true}var Ke=/^(?:(?:(?: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,Ga=createRule({type:"url",validator(e){return m(e)?true:R(e,Ke)},message:"The value is not a valid URL address"});export{nn as alpha,sn as alphaNum,L as and,S as applyIf,fn as between,cn as boolean,xn as checked,Pn as contains,Vn as date,Nn as dateAfter,qn as dateBefore,Kn as dateBetween,Hn as decimal,jn as email,rr as endsWith,sr as exactLength,fr as exactValue,M as getSize,gr as hexadecimal,br as integer,Dr as ipv4Address,b as isDate,m as isEmpty,r as isFilled,g as isNumber,vr as literal,Wr as macAddress,R as matchRegex,Nr as maxLength,Sr as maxValue,Gr as minLength,Zr as minValue,Xr as nativeEnum,B as not,ta as number,ia as numeric,ua as oneOf,U as or,Ra as regex,da as required,Ma as requiredIf,wa as requiredUnless,Va as sameAs,Fa as startsWith,Ea as string,y as toDate,d as toNumber,Sa as type,Ga as url,N as withAsync,D as withMessage,P as withParams,F as withTooltip};
|
|
1
|
+
import {createRule,InternalRuleType,unwrapRuleParameters}from'@regle/core';import {unref,computed,toValue}from'vue';function D(e,t){let a,n,i,f;typeof e=="function"&&!("_validator"in e)?(a=InternalRuleType.Inline,n=e):{_type:a,validator:n,_active:i,_params:f}=e;let l=createRule({type:a,validator:n,active:i,message:t}),u=[...f??[]];if(l._params=u,l._message_patched=true,typeof l=="function"){if(f!=null){let o=l(...u);return o._message_patched=true,o}return l}else return l}function F(e,t){let a,n,i,f,l;typeof e=="function"&&!("_validator"in e)?(a=InternalRuleType.Inline,n=e):{_type:a,validator:n,_active:i,_params:f,_message:l}=e;let u=createRule({type:a,validator:n,active:i,message:l,tooltip:t}),o=[...f??[]];if(u._params=o,u._tooltip_patched=true,typeof u=="function"){let p=u(...o);return u._tooltip_patched=true,p}else return u}function _(e,t){let a,n,i=[],f="";typeof e=="function"?(a=InternalRuleType.Inline,n=async(u,...o)=>e(u,...o),i=[t]):({_type:a,_message:f}=e,i=i=e._params?.concat(t),n=async(...u)=>e.validator(u));let l=createRule({type:InternalRuleType.Async,validator:n,message:f});return l._params=l._params?.concat(i),l(...t??[])}function P(e,t){let a,n,i=[],f="";typeof e=="function"?(a=InternalRuleType.Inline,n=(u,...o)=>e(u,...o),i=[t]):({_type:a,validator:n,_message:f}=e,i=i=e._params?.concat(t));let l=createRule({type:InternalRuleType.Inline,validator:n,message:f});return l._params=l._params?.concat(i),l(...t)}function q(e,t){let a,n,i=[],f="";typeof t=="function"?(a=InternalRuleType.Inline,n=t,i=[e]):({_type:a,validator:n,_message:f}=t,i=t._params?.concat([e]));function l(s,...c){let[x]=unwrapRuleParameters([e]);return x?n(s,...c):true}function u(s){let[c]=unwrapRuleParameters([e]);return c}let o=createRule({type:a,validator:l,active:u,message:f}),p=[...i??[]];return o._params=p,typeof o=="function"?o(...p):o}function V(e){return e?.constructor.name=="File"||e?.constructor.name=="FileList"}function m(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):V(e)?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function b(e){if(m(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let a=new Date(e);if(a.toString()==="Invalid Date")return !1;t=a;}return !!t}catch{return false}}function y(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 r(e,t=true){return !m(typeof e=="string"?e.trim():e,t)}function g(e){return e==null||typeof e!="number"?false:!isNaN(e)}function R(e,...t){if(m(e))return true;let a=typeof e=="number"?e.toString():e;return t.every(n=>(n.lastIndex=0,n.test(a)))}function M(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 d(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}function G(...e){let t=e.some(o=>typeof o=="function"?o.constructor.name==="AsyncFunction":o._async),a=e.map(o=>{if(typeof o=="function")return null;{let p=o._params;return p?.length?p:[]}}).flat().filter(o=>!!o);function n(o,p,...s){let c=[],x=0;for(let T of o)if(typeof T=="function")c.push(T(p)),x++;else {let h=T._params?.length??0;c.push(T.validator(p,...s.slice(x,h))),h&&(x+=h);}return c}function i(o){return o?.some(s=>typeof s!="boolean")?{$valid:o.every(s=>typeof s=="boolean"?!!s:s.$valid),...o.reduce((s,c)=>{if(typeof c=="boolean")return s;let{$valid:x,...T}=c;return {...s,...T}},{})}:o.every(s=>!!s)}let f;e.length?f=t?async(o,...p)=>{let s=await Promise.all(n(e,o,...p));return i(s)}:(o,...p)=>{let s=n(e,o,...p);return i(s)}:f=o=>false;let l=createRule({type:"and",validator:f,message:"The value does not match all of the provided validators"}),u=[...a??[]];return l._params=u,typeof l=="function"?l(...u):l}function K(...e){let t=e.some(o=>typeof o=="function"?o.constructor.name==="AsyncFunction":o._async),a=e.map(o=>typeof o=="function"?null:o._params).flat().filter(o=>!!o);function n(o,p,...s){let c=[],x=0;for(let T of o)if(typeof T=="function")c.push(T(p)),x++;else {let h=T._params?.length??0;c.push(T.validator(p,...s.slice(x,h))),h&&(x+=h);}return c}function i(o){return o.some(s=>typeof s!="boolean")?{$valid:o.some(s=>typeof s=="boolean"?!!s:s.$valid),...o.reduce((s,c)=>{if(typeof c=="boolean")return s;let{$valid:x,...T}=c;return {...s,...T}},{})}:o.some(s=>!!s)}let l=createRule({type:"or",validator:t?async(o,...p)=>{let s=await Promise.all(n(e,o,...p));return i(s)}:(o,...p)=>{let s=n(e,o,...p);return i(s)},message:"The value does not match any of the provided validators"}),u=[...a??[]];return l._params=u,typeof l=="function"?l(...u):l}function B(e,t){let a,n,i,f,l;typeof e=="function"?(n=e,l=e.constructor.name==="AsyncFunction"):({_type:a,validator:n,_params:f}=e,l=e._async),l?i=async(p,...s)=>r(p)?!await n(p,...s):true:i=(p,...s)=>r(p)?!n(p,...s):true;let u=createRule({type:"not",validator:i,message:t??"Error"}),o=[...f??[]];return u._params=o,typeof u=="function"?u(...o):u}var J=/^[a-zA-Z]*$/,H=/^[\w.]+$/,fn=createRule({type:"alpha",validator(e,t){return m(e)?true:t?.allowSymbols?R(e,H):R(e,J)},message:"The value is not alphabetical"});var X=/^[a-zA-Z0-9]*$/,Y=/^[a-zA-Z0-9_]*$/,gn=createRule({type:"alphaNum",validator(e,t){return m(e)?true:t?.allowSymbols?R(e,Y):R(e,X)},message:"The value must be alpha-numeric"});var bn=createRule({type:"between",validator:(e,t,a,n)=>{let{allowEqual:i=true}=n??{};if(r(e)&&r(t)&&r(a)){let f=d(e),l=d(t),u=d(a);return g(f)&&g(l)&&g(u)?i?f>=l&&f<=u:f>l&&f<u:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${a}`),false)}return true},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var Pn=createRule({type:"boolean",validator:e=>r(e)?typeof e=="boolean":true,message:"The value must be a native boolean"});var $n=createRule({type:"checked",validator:e=>r(e)?e===true:true,message:"The field must be checked"});var Cn=createRule({type:"contains",validator(e,t){return r(e)&&r(t)?e.includes(t):true},message({$params:[e]}){return `The value must contain ${e}`}});var En=createRule({type:"date",validator:e=>r(e)?e instanceof Date:true,message:"The value must be a native Date constructor"});function oe(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function w(e){return e?new Intl.DateTimeFormat(oe(),{dateStyle:"short"}).format(new Date(e)):"?"}var Gn=createRule({type:"dateAfter",validator:(e,t,a)=>{let{allowEqual:n=true}=a??{};return r(e)&&r(t)?b(e)&&b(t)?(n?y(e).getTime()>=y(t).getTime():y(e).getTime()>y(t).getTime())?true:{$valid:false,error:"date-not-after"}:{$valid:false,error:"value-or-parameter-not-a-date"}:true},message:({$params:[e],error:t})=>t==="value-or-parameter-not-a-date"?"The values must be dates":`The date must be after ${w(e)}`});var Zn=createRule({type:"dateBefore",validator:(e,t,a)=>{let{allowEqual:n=true}=a??{};return r(e)&&r(t)?b(e)&&b(t)?(n?y(e).getTime()<=y(t).getTime():y(e).getTime()<y(t).getTime())?true:{$valid:false,error:"date-not-before"}:{$valid:false,error:"value-or-parameter-not-a-date"}:true},message:({$params:[e],error:t})=>t==="value-or-parameter-not-a-date"?"The values must be dates":`The date must be before ${w(e)}`});var Yn=createRule({type:"dateBetween",validator:(e,t,a,n)=>{let{allowEqual:i=true}=n??{};return b(e)&&b(t)&&b(a)?i?y(e).getTime()>=y(t).getTime()&&y(e).getTime()<=y(a).getTime():y(e).getTime()>y(t).getTime()&&y(e).getTime()<y(a).getTime():true},message:({$params:[e,t]})=>`The date must be between ${w(e)} and ${w(t)}`});var me=/^[-]?\d*(\.\d+)?$/,rr=createRule({type:"decimal",validator(e){return m(e)?true:R(e,me)},message:"The value must be decimal"});var pe=/^(?:[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,sr=createRule({type:"email",validator(e){return m(e)?true:R(e,pe)},message:"The value must be an valid email address"});var fr=createRule({type:"endsWith",validator(e,t){return r(e)&&r(t)?e.endsWith(t):true},message({$params:[e]}){return `The value must end with ${e}`}});var gr=createRule({type:"exactLength",validator:(e,t)=>r(e,false)&&r(t)?g(t)?M(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true,message:({$params:[e]})=>`The value should be exactly ${e} characters long`});var br=createRule({type:"exactValue",validator:(e,t)=>r(e)&&r(t)?g(t)&&!isNaN(d(e))?d(e)===t:(console.warn(`[exactValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true,message:({$params:[e]})=>`The value must be equal to ${e}`});var de=/^[a-fA-F0-9]*$/,Dr=createRule({type:"hexadecimal",validator(e){return m(e)?true:R(e,de)},message:"The value must be hexadecimal"});var be=/(^[0-9]*$)|(^-[0-9]+$)/,vr=createRule({type:"integer",validator(e){return m(e)?true:R(e,be)},message:"The value must be an integer"});function Me(e){if(e.length>3||e.length===0||e[0]==="0"&&e!=="0"||!e.match(/^\d+$/))return false;let t=+e|0;return t>=0&&t<=255}var Wr=createRule({type:"ipv4Address",validator(e){if(m(e))return true;if(typeof e!="string")return false;let t=e.split(".");return t.length===4&&t.every(Me)},message:"The value is not a valid IPv4 address"});function Nr(e){let t=computed(()=>toValue(e));return D(P((n,i)=>r(n)&&r(i)?i===n:true,[t]),({$params:[n]})=>`Value should be ${n}.`)}var Sr=createRule({type:"macAddress",validator(e,t=":"){if(m(e))return true;if(typeof e!="string")return false;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(we)},message:"The value is not a valid MAC Address"}),we=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var Gr=createRule({type:"maxLength",validator:(e,t,a)=>{let{allowEqual:n=true}=a??{};return r(e,false)&&r(t)?g(t)?n?M(e)<=t:M(e)<t:(console.warn(`[maxLength] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),false):true},message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The value length should not exceed ${t}`});var Br=createRule({type:"maxValue",validator:(e,t,a)=>{let{allowEqual:n=true}=a??{};return r(e)&&r(t)?g(t)&&!isNaN(d(e))?n?d(e)<=t:d(e)<t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true},message:({$params:[e,t]})=>{let{allowEqual:a=true}=t??{};return a?`The value must be less than or equal to ${e}`:`The value must be less than ${e}`}});var Qr=createRule({type:"minLength",validator:(e,t,a)=>{let{allowEqual:n=true}=a??{};return r(e,false)&&r(t)?g(t)?n?M(e)>=t:M(e)>t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true},message:({$value:e,$params:[t]})=>Array.isArray(e)?`The list should have at least ${t} items`:`The value length should be at least ${t}`});var ta=createRule({type:"minValue",validator:(e,t,a)=>{let{allowEqual:n=true}=a??{};return r(e)&&r(t)?g(t)&&!isNaN(d(e))?n?d(e)>=t:d(e)>t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true},message:({$params:[e,t]})=>{let{allowEqual:a=true}=t??{};return a?`The value must be greater than or equal to ${e}`:`The value must be greater than ${e}`}});function Ce(e){let t=Object.keys(e).filter(n=>typeof e[e[n]]!="number"),a={};for(let n of t)a[n]=e[n];return Object.values(a)}function oa(e){let t=computed(()=>toValue(e));return D(P((n,i)=>r(n)&&!m(i)?Ce(i).includes(n):true,[t]),({$params:[n]})=>`The value should be one of those options: ${Object.values(n).join(", ")}.`)}var ua=createRule({type:"number",validator:e=>r(e)?g(e):true,message:"The value must be a native number"});var Ne=/^\d*(\.\d+)?$/,Ra=createRule({type:"numeric",validator(e){return m(e)?true:R(e,Ne)},message:"The value must be numeric"});function da(e){let t=computed(()=>toValue(e));return D(P((n,i)=>r(n)&&r(i,false)?i.includes(n):true,[t]),({$params:[n]})=>`The value should be one of those options: ${n.join(", ")}.`)}var Ma=createRule({type:"regex",validator(e,t){if(r(e)){let a=Array.isArray(t)?t:[t];return R(e,...a)}return true},message:"The value does not match the required pattern"});var wa=createRule({type:"required",validator:e=>r(e),message:"This field is required"});var Va=createRule({type:"required",validator(e,t){return t?r(e):true},message:"This field is required",active({$params:[e]}){return e}});var Oa=createRule({type:"required",validator(e,t){return t?true:r(e)},message:"This field is required",active({$params:[e]}){return !e}});var Ea=createRule({type:"sameAs",validator(e,t,a){return m(e)?true:e===t},message({$params:[e,t="other"]}){return `The value must be equal to the ${t} value`}});var za=createRule({type:"startsWith",validator(e,t){return r(e)&&r(t)?e.startsWith(t):true},message({$params:[e]}){return `The value must end with ${e}`}});var Ka=createRule({type:"string",validator:e=>r(e)?typeof e=="string":true,message:"The value must be a string"});function Ba(){return ()=>true}var je=/^(?:(?:(?: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,Qa=createRule({type:"url",validator(e){return m(e)?true:R(e,je)},message:"The value is not a valid URL address"});export{fn as alpha,gn as alphaNum,G as and,q as applyIf,bn as between,Pn as boolean,$n as checked,Cn as contains,En as date,Gn as dateAfter,Zn as dateBefore,Yn as dateBetween,rr as decimal,sr as email,fr as endsWith,gr as exactLength,br as exactValue,M as getSize,Dr as hexadecimal,vr as integer,Wr as ipv4Address,b as isDate,m as isEmpty,r as isFilled,g as isNumber,Nr as literal,Sr as macAddress,R as matchRegex,Gr as maxLength,Br as maxValue,Qr as minLength,ta as minValue,oa as nativeEnum,B as not,ua as number,Ra as numeric,da as oneOf,K as or,Ma as regex,wa as required,Va as requiredIf,Oa as requiredUnless,Ea as sameAs,za as startsWith,Ka as string,y as toDate,d as toNumber,Ba as type,Qa as url,_ as withAsync,D as withMessage,P as withParams,F as withTooltip};
|
package/dist/regle-rules.mjs
CHANGED
|
@@ -150,6 +150,11 @@ function applyIf(_condition, rule) {
|
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
+
// ../shared/utils/isFile.ts
|
|
154
|
+
function isFile(value) {
|
|
155
|
+
return value?.constructor.name == "File" || value?.constructor.name == "FileList";
|
|
156
|
+
}
|
|
157
|
+
|
|
153
158
|
// ../shared/utils/isEmpty.ts
|
|
154
159
|
function isEmpty(value, considerEmptyArrayInvalid = true) {
|
|
155
160
|
if (value === void 0 || value === null) {
|
|
@@ -157,7 +162,7 @@ function isEmpty(value, considerEmptyArrayInvalid = true) {
|
|
|
157
162
|
}
|
|
158
163
|
if (value instanceof Date) {
|
|
159
164
|
return isNaN(value.getTime());
|
|
160
|
-
} else if (value
|
|
165
|
+
} else if (isFile(value)) {
|
|
161
166
|
return value.size <= 0;
|
|
162
167
|
} else if (Array.isArray(value)) {
|
|
163
168
|
if (considerEmptyArrayInvalid) {
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@regle/rules",
|
|
3
|
-
"version": "1.2.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Collection of rules and helpers for Regle",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@regle/core": "1.2.0
|
|
6
|
+
"@regle/core": "1.2.0"
|
|
7
7
|
},
|
|
8
8
|
"devDependencies": {
|
|
9
9
|
"@typescript-eslint/eslint-plugin": "8.28.0",
|