@regle/rules 1.0.7 → 1.1.0-beta.1

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.
@@ -959,6 +959,19 @@ function nativeEnum(enumLike) {
959
959
  );
960
960
  return rule;
961
961
  }
962
+ function literal(literal2) {
963
+ const params = vue.computed(() => vue.toValue(literal2));
964
+ const rule = withMessage(
965
+ withParams(
966
+ (value, literal3) => {
967
+ return literal3 === value;
968
+ },
969
+ [params]
970
+ ),
971
+ ({ $params: [literal3] }) => `Value should be ${literal3}.`
972
+ );
973
+ return rule;
974
+ }
962
975
 
963
976
  exports.alpha = alpha;
964
977
  exports.alphaNum = alphaNum;
@@ -982,6 +995,7 @@ exports.isDate = isDate;
982
995
  exports.isEmpty = isEmpty;
983
996
  exports.isFilled = isFilled;
984
997
  exports.isNumber = isNumber;
998
+ exports.literal = literal;
985
999
  exports.macAddress = macAddress;
986
1000
  exports.matchRegex = matchRegex;
987
1001
  exports.maxLength = maxLength;
@@ -1,4 +1,4 @@
1
- import { RegleRuleMetadataDefinition, RegleRuleWithParamsDefinition, RegleRuleDefinitionWithMetadataProcessor, RegleRuleMetadataConsumer, RegleRuleDefinition, InlineRuleDeclaration, UnwrapRegleUniversalParams, Maybe, FormRuleDeclaration } from '@regle/core';
1
+ import { RegleRuleMetadataDefinition, RegleRuleWithParamsDefinition, RegleRuleDefinitionWithMetadataProcessor, RegleRuleMetadataConsumer, RegleRuleDefinition, InlineRuleDeclaration, UnwrapRegleUniversalParams, Maybe, FormRuleDeclaration, CommonComparationOptions } from '@regle/core';
2
2
  import { Ref, MaybeRefOrGetter, MaybeRef } from 'vue';
3
3
 
4
4
  /**
@@ -239,14 +239,6 @@ declare function not<TValue, TParams extends any[] = [], TReturn extends RegleRu
239
239
  */
240
240
  declare const required: RegleRuleDefinition<unknown, [], false, boolean, unknown>;
241
241
 
242
- interface CommonComparationOptions {
243
- /**
244
- * Change the behaviour of the rule to check only if the value is equal in addition to be strictly superior or inferior
245
- * @default true
246
- */
247
- allowEqual?: boolean;
248
- }
249
-
250
242
  /**
251
243
  * Requires the input value to have a maximum specified length, inclusive. Works with arrays, objects and strings.
252
244
  *
@@ -462,4 +454,9 @@ type EnumLike = {
462
454
  */
463
455
  declare function nativeEnum<T extends EnumLike>(enumLike: T): RegleRuleDefinition<T[keyof T], [enumLike: T], false, boolean, string | number>;
464
456
 
465
- export { type EnumLike, alpha, alphaNum, and, applyIf, between, checked, contains, dateAfter, dateBefore, dateBetween, decimal, email, endsWith, exactLength, exactValue, getSize, integer, ipAddress, isDate, isEmpty, isFilled, isNumber, macAddress, matchRegex, maxLength, maxValue, minLength, minValue, nativeEnum, not, numeric, oneOf, or, regex, required, requiredIf, requiredUnless, sameAs, startsWith, toDate, toNumber, url, withAsync, withMessage, withParams, withTooltip };
457
+ /**
458
+ * Allow only one possible literal value
459
+ */
460
+ declare function literal<const TValue extends string | number>(literal: MaybeRefOrGetter<TValue>): RegleRuleDefinition<TValue, [literal: TValue], false, boolean, string | number>;
461
+
462
+ export { type EnumLike, alpha, alphaNum, and, applyIf, between, checked, contains, dateAfter, dateBefore, dateBetween, decimal, email, endsWith, exactLength, exactValue, getSize, integer, ipAddress, isDate, isEmpty, isFilled, isNumber, literal, macAddress, matchRegex, maxLength, maxValue, minLength, minValue, nativeEnum, not, numeric, oneOf, or, regex, required, requiredIf, requiredUnless, sameAs, startsWith, toDate, toNumber, url, withAsync, withMessage, withParams, withTooltip };
@@ -1,4 +1,4 @@
1
- import { RegleRuleMetadataDefinition, RegleRuleWithParamsDefinition, RegleRuleDefinitionWithMetadataProcessor, RegleRuleMetadataConsumer, RegleRuleDefinition, InlineRuleDeclaration, UnwrapRegleUniversalParams, Maybe, FormRuleDeclaration } from '@regle/core';
1
+ import { RegleRuleMetadataDefinition, RegleRuleWithParamsDefinition, RegleRuleDefinitionWithMetadataProcessor, RegleRuleMetadataConsumer, RegleRuleDefinition, InlineRuleDeclaration, UnwrapRegleUniversalParams, Maybe, FormRuleDeclaration, CommonComparationOptions } from '@regle/core';
2
2
  import { Ref, MaybeRefOrGetter, MaybeRef } from 'vue';
3
3
 
4
4
  /**
@@ -239,14 +239,6 @@ declare function not<TValue, TParams extends any[] = [], TReturn extends RegleRu
239
239
  */
240
240
  declare const required: RegleRuleDefinition<unknown, [], false, boolean, unknown>;
241
241
 
242
- interface CommonComparationOptions {
243
- /**
244
- * Change the behaviour of the rule to check only if the value is equal in addition to be strictly superior or inferior
245
- * @default true
246
- */
247
- allowEqual?: boolean;
248
- }
249
-
250
242
  /**
251
243
  * Requires the input value to have a maximum specified length, inclusive. Works with arrays, objects and strings.
252
244
  *
@@ -462,4 +454,9 @@ type EnumLike = {
462
454
  */
463
455
  declare function nativeEnum<T extends EnumLike>(enumLike: T): RegleRuleDefinition<T[keyof T], [enumLike: T], false, boolean, string | number>;
464
456
 
465
- export { type EnumLike, alpha, alphaNum, and, applyIf, between, checked, contains, dateAfter, dateBefore, dateBetween, decimal, email, endsWith, exactLength, exactValue, getSize, integer, ipAddress, isDate, isEmpty, isFilled, isNumber, macAddress, matchRegex, maxLength, maxValue, minLength, minValue, nativeEnum, not, numeric, oneOf, or, regex, required, requiredIf, requiredUnless, sameAs, startsWith, toDate, toNumber, url, withAsync, withMessage, withParams, withTooltip };
457
+ /**
458
+ * Allow only one possible literal value
459
+ */
460
+ declare function literal<const TValue extends string | number>(literal: MaybeRefOrGetter<TValue>): RegleRuleDefinition<TValue, [literal: TValue], false, boolean, string | number>;
461
+
462
+ export { type EnumLike, alpha, alphaNum, and, applyIf, between, checked, contains, dateAfter, dateBefore, dateBetween, decimal, email, endsWith, exactLength, exactValue, getSize, integer, ipAddress, isDate, isEmpty, isFilled, isNumber, literal, macAddress, matchRegex, maxLength, maxValue, minLength, minValue, nativeEnum, not, numeric, oneOf, or, regex, required, requiredIf, requiredUnless, sameAs, startsWith, toDate, toNumber, url, withAsync, withMessage, withParams, withTooltip };
@@ -1 +1 @@
1
- 'use strict';var core=require('@regle/core'),vue=require('vue');function P(e,t){let r,a,s,R;typeof e=="function"&&!("_validator"in e)?(r=core.InternalRuleType.Inline,a=e):{_type:r,validator:a,_active:s,_params:R}=e;let l=core.createRule({type:r,validator:a,active:s,message:t}),u=[...R??[]];if(l._params=u,l._message_patched=true,typeof l=="function"){let n=l(...u);return n._message_patched=true,n}else return l}function _(e,t){let r,a,s,R,l;typeof e=="function"&&!("_validator"in e)?(r=core.InternalRuleType.Inline,a=e):{_type:r,validator:a,_active:s,_params:R,_message:l}=e;let u=core.createRule({type:r,validator:a,active:s,message:l,tooltip:t}),n=[...R??[]];if(u._params=n,u._tooltip_patched=true,typeof u=="function"){let m=u(...n);return u._tooltip_patched=true,m}else return u}function E(e,t){let r,a,s=[],R="";typeof e=="function"?(r=core.InternalRuleType.Inline,a=async(u,...n)=>e(u,...n),s=[t]):({_type:r,_message:R}=e,s=s=e._params?.concat(t),a=async(...u)=>e.validator(u));let l=core.createRule({type:core.InternalRuleType.Async,validator:a,message:R});return l._params=l._params?.concat(s),l(...t??[])}function w(e,t){let r,a,s=[],R="";typeof e=="function"?(r=core.InternalRuleType.Inline,a=(u,...n)=>e(u,...n),s=[t]):({_type:r,validator:a,_message:R}=e,s=s=e._params?.concat(t));let l=core.createRule({type:core.InternalRuleType.Inline,validator:a,message:R});return l._params=l._params?.concat(s),l(...t)}function L(e,t){let r,a,s=[],R="";typeof t=="function"?(r=core.InternalRuleType.Inline,a=t,s=[e]):({_type:r,validator:a,_message:R}=t,s=t._params?.concat([e]));function l(o,...p){let[b]=core.unwrapRuleParameters([e]);return b?a(o,...p):true}function u(o){let[p]=core.unwrapRuleParameters([e]);return p}let n=core.createRule({type:r,validator:l,active:u,message:R}),m=[...s??[]];return n._params=m,typeof n=="function"?n(...m):n}function f(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 x(e){if(f(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return false}}function T(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 i(e,t=true){return !f(typeof e=="string"?e.trim():e,t)}function y(e){return e==null||typeof e!="number"?false:!isNaN(e)}function g(e,...t){if(f(e))return true;let r=typeof e=="number"?e.toString():e;return t.every(a=>(a.lastIndex=0,a.test(r)))}function D(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 c(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}function q(...e){let t=e.some(n=>typeof n=="function"?n.constructor.name==="AsyncFunction":n._async),r=e.map(n=>{if(typeof n=="function")return null;{let m=n._params;return m?.length?m:[]}}).flat().filter(n=>!!n);function a(n,m,...o){let p=[],b=0;for(let d of n)if(typeof d=="function")p.push(d(m)),b++;else {let M=d._params?.length??0;p.push(d.validator(m,...o.slice(b,M))),M&&(b+=M);}return p}function s(n){return n?.some(o=>typeof o!="boolean")?{$valid:n.every(o=>typeof o=="boolean"?!!o:o.$valid),...n.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:b,...d}=p;return {...o,...d}},{})}:n.every(o=>!!o)}let R;e.length?R=t?async(n,...m)=>{let o=await Promise.all(a(e,n,...m));return s(o)}:(n,...m)=>{let o=a(e,n,...m);return s(o)}:R=n=>false;let l=core.createRule({type:"and",validator:R,message:"The value does not match all of the provided validators"}),u=[...r??[]];return l._params=u,typeof l=="function"?l(...u):l}function G(...e){let t=e.some(n=>typeof n=="function"?n.constructor.name==="AsyncFunction":n._async),r=e.map(n=>typeof n=="function"?null:n._params).flat().filter(n=>!!n);function a(n,m,...o){let p=[],b=0;for(let d of n)if(typeof d=="function")p.push(d(m)),b++;else {let M=d._params?.length??0;p.push(d.validator(m,...o.slice(b,M))),M&&(b+=M);}return p}function s(n){return n.some(o=>typeof o!="boolean")?{$valid:n.some(o=>typeof o=="boolean"?!!o:o.$valid),...n.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:b,...d}=p;return {...o,...d}},{})}:n.some(o=>!!o)}let l=core.createRule({type:"or",validator:t?async(n,...m)=>{let o=await Promise.all(a(e,n,...m));return s(o)}:(n,...m)=>{let o=a(e,n,...m);return s(o)},message:"The value does not match any of the provided validators"}),u=[...r??[]];return l._params=u,typeof l=="function"?l(...u):l}function B(e,t){let r,a,s,R,l;typeof e=="function"?(a=e,l=e.constructor.name==="AsyncFunction"):({_type:r,validator:a,_params:R}=e,l=e._async),l?s=async(m,...o)=>i(m)?!await a(m,...o):true:s=(m,...o)=>i(m)?!a(m,...o):true;let u=core.createRule({type:"not",validator:s,message:t??"Error"}),n=[...R??[]];return u._params=n,typeof u=="function"?u(...n):u}var Bt=core.createRule({type:"required",validator:e=>i(e),message:"This field is required"});var Qt=core.createRule({type:"maxLength",validator:(e,t,r)=>{let{allowEqual:a=true}=r??{};return i(e,false)&&i(t)?y(t)?a?D(e)<=t:D(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 maximum length allowed is ${t}`});var er=core.createRule({type:"required",validator(e,t){return t?i(e):true},message:"This field is required",active({$params:[e]}){return e}});var X=/^[a-zA-Z]*$/,ar=core.createRule({type:"alpha",validator(e){return f(e)?true:g(e,X)},message:"The value is not alphabetical"});var j=/^[a-zA-Z0-9]*$/,lr=core.createRule({type:"alpha",validator(e){return f(e)?true:g(e,j)},message:"The value must be alpha-numeric"});var Rr=core.createRule({type:"between",validator:(e,t,r,a)=>{let{allowEqual:s=true}=a??{};if(i(e)&&i(t)&&i(r)){let R=c(e),l=c(t),u=c(r);return y(R)&&y(l)&&y(u)?s?R>=l&&R<=u:R>l&&R<u:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${r}`),false)}return true},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var re=/^[-]?\d*(\.\d+)?$/,cr=core.createRule({type:"decimal",validator(e){return f(e)?true:g(e,re)},message:"Value must be decimal"});var ae=/^(?:[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,br=core.createRule({type:"email",validator(e){return f(e)?true:g(e,ae)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,Pr=core.createRule({type:"integer",validator(e){return f(e)?true:g(e,oe)},message:"Value must be an integer"});var Ar=core.createRule({type:"maxValue",validator:(e,t,r)=>{let{allowEqual:a=true}=r??{};return i(e)&&i(t)?y(t)&&!isNaN(c(e))?a?c(e)<=t:c(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:r=true}=t??{};return r?`Value must be less than or equal to ${e}`:`Value must be less than ${e}`}});var Cr=core.createRule({type:"minLength",validator:(e,t,r)=>{let{allowEqual:a=true}=r??{};return i(e,false)&&i(t)?y(t)?a?D(e)>=t:D(e)>t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true},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 Ir=core.createRule({type:"minValue",validator:(e,t,r)=>{let{allowEqual:a=true}=r??{};return i(e)&&i(t)?y(t)&&!isNaN(c(e))?a?c(e)>=t:c(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:r=true}=t??{};return r?`Value must be greater than or equal to ${e}`:`Value must be greater than ${e}`}});var zr=core.createRule({type:"exactValue",validator:(e,t)=>i(e)&&i(t)?y(t)&&!isNaN(c(e))?c(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 Gr=core.createRule({type:"exactLength",validator:(e,t)=>i(e,false)&&i(t)?y(t)?D(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true,message:({$params:[e]})=>`This field should be exactly ${e} characters long`});var pe=/^\d*(\.\d+)?$/,Jr=core.createRule({type:"numeric",validator(e){return f(e)?true:g(e,pe)},message:"This field must be numeric"});var Yr=core.createRule({type:"required",validator(e,t){return t?true:i(e)},message:"This field is required",active({$params:[e]}){return !e}});var rn=core.createRule({type:"sameAs",validator(e,t,r="other"){return f(e)?true:e===t},message({$params:[e,t]}){return `Value must be equal to the ${t} value`}});var de=/^(?:(?:(?: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,sn=core.createRule({type:"url",validator(e){return f(e)?true:g(e,de)},message:"The value is not a valid URL address"});function Te(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function h(e){return e?new Intl.DateTimeFormat(Te(),{dateStyle:"short"}).format(new Date(e)):"?"}var pn=core.createRule({type:"dateAfter",validator:(e,t)=>i(e)&&i(t)?x(e)&&x(t)?T(e).getTime()>T(t).getTime()?true:{$valid:false,error:"date-not-after"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${h(e)}`});var Tn=core.createRule({type:"dateBefore",validator:(e,t)=>i(e)&&i(t)?x(e)&&x(t)?T(e).getTime()<T(t).getTime()?true:{$valid:false,error:"date-not-before"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${h(e)}`});var hn=core.createRule({type:"dateBetween",validator:(e,t,r)=>x(e)&&x(t)&&x(r)?T(e).getTime()>T(t).getTime()&&T(e).getTime()<T(r).getTime():true,message:({$params:[e,t]})=>`The date must be between ${h(e)} and ${h(t)}`});function he(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 $n=core.createRule({type:"ipAddress",validator(e){if(f(e))return true;if(typeof e!="string")return false;let t=e.split(".");return t.length===4&&t.every(he)},message:"The value is not a valid IP address"});var Fn=core.createRule({type:"macAddress",validator(e,t=":"){if(f(e))return true;if(typeof e!="string")return false;let r=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return r!==null&&(r.length===6||r.length===8)&&r.every(we)},message:"The value is not a valid MAC Address"}),we=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var En=core.createRule({type:"checked",validator:e=>i(e)?e===true:true,message:"This field must be checked"});var Ln=core.createRule({type:"contains",validator(e,t){return i(e)&&i(t)?e.includes(t):true},message({$params:[e]}){return `Field must contain ${e}`}});var Un=core.createRule({type:"startsWith",validator(e,t){return i(e)&&i(t)?e.startsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var Zn=core.createRule({type:"endsWith",validator(e,t){return i(e)&&i(t)?e.endsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var Xn=core.createRule({type:"regex",validator(e,t){if(i(e)){let r=Array.isArray(t)?t:[t];return g(e,...r)}return true},message:"This field does not match the required pattern"});function ta(e){let t=vue.computed(()=>vue.toValue(e));return P(w((a,s)=>i(a)&&i(s,false)?s.includes(a):true,[t]),({$params:[a]})=>`Value should be one of those options: ${a.join(", ")}.`)}function Ee(e){let t=Object.keys(e).filter(a=>typeof e[e[a]]!="number"),r={};for(let a of t)r[a]=e[a];return Object.values(r)}function ia(e){let t=vue.computed(()=>vue.toValue(e));return P(w((a,s)=>i(a)&&!f(s)?Ee(s).includes(a):true,[t]),({$params:[a]})=>`Value should be one of those options: ${Object.values(a).join(", ")}.`)}exports.alpha=ar;exports.alphaNum=lr;exports.and=q;exports.applyIf=L;exports.between=Rr;exports.checked=En;exports.contains=Ln;exports.dateAfter=pn;exports.dateBefore=Tn;exports.dateBetween=hn;exports.decimal=cr;exports.email=br;exports.endsWith=Zn;exports.exactLength=Gr;exports.exactValue=zr;exports.getSize=D;exports.integer=Pr;exports.ipAddress=$n;exports.isDate=x;exports.isEmpty=f;exports.isFilled=i;exports.isNumber=y;exports.macAddress=Fn;exports.matchRegex=g;exports.maxLength=Qt;exports.maxValue=Ar;exports.minLength=Cr;exports.minValue=Ir;exports.nativeEnum=ia;exports.not=B;exports.numeric=Jr;exports.oneOf=ta;exports.or=G;exports.regex=Xn;exports.required=Bt;exports.requiredIf=er;exports.requiredUnless=Yr;exports.sameAs=rn;exports.startsWith=Un;exports.toDate=T;exports.toNumber=c;exports.url=sn;exports.withAsync=E;exports.withMessage=P;exports.withParams=w;exports.withTooltip=_;
1
+ 'use strict';var core=require('@regle/core'),vue=require('vue');function h(e,t){let r,n,s,R;typeof e=="function"&&!("_validator"in e)?(r=core.InternalRuleType.Inline,n=e):{_type:r,validator:n,_active:s,_params:R}=e;let l=core.createRule({type:r,validator:n,active:s,message:t}),u=[...R??[]];if(l._params=u,l._message_patched=true,typeof l=="function"){let a=l(...u);return a._message_patched=true,a}else return l}function _(e,t){let r,n,s,R,l;typeof e=="function"&&!("_validator"in e)?(r=core.InternalRuleType.Inline,n=e):{_type:r,validator:n,_active:s,_params:R,_message:l}=e;let u=core.createRule({type:r,validator:n,active:s,message:l,tooltip:t}),a=[...R??[]];if(u._params=a,u._tooltip_patched=true,typeof u=="function"){let m=u(...a);return u._tooltip_patched=true,m}else return u}function E(e,t){let r,n,s=[],R="";typeof e=="function"?(r=core.InternalRuleType.Inline,n=async(u,...a)=>e(u,...a),s=[t]):({_type:r,_message:R}=e,s=s=e._params?.concat(t),n=async(...u)=>e.validator(u));let l=core.createRule({type:core.InternalRuleType.Async,validator:n,message:R});return l._params=l._params?.concat(s),l(...t??[])}function P(e,t){let r,n,s=[],R="";typeof e=="function"?(r=core.InternalRuleType.Inline,n=(u,...a)=>e(u,...a),s=[t]):({_type:r,validator:n,_message:R}=e,s=s=e._params?.concat(t));let l=core.createRule({type:core.InternalRuleType.Inline,validator:n,message:R});return l._params=l._params?.concat(s),l(...t)}function L(e,t){let r,n,s=[],R="";typeof t=="function"?(r=core.InternalRuleType.Inline,n=t,s=[e]):({_type:r,validator:n,_message:R}=t,s=t._params?.concat([e]));function l(o,...p){let[b]=core.unwrapRuleParameters([e]);return b?n(o,...p):true}function u(o){let[p]=core.unwrapRuleParameters([e]);return p}let a=core.createRule({type:r,validator:l,active:u,message:R}),m=[...s??[]];return a._params=m,typeof a=="function"?a(...m):a}function f(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 x(e){if(f(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return false}}function T(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 i(e,t=true){return !f(typeof e=="string"?e.trim():e,t)}function y(e){return e==null||typeof e!="number"?false:!isNaN(e)}function g(e,...t){if(f(e))return true;let r=typeof e=="number"?e.toString():e;return t.every(n=>(n.lastIndex=0,n.test(r)))}function D(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 c(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}function q(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),r=e.map(a=>{if(typeof a=="function")return null;{let m=a._params;return m?.length?m:[]}}).flat().filter(a=>!!a);function n(a,m,...o){let p=[],b=0;for(let d of a)if(typeof d=="function")p.push(d(m)),b++;else {let M=d._params?.length??0;p.push(d.validator(m,...o.slice(b,M))),M&&(b+=M);}return p}function s(a){return a?.some(o=>typeof o!="boolean")?{$valid:a.every(o=>typeof o=="boolean"?!!o:o.$valid),...a.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:b,...d}=p;return {...o,...d}},{})}:a.every(o=>!!o)}let R;e.length?R=t?async(a,...m)=>{let o=await Promise.all(n(e,a,...m));return s(o)}:(a,...m)=>{let o=n(e,a,...m);return s(o)}:R=a=>false;let l=core.createRule({type:"and",validator:R,message:"The value does not match all of the provided validators"}),u=[...r??[]];return l._params=u,typeof l=="function"?l(...u):l}function G(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),r=e.map(a=>typeof a=="function"?null:a._params).flat().filter(a=>!!a);function n(a,m,...o){let p=[],b=0;for(let d of a)if(typeof d=="function")p.push(d(m)),b++;else {let M=d._params?.length??0;p.push(d.validator(m,...o.slice(b,M))),M&&(b+=M);}return p}function s(a){return a.some(o=>typeof o!="boolean")?{$valid:a.some(o=>typeof o=="boolean"?!!o:o.$valid),...a.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:b,...d}=p;return {...o,...d}},{})}:a.some(o=>!!o)}let l=core.createRule({type:"or",validator:t?async(a,...m)=>{let o=await Promise.all(n(e,a,...m));return s(o)}:(a,...m)=>{let o=n(e,a,...m);return s(o)},message:"The value does not match any of the provided validators"}),u=[...r??[]];return l._params=u,typeof l=="function"?l(...u):l}function B(e,t){let r,n,s,R,l;typeof e=="function"?(n=e,l=e.constructor.name==="AsyncFunction"):({_type:r,validator:n,_params:R}=e,l=e._async),l?s=async(m,...o)=>i(m)?!await n(m,...o):true:s=(m,...o)=>i(m)?!n(m,...o):true;let u=core.createRule({type:"not",validator:s,message:t??"Error"}),a=[...R??[]];return u._params=a,typeof u=="function"?u(...a):u}var Jt=core.createRule({type:"required",validator:e=>i(e),message:"This field is required"});var Yt=core.createRule({type:"maxLength",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e,false)&&i(t)?y(t)?n?D(e)<=t:D(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 maximum length allowed is ${t}`});var rr=core.createRule({type:"required",validator(e,t){return t?i(e):true},message:"This field is required",active({$params:[e]}){return e}});var X=/^[a-zA-Z]*$/,or=core.createRule({type:"alpha",validator(e){return f(e)?true:g(e,X)},message:"The value is not alphabetical"});var j=/^[a-zA-Z0-9]*$/,mr=core.createRule({type:"alpha",validator(e){return f(e)?true:g(e,j)},message:"The value must be alpha-numeric"});var yr=core.createRule({type:"between",validator:(e,t,r,n)=>{let{allowEqual:s=true}=n??{};if(i(e)&&i(t)&&i(r)){let R=c(e),l=c(t),u=c(r);return y(R)&&y(l)&&y(u)?s?R>=l&&R<=u:R>l&&R<u:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${r}`),false)}return true},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var re=/^[-]?\d*(\.\d+)?$/,Tr=core.createRule({type:"decimal",validator(e){return f(e)?true:g(e,re)},message:"Value must be decimal"});var ae=/^(?:[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,Mr=core.createRule({type:"email",validator(e){return f(e)?true:g(e,ae)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,Vr=core.createRule({type:"integer",validator(e){return f(e)?true:g(e,oe)},message:"Value must be an integer"});var vr=core.createRule({type:"maxValue",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e)&&i(t)?y(t)&&!isNaN(c(e))?n?c(e)<=t:c(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:r=true}=t??{};return r?`Value must be less than or equal to ${e}`:`Value must be less than ${e}`}});var Nr=core.createRule({type:"minLength",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e,false)&&i(t)?y(t)?n?D(e)>=t:D(e)>t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true},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 Or=core.createRule({type:"minValue",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e)&&i(t)?y(t)&&!isNaN(c(e))?n?c(e)>=t:c(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:r=true}=t??{};return r?`Value must be greater than or equal to ${e}`:`Value must be greater than ${e}`}});var qr=core.createRule({type:"exactValue",validator:(e,t)=>i(e)&&i(t)?y(t)&&!isNaN(c(e))?c(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 Br=core.createRule({type:"exactLength",validator:(e,t)=>i(e,false)&&i(t)?y(t)?D(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true,message:({$params:[e]})=>`This field should be exactly ${e} characters long`});var pe=/^\d*(\.\d+)?$/,Qr=core.createRule({type:"numeric",validator(e){return f(e)?true:g(e,pe)},message:"This field must be numeric"});var en=core.createRule({type:"required",validator(e,t){return t?true:i(e)},message:"This field is required",active({$params:[e]}){return !e}});var an=core.createRule({type:"sameAs",validator(e,t,r="other"){return f(e)?true:e===t},message({$params:[e,t]}){return `Value must be equal to the ${t} value`}});var de=/^(?:(?:(?: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,un=core.createRule({type:"url",validator(e){return f(e)?true:g(e,de)},message:"The value is not a valid URL address"});function Te(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function w(e){return e?new Intl.DateTimeFormat(Te(),{dateStyle:"short"}).format(new Date(e)):"?"}var gn=core.createRule({type:"dateAfter",validator:(e,t)=>i(e)&&i(t)?x(e)&&x(t)?T(e).getTime()>T(t).getTime()?true:{$valid:false,error:"date-not-after"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${w(e)}`});var bn=core.createRule({type:"dateBefore",validator:(e,t)=>i(e)&&i(t)?x(e)&&x(t)?T(e).getTime()<T(t).getTime()?true:{$valid:false,error:"date-not-before"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${w(e)}`});var wn=core.createRule({type:"dateBetween",validator:(e,t,r)=>x(e)&&x(t)&&x(r)?T(e).getTime()>T(t).getTime()&&T(e).getTime()<T(r).getTime():true,message:({$params:[e,t]})=>`The date must be between ${w(e)} and ${w(t)}`});function he(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 Wn=core.createRule({type:"ipAddress",validator(e){if(f(e))return true;if(typeof e!="string")return false;let t=e.split(".");return t.length===4&&t.every(he)},message:"The value is not a valid IP address"});var _n=core.createRule({type:"macAddress",validator(e,t=":"){if(f(e))return true;if(typeof e!="string")return false;let r=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return r!==null&&(r.length===6||r.length===8)&&r.every(we)},message:"The value is not a valid MAC Address"}),we=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var kn=core.createRule({type:"checked",validator:e=>i(e)?e===true:true,message:"This field must be checked"});var Sn=core.createRule({type:"contains",validator(e,t){return i(e)&&i(t)?e.includes(t):true},message({$params:[e]}){return `Field must contain ${e}`}});var Kn=core.createRule({type:"startsWith",validator(e,t){return i(e)&&i(t)?e.startsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var Hn=core.createRule({type:"endsWith",validator(e,t){return i(e)&&i(t)?e.endsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var jn=core.createRule({type:"regex",validator(e,t){if(i(e)){let r=Array.isArray(t)?t:[t];return g(e,...r)}return true},message:"This field does not match the required pattern"});function na(e){let t=vue.computed(()=>vue.toValue(e));return h(P((n,s)=>i(n)&&i(s,false)?s.includes(n):true,[t]),({$params:[n]})=>`Value should be one of those options: ${n.join(", ")}.`)}function Ee(e){let t=Object.keys(e).filter(n=>typeof e[e[n]]!="number"),r={};for(let n of t)r[n]=e[n];return Object.values(r)}function sa(e){let t=vue.computed(()=>vue.toValue(e));return h(P((n,s)=>i(n)&&!f(s)?Ee(s).includes(n):true,[t]),({$params:[n]})=>`Value should be one of those options: ${Object.values(n).join(", ")}.`)}function Ra(e){let t=vue.computed(()=>vue.toValue(e));return h(P((n,s)=>s===n,[t]),({$params:[n]})=>`Value should be ${n}.`)}exports.alpha=or;exports.alphaNum=mr;exports.and=q;exports.applyIf=L;exports.between=yr;exports.checked=kn;exports.contains=Sn;exports.dateAfter=gn;exports.dateBefore=bn;exports.dateBetween=wn;exports.decimal=Tr;exports.email=Mr;exports.endsWith=Hn;exports.exactLength=Br;exports.exactValue=qr;exports.getSize=D;exports.integer=Vr;exports.ipAddress=Wn;exports.isDate=x;exports.isEmpty=f;exports.isFilled=i;exports.isNumber=y;exports.literal=Ra;exports.macAddress=_n;exports.matchRegex=g;exports.maxLength=Yt;exports.maxValue=vr;exports.minLength=Nr;exports.minValue=Or;exports.nativeEnum=sa;exports.not=B;exports.numeric=Qr;exports.oneOf=na;exports.or=G;exports.regex=jn;exports.required=Jt;exports.requiredIf=rr;exports.requiredUnless=en;exports.sameAs=an;exports.startsWith=Kn;exports.toDate=T;exports.toNumber=c;exports.url=un;exports.withAsync=E;exports.withMessage=h;exports.withParams=P;exports.withTooltip=_;
@@ -1 +1 @@
1
- import {createRule,InternalRuleType,unwrapRuleParameters}from'@regle/core';import {unref,computed,toValue}from'vue';function P(e,t){let r,a,s,R;typeof e=="function"&&!("_validator"in e)?(r=InternalRuleType.Inline,a=e):{_type:r,validator:a,_active:s,_params:R}=e;let l=createRule({type:r,validator:a,active:s,message:t}),u=[...R??[]];if(l._params=u,l._message_patched=true,typeof l=="function"){let n=l(...u);return n._message_patched=true,n}else return l}function _(e,t){let r,a,s,R,l;typeof e=="function"&&!("_validator"in e)?(r=InternalRuleType.Inline,a=e):{_type:r,validator:a,_active:s,_params:R,_message:l}=e;let u=createRule({type:r,validator:a,active:s,message:l,tooltip:t}),n=[...R??[]];if(u._params=n,u._tooltip_patched=true,typeof u=="function"){let m=u(...n);return u._tooltip_patched=true,m}else return u}function E(e,t){let r,a,s=[],R="";typeof e=="function"?(r=InternalRuleType.Inline,a=async(u,...n)=>e(u,...n),s=[t]):({_type:r,_message:R}=e,s=s=e._params?.concat(t),a=async(...u)=>e.validator(u));let l=createRule({type:InternalRuleType.Async,validator:a,message:R});return l._params=l._params?.concat(s),l(...t??[])}function w(e,t){let r,a,s=[],R="";typeof e=="function"?(r=InternalRuleType.Inline,a=(u,...n)=>e(u,...n),s=[t]):({_type:r,validator:a,_message:R}=e,s=s=e._params?.concat(t));let l=createRule({type:InternalRuleType.Inline,validator:a,message:R});return l._params=l._params?.concat(s),l(...t)}function L(e,t){let r,a,s=[],R="";typeof t=="function"?(r=InternalRuleType.Inline,a=t,s=[e]):({_type:r,validator:a,_message:R}=t,s=t._params?.concat([e]));function l(o,...p){let[b]=unwrapRuleParameters([e]);return b?a(o,...p):true}function u(o){let[p]=unwrapRuleParameters([e]);return p}let n=createRule({type:r,validator:l,active:u,message:R}),m=[...s??[]];return n._params=m,typeof n=="function"?n(...m):n}function f(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 x(e){if(f(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return false}}function T(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 i(e,t=true){return !f(typeof e=="string"?e.trim():e,t)}function y(e){return e==null||typeof e!="number"?false:!isNaN(e)}function g(e,...t){if(f(e))return true;let r=typeof e=="number"?e.toString():e;return t.every(a=>(a.lastIndex=0,a.test(r)))}function D(e){let t=unref(e);return Array.isArray(t)?t.length:typeof t=="object"?Object.keys(t).length:typeof t=="number"?isNaN(t)?0:t:String(t).length}function c(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}function q(...e){let t=e.some(n=>typeof n=="function"?n.constructor.name==="AsyncFunction":n._async),r=e.map(n=>{if(typeof n=="function")return null;{let m=n._params;return m?.length?m:[]}}).flat().filter(n=>!!n);function a(n,m,...o){let p=[],b=0;for(let d of n)if(typeof d=="function")p.push(d(m)),b++;else {let M=d._params?.length??0;p.push(d.validator(m,...o.slice(b,M))),M&&(b+=M);}return p}function s(n){return n?.some(o=>typeof o!="boolean")?{$valid:n.every(o=>typeof o=="boolean"?!!o:o.$valid),...n.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:b,...d}=p;return {...o,...d}},{})}:n.every(o=>!!o)}let R;e.length?R=t?async(n,...m)=>{let o=await Promise.all(a(e,n,...m));return s(o)}:(n,...m)=>{let o=a(e,n,...m);return s(o)}:R=n=>false;let l=createRule({type:"and",validator:R,message:"The value does not match all of the provided validators"}),u=[...r??[]];return l._params=u,typeof l=="function"?l(...u):l}function G(...e){let t=e.some(n=>typeof n=="function"?n.constructor.name==="AsyncFunction":n._async),r=e.map(n=>typeof n=="function"?null:n._params).flat().filter(n=>!!n);function a(n,m,...o){let p=[],b=0;for(let d of n)if(typeof d=="function")p.push(d(m)),b++;else {let M=d._params?.length??0;p.push(d.validator(m,...o.slice(b,M))),M&&(b+=M);}return p}function s(n){return n.some(o=>typeof o!="boolean")?{$valid:n.some(o=>typeof o=="boolean"?!!o:o.$valid),...n.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:b,...d}=p;return {...o,...d}},{})}:n.some(o=>!!o)}let l=createRule({type:"or",validator:t?async(n,...m)=>{let o=await Promise.all(a(e,n,...m));return s(o)}:(n,...m)=>{let o=a(e,n,...m);return s(o)},message:"The value does not match any of the provided validators"}),u=[...r??[]];return l._params=u,typeof l=="function"?l(...u):l}function B(e,t){let r,a,s,R,l;typeof e=="function"?(a=e,l=e.constructor.name==="AsyncFunction"):({_type:r,validator:a,_params:R}=e,l=e._async),l?s=async(m,...o)=>i(m)?!await a(m,...o):true:s=(m,...o)=>i(m)?!a(m,...o):true;let u=createRule({type:"not",validator:s,message:t??"Error"}),n=[...R??[]];return u._params=n,typeof u=="function"?u(...n):u}var Bt=createRule({type:"required",validator:e=>i(e),message:"This field is required"});var Qt=createRule({type:"maxLength",validator:(e,t,r)=>{let{allowEqual:a=true}=r??{};return i(e,false)&&i(t)?y(t)?a?D(e)<=t:D(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 maximum length allowed is ${t}`});var er=createRule({type:"required",validator(e,t){return t?i(e):true},message:"This field is required",active({$params:[e]}){return e}});var X=/^[a-zA-Z]*$/,ar=createRule({type:"alpha",validator(e){return f(e)?true:g(e,X)},message:"The value is not alphabetical"});var j=/^[a-zA-Z0-9]*$/,lr=createRule({type:"alpha",validator(e){return f(e)?true:g(e,j)},message:"The value must be alpha-numeric"});var Rr=createRule({type:"between",validator:(e,t,r,a)=>{let{allowEqual:s=true}=a??{};if(i(e)&&i(t)&&i(r)){let R=c(e),l=c(t),u=c(r);return y(R)&&y(l)&&y(u)?s?R>=l&&R<=u:R>l&&R<u:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${r}`),false)}return true},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var re=/^[-]?\d*(\.\d+)?$/,cr=createRule({type:"decimal",validator(e){return f(e)?true:g(e,re)},message:"Value must be decimal"});var ae=/^(?:[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,br=createRule({type:"email",validator(e){return f(e)?true:g(e,ae)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,Pr=createRule({type:"integer",validator(e){return f(e)?true:g(e,oe)},message:"Value must be an integer"});var Ar=createRule({type:"maxValue",validator:(e,t,r)=>{let{allowEqual:a=true}=r??{};return i(e)&&i(t)?y(t)&&!isNaN(c(e))?a?c(e)<=t:c(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:r=true}=t??{};return r?`Value must be less than or equal to ${e}`:`Value must be less than ${e}`}});var Cr=createRule({type:"minLength",validator:(e,t,r)=>{let{allowEqual:a=true}=r??{};return i(e,false)&&i(t)?y(t)?a?D(e)>=t:D(e)>t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true},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 Ir=createRule({type:"minValue",validator:(e,t,r)=>{let{allowEqual:a=true}=r??{};return i(e)&&i(t)?y(t)&&!isNaN(c(e))?a?c(e)>=t:c(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:r=true}=t??{};return r?`Value must be greater than or equal to ${e}`:`Value must be greater than ${e}`}});var zr=createRule({type:"exactValue",validator:(e,t)=>i(e)&&i(t)?y(t)&&!isNaN(c(e))?c(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 Gr=createRule({type:"exactLength",validator:(e,t)=>i(e,false)&&i(t)?y(t)?D(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true,message:({$params:[e]})=>`This field should be exactly ${e} characters long`});var pe=/^\d*(\.\d+)?$/,Jr=createRule({type:"numeric",validator(e){return f(e)?true:g(e,pe)},message:"This field must be numeric"});var Yr=createRule({type:"required",validator(e,t){return t?true:i(e)},message:"This field is required",active({$params:[e]}){return !e}});var rn=createRule({type:"sameAs",validator(e,t,r="other"){return f(e)?true:e===t},message({$params:[e,t]}){return `Value must be equal to the ${t} value`}});var de=/^(?:(?:(?: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,sn=createRule({type:"url",validator(e){return f(e)?true:g(e,de)},message:"The value is not a valid URL address"});function Te(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function h(e){return e?new Intl.DateTimeFormat(Te(),{dateStyle:"short"}).format(new Date(e)):"?"}var pn=createRule({type:"dateAfter",validator:(e,t)=>i(e)&&i(t)?x(e)&&x(t)?T(e).getTime()>T(t).getTime()?true:{$valid:false,error:"date-not-after"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${h(e)}`});var Tn=createRule({type:"dateBefore",validator:(e,t)=>i(e)&&i(t)?x(e)&&x(t)?T(e).getTime()<T(t).getTime()?true:{$valid:false,error:"date-not-before"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${h(e)}`});var hn=createRule({type:"dateBetween",validator:(e,t,r)=>x(e)&&x(t)&&x(r)?T(e).getTime()>T(t).getTime()&&T(e).getTime()<T(r).getTime():true,message:({$params:[e,t]})=>`The date must be between ${h(e)} and ${h(t)}`});function he(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 $n=createRule({type:"ipAddress",validator(e){if(f(e))return true;if(typeof e!="string")return false;let t=e.split(".");return t.length===4&&t.every(he)},message:"The value is not a valid IP address"});var Fn=createRule({type:"macAddress",validator(e,t=":"){if(f(e))return true;if(typeof e!="string")return false;let r=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return r!==null&&(r.length===6||r.length===8)&&r.every(we)},message:"The value is not a valid MAC Address"}),we=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var En=createRule({type:"checked",validator:e=>i(e)?e===true:true,message:"This field must be checked"});var Ln=createRule({type:"contains",validator(e,t){return i(e)&&i(t)?e.includes(t):true},message({$params:[e]}){return `Field must contain ${e}`}});var Un=createRule({type:"startsWith",validator(e,t){return i(e)&&i(t)?e.startsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var Zn=createRule({type:"endsWith",validator(e,t){return i(e)&&i(t)?e.endsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var Xn=createRule({type:"regex",validator(e,t){if(i(e)){let r=Array.isArray(t)?t:[t];return g(e,...r)}return true},message:"This field does not match the required pattern"});function ta(e){let t=computed(()=>toValue(e));return P(w((a,s)=>i(a)&&i(s,false)?s.includes(a):true,[t]),({$params:[a]})=>`Value should be one of those options: ${a.join(", ")}.`)}function Ee(e){let t=Object.keys(e).filter(a=>typeof e[e[a]]!="number"),r={};for(let a of t)r[a]=e[a];return Object.values(r)}function ia(e){let t=computed(()=>toValue(e));return P(w((a,s)=>i(a)&&!f(s)?Ee(s).includes(a):true,[t]),({$params:[a]})=>`Value should be one of those options: ${Object.values(a).join(", ")}.`)}export{ar as alpha,lr as alphaNum,q as and,L as applyIf,Rr as between,En as checked,Ln as contains,pn as dateAfter,Tn as dateBefore,hn as dateBetween,cr as decimal,br as email,Zn as endsWith,Gr as exactLength,zr as exactValue,D as getSize,Pr as integer,$n as ipAddress,x as isDate,f as isEmpty,i as isFilled,y as isNumber,Fn as macAddress,g as matchRegex,Qt as maxLength,Ar as maxValue,Cr as minLength,Ir as minValue,ia as nativeEnum,B as not,Jr as numeric,ta as oneOf,G as or,Xn as regex,Bt as required,er as requiredIf,Yr as requiredUnless,rn as sameAs,Un as startsWith,T as toDate,c as toNumber,sn as url,E as withAsync,P as withMessage,w as withParams,_ as withTooltip};
1
+ import {createRule,InternalRuleType,unwrapRuleParameters}from'@regle/core';import {unref,computed,toValue}from'vue';function h(e,t){let r,n,s,R;typeof e=="function"&&!("_validator"in e)?(r=InternalRuleType.Inline,n=e):{_type:r,validator:n,_active:s,_params:R}=e;let l=createRule({type:r,validator:n,active:s,message:t}),u=[...R??[]];if(l._params=u,l._message_patched=true,typeof l=="function"){let a=l(...u);return a._message_patched=true,a}else return l}function _(e,t){let r,n,s,R,l;typeof e=="function"&&!("_validator"in e)?(r=InternalRuleType.Inline,n=e):{_type:r,validator:n,_active:s,_params:R,_message:l}=e;let u=createRule({type:r,validator:n,active:s,message:l,tooltip:t}),a=[...R??[]];if(u._params=a,u._tooltip_patched=true,typeof u=="function"){let m=u(...a);return u._tooltip_patched=true,m}else return u}function E(e,t){let r,n,s=[],R="";typeof e=="function"?(r=InternalRuleType.Inline,n=async(u,...a)=>e(u,...a),s=[t]):({_type:r,_message:R}=e,s=s=e._params?.concat(t),n=async(...u)=>e.validator(u));let l=createRule({type:InternalRuleType.Async,validator:n,message:R});return l._params=l._params?.concat(s),l(...t??[])}function P(e,t){let r,n,s=[],R="";typeof e=="function"?(r=InternalRuleType.Inline,n=(u,...a)=>e(u,...a),s=[t]):({_type:r,validator:n,_message:R}=e,s=s=e._params?.concat(t));let l=createRule({type:InternalRuleType.Inline,validator:n,message:R});return l._params=l._params?.concat(s),l(...t)}function L(e,t){let r,n,s=[],R="";typeof t=="function"?(r=InternalRuleType.Inline,n=t,s=[e]):({_type:r,validator:n,_message:R}=t,s=t._params?.concat([e]));function l(o,...p){let[b]=unwrapRuleParameters([e]);return b?n(o,...p):true}function u(o){let[p]=unwrapRuleParameters([e]);return p}let a=createRule({type:r,validator:l,active:u,message:R}),m=[...s??[]];return a._params=m,typeof a=="function"?a(...m):a}function f(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 x(e){if(f(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return false}}function T(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 i(e,t=true){return !f(typeof e=="string"?e.trim():e,t)}function y(e){return e==null||typeof e!="number"?false:!isNaN(e)}function g(e,...t){if(f(e))return true;let r=typeof e=="number"?e.toString():e;return t.every(n=>(n.lastIndex=0,n.test(r)))}function D(e){let t=unref(e);return Array.isArray(t)?t.length:typeof t=="object"?Object.keys(t).length:typeof t=="number"?isNaN(t)?0:t:String(t).length}function c(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}function q(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),r=e.map(a=>{if(typeof a=="function")return null;{let m=a._params;return m?.length?m:[]}}).flat().filter(a=>!!a);function n(a,m,...o){let p=[],b=0;for(let d of a)if(typeof d=="function")p.push(d(m)),b++;else {let M=d._params?.length??0;p.push(d.validator(m,...o.slice(b,M))),M&&(b+=M);}return p}function s(a){return a?.some(o=>typeof o!="boolean")?{$valid:a.every(o=>typeof o=="boolean"?!!o:o.$valid),...a.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:b,...d}=p;return {...o,...d}},{})}:a.every(o=>!!o)}let R;e.length?R=t?async(a,...m)=>{let o=await Promise.all(n(e,a,...m));return s(o)}:(a,...m)=>{let o=n(e,a,...m);return s(o)}:R=a=>false;let l=createRule({type:"and",validator:R,message:"The value does not match all of the provided validators"}),u=[...r??[]];return l._params=u,typeof l=="function"?l(...u):l}function G(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),r=e.map(a=>typeof a=="function"?null:a._params).flat().filter(a=>!!a);function n(a,m,...o){let p=[],b=0;for(let d of a)if(typeof d=="function")p.push(d(m)),b++;else {let M=d._params?.length??0;p.push(d.validator(m,...o.slice(b,M))),M&&(b+=M);}return p}function s(a){return a.some(o=>typeof o!="boolean")?{$valid:a.some(o=>typeof o=="boolean"?!!o:o.$valid),...a.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:b,...d}=p;return {...o,...d}},{})}:a.some(o=>!!o)}let l=createRule({type:"or",validator:t?async(a,...m)=>{let o=await Promise.all(n(e,a,...m));return s(o)}:(a,...m)=>{let o=n(e,a,...m);return s(o)},message:"The value does not match any of the provided validators"}),u=[...r??[]];return l._params=u,typeof l=="function"?l(...u):l}function B(e,t){let r,n,s,R,l;typeof e=="function"?(n=e,l=e.constructor.name==="AsyncFunction"):({_type:r,validator:n,_params:R}=e,l=e._async),l?s=async(m,...o)=>i(m)?!await n(m,...o):true:s=(m,...o)=>i(m)?!n(m,...o):true;let u=createRule({type:"not",validator:s,message:t??"Error"}),a=[...R??[]];return u._params=a,typeof u=="function"?u(...a):u}var Jt=createRule({type:"required",validator:e=>i(e),message:"This field is required"});var Yt=createRule({type:"maxLength",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e,false)&&i(t)?y(t)?n?D(e)<=t:D(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 maximum length allowed is ${t}`});var rr=createRule({type:"required",validator(e,t){return t?i(e):true},message:"This field is required",active({$params:[e]}){return e}});var X=/^[a-zA-Z]*$/,or=createRule({type:"alpha",validator(e){return f(e)?true:g(e,X)},message:"The value is not alphabetical"});var j=/^[a-zA-Z0-9]*$/,mr=createRule({type:"alpha",validator(e){return f(e)?true:g(e,j)},message:"The value must be alpha-numeric"});var yr=createRule({type:"between",validator:(e,t,r,n)=>{let{allowEqual:s=true}=n??{};if(i(e)&&i(t)&&i(r)){let R=c(e),l=c(t),u=c(r);return y(R)&&y(l)&&y(u)?s?R>=l&&R<=u:R>l&&R<u:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${r}`),false)}return true},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var re=/^[-]?\d*(\.\d+)?$/,Tr=createRule({type:"decimal",validator(e){return f(e)?true:g(e,re)},message:"Value must be decimal"});var ae=/^(?:[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,Mr=createRule({type:"email",validator(e){return f(e)?true:g(e,ae)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,Vr=createRule({type:"integer",validator(e){return f(e)?true:g(e,oe)},message:"Value must be an integer"});var vr=createRule({type:"maxValue",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e)&&i(t)?y(t)&&!isNaN(c(e))?n?c(e)<=t:c(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:r=true}=t??{};return r?`Value must be less than or equal to ${e}`:`Value must be less than ${e}`}});var Nr=createRule({type:"minLength",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e,false)&&i(t)?y(t)?n?D(e)>=t:D(e)>t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true},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 Or=createRule({type:"minValue",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e)&&i(t)?y(t)&&!isNaN(c(e))?n?c(e)>=t:c(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:r=true}=t??{};return r?`Value must be greater than or equal to ${e}`:`Value must be greater than ${e}`}});var qr=createRule({type:"exactValue",validator:(e,t)=>i(e)&&i(t)?y(t)&&!isNaN(c(e))?c(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 Br=createRule({type:"exactLength",validator:(e,t)=>i(e,false)&&i(t)?y(t)?D(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true,message:({$params:[e]})=>`This field should be exactly ${e} characters long`});var pe=/^\d*(\.\d+)?$/,Qr=createRule({type:"numeric",validator(e){return f(e)?true:g(e,pe)},message:"This field must be numeric"});var en=createRule({type:"required",validator(e,t){return t?true:i(e)},message:"This field is required",active({$params:[e]}){return !e}});var an=createRule({type:"sameAs",validator(e,t,r="other"){return f(e)?true:e===t},message({$params:[e,t]}){return `Value must be equal to the ${t} value`}});var de=/^(?:(?:(?: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,un=createRule({type:"url",validator(e){return f(e)?true:g(e,de)},message:"The value is not a valid URL address"});function Te(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function w(e){return e?new Intl.DateTimeFormat(Te(),{dateStyle:"short"}).format(new Date(e)):"?"}var gn=createRule({type:"dateAfter",validator:(e,t)=>i(e)&&i(t)?x(e)&&x(t)?T(e).getTime()>T(t).getTime()?true:{$valid:false,error:"date-not-after"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${w(e)}`});var bn=createRule({type:"dateBefore",validator:(e,t)=>i(e)&&i(t)?x(e)&&x(t)?T(e).getTime()<T(t).getTime()?true:{$valid:false,error:"date-not-before"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${w(e)}`});var wn=createRule({type:"dateBetween",validator:(e,t,r)=>x(e)&&x(t)&&x(r)?T(e).getTime()>T(t).getTime()&&T(e).getTime()<T(r).getTime():true,message:({$params:[e,t]})=>`The date must be between ${w(e)} and ${w(t)}`});function he(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 Wn=createRule({type:"ipAddress",validator(e){if(f(e))return true;if(typeof e!="string")return false;let t=e.split(".");return t.length===4&&t.every(he)},message:"The value is not a valid IP address"});var _n=createRule({type:"macAddress",validator(e,t=":"){if(f(e))return true;if(typeof e!="string")return false;let r=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return r!==null&&(r.length===6||r.length===8)&&r.every(we)},message:"The value is not a valid MAC Address"}),we=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var kn=createRule({type:"checked",validator:e=>i(e)?e===true:true,message:"This field must be checked"});var Sn=createRule({type:"contains",validator(e,t){return i(e)&&i(t)?e.includes(t):true},message({$params:[e]}){return `Field must contain ${e}`}});var Kn=createRule({type:"startsWith",validator(e,t){return i(e)&&i(t)?e.startsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var Hn=createRule({type:"endsWith",validator(e,t){return i(e)&&i(t)?e.endsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var jn=createRule({type:"regex",validator(e,t){if(i(e)){let r=Array.isArray(t)?t:[t];return g(e,...r)}return true},message:"This field does not match the required pattern"});function na(e){let t=computed(()=>toValue(e));return h(P((n,s)=>i(n)&&i(s,false)?s.includes(n):true,[t]),({$params:[n]})=>`Value should be one of those options: ${n.join(", ")}.`)}function Ee(e){let t=Object.keys(e).filter(n=>typeof e[e[n]]!="number"),r={};for(let n of t)r[n]=e[n];return Object.values(r)}function sa(e){let t=computed(()=>toValue(e));return h(P((n,s)=>i(n)&&!f(s)?Ee(s).includes(n):true,[t]),({$params:[n]})=>`Value should be one of those options: ${Object.values(n).join(", ")}.`)}function Ra(e){let t=computed(()=>toValue(e));return h(P((n,s)=>s===n,[t]),({$params:[n]})=>`Value should be ${n}.`)}export{or as alpha,mr as alphaNum,q as and,L as applyIf,yr as between,kn as checked,Sn as contains,gn as dateAfter,bn as dateBefore,wn as dateBetween,Tr as decimal,Mr as email,Hn as endsWith,Br as exactLength,qr as exactValue,D as getSize,Vr as integer,Wn as ipAddress,x as isDate,f as isEmpty,i as isFilled,y as isNumber,Ra as literal,_n as macAddress,g as matchRegex,Yt as maxLength,vr as maxValue,Nr as minLength,Or as minValue,sa as nativeEnum,B as not,Qr as numeric,na as oneOf,G as or,jn as regex,Jt as required,rr as requiredIf,en as requiredUnless,an as sameAs,Kn as startsWith,T as toDate,c as toNumber,un as url,E as withAsync,h as withMessage,P as withParams,_ as withTooltip};
@@ -957,5 +957,18 @@ function nativeEnum(enumLike) {
957
957
  );
958
958
  return rule;
959
959
  }
960
+ function literal(literal2) {
961
+ const params = computed(() => toValue(literal2));
962
+ const rule = withMessage(
963
+ withParams(
964
+ (value, literal3) => {
965
+ return literal3 === value;
966
+ },
967
+ [params]
968
+ ),
969
+ ({ $params: [literal3] }) => `Value should be ${literal3}.`
970
+ );
971
+ return rule;
972
+ }
960
973
 
961
- export { alpha, alphaNum, and, applyIf, between, checked, contains, dateAfter, dateBefore, dateBetween, decimal, email, endsWith, exactLength, exactValue, getSize, integer, ipAddress, isDate, isEmpty, isFilled, isNumber, macAddress, matchRegex, maxLength, maxValue, minLength, minValue, nativeEnum, not, numeric, oneOf, or, regex, required, requiredIf, requiredUnless, sameAs, startsWith, toDate, toNumber, url, withAsync, withMessage, withParams, withTooltip };
974
+ export { alpha, alphaNum, and, applyIf, between, checked, contains, dateAfter, dateBefore, dateBetween, decimal, email, endsWith, exactLength, exactValue, getSize, integer, ipAddress, isDate, isEmpty, isFilled, isNumber, literal, macAddress, matchRegex, maxLength, maxValue, minLength, minValue, nativeEnum, not, numeric, oneOf, or, regex, required, requiredIf, requiredUnless, sameAs, startsWith, toDate, toNumber, url, withAsync, withMessage, withParams, withTooltip };
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@regle/rules",
3
- "version": "1.0.7",
3
+ "version": "1.1.0-beta.1",
4
4
  "description": "Collection of rules and helpers for Regle",
5
5
  "dependencies": {
6
- "@regle/core": "1.0.7"
6
+ "@regle/core": "1.1.0-beta.1"
7
7
  },
8
8
  "devDependencies": {
9
9
  "@typescript-eslint/eslint-plugin": "8.28.0",
@@ -19,7 +19,7 @@
19
19
  "prettier": "3.3.3",
20
20
  "tsup": "8.4.0",
21
21
  "type-fest": "4.38.0",
22
- "typescript": "5.6.3",
22
+ "typescript": "5.8.2",
23
23
  "vitest": "3.0.9",
24
24
  "vue": "3.5.13",
25
25
  "vue-eslint-parser": "9.4.3",