@regle/rules 0.3.2 → 0.4.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/README.md +0 -3
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +14 -30
- package/dist/index.d.ts +14 -30
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -8,9 +8,6 @@
|
|
|
8
8
|
Regle \ʁɛɡl\ (French word for 'rule' ) is a Typescript-first model-based validation library for Vue 3.
|
|
9
9
|
It's heavily inspired by Vuelidate.
|
|
10
10
|
|
|
11
|
-
> ⚠️ Project is still in development, do not use it in production
|
|
12
|
-
> API or function names can still change
|
|
13
|
-
|
|
14
11
|
|
|
15
12
|
# 📚 Documentation
|
|
16
13
|
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var core=require('@regle/core'),vue=require('vue');function v(e,t){let n,o,l,u;typeof e=="function"&&!("_validator"in e)?(n=core.InternalRuleType.Inline,o=e):{_type:n,validator:o,_active:l,_params:u}=e;let m=core.createRule({type:n,validator:o,active:l,message:t}),a=[...u??[]];if(m._params=a,m._patched=!0,typeof m=="function"){let s=m(...a);return s._patched=!0,s}else return m}function V(e,t){let n,o,l,u,m;typeof e=="function"&&!("_validator"in e)?(n=core.InternalRuleType.Inline,o=e):{_type:n,validator:o,_active:l,_params:u,_message:m}=e;let a=core.createRule({type:n,validator:o,active:l,message:m,tooltip:t}),s=[...u??[]];return a._params=s,typeof a=="function"?a(...s):a}function N(e,t){let n=async(l,...u)=>e(l,...u),o=core.createRule({type:core.InternalRuleType.Async,validator:n,message:""});return o._params=o._params?.concat(t),o(...t??[])}function E(e,t){let n=(l,...u)=>e(l,...u),o=core.createRule({type:core.InternalRuleType.Inline,validator:n,message:""});return o._params=o._params?.concat(t),o(...t)}function C(e,t){let n,o,l=[],u="";typeof t=="function"?(n=core.InternalRuleType.Inline,o=t,l=[e]):({_type:n,validator:o,_message:u}=t,l=t._params?.concat([e]));function m(i){let[f]=core.unwrapRuleParameters([e]);return f?o(i,f):!0}function a(i,f){let[p]=core.unwrapRuleParameters([e]);return p}let s=core.createRule({type:n,validator:m,active:a,message:u});return s._params=l,s}function y(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function x(e){return !y(typeof e=="string"?e.trim():e)}function b(e){return e==null||typeof e!="number"?!1:!isNaN(e)}function D(e,...t){if(y(e))return !0;let n=typeof e=="number"?e.toString():e;return t.every(o=>(o.lastIndex=0,o.test(n)))}function M(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 h(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 n=new Date(e);if(n.toString()==="Invalid Date")return !1;t=n;}return !!t}catch{return !1}}function P(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:x,size:M,regex:D,isNumber:b,isDate:h,toDate:P,toNumber:d};function j(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),n=e.map(a=>{if(typeof a=="function")return null;{let s=a._params;return s?.length?s:[null]}}).flat().filter(a=>!!a);function o(a,s,...i){let f=[],p=0;for(let R of a)if(typeof R=="function")f.push(R(s)),p++;else {let g=R._params?.length??0;f.push(R.validator(s,...i.slice(p,g))),g&&(p+=g);}return f}function l(a){return a.some(i=>typeof i!="boolean")?{$valid:a.every(i=>typeof i=="boolean"?!!i:i.$valid),...a.reduce((i,f)=>{if(typeof f=="boolean")return i;let{$valid:p,...R}=f;return {...i,...R}},{})}:a.every(i=>!!i)}let u;e.length?u=t?async(a,...s)=>{let i=await Promise.all(o(e,a,...s));return l(i)}:(a,...s)=>{let i=o(e,a,...s);return l(i)}:u=a=>!1;let m=core.createRule({type:"and",validator:u,message:"The value does not match all of the provided validators"});return m._params=n,m}function S(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),n=e.map(a=>typeof a=="function"?null:a._params).flat().filter(a=>!!a);function o(a,s,...i){let f=[],p=0;for(let R of a)if(typeof R=="function")f.push(R(s)),p++;else {let g=R._params?.length??0;f.push(R.validator(s,...i.slice(p,g))),g&&(p+=g);}return f}function l(a){return a.some(i=>typeof i!="boolean")?{$valid:a.some(i=>typeof i=="boolean"?!!i:i.$valid),...a.reduce((i,f)=>{if(typeof f=="boolean")return i;let{$valid:p,...R}=f;return {...i,...R}},{})}:a.some(i=>!!i)}let m=core.createRule({type:"or",validator:t?async(a,...s)=>{let i=await Promise.all(o(e,a,...s));return l(i)}:(a,...s)=>{let i=o(e,a,...s);return l(i)},message:"The value does not match any of the provided validators"});return m._params=n,m}function K(e,t){let n,o,l,u,m;typeof e=="function"?(o=e,m=e.constructor.name==="AsyncFunction"):({_type:n,validator:o,_params:u}=e,m=e._async),m?l=async(s,...i)=>r.isFilled(s)?!await o(s,...i):!0:l=(s,...i)=>r.isFilled(s)?!o(s,...i):!0;let a=core.createRule({type:"not",validator:l,message:t??"Error"});return a._params=u,a}var Ft=core.createRule({type:"required",validator:e=>r.isFilled(e),message:"This field is required"});var Ht=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 Ct=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 Q=/^[a-zA-Z]*$/,qt=core.createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,Q)},message:"The value is not alphabetical"});var Y=/^[a-zA-Z0-9]*$/,Ot=core.createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,Y)},message:"The value must be alpha-numeric"});var Qt=core.createRule({type:"between",validator:(e,t,n)=>{if(r.isFilled(e)&&r.isFilled(t)&&r.isFilled(n)){let o=r.toNumber(e),l=r.toNumber(t),u=r.toNumber(n);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: ${n}`),!1)}return !0},message:(e,{$params:[t,n]})=>`The value must be between ${t} and ${n}`});var re=/^[-]?\d*(\.\d+)?$/,tr=core.createRule({type:"decimal",validator(e){return r.isEmpty(e)?!0:r.regex(e,re)},message:"Value must be decimal"});var ne=/^(?:[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,ir=core.createRule({type:"email",validator(e){return r.isEmpty(e)?!0:r.regex(e,ne)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,ur=core.createRule({type:"integer",validator(e){return r.isEmpty(e)?!0:r.regex(e,oe)},message:"Value must be an integer"});var yr=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 Tr=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 hr=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 vr=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 Re=/^\d*(\.\d+)?$/,Fr=core.createRule({type:"numeric",validator(e){return r.isEmpty(e)?!0:r.regex(e,Re)},message:"This field must be numeric"});var Hr=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 Cr=core.createRule({type:"sameAs",validator(e,t,n="other"){return r.isEmpty(e)?!0:e===t},message(e,{$params:[t,n]}){return `Value must be equal to the ${n} value`}});var ge=/^(?:(?:(?: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,qr=core.createRule({type:"url",validator(e){return r.isEmpty(e)?!0:r.regex(e,ge)},message:"The value is not a valid URL address"});function ce(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function c(e){return e?new Intl.DateTimeFormat(ce(),{dateStyle:"short"}).format(new Date(e)):"?"}var Zr=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],error:n})=>n==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${c(t)}`});var ea=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:n})=>n==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${c(t)}`});var ia=core.createRule({type:"dateBetween",validator:(e,t,n)=>r.isDate(e)&&r.isDate(t)&&r.isDate(n)?r.toDate(e).getTime()>r.toDate(t).getTime()&&r.toDate(e).getTime()<r.toDate(n).getTime():!0,message:(e,{$params:[t,n]})=>`The date must be between ${c(t)} and ${c(n)}`});function Me(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 ua=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(Me)},message:"The value is not a valid IP address"});var pa=core.createRule({type:"macAddress",validator(e,t=":"){if(r.isEmpty(e))return !0;if(typeof e!="string")return !1;let n=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return n!==null&&(n.length===6||n.length===8)&&n.every(Pe)},message:"The value is not a valid MAC Address"}),Pe=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var ca=core.createRule({type:"checked",validator:e=>r.isFilled(e)?e===!0:!0,message:"This field must be checked"});var Da=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 wa=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 Aa=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 Na=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=qt;exports.alphaNum=Ot;exports.and=j;exports.applyIf=C;exports.between=Qt;exports.checked=ca;exports.contains=Da;exports.dateAfter=Zr;exports.dateBefore=ea;exports.dateBetween=ia;exports.decimal=tr;exports.email=ir;exports.endsWith=Aa;exports.exactLength=vr;exports.integer=ur;exports.ipAddress=ua;exports.macAddress=pa;exports.maxLength=Ht;exports.maxValue=yr;exports.minLength=Tr;exports.minValue=hr;exports.not=K;exports.numeric=Fr;exports.or=S;exports.regex=Na;exports.required=Ft;exports.requiredIf=Ct;exports.requiredUnless=Hr;exports.ruleHelpers=r;exports.sameAs=Cr;exports.startsWith=wa;exports.url=qr;exports.withAsync=N;exports.withMessage=v;exports.withParams=E;exports.withTooltip=V;
|
|
1
|
+
'use strict';var core=require('@regle/core'),vue=require('vue');function V(e,t){let i,o,s,u;typeof e=="function"&&!("_validator"in e)?(i=core.InternalRuleType.Inline,o=e):{_type:i,validator:o,_active:s,_params:u}=e;let m=core.createRule({type:i,validator:o,active:s,message:t}),a=[...u??[]];if(m._params=a,m._message_patched=!0,typeof m=="function"){let l=m(...a);return l._message_patched=!0,l}else return m}function A(e,t){let i,o,s,u,m;typeof e=="function"&&!("_validator"in e)?(i=core.InternalRuleType.Inline,o=e):{_type:i,validator:o,_active:s,_params:u,_message:m}=e;let a=core.createRule({type:i,validator:o,active:s,message:m,tooltip:t}),l=[...u??[]];if(a._params=l,a._tooltip_patched=!0,typeof a=="function"){let n=a(...l);return a._tooltip_patched=!0,n}else return a}function _(e,t){let i=async(s,...u)=>e(s,...u),o=core.createRule({type:core.InternalRuleType.Async,validator:i,message:""});return o._params=o._params?.concat(t),o(...t??[])}function E(e,t){let i=(s,...u)=>e(s,...u),o=core.createRule({type:core.InternalRuleType.Inline,validator:i,message:""});return o._params=o._params?.concat(t),o(...t)}function C(e,t){let i,o,s=[],u="";typeof t=="function"?(i=core.InternalRuleType.Inline,o=t,s=[e]):({_type:i,validator:o,_message:u}=t,s=t._params?.concat([e]));function m(n){let[f]=core.unwrapRuleParameters([e]);return f?o(n,f):!0}function a(n){let[f]=core.unwrapRuleParameters([e]);return f}let l=core.createRule({type:i,validator:m,active:a,message:u});return l._params=s,l}function d(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function x(e){return !d(typeof e=="string"?e.trim():e)}function b(e){return e==null||typeof e!="number"?!1:!isNaN(e)}function D(e,...t){if(d(e))return !0;let i=typeof e=="number"?e.toString():e;return t.every(o=>(o.lastIndex=0,o.test(i)))}function M(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 h(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 i=new Date(e);if(i.toString()==="Invalid Date")return !1;t=i;}return !!t}catch{return !1}}function P(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 y(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}var r={isEmpty:d,isFilled:x,size:M,regex:D,isNumber:b,isDate:h,toDate:P,toNumber:y};function j(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),i=e.map(a=>{if(typeof a=="function")return null;{let l=a._params;return l?.length?l:[null]}}).flat().filter(a=>!!a);function o(a,l,...n){let f=[],p=0;for(let R of a)if(typeof R=="function")f.push(R(l)),p++;else {let g=R._params?.length??0;f.push(R.validator(l,...n.slice(p,g))),g&&(p+=g);}return f}function s(a){return a?.some(n=>typeof n!="boolean")?{$valid:a.every(n=>typeof n=="boolean"?!!n:n.$valid),...a.reduce((n,f)=>{if(typeof f=="boolean")return n;let{$valid:p,...R}=f;return {...n,...R}},{})}:a.every(n=>!!n)}let u;e.length?u=t?async(a,...l)=>{let n=await Promise.all(o(e,a,...l));return s(n)}:(a,...l)=>{let n=o(e,a,...l);return s(n)}:u=a=>!1;let m=core.createRule({type:"and",validator:u,message:"The value does not match all of the provided validators"});return m._params=i,m}function S(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),i=e.map(a=>typeof a=="function"?null:a._params).flat().filter(a=>!!a);function o(a,l,...n){let f=[],p=0;for(let R of a)if(typeof R=="function")f.push(R(l)),p++;else {let g=R._params?.length??0;f.push(R.validator(l,...n.slice(p,g))),g&&(p+=g);}return f}function s(a){return a.some(n=>typeof n!="boolean")?{$valid:a.some(n=>typeof n=="boolean"?!!n:n.$valid),...a.reduce((n,f)=>{if(typeof f=="boolean")return n;let{$valid:p,...R}=f;return {...n,...R}},{})}:a.some(n=>!!n)}let m=core.createRule({type:"or",validator:t?async(a,...l)=>{let n=await Promise.all(o(e,a,...l));return s(n)}:(a,...l)=>{let n=o(e,a,...l);return s(n)},message:"The value does not match any of the provided validators"});return m._params=i,m}function K(e,t){let i,o,s,u,m;typeof e=="function"?(o=e,m=e.constructor.name==="AsyncFunction"):({_type:i,validator:o,_params:u}=e,m=e._async),m?s=async(l,...n)=>r.isFilled(l)?!await o(l,...n):!0:s=(l,...n)=>r.isFilled(l)?!o(l,...n):!0;let a=core.createRule({type:"not",validator:s,message:t??"Error"});return a._params=u,a}var Ft=core.createRule({type:"required",validator:e=>r.isFilled(e),message:"This field is required"});var Ht=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:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The maximum length allowed is ${t}`});var Ct=core.createRule({type:"required",validator(e,t){return t?r.isFilled(e):!0},message:"This field is required",active({$params:[e]}){return e}});var Q=/^[a-zA-Z]*$/,qt=core.createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,Q)},message:"The value is not alphabetical"});var Y=/^[a-zA-Z0-9]*$/,Ot=core.createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,Y)},message:"The value must be alpha-numeric"});var Qt=core.createRule({type:"between",validator:(e,t,i)=>{if(r.isFilled(e)&&r.isFilled(t)&&r.isFilled(i)){let o=r.toNumber(e),s=r.toNumber(t),u=r.toNumber(i);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: ${i}`),!1)}return !0},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var re=/^[-]?\d*(\.\d+)?$/,tr=core.createRule({type:"decimal",validator(e){return r.isEmpty(e)?!0:r.regex(e,re)},message:"Value must be decimal"});var ne=/^(?:[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,ir=core.createRule({type:"email",validator(e){return r.isEmpty(e)?!0:r.regex(e,ne)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,ur=core.createRule({type:"integer",validator(e){return r.isEmpty(e)?!0:r.regex(e,oe)},message:"Value must be an integer"});var dr=core.createRule({type:"maxValue",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&!isNaN(y(e))?y(e)<=t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:({$params:[e]})=>`The maximum value allowed is ${e}`});var Tr=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:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have at least ${t} items`:`This field should be at least ${t} characters long`});var hr=core.createRule({type:"minValue",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&!isNaN(y(e))?y(e)>=t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:({$params:[e]})=>`The minimum value allowed is ${e}`});var Vr=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:({$params:[e]})=>`This field should be exactly ${e} characters long`});var Re=/^\d*(\.\d+)?$/,Fr=core.createRule({type:"numeric",validator(e){return r.isEmpty(e)?!0:r.regex(e,Re)},message:"This field must be numeric"});var Hr=core.createRule({type:"required",validator(e,t){return t?!0:r.isFilled(e)},message:"This field is required",active({$params:[e]}){return !e}});var Cr=core.createRule({type:"sameAs",validator(e,t,i="other"){return r.isEmpty(e)?!0:e===t},message({$params:[e,t]}){return `Value must be equal to the ${t} value`}});var ge=/^(?:(?:(?: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,qr=core.createRule({type:"url",validator(e){return r.isEmpty(e)?!0:r.regex(e,ge)},message:"The value is not a valid URL address"});function ce(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function c(e){return e?new Intl.DateTimeFormat(ce(),{dateStyle:"short"}).format(new Date(e)):"?"}var Zr=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:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${c(e)}`});var ea=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:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${c(e)}`});var ia=core.createRule({type:"dateBetween",validator:(e,t,i)=>r.isDate(e)&&r.isDate(t)&&r.isDate(i)?r.toDate(e).getTime()>r.toDate(t).getTime()&&r.toDate(e).getTime()<r.toDate(i).getTime():!0,message:({$params:[e,t]})=>`The date must be between ${c(e)} and ${c(t)}`});function Me(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 ua=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(Me)},message:"The value is not a valid IP address"});var pa=core.createRule({type:"macAddress",validator(e,t=":"){if(r.isEmpty(e))return !0;if(typeof e!="string")return !1;let i=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return i!==null&&(i.length===6||i.length===8)&&i.every(Pe)},message:"The value is not a valid MAC Address"}),Pe=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var ca=core.createRule({type:"checked",validator:e=>r.isFilled(e)?e===!0:!0,message:"This field must be checked"});var Da=core.createRule({type:"contains",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.includes(t):!0},message({$params:[e]}){return `Field must contain ${e}`}});var wa=core.createRule({type:"startsWith",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.startsWith(t):!0},message({$params:[e]}){return `Field must end with ${e}`}});var va=core.createRule({type:"endsWith",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.endsWith(t):!0},message({$params:[e]}){return `Field must end with ${e}`}});var _a=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=qt;exports.alphaNum=Ot;exports.and=j;exports.applyIf=C;exports.between=Qt;exports.checked=ca;exports.contains=Da;exports.dateAfter=Zr;exports.dateBefore=ea;exports.dateBetween=ia;exports.decimal=tr;exports.email=ir;exports.endsWith=va;exports.exactLength=Vr;exports.integer=ur;exports.ipAddress=ua;exports.macAddress=pa;exports.maxLength=Ht;exports.maxValue=dr;exports.minLength=Tr;exports.minValue=hr;exports.not=K;exports.numeric=Fr;exports.or=S;exports.regex=_a;exports.required=Ft;exports.requiredIf=Ct;exports.requiredUnless=Hr;exports.ruleHelpers=r;exports.sameAs=Cr;exports.startsWith=wa;exports.url=qr;exports.withAsync=_;exports.withMessage=V;exports.withParams=E;exports.withTooltip=A;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { RegleRuleMetadataDefinition, InlineRuleDeclaration, RegleRuleDefinitionWithMetadataProcessor, RegleRuleMetadataConsumer, InferRegleRule, RegleRuleWithParamsDefinition, RegleRuleDefinition, UnwrapRegleUniversalParams, ParamDecl, Maybe, FormRuleDeclaration } from '@regle/core';
|
|
2
2
|
import { Ref, MaybeRef } from 'vue';
|
|
3
3
|
|
|
4
|
-
declare function withMessage<TValue extends any, TParams extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: InlineRuleDeclaration<TValue, TParams, TReturn>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TReturn extends Promise<infer M> ? M : TReturn>, string | string[]>): InferRegleRule<TValue, TParams, TAsync, TReturn extends Promise<infer M> ? M : TReturn>;
|
|
5
|
-
declare function withMessage<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: RegleRuleWithParamsDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TMetadata>, string | string[]>): RegleRuleWithParamsDefinition<TValue, TParams, TAsync>;
|
|
6
|
-
declare function withMessage<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean>(rule: RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TMetadata>, string | string[]>): RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
|
|
4
|
+
declare function withMessage<TValue extends any, TParams extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: InlineRuleDeclaration<TValue, TParams, TReturn>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TValue, TParams, TReturn extends Promise<infer M> ? M : TReturn>, string | string[]>): InferRegleRule<TValue, TParams, TAsync, TReturn extends Promise<infer M> ? M : TReturn>;
|
|
5
|
+
declare function withMessage<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: RegleRuleWithParamsDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TValue, TParams, TMetadata>, string | string[]>): RegleRuleWithParamsDefinition<TValue, TParams, TAsync>;
|
|
6
|
+
declare function withMessage<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean>(rule: RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TValue, TParams, TMetadata>, string | string[]>): RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
|
|
7
7
|
|
|
8
|
-
declare function withTooltip<TValue extends any, TParams extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: InlineRuleDeclaration<TValue, TParams, TReturn>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TReturn extends Promise<infer M> ? M : TReturn>, string | string[]>): InferRegleRule<TValue, TParams, TAsync, TReturn extends Promise<infer M> ? M : TReturn>;
|
|
9
|
-
declare function withTooltip<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: RegleRuleWithParamsDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TMetadata>, string | string[]>): RegleRuleWithParamsDefinition<TValue, TParams, TAsync>;
|
|
10
|
-
declare function withTooltip<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean>(rule: RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TMetadata>, string | string[]>): RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
|
|
8
|
+
declare function withTooltip<TValue extends any, TParams extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: InlineRuleDeclaration<TValue, TParams, TReturn>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TValue, TParams, TReturn extends Promise<infer M> ? M : TReturn>, string | string[]>): InferRegleRule<TValue, TParams, TAsync, TReturn extends Promise<infer M> ? M : TReturn>;
|
|
9
|
+
declare function withTooltip<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: RegleRuleWithParamsDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TValue, TParams, TMetadata>, string | string[]>): RegleRuleWithParamsDefinition<TValue, TParams, TAsync>;
|
|
10
|
+
declare function withTooltip<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean>(rule: RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TValue, TParams, TMetadata>, string | string[]>): RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
|
|
11
11
|
|
|
12
12
|
declare function withAsync<TValue, TParams extends (Ref<unknown> | (() => unknown))[] = [], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TMetadata extends RegleRuleMetadataDefinition = TReturn extends Promise<infer M> ? M : TReturn>(rule: InlineRuleDeclaration<TValue, TParams, TReturn>, depsArray?: [...TParams]): RegleRuleDefinition<TValue, UnwrapRegleUniversalParams<TParams>, true, TMetadata>;
|
|
13
13
|
|
|
@@ -142,7 +142,7 @@ declare function and<TRules extends FormRuleDeclaration<any, any>[]>(...rules: [
|
|
|
142
142
|
|
|
143
143
|
declare function or<TRules extends FormRuleDeclaration<any, any>[]>(...rules: [...TRules]): RegleRuleDefinition<ExtractValueFromRules<TRules>[number], UnwrapTuples<ExtractParamsFromRules<TRules>>, GuessAsyncFromRules<TRules>, GuessMetadataFromRules<TRules>>;
|
|
144
144
|
|
|
145
|
-
declare function not<TValue, TParams extends any[] = [], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = RegleRuleMetadataDefinition, TMetadata extends RegleRuleMetadataDefinition = TReturn extends Promise<infer M> ? M : TReturn, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: RegleRuleDefinition<TValue, TParams, TAsync, TMetadata> | InlineRuleDeclaration<TValue, TParams, TReturn>, message?: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TMetadata>, string | string[]>): RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
|
|
145
|
+
declare function not<TValue, TParams extends any[] = [], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = RegleRuleMetadataDefinition, TMetadata extends RegleRuleMetadataDefinition = TReturn extends Promise<infer M> ? M : TReturn, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: RegleRuleDefinition<TValue, TParams, TAsync, TMetadata> | InlineRuleDeclaration<TValue, TParams, TReturn>, message?: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TValue, TParams, TMetadata>, string | string[]>): RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
|
|
146
146
|
|
|
147
147
|
declare const required: RegleRuleDefinition<unknown, [], false, boolean, unknown>;
|
|
148
148
|
|
|
@@ -150,18 +150,13 @@ declare const maxLength: RegleRuleWithParamsDefinition<string | any[] | Record<P
|
|
|
150
150
|
count: number
|
|
151
151
|
], false, boolean>;
|
|
152
152
|
|
|
153
|
-
declare const requiredIf: RegleRuleWithParamsDefinition<unknown, [
|
|
154
|
-
condition: boolean
|
|
155
|
-
], false, boolean>;
|
|
153
|
+
declare const requiredIf: RegleRuleWithParamsDefinition<unknown, [condition: boolean], false, boolean>;
|
|
156
154
|
|
|
157
155
|
declare const alpha: RegleRuleDefinition<string, [], false, boolean, string>;
|
|
158
156
|
|
|
159
157
|
declare const alphaNum: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
|
|
160
158
|
|
|
161
|
-
declare const between: RegleRuleWithParamsDefinition<number, [
|
|
162
|
-
min: number,
|
|
163
|
-
max: number
|
|
164
|
-
], false, boolean>;
|
|
159
|
+
declare const between: RegleRuleWithParamsDefinition<number, [min: number, max: number], false, boolean>;
|
|
165
160
|
|
|
166
161
|
declare const decimal: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
|
|
167
162
|
|
|
@@ -183,14 +178,9 @@ declare const exactLength: RegleRuleWithParamsDefinition<string | any[] | Record
|
|
|
183
178
|
|
|
184
179
|
declare const numeric: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
|
|
185
180
|
|
|
186
|
-
declare const requiredUnless: RegleRuleWithParamsDefinition<unknown, [
|
|
187
|
-
condition: boolean
|
|
188
|
-
], false, boolean>;
|
|
181
|
+
declare const requiredUnless: RegleRuleWithParamsDefinition<unknown, [condition: boolean], false, boolean>;
|
|
189
182
|
|
|
190
|
-
declare const sameAs: RegleRuleWithParamsDefinition<unknown, [
|
|
191
|
-
target: unknown,
|
|
192
|
-
otherName?: string
|
|
193
|
-
], false, boolean>;
|
|
183
|
+
declare const sameAs: RegleRuleWithParamsDefinition<unknown, [target: unknown, otherName?: string], false, boolean>;
|
|
194
184
|
|
|
195
185
|
declare const url: RegleRuleDefinition<string, [], false, boolean, string>;
|
|
196
186
|
|
|
@@ -227,17 +217,11 @@ declare const macAddress: RegleRuleWithParamsDefinition<string, [
|
|
|
227
217
|
|
|
228
218
|
declare const checked: RegleRuleDefinition<boolean, [], false, boolean, boolean>;
|
|
229
219
|
|
|
230
|
-
declare const contains: RegleRuleWithParamsDefinition<string, [
|
|
231
|
-
part: Maybe<string>
|
|
232
|
-
], false, boolean>;
|
|
220
|
+
declare const contains: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
|
|
233
221
|
|
|
234
|
-
declare const startsWith: RegleRuleWithParamsDefinition<string, [
|
|
235
|
-
part: Maybe<string>
|
|
236
|
-
], false, boolean>;
|
|
222
|
+
declare const startsWith: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
|
|
237
223
|
|
|
238
|
-
declare const endsWith: RegleRuleWithParamsDefinition<string, [
|
|
239
|
-
part: Maybe<string>
|
|
240
|
-
], false, boolean>;
|
|
224
|
+
declare const endsWith: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
|
|
241
225
|
|
|
242
226
|
declare const regex: RegleRuleWithParamsDefinition<string | number, [
|
|
243
227
|
...regexp: RegExp[]
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { RegleRuleMetadataDefinition, InlineRuleDeclaration, RegleRuleDefinitionWithMetadataProcessor, RegleRuleMetadataConsumer, InferRegleRule, RegleRuleWithParamsDefinition, RegleRuleDefinition, UnwrapRegleUniversalParams, ParamDecl, Maybe, FormRuleDeclaration } from '@regle/core';
|
|
2
2
|
import { Ref, MaybeRef } from 'vue';
|
|
3
3
|
|
|
4
|
-
declare function withMessage<TValue extends any, TParams extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: InlineRuleDeclaration<TValue, TParams, TReturn>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TReturn extends Promise<infer M> ? M : TReturn>, string | string[]>): InferRegleRule<TValue, TParams, TAsync, TReturn extends Promise<infer M> ? M : TReturn>;
|
|
5
|
-
declare function withMessage<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: RegleRuleWithParamsDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TMetadata>, string | string[]>): RegleRuleWithParamsDefinition<TValue, TParams, TAsync>;
|
|
6
|
-
declare function withMessage<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean>(rule: RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TMetadata>, string | string[]>): RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
|
|
4
|
+
declare function withMessage<TValue extends any, TParams extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: InlineRuleDeclaration<TValue, TParams, TReturn>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TValue, TParams, TReturn extends Promise<infer M> ? M : TReturn>, string | string[]>): InferRegleRule<TValue, TParams, TAsync, TReturn extends Promise<infer M> ? M : TReturn>;
|
|
5
|
+
declare function withMessage<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: RegleRuleWithParamsDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TValue, TParams, TMetadata>, string | string[]>): RegleRuleWithParamsDefinition<TValue, TParams, TAsync>;
|
|
6
|
+
declare function withMessage<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean>(rule: RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TValue, TParams, TMetadata>, string | string[]>): RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
|
|
7
7
|
|
|
8
|
-
declare function withTooltip<TValue extends any, TParams extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: InlineRuleDeclaration<TValue, TParams, TReturn>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TReturn extends Promise<infer M> ? M : TReturn>, string | string[]>): InferRegleRule<TValue, TParams, TAsync, TReturn extends Promise<infer M> ? M : TReturn>;
|
|
9
|
-
declare function withTooltip<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: RegleRuleWithParamsDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TMetadata>, string | string[]>): RegleRuleWithParamsDefinition<TValue, TParams, TAsync>;
|
|
10
|
-
declare function withTooltip<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean>(rule: RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TMetadata>, string | string[]>): RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
|
|
8
|
+
declare function withTooltip<TValue extends any, TParams extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: InlineRuleDeclaration<TValue, TParams, TReturn>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TValue, TParams, TReturn extends Promise<infer M> ? M : TReturn>, string | string[]>): InferRegleRule<TValue, TParams, TAsync, TReturn extends Promise<infer M> ? M : TReturn>;
|
|
9
|
+
declare function withTooltip<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: RegleRuleWithParamsDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TValue, TParams, TMetadata>, string | string[]>): RegleRuleWithParamsDefinition<TValue, TParams, TAsync>;
|
|
10
|
+
declare function withTooltip<TValue extends any, TParams extends any[], TMetadata extends RegleRuleMetadataDefinition, TReturn extends TMetadata | Promise<TMetadata>, TAsync extends boolean>(rule: RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>, newMessage: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TValue, TParams, TMetadata>, string | string[]>): RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
|
|
11
11
|
|
|
12
12
|
declare function withAsync<TValue, TParams extends (Ref<unknown> | (() => unknown))[] = [], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TMetadata extends RegleRuleMetadataDefinition = TReturn extends Promise<infer M> ? M : TReturn>(rule: InlineRuleDeclaration<TValue, TParams, TReturn>, depsArray?: [...TParams]): RegleRuleDefinition<TValue, UnwrapRegleUniversalParams<TParams>, true, TMetadata>;
|
|
13
13
|
|
|
@@ -142,7 +142,7 @@ declare function and<TRules extends FormRuleDeclaration<any, any>[]>(...rules: [
|
|
|
142
142
|
|
|
143
143
|
declare function or<TRules extends FormRuleDeclaration<any, any>[]>(...rules: [...TRules]): RegleRuleDefinition<ExtractValueFromRules<TRules>[number], UnwrapTuples<ExtractParamsFromRules<TRules>>, GuessAsyncFromRules<TRules>, GuessMetadataFromRules<TRules>>;
|
|
144
144
|
|
|
145
|
-
declare function not<TValue, TParams extends any[] = [], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = RegleRuleMetadataDefinition, TMetadata extends RegleRuleMetadataDefinition = TReturn extends Promise<infer M> ? M : TReturn, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: RegleRuleDefinition<TValue, TParams, TAsync, TMetadata> | InlineRuleDeclaration<TValue, TParams, TReturn>, message?: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TMetadata>, string | string[]>): RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
|
|
145
|
+
declare function not<TValue, TParams extends any[] = [], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = RegleRuleMetadataDefinition, TMetadata extends RegleRuleMetadataDefinition = TReturn extends Promise<infer M> ? M : TReturn, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(rule: RegleRuleDefinition<TValue, TParams, TAsync, TMetadata> | InlineRuleDeclaration<TValue, TParams, TReturn>, message?: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TValue, TParams, TMetadata>, string | string[]>): RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
|
|
146
146
|
|
|
147
147
|
declare const required: RegleRuleDefinition<unknown, [], false, boolean, unknown>;
|
|
148
148
|
|
|
@@ -150,18 +150,13 @@ declare const maxLength: RegleRuleWithParamsDefinition<string | any[] | Record<P
|
|
|
150
150
|
count: number
|
|
151
151
|
], false, boolean>;
|
|
152
152
|
|
|
153
|
-
declare const requiredIf: RegleRuleWithParamsDefinition<unknown, [
|
|
154
|
-
condition: boolean
|
|
155
|
-
], false, boolean>;
|
|
153
|
+
declare const requiredIf: RegleRuleWithParamsDefinition<unknown, [condition: boolean], false, boolean>;
|
|
156
154
|
|
|
157
155
|
declare const alpha: RegleRuleDefinition<string, [], false, boolean, string>;
|
|
158
156
|
|
|
159
157
|
declare const alphaNum: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
|
|
160
158
|
|
|
161
|
-
declare const between: RegleRuleWithParamsDefinition<number, [
|
|
162
|
-
min: number,
|
|
163
|
-
max: number
|
|
164
|
-
], false, boolean>;
|
|
159
|
+
declare const between: RegleRuleWithParamsDefinition<number, [min: number, max: number], false, boolean>;
|
|
165
160
|
|
|
166
161
|
declare const decimal: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
|
|
167
162
|
|
|
@@ -183,14 +178,9 @@ declare const exactLength: RegleRuleWithParamsDefinition<string | any[] | Record
|
|
|
183
178
|
|
|
184
179
|
declare const numeric: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
|
|
185
180
|
|
|
186
|
-
declare const requiredUnless: RegleRuleWithParamsDefinition<unknown, [
|
|
187
|
-
condition: boolean
|
|
188
|
-
], false, boolean>;
|
|
181
|
+
declare const requiredUnless: RegleRuleWithParamsDefinition<unknown, [condition: boolean], false, boolean>;
|
|
189
182
|
|
|
190
|
-
declare const sameAs: RegleRuleWithParamsDefinition<unknown, [
|
|
191
|
-
target: unknown,
|
|
192
|
-
otherName?: string
|
|
193
|
-
], false, boolean>;
|
|
183
|
+
declare const sameAs: RegleRuleWithParamsDefinition<unknown, [target: unknown, otherName?: string], false, boolean>;
|
|
194
184
|
|
|
195
185
|
declare const url: RegleRuleDefinition<string, [], false, boolean, string>;
|
|
196
186
|
|
|
@@ -227,17 +217,11 @@ declare const macAddress: RegleRuleWithParamsDefinition<string, [
|
|
|
227
217
|
|
|
228
218
|
declare const checked: RegleRuleDefinition<boolean, [], false, boolean, boolean>;
|
|
229
219
|
|
|
230
|
-
declare const contains: RegleRuleWithParamsDefinition<string, [
|
|
231
|
-
part: Maybe<string>
|
|
232
|
-
], false, boolean>;
|
|
220
|
+
declare const contains: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
|
|
233
221
|
|
|
234
|
-
declare const startsWith: RegleRuleWithParamsDefinition<string, [
|
|
235
|
-
part: Maybe<string>
|
|
236
|
-
], false, boolean>;
|
|
222
|
+
declare const startsWith: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
|
|
237
223
|
|
|
238
|
-
declare const endsWith: RegleRuleWithParamsDefinition<string, [
|
|
239
|
-
part: Maybe<string>
|
|
240
|
-
], false, boolean>;
|
|
224
|
+
declare const endsWith: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
|
|
241
225
|
|
|
242
226
|
declare const regex: RegleRuleWithParamsDefinition<string | number, [
|
|
243
227
|
...regexp: RegExp[]
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {createRule,InternalRuleType,unwrapRuleParameters}from'@regle/core';import {unref}from'vue';function v(e,t){let n,o,l,u;typeof e=="function"&&!("_validator"in e)?(n=InternalRuleType.Inline,o=e):{_type:n,validator:o,_active:l,_params:u}=e;let m=createRule({type:n,validator:o,active:l,message:t}),a=[...u??[]];if(m._params=a,m._patched=!0,typeof m=="function"){let s=m(...a);return s._patched=!0,s}else return m}function V(e,t){let n,o,l,u,m;typeof e=="function"&&!("_validator"in e)?(n=InternalRuleType.Inline,o=e):{_type:n,validator:o,_active:l,_params:u,_message:m}=e;let a=createRule({type:n,validator:o,active:l,message:m,tooltip:t}),s=[...u??[]];return a._params=s,typeof a=="function"?a(...s):a}function N(e,t){let n=async(l,...u)=>e(l,...u),o=createRule({type:InternalRuleType.Async,validator:n,message:""});return o._params=o._params?.concat(t),o(...t??[])}function E(e,t){let n=(l,...u)=>e(l,...u),o=createRule({type:InternalRuleType.Inline,validator:n,message:""});return o._params=o._params?.concat(t),o(...t)}function C(e,t){let n,o,l=[],u="";typeof t=="function"?(n=InternalRuleType.Inline,o=t,l=[e]):({_type:n,validator:o,_message:u}=t,l=t._params?.concat([e]));function m(i){let[f]=unwrapRuleParameters([e]);return f?o(i,f):!0}function a(i,f){let[p]=unwrapRuleParameters([e]);return p}let s=createRule({type:n,validator:m,active:a,message:u});return s._params=l,s}function y(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function x(e){return !y(typeof e=="string"?e.trim():e)}function b(e){return e==null||typeof e!="number"?!1:!isNaN(e)}function D(e,...t){if(y(e))return !0;let n=typeof e=="number"?e.toString():e;return t.every(o=>(o.lastIndex=0,o.test(n)))}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 h(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 n=new Date(e);if(n.toString()==="Invalid Date")return !1;t=n;}return !!t}catch{return !1}}function P(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:x,size:M,regex:D,isNumber:b,isDate:h,toDate:P,toNumber:d};function j(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),n=e.map(a=>{if(typeof a=="function")return null;{let s=a._params;return s?.length?s:[null]}}).flat().filter(a=>!!a);function o(a,s,...i){let f=[],p=0;for(let R of a)if(typeof R=="function")f.push(R(s)),p++;else {let g=R._params?.length??0;f.push(R.validator(s,...i.slice(p,g))),g&&(p+=g);}return f}function l(a){return a.some(i=>typeof i!="boolean")?{$valid:a.every(i=>typeof i=="boolean"?!!i:i.$valid),...a.reduce((i,f)=>{if(typeof f=="boolean")return i;let{$valid:p,...R}=f;return {...i,...R}},{})}:a.every(i=>!!i)}let u;e.length?u=t?async(a,...s)=>{let i=await Promise.all(o(e,a,...s));return l(i)}:(a,...s)=>{let i=o(e,a,...s);return l(i)}:u=a=>!1;let m=createRule({type:"and",validator:u,message:"The value does not match all of the provided validators"});return m._params=n,m}function S(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),n=e.map(a=>typeof a=="function"?null:a._params).flat().filter(a=>!!a);function o(a,s,...i){let f=[],p=0;for(let R of a)if(typeof R=="function")f.push(R(s)),p++;else {let g=R._params?.length??0;f.push(R.validator(s,...i.slice(p,g))),g&&(p+=g);}return f}function l(a){return a.some(i=>typeof i!="boolean")?{$valid:a.some(i=>typeof i=="boolean"?!!i:i.$valid),...a.reduce((i,f)=>{if(typeof f=="boolean")return i;let{$valid:p,...R}=f;return {...i,...R}},{})}:a.some(i=>!!i)}let m=createRule({type:"or",validator:t?async(a,...s)=>{let i=await Promise.all(o(e,a,...s));return l(i)}:(a,...s)=>{let i=o(e,a,...s);return l(i)},message:"The value does not match any of the provided validators"});return m._params=n,m}function K(e,t){let n,o,l,u,m;typeof e=="function"?(o=e,m=e.constructor.name==="AsyncFunction"):({_type:n,validator:o,_params:u}=e,m=e._async),m?l=async(s,...i)=>r.isFilled(s)?!await o(s,...i):!0:l=(s,...i)=>r.isFilled(s)?!o(s,...i):!0;let a=createRule({type:"not",validator:l,message:t??"Error"});return a._params=u,a}var Ft=createRule({type:"required",validator:e=>r.isFilled(e),message:"This field is required"});var Ht=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 Ct=createRule({type:"required",validator(e,t){return t?r.isFilled(e):!0},message:"This field is required",active(e,{$params:[t]}){return t}});var Q=/^[a-zA-Z]*$/,qt=createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,Q)},message:"The value is not alphabetical"});var Y=/^[a-zA-Z0-9]*$/,Ot=createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,Y)},message:"The value must be alpha-numeric"});var Qt=createRule({type:"between",validator:(e,t,n)=>{if(r.isFilled(e)&&r.isFilled(t)&&r.isFilled(n)){let o=r.toNumber(e),l=r.toNumber(t),u=r.toNumber(n);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: ${n}`),!1)}return !0},message:(e,{$params:[t,n]})=>`The value must be between ${t} and ${n}`});var re=/^[-]?\d*(\.\d+)?$/,tr=createRule({type:"decimal",validator(e){return r.isEmpty(e)?!0:r.regex(e,re)},message:"Value must be decimal"});var ne=/^(?:[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,ir=createRule({type:"email",validator(e){return r.isEmpty(e)?!0:r.regex(e,ne)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,ur=createRule({type:"integer",validator(e){return r.isEmpty(e)?!0:r.regex(e,oe)},message:"Value must be an integer"});var yr=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 Tr=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 hr=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 vr=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 Re=/^\d*(\.\d+)?$/,Fr=createRule({type:"numeric",validator(e){return r.isEmpty(e)?!0:r.regex(e,Re)},message:"This field must be numeric"});var Hr=createRule({type:"required",validator(e,t){return t?!0:r.isFilled(e)},message:"This field is required",active(e,{$params:[t]}){return !t}});var Cr=createRule({type:"sameAs",validator(e,t,n="other"){return r.isEmpty(e)?!0:e===t},message(e,{$params:[t,n]}){return `Value must be equal to the ${n} value`}});var ge=/^(?:(?:(?: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,qr=createRule({type:"url",validator(e){return r.isEmpty(e)?!0:r.regex(e,ge)},message:"The value is not a valid URL address"});function ce(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function c(e){return e?new Intl.DateTimeFormat(ce(),{dateStyle:"short"}).format(new Date(e)):"?"}var Zr=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],error:n})=>n==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${c(t)}`});var ea=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:n})=>n==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${c(t)}`});var ia=createRule({type:"dateBetween",validator:(e,t,n)=>r.isDate(e)&&r.isDate(t)&&r.isDate(n)?r.toDate(e).getTime()>r.toDate(t).getTime()&&r.toDate(e).getTime()<r.toDate(n).getTime():!0,message:(e,{$params:[t,n]})=>`The date must be between ${c(t)} and ${c(n)}`});function Me(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 ua=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(Me)},message:"The value is not a valid IP address"});var pa=createRule({type:"macAddress",validator(e,t=":"){if(r.isEmpty(e))return !0;if(typeof e!="string")return !1;let n=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return n!==null&&(n.length===6||n.length===8)&&n.every(Pe)},message:"The value is not a valid MAC Address"}),Pe=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var ca=createRule({type:"checked",validator:e=>r.isFilled(e)?e===!0:!0,message:"This field must be checked"});var Da=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 wa=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 Aa=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 Na=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{qt as alpha,Ot as alphaNum,j as and,C as applyIf,Qt as between,ca as checked,Da as contains,Zr as dateAfter,ea as dateBefore,ia as dateBetween,tr as decimal,ir as email,Aa as endsWith,vr as exactLength,ur as integer,ua as ipAddress,pa as macAddress,Ht as maxLength,yr as maxValue,Tr as minLength,hr as minValue,K as not,Fr as numeric,S as or,Na as regex,Ft as required,Ct as requiredIf,Hr as requiredUnless,r as ruleHelpers,Cr as sameAs,wa as startsWith,qr as url,N as withAsync,v as withMessage,E as withParams,V as withTooltip};
|
|
1
|
+
import {createRule,InternalRuleType,unwrapRuleParameters}from'@regle/core';import {unref}from'vue';function V(e,t){let i,o,s,u;typeof e=="function"&&!("_validator"in e)?(i=InternalRuleType.Inline,o=e):{_type:i,validator:o,_active:s,_params:u}=e;let m=createRule({type:i,validator:o,active:s,message:t}),a=[...u??[]];if(m._params=a,m._message_patched=!0,typeof m=="function"){let l=m(...a);return l._message_patched=!0,l}else return m}function A(e,t){let i,o,s,u,m;typeof e=="function"&&!("_validator"in e)?(i=InternalRuleType.Inline,o=e):{_type:i,validator:o,_active:s,_params:u,_message:m}=e;let a=createRule({type:i,validator:o,active:s,message:m,tooltip:t}),l=[...u??[]];if(a._params=l,a._tooltip_patched=!0,typeof a=="function"){let n=a(...l);return a._tooltip_patched=!0,n}else return a}function _(e,t){let i=async(s,...u)=>e(s,...u),o=createRule({type:InternalRuleType.Async,validator:i,message:""});return o._params=o._params?.concat(t),o(...t??[])}function E(e,t){let i=(s,...u)=>e(s,...u),o=createRule({type:InternalRuleType.Inline,validator:i,message:""});return o._params=o._params?.concat(t),o(...t)}function C(e,t){let i,o,s=[],u="";typeof t=="function"?(i=InternalRuleType.Inline,o=t,s=[e]):({_type:i,validator:o,_message:u}=t,s=t._params?.concat([e]));function m(n){let[f]=unwrapRuleParameters([e]);return f?o(n,f):!0}function a(n){let[f]=unwrapRuleParameters([e]);return f}let l=createRule({type:i,validator:m,active:a,message:u});return l._params=s,l}function d(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function x(e){return !d(typeof e=="string"?e.trim():e)}function b(e){return e==null||typeof e!="number"?!1:!isNaN(e)}function D(e,...t){if(d(e))return !0;let i=typeof e=="number"?e.toString():e;return t.every(o=>(o.lastIndex=0,o.test(i)))}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 h(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 i=new Date(e);if(i.toString()==="Invalid Date")return !1;t=i;}return !!t}catch{return !1}}function P(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 y(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}var r={isEmpty:d,isFilled:x,size:M,regex:D,isNumber:b,isDate:h,toDate:P,toNumber:y};function j(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),i=e.map(a=>{if(typeof a=="function")return null;{let l=a._params;return l?.length?l:[null]}}).flat().filter(a=>!!a);function o(a,l,...n){let f=[],p=0;for(let R of a)if(typeof R=="function")f.push(R(l)),p++;else {let g=R._params?.length??0;f.push(R.validator(l,...n.slice(p,g))),g&&(p+=g);}return f}function s(a){return a?.some(n=>typeof n!="boolean")?{$valid:a.every(n=>typeof n=="boolean"?!!n:n.$valid),...a.reduce((n,f)=>{if(typeof f=="boolean")return n;let{$valid:p,...R}=f;return {...n,...R}},{})}:a.every(n=>!!n)}let u;e.length?u=t?async(a,...l)=>{let n=await Promise.all(o(e,a,...l));return s(n)}:(a,...l)=>{let n=o(e,a,...l);return s(n)}:u=a=>!1;let m=createRule({type:"and",validator:u,message:"The value does not match all of the provided validators"});return m._params=i,m}function S(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),i=e.map(a=>typeof a=="function"?null:a._params).flat().filter(a=>!!a);function o(a,l,...n){let f=[],p=0;for(let R of a)if(typeof R=="function")f.push(R(l)),p++;else {let g=R._params?.length??0;f.push(R.validator(l,...n.slice(p,g))),g&&(p+=g);}return f}function s(a){return a.some(n=>typeof n!="boolean")?{$valid:a.some(n=>typeof n=="boolean"?!!n:n.$valid),...a.reduce((n,f)=>{if(typeof f=="boolean")return n;let{$valid:p,...R}=f;return {...n,...R}},{})}:a.some(n=>!!n)}let m=createRule({type:"or",validator:t?async(a,...l)=>{let n=await Promise.all(o(e,a,...l));return s(n)}:(a,...l)=>{let n=o(e,a,...l);return s(n)},message:"The value does not match any of the provided validators"});return m._params=i,m}function K(e,t){let i,o,s,u,m;typeof e=="function"?(o=e,m=e.constructor.name==="AsyncFunction"):({_type:i,validator:o,_params:u}=e,m=e._async),m?s=async(l,...n)=>r.isFilled(l)?!await o(l,...n):!0:s=(l,...n)=>r.isFilled(l)?!o(l,...n):!0;let a=createRule({type:"not",validator:s,message:t??"Error"});return a._params=u,a}var Ft=createRule({type:"required",validator:e=>r.isFilled(e),message:"This field is required"});var Ht=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:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The maximum length allowed is ${t}`});var Ct=createRule({type:"required",validator(e,t){return t?r.isFilled(e):!0},message:"This field is required",active({$params:[e]}){return e}});var Q=/^[a-zA-Z]*$/,qt=createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,Q)},message:"The value is not alphabetical"});var Y=/^[a-zA-Z0-9]*$/,Ot=createRule({type:"alpha",validator(e){return r.isEmpty(e)?!0:r.regex(e,Y)},message:"The value must be alpha-numeric"});var Qt=createRule({type:"between",validator:(e,t,i)=>{if(r.isFilled(e)&&r.isFilled(t)&&r.isFilled(i)){let o=r.toNumber(e),s=r.toNumber(t),u=r.toNumber(i);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: ${i}`),!1)}return !0},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var re=/^[-]?\d*(\.\d+)?$/,tr=createRule({type:"decimal",validator(e){return r.isEmpty(e)?!0:r.regex(e,re)},message:"Value must be decimal"});var ne=/^(?:[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,ir=createRule({type:"email",validator(e){return r.isEmpty(e)?!0:r.regex(e,ne)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,ur=createRule({type:"integer",validator(e){return r.isEmpty(e)?!0:r.regex(e,oe)},message:"Value must be an integer"});var dr=createRule({type:"maxValue",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&!isNaN(y(e))?y(e)<=t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:({$params:[e]})=>`The maximum value allowed is ${e}`});var Tr=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:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have at least ${t} items`:`This field should be at least ${t} characters long`});var hr=createRule({type:"minValue",validator:(e,t)=>r.isFilled(e)&&r.isFilled(t)?r.isNumber(t)&&!isNaN(y(e))?y(e)>=t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:({$params:[e]})=>`The minimum value allowed is ${e}`});var Vr=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:({$params:[e]})=>`This field should be exactly ${e} characters long`});var Re=/^\d*(\.\d+)?$/,Fr=createRule({type:"numeric",validator(e){return r.isEmpty(e)?!0:r.regex(e,Re)},message:"This field must be numeric"});var Hr=createRule({type:"required",validator(e,t){return t?!0:r.isFilled(e)},message:"This field is required",active({$params:[e]}){return !e}});var Cr=createRule({type:"sameAs",validator(e,t,i="other"){return r.isEmpty(e)?!0:e===t},message({$params:[e,t]}){return `Value must be equal to the ${t} value`}});var ge=/^(?:(?:(?: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,qr=createRule({type:"url",validator(e){return r.isEmpty(e)?!0:r.regex(e,ge)},message:"The value is not a valid URL address"});function ce(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function c(e){return e?new Intl.DateTimeFormat(ce(),{dateStyle:"short"}).format(new Date(e)):"?"}var Zr=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:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${c(e)}`});var ea=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:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${c(e)}`});var ia=createRule({type:"dateBetween",validator:(e,t,i)=>r.isDate(e)&&r.isDate(t)&&r.isDate(i)?r.toDate(e).getTime()>r.toDate(t).getTime()&&r.toDate(e).getTime()<r.toDate(i).getTime():!0,message:({$params:[e,t]})=>`The date must be between ${c(e)} and ${c(t)}`});function Me(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 ua=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(Me)},message:"The value is not a valid IP address"});var pa=createRule({type:"macAddress",validator(e,t=":"){if(r.isEmpty(e))return !0;if(typeof e!="string")return !1;let i=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return i!==null&&(i.length===6||i.length===8)&&i.every(Pe)},message:"The value is not a valid MAC Address"}),Pe=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var ca=createRule({type:"checked",validator:e=>r.isFilled(e)?e===!0:!0,message:"This field must be checked"});var Da=createRule({type:"contains",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.includes(t):!0},message({$params:[e]}){return `Field must contain ${e}`}});var wa=createRule({type:"startsWith",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.startsWith(t):!0},message({$params:[e]}){return `Field must end with ${e}`}});var va=createRule({type:"endsWith",validator(e,t){return r.isFilled(e)&&r.isFilled(t)?e.endsWith(t):!0},message({$params:[e]}){return `Field must end with ${e}`}});var _a=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{qt as alpha,Ot as alphaNum,j as and,C as applyIf,Qt as between,ca as checked,Da as contains,Zr as dateAfter,ea as dateBefore,ia as dateBetween,tr as decimal,ir as email,va as endsWith,Vr as exactLength,ur as integer,ua as ipAddress,pa as macAddress,Ht as maxLength,dr as maxValue,Tr as minLength,hr as minValue,K as not,Fr as numeric,S as or,_a as regex,Ft as required,Ct as requiredIf,Hr as requiredUnless,r as ruleHelpers,Cr as sameAs,wa as startsWith,qr as url,_ as withAsync,V as withMessage,E as withParams,A as withTooltip};
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@regle/rules",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Collection of rules and helpers for Regle",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@regle/core": "0.
|
|
6
|
+
"@regle/core": "0.4.0"
|
|
7
7
|
},
|
|
8
8
|
"devDependencies": {
|
|
9
9
|
"@typescript-eslint/eslint-plugin": "8.18.0",
|