@regle/rules 1.9.5 → 1.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/regle-rules.d.ts +1 -1
- package/dist/regle-rules.js +6 -12
- package/dist/regle-rules.min.js +1 -1
- package/package.json +9 -9
package/dist/regle-rules.d.ts
CHANGED
|
@@ -134,7 +134,7 @@ declare function getSize(value: MaybeRef<string | any[] | Record<string, any> |
|
|
|
134
134
|
*/
|
|
135
135
|
declare function toNumber<T extends number | string | undefined>(argument: T): number;
|
|
136
136
|
//#endregion
|
|
137
|
-
//#region ../../node_modules/.pnpm/type-fest@5.
|
|
137
|
+
//#region ../../node_modules/.pnpm/type-fest@5.1.0/node_modules/type-fest/source/empty-object.d.ts
|
|
138
138
|
declare const emptyObjectSymbol: unique symbol;
|
|
139
139
|
|
|
140
140
|
/**
|
package/dist/regle-rules.js
CHANGED
|
@@ -357,11 +357,9 @@ function and(...rules) {
|
|
|
357
357
|
}
|
|
358
358
|
let validator;
|
|
359
359
|
if (rules.length) validator = isAnyRuleAsync ? async (value, ...params) => {
|
|
360
|
-
|
|
361
|
-
return computeMetadata(results);
|
|
360
|
+
return computeMetadata(await Promise.all(computeRules(rules, value, ...params)));
|
|
362
361
|
} : (value, ...params) => {
|
|
363
|
-
|
|
364
|
-
return computeMetadata($rules);
|
|
362
|
+
return computeMetadata(computeRules(rules, value, ...params));
|
|
365
363
|
};
|
|
366
364
|
else validator = (_value) => {
|
|
367
365
|
return false;
|
|
@@ -424,11 +422,9 @@ function or(...rules) {
|
|
|
424
422
|
const newRule = createRule({
|
|
425
423
|
type: "or",
|
|
426
424
|
validator: isAnyRuleAsync ? async (value, ...params) => {
|
|
427
|
-
|
|
428
|
-
return computeMetadata(results);
|
|
425
|
+
return computeMetadata(await Promise.all(computeRules(rules, value, ...params)));
|
|
429
426
|
} : (value, ...params) => {
|
|
430
|
-
|
|
431
|
-
return computeMetadata($rules);
|
|
427
|
+
return computeMetadata(computeRules(rules, value, ...params));
|
|
432
428
|
},
|
|
433
429
|
message: "The value does not match any of the provided validators"
|
|
434
430
|
});
|
|
@@ -876,11 +872,10 @@ const ipv4Address = createRule({
|
|
|
876
872
|
* Allow only one possible literal value
|
|
877
873
|
*/
|
|
878
874
|
function literal(literal$1) {
|
|
879
|
-
const params = computed(() => toValue(literal$1));
|
|
880
875
|
return withMessage(withParams((value, literal$2) => {
|
|
881
876
|
if (isFilled(value) && isFilled(literal$2)) return literal$2 === value;
|
|
882
877
|
return true;
|
|
883
|
-
}, [
|
|
878
|
+
}, [computed(() => toValue(literal$1))]), ({ $params: [literal$2] }) => `Value should be ${literal$2}.`);
|
|
884
879
|
}
|
|
885
880
|
|
|
886
881
|
//#endregion
|
|
@@ -1020,11 +1015,10 @@ function getValidEnumValues(obj) {
|
|
|
1020
1015
|
* Validate against a native Typescript enum value.
|
|
1021
1016
|
*/
|
|
1022
1017
|
function nativeEnum(enumLike) {
|
|
1023
|
-
const params = computed(() => toValue(enumLike));
|
|
1024
1018
|
return withMessage(withParams((value, enumLike$1) => {
|
|
1025
1019
|
if (isFilled(value) && !isEmpty(enumLike$1)) return getValidEnumValues(enumLike$1).includes(value);
|
|
1026
1020
|
return true;
|
|
1027
|
-
}, [
|
|
1021
|
+
}, [computed(() => toValue(enumLike))]), ({ $params: [enumLike$1] }) => `The value should be one of those options: ${Object.values(enumLike$1).join(", ")}.`);
|
|
1028
1022
|
}
|
|
1029
1023
|
|
|
1030
1024
|
//#endregion
|
package/dist/regle-rules.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{InternalRuleType as e,createRule as t,unwrapRuleParameters as n}from"@regle/core";import{computed as r,toValue as i,unref as a}from"vue";function o(n,r){let i,a,o,s;typeof n==`function`&&!(`_validator`in n)?(i=e.Inline,a=n):{_type:i,validator:a,_active:o,_params:s}=n;let c=t({type:i,validator:a,active:o,message:r}),l=[...s??[]];if(c._params=l,c._message_patched=!0,typeof c==`function`){if(s!=null){let e=c(...l);return e._message_patched=!0,e}return c}else return c}function s(n,r){let i,a,o,s,c;typeof n==`function`&&!(`_validator`in n)?(i=e.Inline,a=n):{_type:i,validator:a,_active:o,_params:s,_message:c}=n;let l=t({type:i,validator:a,active:o,message:c,tooltip:r}),u=[...s??[]];if(l._params=u,l._tooltip_patched=!0,typeof l==`function`){let e=l(...u);return l._tooltip_patched=!0,e}else return l}function c(n,r){let i,a,o=[],s=``;typeof n==`function`?(a=async(e,...t)=>n(e,...t),o=[r]):({_type:i,_message:s}=n,o=o=n._params?.concat(r),a=async(...e)=>n.validator(e));let c=t({type:i??e.Async,validator:a,message:s,async:!0});return c._params=c._params?.concat(o),c(...r??[])}function l(n,r){let i,a,o=[],s=``;typeof n==`function`?(e.Inline,a=(e,...t)=>n(e,...t),o=[r]):({_type:i,validator:a,_message:s}=n,o=o=n._params?.concat(r));let c=t({type:e.Inline,validator:a,message:s});return c._params=c._params?.concat(o),c(...r)}function u(r,i){let a,o,s=[],c=``;typeof i==`function`?(a=e.Inline,o=i,s=[r]):({_type:a,validator:o,_message:c}=i,s=i._params?.concat([r]));function l(e,...t){let[i]=n([r]);return i?o(e,...t):!0}function u(){let[e]=n([r]);return e}let d=t({type:a,validator:l,active:u,message:c}),f=[...s??[]];return d._params=f,typeof d==`function`?d(...f):d}function d(e){return e?.constructor.name==`File`||e?.constructor.name==`FileList`}function f(e,t=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):d(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:typeof e==`object`&&e?Object.keys(e).length===0:!String(e).length}function p(e){if(f(e))return!1;try{let t=null;if(e instanceof Date)t=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 m(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]`||typeof e==`string`||t===`[object String]`?new Date(e):new Date(NaN)}function h(e,t=!0){return!f(typeof e==`string`?e.trim():e,t)}function g(e){return e==null?!1:typeof e==`number`?!isNaN(e):!1}function _(e,...t){if(f(e))return!0;let n=typeof e==`number`?e.toString():e;return t.every(e=>(e.lastIndex=0,e.test(n)))}function v(e){let t=a(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 y(e){return typeof e==`number`?e:e==null?NaN:typeof e==`string`&&e.trim()===e?+e:NaN}function b(...e){let n=e.some(e=>typeof e==`function`?e.constructor.name===`AsyncFunction`:e._async),r=e.map(e=>{if(typeof e==`function`)return null;{let t=e._params;return t?.length?t:[]}}).flat().filter(e=>!!e);function i(e,t,...n){let r=[],i=0;for(let a of e)if(typeof a==`function`)r.push(a(t)),i++;else{let e=a._params?.length??0;r.push(a.validator(t,...n.slice(i,e))),e&&(i+=e)}return r}function a(e){return e?.some(e=>typeof e!=`boolean`)?{$valid:e.every(e=>typeof e==`boolean`?!!e:e.$valid),...e.reduce((e,t)=>{if(typeof t==`boolean`)return e;let{$valid:n,...r}=t;return{...e,...r}},{})}:e.every(e=>!!e)}let o;o=e.length?n?async(t,...n)=>{let r=await Promise.all(i(e,t,...n));return a(r)}:(t,...n)=>{let r=i(e,t,...n);return a(r)}:e=>!1;let s=t({type:`and`,validator:o,message:`The value does not match all of the provided validators`}),c=[...r??[]];return s._params=c,typeof s==`function`?s(...c):s}function ee(...e){let n=e.some(e=>typeof e==`function`?e.constructor.name===`AsyncFunction`:e._async),r=e.map(e=>typeof e==`function`?null:e._params).flat().filter(e=>!!e);function i(e,t,...n){let r=[],i=0;for(let a of e)if(typeof a==`function`)r.push(a(t)),i++;else{let e=a._params?.length??0;r.push(a.validator(t,...n.slice(i,e))),e&&(i+=e)}return r}function a(e){return e.some(e=>typeof e!=`boolean`)?{$valid:e.some(e=>typeof e==`boolean`?!!e:e.$valid),...e.reduce((e,t)=>{if(typeof t==`boolean`)return e;let{$valid:n,...r}=t;return{...e,...r}},{})}:e.some(e=>!!e)}let o=t({type:`or`,validator:n?async(t,...n)=>{let r=await Promise.all(i(e,t,...n));return a(r)}:(t,...n)=>{let r=i(e,t,...n);return a(r)},message:`The value does not match any of the provided validators`}),s=[...r??[]];return o._params=s,typeof o==`function`?o(...s):o}function x(e,n){let r,i,a,o,s;typeof e==`function`?(i=e,s=e.constructor.name===`AsyncFunction`):({_type:r,validator:i,_params:o}=e,s=e._async),a=s?async(e,...t)=>h(e)?!await i(e,...t):!0:(e,...t)=>h(e)?!i(e,...t):!0;let c=t({type:`not`,validator:a,message:n??`Error`}),l=[...o??[]];return c._params=l,typeof c==`function`?c(...l):c}function S(e,t){return r(()=>i(e)?t:{})}const C=/^[a-zA-Z]*$/,w=/^[\w.]+$/,T=t({type:`alpha`,validator(e,t){return f(e)?!0:t?.allowSymbols?_(e,w):_(e,C)},message:`The value is not alphabetical`}),E=/^[a-zA-Z0-9]*$/,D=/^[a-zA-Z0-9_]*$/,O=t({type:`alphaNum`,validator(e,t){return f(e)?!0:t?.allowSymbols?_(e,D):_(e,E)},message:`The value must be alpha-numeric`}),k=t({type:`between`,validator:(e,t,n,r)=>{let{allowEqual:i=!0}=r??{};if(h(e)&&h(t)&&h(n)){let r=y(e),a=y(t),o=y(n);return g(r)&&g(a)&&g(o)?i?r>=a&&r<=o:r>a&&r<o:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${n}`),!1)}return!0},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`}),A=t({type:`boolean`,validator:e=>h(e)?typeof e==`boolean`:!0,message:`The value must be a native boolean`}),j=t({type:`checked`,validator:e=>h(e)?e===!0:!0,message:`The field must be checked`}),M=t({type:`contains`,validator(e,t){return h(e)&&h(t)?e.includes(t):!0},message({$params:[e]}){return`The value must contain ${e}`}}),N=t({type:`date`,validator:e=>h(e)?e instanceof Date:!0,message:`The value must be a native Date constructor`});function P(){return navigator.languages==null?navigator.language:navigator.languages[0]}function F(e){return e?new Intl.DateTimeFormat(P(),{dateStyle:`short`}).format(new Date(e)):`?`}const I=t({type:`dateAfter`,validator:(e,t,n)=>{let{allowEqual:r=!0}=n??{};return h(e)&&h(t)?p(e)&&p(t)?(r?m(e).getTime()>=m(t).getTime():m(e).getTime()>m(t).getTime())?!0:{$valid:!1,error:`date-not-after`}:{$valid:!1,error:`value-or-parameter-not-a-date`}:!0},message:({$params:[e],error:t})=>t===`value-or-parameter-not-a-date`?`The values must be dates`:`The date must be after ${F(e)}`}),L=t({type:`dateBefore`,validator:(e,t,n)=>{let{allowEqual:r=!0}=n??{};return h(e)&&h(t)?p(e)&&p(t)?(r?m(e).getTime()<=m(t).getTime():m(e).getTime()<m(t).getTime())?!0:{$valid:!1,error:`date-not-before`}:{$valid:!1,error:`value-or-parameter-not-a-date`}:!0},message:({$params:[e],error:t})=>t===`value-or-parameter-not-a-date`?`The values must be dates`:`The date must be before ${F(e)}`}),R=t({type:`dateBetween`,validator:(e,t,n,r)=>{let{allowEqual:i=!0}=r??{};return p(e)&&p(t)&&p(n)?i?m(e).getTime()>=m(t).getTime()&&m(e).getTime()<=m(n).getTime():m(e).getTime()>m(t).getTime()&&m(e).getTime()<m(n).getTime():!0},message:({$params:[e,t]})=>`The date must be between ${F(e)} and ${F(t)}`}),z=/^[-]?\d*(\.\d+)?$/,B=t({type:`decimal`,validator(e){return f(e)?!0:_(e,z)},message:`The value must be decimal`}),V=/^(?:[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,H=t({type:`email`,validator(e){return f(e)?!0:_(e,V)},message:`The value must be an valid email address`}),U=t({type:`endsWith`,validator(e,t){return h(e)&&h(t)?e.endsWith(t):!0},message({$params:[e]}){return`The value must end with ${e}`}}),W=t({type:`exactLength`,validator:(e,t)=>h(e,!1)&&h(t)?g(t)?v(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:({$params:[e]})=>`The value should be exactly ${e} characters long`}),te=t({type:`exactValue`,validator:(e,t)=>h(e)&&h(t)?g(t)&&!isNaN(y(e))?y(e)===t:(console.warn(`[exactValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:({$params:[e]})=>`The value must be equal to ${e}`}),G=/^[a-fA-F0-9]*$/,K=t({type:`hexadecimal`,validator(e){return f(e)?!0:_(e,G)},message:`The value must be hexadecimal`}),q=/(^[0-9]*$)|(^-[0-9]+$)/,J=t({type:`integer`,validator(e){return f(e)?!0:_(e,q)},message:`The value must be an integer`});function Y(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}const X=t({type:`ipv4Address`,validator(e){if(f(e))return!0;if(typeof e!=`string`)return!1;let t=e.split(`.`);return t.length===4&&t.every(Y)},message:`The value is not a valid IPv4 address`});function Z(e){let t=r(()=>i(e));return o(l((e,t)=>h(e)&&h(t)?t===e:!0,[t]),({$params:[e]})=>`Value should be ${e}.`)}const Q=t({type:`macAddress`,validator(e,t=`:`){if(f(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(ne)},message:`The value is not a valid MAC Address`}),ne=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/),re=t({type:`maxLength`,validator:(e,t,n)=>{let{allowEqual:r=!0}=n??{};return h(e,!1)&&h(t)?g(t)?r?v(e)<=t:v(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 value length should not exceed ${t}`}),ie=t({type:`maxValue`,validator:(e,t,n)=>{let{allowEqual:r=!0}=n??{};return h(e)&&h(t)?!isNaN(y(e))&&!isNaN(y(t))?r?y(e)<=y(t):y(e)<y(t):(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0},message:({$params:[e,t]})=>{let{allowEqual:n=!0}=t??{};return n?`The value must be less than or equal to ${e}`:`The value must be less than ${e}`}}),ae=t({type:`minLength`,validator:(e,t,n)=>{let{allowEqual:r=!0}=n??{};return h(e,!1)&&h(t)?g(t)?r?v(e)>=t:v(e)>t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0},message:({$value:e,$params:[t]})=>Array.isArray(e)?`The list should have at least ${t} items`:`The value length should be at least ${t}`}),oe=t({type:`minValue`,validator:(e,t,n)=>{let{allowEqual:r=!0}=n??{};return h(e)&&h(t)?!isNaN(y(e))&&!isNaN(y(t))?r?y(e)>=y(t):y(e)>y(t):(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0},message:({$params:[e,t]})=>{let{allowEqual:n=!0}=t??{};return n?`The value must be greater than or equal to ${e}`:`The value must be greater than ${e}`}});function se(e){let t=Object.keys(e).filter(t=>typeof e[e[t]]!=`number`),n={};for(let r of t)n[r]=e[r];return Object.values(n)}function ce(e){let t=r(()=>i(e));return o(l((e,t)=>h(e)&&!f(t)?se(t).includes(e):!0,[t]),({$params:[e]})=>`The value should be one of those options: ${Object.values(e).join(`, `)}.`)}const le=t({type:`number`,validator:e=>h(e)?g(e):!0,message:`The value must be a native number`}),ue=/^\d*(\.\d+)?$/,de=t({type:`numeric`,validator(e){return f(e)?!0:_(e,ue)},message:`The value must be numeric`}),fe=t({type:`oneOf`,validator(e,t){return h(e)&&h(t,!1)?t.includes(e):!0},message:({$params:[e]})=>`The value should be one of those options: ${e.join(`, `)}.`}),pe=t({type:`regex`,validator(e,t){return h(e)?_(e,...Array.isArray(t)?t:[t]):!0},message:`The value does not match the required pattern`}),$=t({type:`required`,validator:e=>h(e),message:`This field is required`}),me=t({type:`required`,validator(e,t){return t?h(e):!0},message:`This field is required`,active({$params:[e]}){return e}}),he=t({type:`required`,validator(e,t){return t?!0:h(e)},message:`This field is required`,active({$params:[e]}){return!e}}),ge=t({type:`sameAs`,validator(e,t,n){return f(e)?!0:e===t},message({$params:[e,t=`other`]}){return`The value must be equal to the ${t} value`}}),_e=t({type:`startsWith`,validator(e,t){return h(e)&&h(t)?e.startsWith(t):!0},message({$params:[e]}){return`The value must end with ${e}`}}),ve=t({type:`string`,validator:e=>h(e)?typeof e==`string`:!0,message:`The value must be a string`});function ye(){return(()=>!0)}const be=/^(?:(?:(?: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,xe=t({type:`url`,validator(e){return f(e)?!0:_(e,be)},message:`The value is not a valid URL address`});export{T as alpha,O as alphaNum,b as and,u as applyIf,S as assignIf,k as between,A as boolean,j as checked,M as contains,N as date,I as dateAfter,L as dateBefore,R as dateBetween,B as decimal,H as email,U as endsWith,W as exactLength,te as exactValue,v as getSize,K as hexadecimal,J as integer,X as ipv4Address,p as isDate,f as isEmpty,h as isFilled,g as isNumber,Z as literal,Q as macAddress,_ as matchRegex,re as maxLength,ie as maxValue,ae as minLength,oe as minValue,ce as nativeEnum,x as not,le as number,de as numeric,fe as oneOf,ee as or,pe as regex,$ as required,me as requiredIf,he as requiredUnless,ge as sameAs,_e as startsWith,ve as string,m as toDate,y as toNumber,ye as type,xe as url,c as withAsync,o as withMessage,l as withParams,s as withTooltip};
|
|
1
|
+
import{InternalRuleType as e,createRule as t,unwrapRuleParameters as n}from"@regle/core";import{computed as r,toValue as i,unref as a}from"vue";function o(n,r){let i,a,o,s;typeof n==`function`&&!(`_validator`in n)?(i=e.Inline,a=n):{_type:i,validator:a,_active:o,_params:s}=n;let c=t({type:i,validator:a,active:o,message:r}),l=[...s??[]];if(c._params=l,c._message_patched=!0,typeof c==`function`){if(s!=null){let e=c(...l);return e._message_patched=!0,e}return c}else return c}function s(n,r){let i,a,o,s,c;typeof n==`function`&&!(`_validator`in n)?(i=e.Inline,a=n):{_type:i,validator:a,_active:o,_params:s,_message:c}=n;let l=t({type:i,validator:a,active:o,message:c,tooltip:r}),u=[...s??[]];if(l._params=u,l._tooltip_patched=!0,typeof l==`function`){let e=l(...u);return l._tooltip_patched=!0,e}else return l}function c(n,r){let i,a,o=[],s=``;typeof n==`function`?(a=async(e,...t)=>n(e,...t),o=[r]):({_type:i,_message:s}=n,o=o=n._params?.concat(r),a=async(...e)=>n.validator(e));let c=t({type:i??e.Async,validator:a,message:s,async:!0});return c._params=c._params?.concat(o),c(...r??[])}function l(n,r){let i,a,o=[],s=``;typeof n==`function`?(e.Inline,a=(e,...t)=>n(e,...t),o=[r]):({_type:i,validator:a,_message:s}=n,o=o=n._params?.concat(r));let c=t({type:e.Inline,validator:a,message:s});return c._params=c._params?.concat(o),c(...r)}function u(r,i){let a,o,s=[],c=``;typeof i==`function`?(a=e.Inline,o=i,s=[r]):({_type:a,validator:o,_message:c}=i,s=i._params?.concat([r]));function l(e,...t){let[i]=n([r]);return i?o(e,...t):!0}function u(){let[e]=n([r]);return e}let d=t({type:a,validator:l,active:u,message:c}),f=[...s??[]];return d._params=f,typeof d==`function`?d(...f):d}function d(e){return e?.constructor.name==`File`||e?.constructor.name==`FileList`}function f(e,t=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):d(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:typeof e==`object`&&e?Object.keys(e).length===0:!String(e).length}function p(e){if(f(e))return!1;try{let t=null;if(e instanceof Date)t=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 m(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]`||typeof e==`string`||t===`[object String]`?new Date(e):new Date(NaN)}function h(e,t=!0){return!f(typeof e==`string`?e.trim():e,t)}function g(e){return e==null?!1:typeof e==`number`?!isNaN(e):!1}function _(e,...t){if(f(e))return!0;let n=typeof e==`number`?e.toString():e;return t.every(e=>(e.lastIndex=0,e.test(n)))}function v(e){let t=a(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 y(e){return typeof e==`number`?e:e==null?NaN:typeof e==`string`&&e.trim()===e?+e:NaN}function b(...e){let n=e.some(e=>typeof e==`function`?e.constructor.name===`AsyncFunction`:e._async),r=e.map(e=>{if(typeof e==`function`)return null;{let t=e._params;return t?.length?t:[]}}).flat().filter(e=>!!e);function i(e,t,...n){let r=[],i=0;for(let a of e)if(typeof a==`function`)r.push(a(t)),i++;else{let e=a._params?.length??0;r.push(a.validator(t,...n.slice(i,e))),e&&(i+=e)}return r}function a(e){return e?.some(e=>typeof e!=`boolean`)?{$valid:e.every(e=>typeof e==`boolean`?!!e:e.$valid),...e.reduce((e,t)=>{if(typeof t==`boolean`)return e;let{$valid:n,...r}=t;return{...e,...r}},{})}:e.every(e=>!!e)}let o;o=e.length?n?async(t,...n)=>a(await Promise.all(i(e,t,...n))):(t,...n)=>a(i(e,t,...n)):e=>!1;let s=t({type:`and`,validator:o,message:`The value does not match all of the provided validators`}),c=[...r??[]];return s._params=c,typeof s==`function`?s(...c):s}function ee(...e){let n=e.some(e=>typeof e==`function`?e.constructor.name===`AsyncFunction`:e._async),r=e.map(e=>typeof e==`function`?null:e._params).flat().filter(e=>!!e);function i(e,t,...n){let r=[],i=0;for(let a of e)if(typeof a==`function`)r.push(a(t)),i++;else{let e=a._params?.length??0;r.push(a.validator(t,...n.slice(i,e))),e&&(i+=e)}return r}function a(e){return e.some(e=>typeof e!=`boolean`)?{$valid:e.some(e=>typeof e==`boolean`?!!e:e.$valid),...e.reduce((e,t)=>{if(typeof t==`boolean`)return e;let{$valid:n,...r}=t;return{...e,...r}},{})}:e.some(e=>!!e)}let o=t({type:`or`,validator:n?async(t,...n)=>a(await Promise.all(i(e,t,...n))):(t,...n)=>a(i(e,t,...n)),message:`The value does not match any of the provided validators`}),s=[...r??[]];return o._params=s,typeof o==`function`?o(...s):o}function x(e,n){let r,i,a,o,s;typeof e==`function`?(i=e,s=e.constructor.name===`AsyncFunction`):({_type:r,validator:i,_params:o}=e,s=e._async),a=s?async(e,...t)=>h(e)?!await i(e,...t):!0:(e,...t)=>h(e)?!i(e,...t):!0;let c=t({type:`not`,validator:a,message:n??`Error`}),l=[...o??[]];return c._params=l,typeof c==`function`?c(...l):c}function S(e,t){return r(()=>i(e)?t:{})}const C=/^[a-zA-Z]*$/,w=/^[\w.]+$/,T=t({type:`alpha`,validator(e,t){return f(e)?!0:t?.allowSymbols?_(e,w):_(e,C)},message:`The value is not alphabetical`}),E=/^[a-zA-Z0-9]*$/,D=/^[a-zA-Z0-9_]*$/,O=t({type:`alphaNum`,validator(e,t){return f(e)?!0:t?.allowSymbols?_(e,D):_(e,E)},message:`The value must be alpha-numeric`}),k=t({type:`between`,validator:(e,t,n,r)=>{let{allowEqual:i=!0}=r??{};if(h(e)&&h(t)&&h(n)){let r=y(e),a=y(t),o=y(n);return g(r)&&g(a)&&g(o)?i?r>=a&&r<=o:r>a&&r<o:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${n}`),!1)}return!0},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`}),A=t({type:`boolean`,validator:e=>h(e)?typeof e==`boolean`:!0,message:`The value must be a native boolean`}),j=t({type:`checked`,validator:e=>h(e)?e===!0:!0,message:`The field must be checked`}),M=t({type:`contains`,validator(e,t){return h(e)&&h(t)?e.includes(t):!0},message({$params:[e]}){return`The value must contain ${e}`}}),N=t({type:`date`,validator:e=>h(e)?e instanceof Date:!0,message:`The value must be a native Date constructor`});function P(){return navigator.languages==null?navigator.language:navigator.languages[0]}function F(e){return e?new Intl.DateTimeFormat(P(),{dateStyle:`short`}).format(new Date(e)):`?`}const I=t({type:`dateAfter`,validator:(e,t,n)=>{let{allowEqual:r=!0}=n??{};return h(e)&&h(t)?p(e)&&p(t)?(r?m(e).getTime()>=m(t).getTime():m(e).getTime()>m(t).getTime())?!0:{$valid:!1,error:`date-not-after`}:{$valid:!1,error:`value-or-parameter-not-a-date`}:!0},message:({$params:[e],error:t})=>t===`value-or-parameter-not-a-date`?`The values must be dates`:`The date must be after ${F(e)}`}),L=t({type:`dateBefore`,validator:(e,t,n)=>{let{allowEqual:r=!0}=n??{};return h(e)&&h(t)?p(e)&&p(t)?(r?m(e).getTime()<=m(t).getTime():m(e).getTime()<m(t).getTime())?!0:{$valid:!1,error:`date-not-before`}:{$valid:!1,error:`value-or-parameter-not-a-date`}:!0},message:({$params:[e],error:t})=>t===`value-or-parameter-not-a-date`?`The values must be dates`:`The date must be before ${F(e)}`}),R=t({type:`dateBetween`,validator:(e,t,n,r)=>{let{allowEqual:i=!0}=r??{};return p(e)&&p(t)&&p(n)?i?m(e).getTime()>=m(t).getTime()&&m(e).getTime()<=m(n).getTime():m(e).getTime()>m(t).getTime()&&m(e).getTime()<m(n).getTime():!0},message:({$params:[e,t]})=>`The date must be between ${F(e)} and ${F(t)}`}),z=/^[-]?\d*(\.\d+)?$/,B=t({type:`decimal`,validator(e){return f(e)?!0:_(e,z)},message:`The value must be decimal`}),V=/^(?:[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,H=t({type:`email`,validator(e){return f(e)?!0:_(e,V)},message:`The value must be an valid email address`}),U=t({type:`endsWith`,validator(e,t){return h(e)&&h(t)?e.endsWith(t):!0},message({$params:[e]}){return`The value must end with ${e}`}}),W=t({type:`exactLength`,validator:(e,t)=>h(e,!1)&&h(t)?g(t)?v(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:({$params:[e]})=>`The value should be exactly ${e} characters long`}),te=t({type:`exactValue`,validator:(e,t)=>h(e)&&h(t)?g(t)&&!isNaN(y(e))?y(e)===t:(console.warn(`[exactValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:({$params:[e]})=>`The value must be equal to ${e}`}),G=/^[a-fA-F0-9]*$/,K=t({type:`hexadecimal`,validator(e){return f(e)?!0:_(e,G)},message:`The value must be hexadecimal`}),q=/(^[0-9]*$)|(^-[0-9]+$)/,J=t({type:`integer`,validator(e){return f(e)?!0:_(e,q)},message:`The value must be an integer`});function Y(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}const X=t({type:`ipv4Address`,validator(e){if(f(e))return!0;if(typeof e!=`string`)return!1;let t=e.split(`.`);return t.length===4&&t.every(Y)},message:`The value is not a valid IPv4 address`});function Z(e){return o(l((e,t)=>h(e)&&h(t)?t===e:!0,[r(()=>i(e))]),({$params:[e]})=>`Value should be ${e}.`)}const Q=t({type:`macAddress`,validator(e,t=`:`){if(f(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(ne)},message:`The value is not a valid MAC Address`}),ne=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/),re=t({type:`maxLength`,validator:(e,t,n)=>{let{allowEqual:r=!0}=n??{};return h(e,!1)&&h(t)?g(t)?r?v(e)<=t:v(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 value length should not exceed ${t}`}),ie=t({type:`maxValue`,validator:(e,t,n)=>{let{allowEqual:r=!0}=n??{};return h(e)&&h(t)?!isNaN(y(e))&&!isNaN(y(t))?r?y(e)<=y(t):y(e)<y(t):(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0},message:({$params:[e,t]})=>{let{allowEqual:n=!0}=t??{};return n?`The value must be less than or equal to ${e}`:`The value must be less than ${e}`}}),ae=t({type:`minLength`,validator:(e,t,n)=>{let{allowEqual:r=!0}=n??{};return h(e,!1)&&h(t)?g(t)?r?v(e)>=t:v(e)>t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0},message:({$value:e,$params:[t]})=>Array.isArray(e)?`The list should have at least ${t} items`:`The value length should be at least ${t}`}),oe=t({type:`minValue`,validator:(e,t,n)=>{let{allowEqual:r=!0}=n??{};return h(e)&&h(t)?!isNaN(y(e))&&!isNaN(y(t))?r?y(e)>=y(t):y(e)>y(t):(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0},message:({$params:[e,t]})=>{let{allowEqual:n=!0}=t??{};return n?`The value must be greater than or equal to ${e}`:`The value must be greater than ${e}`}});function se(e){let t=Object.keys(e).filter(t=>typeof e[e[t]]!=`number`),n={};for(let r of t)n[r]=e[r];return Object.values(n)}function ce(e){return o(l((e,t)=>h(e)&&!f(t)?se(t).includes(e):!0,[r(()=>i(e))]),({$params:[e]})=>`The value should be one of those options: ${Object.values(e).join(`, `)}.`)}const le=t({type:`number`,validator:e=>h(e)?g(e):!0,message:`The value must be a native number`}),ue=/^\d*(\.\d+)?$/,de=t({type:`numeric`,validator(e){return f(e)?!0:_(e,ue)},message:`The value must be numeric`}),fe=t({type:`oneOf`,validator(e,t){return h(e)&&h(t,!1)?t.includes(e):!0},message:({$params:[e]})=>`The value should be one of those options: ${e.join(`, `)}.`}),pe=t({type:`regex`,validator(e,t){return h(e)?_(e,...Array.isArray(t)?t:[t]):!0},message:`The value does not match the required pattern`}),$=t({type:`required`,validator:e=>h(e),message:`This field is required`}),me=t({type:`required`,validator(e,t){return t?h(e):!0},message:`This field is required`,active({$params:[e]}){return e}}),he=t({type:`required`,validator(e,t){return t?!0:h(e)},message:`This field is required`,active({$params:[e]}){return!e}}),ge=t({type:`sameAs`,validator(e,t,n){return f(e)?!0:e===t},message({$params:[e,t=`other`]}){return`The value must be equal to the ${t} value`}}),_e=t({type:`startsWith`,validator(e,t){return h(e)&&h(t)?e.startsWith(t):!0},message({$params:[e]}){return`The value must end with ${e}`}}),ve=t({type:`string`,validator:e=>h(e)?typeof e==`string`:!0,message:`The value must be a string`});function ye(){return(()=>!0)}const be=/^(?:(?:(?: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,xe=t({type:`url`,validator(e){return f(e)?!0:_(e,be)},message:`The value is not a valid URL address`});export{T as alpha,O as alphaNum,b as and,u as applyIf,S as assignIf,k as between,A as boolean,j as checked,M as contains,N as date,I as dateAfter,L as dateBefore,R as dateBetween,B as decimal,H as email,U as endsWith,W as exactLength,te as exactValue,v as getSize,K as hexadecimal,J as integer,X as ipv4Address,p as isDate,f as isEmpty,h as isFilled,g as isNumber,Z as literal,Q as macAddress,_ as matchRegex,re as maxLength,ie as maxValue,ae as minLength,oe as minValue,ce as nativeEnum,x as not,le as number,de as numeric,fe as oneOf,ee as or,pe as regex,$ as required,me as requiredIf,he as requiredUnless,ge as sameAs,_e as startsWith,ve as string,m as toDate,y as toNumber,ye as type,xe as url,c as withAsync,o as withMessage,l as withParams,s as withTooltip};
|
package/package.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@regle/rules",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.7",
|
|
4
4
|
"description": "Collection of rules and helpers for Regle",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@regle/core": "1.9.
|
|
6
|
+
"@regle/core": "1.9.7"
|
|
7
7
|
},
|
|
8
8
|
"devDependencies": {
|
|
9
|
-
"@types/node": "22.
|
|
10
|
-
"@vue/reactivity": "3.5.
|
|
9
|
+
"@types/node": "22.18.10",
|
|
10
|
+
"@vue/reactivity": "3.5.22",
|
|
11
11
|
"@vue/test-utils": "2.4.6",
|
|
12
12
|
"prettier": "3.6.2",
|
|
13
|
-
"tsdown": "0.15.
|
|
14
|
-
"type-fest": "5.
|
|
15
|
-
"typescript": "5.9.
|
|
13
|
+
"tsdown": "0.15.7",
|
|
14
|
+
"type-fest": "5.1.0",
|
|
15
|
+
"typescript": "5.9.3",
|
|
16
16
|
"vitest": "3.2.4",
|
|
17
|
-
"vue": "3.5.
|
|
18
|
-
"vue-tsc": "3.0.
|
|
17
|
+
"vue": "3.5.22",
|
|
18
|
+
"vue-tsc": "3.0.9"
|
|
19
19
|
},
|
|
20
20
|
"type": "module",
|
|
21
21
|
"exports": {
|