@regle/rules 0.5.11 → 0.5.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/regle-rules.cjs +38 -40
- package/dist/regle-rules.d.cts +10 -10
- package/dist/regle-rules.d.ts +10 -10
- package/dist/regle-rules.min.cjs +1 -1
- package/dist/regle-rules.min.mjs +1 -1
- package/dist/regle-rules.mjs +38 -40
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ It's heavily inspired by Vuelidate.
|
|
|
20
20
|
| [](https://stackblitz.com/~/github.com/victorgarciaesgi/regle-examples/tree/main/examples/simple-example?file=examples/simple-example/src/App.vue&configPath=examples/simple-example) | [](https://stackblitz.com/~/github.com/victorgarciaesgi/regle-examples/tree/main/examples/advanced-example?file=examples/advanced-example/src/App.vue&configPath=examples/advanced-example) |
|
|
21
21
|
|
|
22
22
|
## 🧰 Features
|
|
23
|
-
-
|
|
23
|
+
- ✅ 100% type inference
|
|
24
24
|
- 📖 Model based validation
|
|
25
25
|
- 🛒 Collection validation
|
|
26
26
|
- 🪗 Extensible
|
package/dist/regle-rules.cjs
CHANGED
|
@@ -144,6 +144,44 @@ function isEmpty(value) {
|
|
|
144
144
|
return !String(value).length;
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
+
// ../shared/utils/isDate.ts
|
|
148
|
+
function isDate(value) {
|
|
149
|
+
if (isEmpty(value)) {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
try {
|
|
153
|
+
let possibleDate = null;
|
|
154
|
+
if (value instanceof Date) {
|
|
155
|
+
possibleDate = value;
|
|
156
|
+
} else if (typeof value === "string") {
|
|
157
|
+
const date = new Date(value);
|
|
158
|
+
if (date.toString() === "Invalid Date") {
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
possibleDate = date;
|
|
162
|
+
}
|
|
163
|
+
return !!possibleDate;
|
|
164
|
+
} catch (e) {
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// ../shared/utils/toDate.ts
|
|
170
|
+
function toDate(argument) {
|
|
171
|
+
const argStr = Object.prototype.toString.call(argument);
|
|
172
|
+
if (argument == null) {
|
|
173
|
+
return /* @__PURE__ */ new Date(NaN);
|
|
174
|
+
} else if (argument instanceof Date || typeof argument === "object" && argStr === "[object Date]") {
|
|
175
|
+
return new Date(argument.getTime());
|
|
176
|
+
} else if (typeof argument === "number" || argStr === "[object Number]") {
|
|
177
|
+
return new Date(argument);
|
|
178
|
+
} else if (typeof argument === "string" || argStr === "[object String]") {
|
|
179
|
+
return new Date(argument);
|
|
180
|
+
} else {
|
|
181
|
+
return /* @__PURE__ */ new Date(NaN);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
147
185
|
// src/helpers/ruleHelpers/isFilled.ts
|
|
148
186
|
function isFilled(value) {
|
|
149
187
|
return !isEmpty(typeof value === "string" ? value.trim() : value);
|
|
@@ -187,46 +225,6 @@ function getSize(value) {
|
|
|
187
225
|
return String(_value).length;
|
|
188
226
|
}
|
|
189
227
|
|
|
190
|
-
// src/helpers/ruleHelpers/isDate.ts
|
|
191
|
-
function isDate(value) {
|
|
192
|
-
if (isEmpty(value)) {
|
|
193
|
-
return false;
|
|
194
|
-
}
|
|
195
|
-
try {
|
|
196
|
-
let possibleDate = null;
|
|
197
|
-
if (value instanceof Date) {
|
|
198
|
-
possibleDate = value;
|
|
199
|
-
} else if (typeof value === "number" && !isNaN(value)) {
|
|
200
|
-
possibleDate = new Date(value);
|
|
201
|
-
} else if (typeof value === "string") {
|
|
202
|
-
const date = new Date(value);
|
|
203
|
-
if (date.toString() === "Invalid Date") {
|
|
204
|
-
return false;
|
|
205
|
-
}
|
|
206
|
-
possibleDate = date;
|
|
207
|
-
}
|
|
208
|
-
return !!possibleDate;
|
|
209
|
-
} catch (e) {
|
|
210
|
-
return false;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
// src/helpers/ruleHelpers/toDate.ts
|
|
215
|
-
function toDate(argument) {
|
|
216
|
-
const argStr = Object.prototype.toString.call(argument);
|
|
217
|
-
if (argument == null) {
|
|
218
|
-
return /* @__PURE__ */ new Date(NaN);
|
|
219
|
-
} else if (argument instanceof Date || typeof argument === "object" && argStr === "[object Date]") {
|
|
220
|
-
return new Date(argument.getTime());
|
|
221
|
-
} else if (typeof argument === "number" || argStr === "[object Number]") {
|
|
222
|
-
return new Date(argument);
|
|
223
|
-
} else if (typeof argument === "string" || argStr === "[object String]") {
|
|
224
|
-
return new Date(argument);
|
|
225
|
-
} else {
|
|
226
|
-
return /* @__PURE__ */ new Date(NaN);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
|
|
230
228
|
// src/helpers/ruleHelpers/toNumber.ts
|
|
231
229
|
function toNumber(argument) {
|
|
232
230
|
if (typeof argument === "number") {
|
package/dist/regle-rules.d.cts
CHANGED
|
@@ -98,16 +98,6 @@ declare function matchRegex(_value: string | number | null | undefined, ...expr:
|
|
|
98
98
|
*/
|
|
99
99
|
declare function getSize(value: MaybeRef<string | any[] | Record<string, any> | number>): number;
|
|
100
100
|
|
|
101
|
-
/**
|
|
102
|
-
* This is a useful helper that can check if the provided value is a Date, it is used internally for date rules. This can also check strings.
|
|
103
|
-
*/
|
|
104
|
-
declare function isDate(value: unknown): value is Date;
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* This utility will coerce any string, number or Date value into a Date using the Date constructor.
|
|
108
|
-
*/
|
|
109
|
-
declare function toDate(argument: Maybe<Date | number | string>): Date;
|
|
110
|
-
|
|
111
101
|
/**
|
|
112
102
|
* This utility converts any string (or number) into a number using the Number constructor.
|
|
113
103
|
*
|
|
@@ -159,6 +149,16 @@ type EmptyObject$1 = {[emptyObjectSymbol$1]?: never};
|
|
|
159
149
|
*/
|
|
160
150
|
declare function isEmpty(value: unknown): value is null | undefined | [] | EmptyObject$1;
|
|
161
151
|
|
|
152
|
+
/**
|
|
153
|
+
* This is a useful helper that can check if the provided value is a Date, it is used internally for date rules. This can also check strings.
|
|
154
|
+
*/
|
|
155
|
+
declare function isDate(value: unknown): value is Date;
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* This utility will coerce any string, number or Date value into a Date using the Date constructor.
|
|
159
|
+
*/
|
|
160
|
+
declare function toDate(argument: Maybe<Date | number | string>): Date;
|
|
161
|
+
|
|
162
162
|
declare global {
|
|
163
163
|
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
|
|
164
164
|
interface SymbolConstructor {
|
package/dist/regle-rules.d.ts
CHANGED
|
@@ -98,16 +98,6 @@ declare function matchRegex(_value: string | number | null | undefined, ...expr:
|
|
|
98
98
|
*/
|
|
99
99
|
declare function getSize(value: MaybeRef<string | any[] | Record<string, any> | number>): number;
|
|
100
100
|
|
|
101
|
-
/**
|
|
102
|
-
* This is a useful helper that can check if the provided value is a Date, it is used internally for date rules. This can also check strings.
|
|
103
|
-
*/
|
|
104
|
-
declare function isDate(value: unknown): value is Date;
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* This utility will coerce any string, number or Date value into a Date using the Date constructor.
|
|
108
|
-
*/
|
|
109
|
-
declare function toDate(argument: Maybe<Date | number | string>): Date;
|
|
110
|
-
|
|
111
101
|
/**
|
|
112
102
|
* This utility converts any string (or number) into a number using the Number constructor.
|
|
113
103
|
*
|
|
@@ -159,6 +149,16 @@ type EmptyObject$1 = {[emptyObjectSymbol$1]?: never};
|
|
|
159
149
|
*/
|
|
160
150
|
declare function isEmpty(value: unknown): value is null | undefined | [] | EmptyObject$1;
|
|
161
151
|
|
|
152
|
+
/**
|
|
153
|
+
* This is a useful helper that can check if the provided value is a Date, it is used internally for date rules. This can also check strings.
|
|
154
|
+
*/
|
|
155
|
+
declare function isDate(value: unknown): value is Date;
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* This utility will coerce any string, number or Date value into a Date using the Date constructor.
|
|
159
|
+
*/
|
|
160
|
+
declare function toDate(argument: Maybe<Date | number | string>): Date;
|
|
161
|
+
|
|
162
162
|
declare global {
|
|
163
163
|
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
|
|
164
164
|
interface SymbolConstructor {
|
package/dist/regle-rules.min.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var core=require('@regle/core'),vue=require('vue');function P(e,t){let i,n,s,m;typeof e=="function"&&!("_validator"in e)?(i=core.InternalRuleType.Inline,n=e):{_type:i,validator:n,_active:s,_params:m}=e;let f=core.createRule({type:i,validator:n,active:s,message:t}),R=[...m??[]];if(f._params=R,f._message_patched=!0,typeof f=="function"){let r=f(...R);return r._message_patched=!0,r}else return f}function F(e,t){let i,n,s,m,f;typeof e=="function"&&!("_validator"in e)?(i=core.InternalRuleType.Inline,n=e):{_type:i,validator:n,_active:s,_params:m,_message:f}=e;let R=core.createRule({type:i,validator:n,active:s,message:f,tooltip:t}),r=[...m??[]];if(R._params=r,R._tooltip_patched=!0,typeof R=="function"){let l=R(...r);return R._tooltip_patched=!0,l}else return R}function I(e,t){let i=async(s,...m)=>e(s,...m),n=core.createRule({type:core.InternalRuleType.Async,validator:i,message:""});return n._params=n._params?.concat(t),n(...t??[])}function w(e,t){let i=(s,...m)=>e(s,...m),n=core.createRule({type:core.InternalRuleType.Inline,validator:i,message:""});return n._params=n._params?.concat(t),n(...t)}function L(e,t){let i,n,s=[],m="";typeof t=="function"?(i=core.InternalRuleType.Inline,n=t,s=[e]):({_type:i,validator:n,_message:m}=t,s=t._params?.concat([e]));function f(o,...p){let[x]=core.unwrapRuleParameters([e]);return x?n(o,...p):!0}function R(o){let[p]=core.unwrapRuleParameters([e]);return p}let r=core.createRule({type:i,validator:f,active:R,message:m}),l=[...s??[]];if(r._params=l,typeof r=="function"){let o=r(...l);return o._message_patched=!0,o}else return r}function u(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function a(e){return !u(typeof e=="string"?e.trim():e)}function y(e){return e==null||typeof e!="number"?!1:!isNaN(e)}function g(e,...t){if(u(e))return !0;let i=typeof e=="number"?e.toString():e;return t.every(n=>(n.lastIndex=0,n.test(i)))}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 T(e){if(u(e))return !1;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="number"&&!isNaN(e))t=new Date(e);else if(typeof e=="string"){let i=new Date(e);if(i.toString()==="Invalid Date")return !1;t=i;}return !!t}catch{return !1}}function b(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 c(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}function U(...e){let t=e.some(r=>typeof r=="function"?r.constructor.name==="AsyncFunction":r._async),i=e.map(r=>{if(typeof r=="function")return null;{let l=r._params;return l?.length?l:[]}}).flat().filter(r=>!!r);function n(r,l,...o){let p=[],x=0;for(let d of r)if(typeof d=="function")p.push(d(l)),x++;else {let M=d._params?.length??0;p.push(d.validator(l,...o.slice(x,M))),M&&(x+=M);}return p}function s(r){return r?.some(o=>typeof o!="boolean")?{$valid:r.every(o=>typeof o=="boolean"?!!o:o.$valid),...r.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:x,...d}=p;return {...o,...d}},{})}:r.every(o=>!!o)}let m;e.length?m=t?async(r,...l)=>{let o=await Promise.all(n(e,r,...l));return s(o)}:(r,...l)=>{let o=n(e,r,...l);return s(o)}:m=r=>!1;let f=core.createRule({type:"and",validator:m,message:"The value does not match all of the provided validators"}),R=[...i??[]];if(f._params=R,typeof f=="function"){let r=f(...R);return r._message_patched=!0,r}else return f}function q(...e){let t=e.some(r=>typeof r=="function"?r.constructor.name==="AsyncFunction":r._async),i=e.map(r=>typeof r=="function"?null:r._params).flat().filter(r=>!!r);function n(r,l,...o){let p=[],x=0;for(let d of r)if(typeof d=="function")p.push(d(l)),x++;else {let M=d._params?.length??0;p.push(d.validator(l,...o.slice(x,M))),M&&(x+=M);}return p}function s(r){return r.some(o=>typeof o!="boolean")?{$valid:r.some(o=>typeof o=="boolean"?!!o:o.$valid),...r.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:x,...d}=p;return {...o,...d}},{})}:r.some(o=>!!o)}let f=core.createRule({type:"or",validator:t?async(r,...l)=>{let o=await Promise.all(n(e,r,...l));return s(o)}:(r,...l)=>{let o=n(e,r,...l);return s(o)},message:"The value does not match any of the provided validators"}),R=[...i??[]];if(f._params=R,typeof f=="function"){let r=f(...R);return r._message_patched=!0,r}else return f}function j(e,t){let i,n,s,m,f;typeof e=="function"?(n=e,f=e.constructor.name==="AsyncFunction"):({_type:i,validator:n,_params:m}=e,f=e._async),f?s=async(l,...o)=>a(l)?!await n(l,...o):!0:s=(l,...o)=>a(l)?!n(l,...o):!0;let R=core.createRule({type:"not",validator:s,message:t??"Error"}),r=[...m??[]];if(R._params=r,typeof R=="function"){let l=R(...r);return l._message_patched=!0,l}else return R}var qt=core.createRule({type:"required",validator:e=>a(e),message:"This field is required"});var Zt=core.createRule({type:"maxLength",validator:(e,t)=>a(e)&&a(t)?y(t)?D(e)<=t:(console.warn(`[maxLength] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0,message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The maximum length allowed is ${t}`});var Xt=core.createRule({type:"required",validator(e,t){return t?a(e):!0},message:"This field is required",active({$params:[e]}){return e}});var Q=/^[a-zA-Z]*$/,rr=core.createRule({type:"alpha",validator(e){return u(e)?!0:g(e,Q)},message:"The value is not alphabetical"});var Y=/^[a-zA-Z0-9]*$/,or=core.createRule({type:"alpha",validator(e){return u(e)?!0:g(e,Y)},message:"The value must be alpha-numeric"});var mr=core.createRule({type:"between",validator:(e,t,i)=>{if(a(e)&&a(t)&&a(i)){let n=c(e),s=c(t),m=c(i);return y(n)&&y(s)&&y(m)?n>=s&&n<=m:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${i}`),!1)}return !0},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var re=/^[-]?\d*(\.\d+)?$/,yr=core.createRule({type:"decimal",validator(e){return u(e)?!0:g(e,re)},message:"Value must be decimal"});var ne=/^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i,br=core.createRule({type:"email",validator(e){return u(e)?!0:g(e,ne)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,Mr=core.createRule({type:"integer",validator(e){return u(e)?!0:g(e,oe)},message:"Value must be an integer"});var $r=core.createRule({type:"maxValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(c(e))?c(e)<=t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:({$params:[e]})=>`The maximum value allowed is ${e}`});var Wr=core.createRule({type:"minLength",validator:(e,t)=>a(e)&&a(t)?y(t)?D(e)>=t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have at least ${t} items`:`This field should be at least ${t} characters long`});var Ir=core.createRule({type:"minValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(c(e))?c(e)>=t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:({$params:[e]})=>`The minimum value allowed is ${e}`});var Sr=core.createRule({type:"exactValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(c(e))?c(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}`});var Ur=core.createRule({type:"exactLength",validator:(e,t)=>a(e)&&a(t)?y(t)?D(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:({$params:[e]})=>`This field should be exactly ${e} characters long`});var pe=/^\d*(\.\d+)?$/,jr=core.createRule({type:"numeric",validator(e){return u(e)?!0:g(e,pe)},message:"This field must be numeric"});var Jr=core.createRule({type:"required",validator(e,t){return t?!0:a(e)},message:"This field is required",active({$params:[e]}){return !e}});var ea=core.createRule({type:"sameAs",validator(e,t,i="other"){return u(e)?!0: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,na=core.createRule({type:"url",validator(e){return u(e)?!0:g(e,de)},message:"The value is not a valid URL address"});function be(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function h(e){return e?new Intl.DateTimeFormat(be(),{dateStyle:"short"}).format(new Date(e)):"?"}var ma=core.createRule({type:"dateAfter",validator:(e,t)=>a(e)&&a(t)?T(e)&&T(t)?b(e).getTime()>b(t).getTime()?!0:{$valid:!1,error:"date-not-after"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${h(e)}`});var ga=core.createRule({type:"dateBefore",validator:(e,t)=>a(e)&&a(t)?T(e)&&T(t)?b(e).getTime()<b(t).getTime()?!0:{$valid:!1,error:"date-not-before"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${h(e)}`});var xa=core.createRule({type:"dateBetween",validator:(e,t,i)=>T(e)&&T(t)&&T(i)?b(e).getTime()>b(t).getTime()&&b(e).getTime()<b(i).getTime():!0,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 !1;let t=+e|0;return t>=0&&t<=255}var Pa=core.createRule({type:"ipAddress",validator(e){if(u(e))return !0;if(typeof e!="string")return !1;let t=e.split(".");return t.length===4&&t.every(he)},message:"The value is not a valid IP address"});var Aa=core.createRule({type:"macAddress",validator(e,t=":"){if(u(e))return !0;if(typeof e!="string")return !1;let i=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return i!==null&&(i.length===6||i.length===8)&&i.every(we)},message:"The value is not a valid MAC Address"}),we=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var _a=core.createRule({type:"checked",validator:e=>a(e)?e===!0:!0,message:"This field must be checked"});var Ea=core.createRule({type:"contains",validator(e,t){return a(e)&&a(t)?e.includes(t):!0},message({$params:[e]}){return `Field must contain ${e}`}});var Ca=core.createRule({type:"startsWith",validator(e,t){return a(e)&&a(t)?e.startsWith(t):!0},message({$params:[e]}){return `Field must end with ${e}`}});var qa=core.createRule({type:"endsWith",validator(e,t){return a(e)&&a(t)?e.endsWith(t):!0},message({$params:[e]}){return `Field must end with ${e}`}});var Za=core.createRule({type:"regex",validator(e,...t){return a(e)?g(e,...t):!0},message:"This field does not match the required pattern"});function Xa(e){let t=vue.computed(()=>vue.toValue(e));return P(w((n,s)=>a(n)&&a(s)?s.includes(n):!0,[t]),({$params:[n]})=>`Value should be one of those options: ${n.join(", ")}.`)}function ke(e){let t=Object.keys(e).filter(n=>typeof e[e[n]]!="number"),i={};for(let n of t)i[n]=e[n];return Object.values(i)}function rn(e){let t=vue.computed(()=>vue.toValue(e));return P(w((n,s)=>a(n)&&!u(s)?ke(s).includes(n):!0,[t]),({$params:[n]})=>`Value should be one of those options: ${Object.values(n).join(", ")}.`)}exports.alpha=rr;exports.alphaNum=or;exports.and=U;exports.applyIf=L;exports.between=mr;exports.checked=_a;exports.contains=Ea;exports.dateAfter=ma;exports.dateBefore=ga;exports.dateBetween=xa;exports.decimal=yr;exports.email=br;exports.endsWith=qa;exports.exactLength=Ur;exports.exactValue=Sr;exports.getSize=D;exports.integer=Mr;exports.ipAddress=Pa;exports.isDate=T;exports.isEmpty=u;exports.isFilled=a;exports.isNumber=y;exports.macAddress=Aa;exports.matchRegex=g;exports.maxLength=Zt;exports.maxValue=$r;exports.minLength=Wr;exports.minValue=Ir;exports.nativeEnum=rn;exports.not=j;exports.numeric=jr;exports.oneOf=Xa;exports.or=q;exports.regex=Za;exports.required=qt;exports.requiredIf=Xt;exports.requiredUnless=Jr;exports.sameAs=ea;exports.startsWith=Ca;exports.toDate=b;exports.toNumber=c;exports.url=na;exports.withAsync=I;exports.withMessage=P;exports.withParams=w;exports.withTooltip=F;
|
|
1
|
+
'use strict';var core=require('@regle/core'),vue=require('vue');function P(e,t){let i,n,s,m;typeof e=="function"&&!("_validator"in e)?(i=core.InternalRuleType.Inline,n=e):{_type:i,validator:n,_active:s,_params:m}=e;let f=core.createRule({type:i,validator:n,active:s,message:t}),R=[...m??[]];if(f._params=R,f._message_patched=!0,typeof f=="function"){let r=f(...R);return r._message_patched=!0,r}else return f}function F(e,t){let i,n,s,m,f;typeof e=="function"&&!("_validator"in e)?(i=core.InternalRuleType.Inline,n=e):{_type:i,validator:n,_active:s,_params:m,_message:f}=e;let R=core.createRule({type:i,validator:n,active:s,message:f,tooltip:t}),r=[...m??[]];if(R._params=r,R._tooltip_patched=!0,typeof R=="function"){let l=R(...r);return R._tooltip_patched=!0,l}else return R}function I(e,t){let i=async(s,...m)=>e(s,...m),n=core.createRule({type:core.InternalRuleType.Async,validator:i,message:""});return n._params=n._params?.concat(t),n(...t??[])}function w(e,t){let i=(s,...m)=>e(s,...m),n=core.createRule({type:core.InternalRuleType.Inline,validator:i,message:""});return n._params=n._params?.concat(t),n(...t)}function L(e,t){let i,n,s=[],m="";typeof t=="function"?(i=core.InternalRuleType.Inline,n=t,s=[e]):({_type:i,validator:n,_message:m}=t,s=t._params?.concat([e]));function f(o,...p){let[x]=core.unwrapRuleParameters([e]);return x?n(o,...p):!0}function R(o){let[p]=core.unwrapRuleParameters([e]);return p}let r=core.createRule({type:i,validator:f,active:R,message:m}),l=[...s??[]];if(r._params=l,typeof r=="function"){let o=r(...l);return o._message_patched=!0,o}else return r}function u(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function b(e){if(u(e))return !1;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let i=new Date(e);if(i.toString()==="Invalid Date")return !1;t=i;}return !!t}catch{return !1}}function 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 a(e){return !u(typeof e=="string"?e.trim():e)}function y(e){return e==null||typeof e!="number"?!1:!isNaN(e)}function g(e,...t){if(u(e))return !0;let i=typeof e=="number"?e.toString():e;return t.every(n=>(n.lastIndex=0,n.test(i)))}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 U(...e){let t=e.some(r=>typeof r=="function"?r.constructor.name==="AsyncFunction":r._async),i=e.map(r=>{if(typeof r=="function")return null;{let l=r._params;return l?.length?l:[]}}).flat().filter(r=>!!r);function n(r,l,...o){let p=[],x=0;for(let d of r)if(typeof d=="function")p.push(d(l)),x++;else {let M=d._params?.length??0;p.push(d.validator(l,...o.slice(x,M))),M&&(x+=M);}return p}function s(r){return r?.some(o=>typeof o!="boolean")?{$valid:r.every(o=>typeof o=="boolean"?!!o:o.$valid),...r.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:x,...d}=p;return {...o,...d}},{})}:r.every(o=>!!o)}let m;e.length?m=t?async(r,...l)=>{let o=await Promise.all(n(e,r,...l));return s(o)}:(r,...l)=>{let o=n(e,r,...l);return s(o)}:m=r=>!1;let f=core.createRule({type:"and",validator:m,message:"The value does not match all of the provided validators"}),R=[...i??[]];if(f._params=R,typeof f=="function"){let r=f(...R);return r._message_patched=!0,r}else return f}function q(...e){let t=e.some(r=>typeof r=="function"?r.constructor.name==="AsyncFunction":r._async),i=e.map(r=>typeof r=="function"?null:r._params).flat().filter(r=>!!r);function n(r,l,...o){let p=[],x=0;for(let d of r)if(typeof d=="function")p.push(d(l)),x++;else {let M=d._params?.length??0;p.push(d.validator(l,...o.slice(x,M))),M&&(x+=M);}return p}function s(r){return r.some(o=>typeof o!="boolean")?{$valid:r.some(o=>typeof o=="boolean"?!!o:o.$valid),...r.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:x,...d}=p;return {...o,...d}},{})}:r.some(o=>!!o)}let f=core.createRule({type:"or",validator:t?async(r,...l)=>{let o=await Promise.all(n(e,r,...l));return s(o)}:(r,...l)=>{let o=n(e,r,...l);return s(o)},message:"The value does not match any of the provided validators"}),R=[...i??[]];if(f._params=R,typeof f=="function"){let r=f(...R);return r._message_patched=!0,r}else return f}function j(e,t){let i,n,s,m,f;typeof e=="function"?(n=e,f=e.constructor.name==="AsyncFunction"):({_type:i,validator:n,_params:m}=e,f=e._async),f?s=async(l,...o)=>a(l)?!await n(l,...o):!0:s=(l,...o)=>a(l)?!n(l,...o):!0;let R=core.createRule({type:"not",validator:s,message:t??"Error"}),r=[...m??[]];if(R._params=r,typeof R=="function"){let l=R(...r);return l._message_patched=!0,l}else return R}var qt=core.createRule({type:"required",validator:e=>a(e),message:"This field is required"});var Zt=core.createRule({type:"maxLength",validator:(e,t)=>a(e)&&a(t)?y(t)?D(e)<=t:(console.warn(`[maxLength] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0,message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The maximum length allowed is ${t}`});var Xt=core.createRule({type:"required",validator(e,t){return t?a(e):!0},message:"This field is required",active({$params:[e]}){return e}});var Q=/^[a-zA-Z]*$/,rr=core.createRule({type:"alpha",validator(e){return u(e)?!0:g(e,Q)},message:"The value is not alphabetical"});var Y=/^[a-zA-Z0-9]*$/,or=core.createRule({type:"alpha",validator(e){return u(e)?!0:g(e,Y)},message:"The value must be alpha-numeric"});var mr=core.createRule({type:"between",validator:(e,t,i)=>{if(a(e)&&a(t)&&a(i)){let n=c(e),s=c(t),m=c(i);return y(n)&&y(s)&&y(m)?n>=s&&n<=m:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${i}`),!1)}return !0},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var re=/^[-]?\d*(\.\d+)?$/,yr=core.createRule({type:"decimal",validator(e){return u(e)?!0:g(e,re)},message:"Value must be decimal"});var ne=/^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i,Tr=core.createRule({type:"email",validator(e){return u(e)?!0:g(e,ne)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,Mr=core.createRule({type:"integer",validator(e){return u(e)?!0:g(e,oe)},message:"Value must be an integer"});var $r=core.createRule({type:"maxValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(c(e))?c(e)<=t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:({$params:[e]})=>`The maximum value allowed is ${e}`});var Wr=core.createRule({type:"minLength",validator:(e,t)=>a(e)&&a(t)?y(t)?D(e)>=t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have at least ${t} items`:`This field should be at least ${t} characters long`});var Ir=core.createRule({type:"minValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(c(e))?c(e)>=t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:({$params:[e]})=>`The minimum value allowed is ${e}`});var Sr=core.createRule({type:"exactValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(c(e))?c(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}`});var Ur=core.createRule({type:"exactLength",validator:(e,t)=>a(e)&&a(t)?y(t)?D(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:({$params:[e]})=>`This field should be exactly ${e} characters long`});var pe=/^\d*(\.\d+)?$/,jr=core.createRule({type:"numeric",validator(e){return u(e)?!0:g(e,pe)},message:"This field must be numeric"});var Jr=core.createRule({type:"required",validator(e,t){return t?!0:a(e)},message:"This field is required",active({$params:[e]}){return !e}});var ea=core.createRule({type:"sameAs",validator(e,t,i="other"){return u(e)?!0: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,na=core.createRule({type:"url",validator(e){return u(e)?!0: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 ma=core.createRule({type:"dateAfter",validator:(e,t)=>a(e)&&a(t)?b(e)&&b(t)?T(e).getTime()>T(t).getTime()?!0:{$valid:!1,error:"date-not-after"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${h(e)}`});var ga=core.createRule({type:"dateBefore",validator:(e,t)=>a(e)&&a(t)?b(e)&&b(t)?T(e).getTime()<T(t).getTime()?!0:{$valid:!1,error:"date-not-before"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${h(e)}`});var xa=core.createRule({type:"dateBetween",validator:(e,t,i)=>b(e)&&b(t)&&b(i)?T(e).getTime()>T(t).getTime()&&T(e).getTime()<T(i).getTime():!0,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 !1;let t=+e|0;return t>=0&&t<=255}var Pa=core.createRule({type:"ipAddress",validator(e){if(u(e))return !0;if(typeof e!="string")return !1;let t=e.split(".");return t.length===4&&t.every(he)},message:"The value is not a valid IP address"});var va=core.createRule({type:"macAddress",validator(e,t=":"){if(u(e))return !0;if(typeof e!="string")return !1;let i=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return i!==null&&(i.length===6||i.length===8)&&i.every(we)},message:"The value is not a valid MAC Address"}),we=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var _a=core.createRule({type:"checked",validator:e=>a(e)?e===!0:!0,message:"This field must be checked"});var Ea=core.createRule({type:"contains",validator(e,t){return a(e)&&a(t)?e.includes(t):!0},message({$params:[e]}){return `Field must contain ${e}`}});var Ca=core.createRule({type:"startsWith",validator(e,t){return a(e)&&a(t)?e.startsWith(t):!0},message({$params:[e]}){return `Field must end with ${e}`}});var qa=core.createRule({type:"endsWith",validator(e,t){return a(e)&&a(t)?e.endsWith(t):!0},message({$params:[e]}){return `Field must end with ${e}`}});var Za=core.createRule({type:"regex",validator(e,...t){return a(e)?g(e,...t):!0},message:"This field does not match the required pattern"});function Xa(e){let t=vue.computed(()=>vue.toValue(e));return P(w((n,s)=>a(n)&&a(s)?s.includes(n):!0,[t]),({$params:[n]})=>`Value should be one of those options: ${n.join(", ")}.`)}function ke(e){let t=Object.keys(e).filter(n=>typeof e[e[n]]!="number"),i={};for(let n of t)i[n]=e[n];return Object.values(i)}function rn(e){let t=vue.computed(()=>vue.toValue(e));return P(w((n,s)=>a(n)&&!u(s)?ke(s).includes(n):!0,[t]),({$params:[n]})=>`Value should be one of those options: ${Object.values(n).join(", ")}.`)}exports.alpha=rr;exports.alphaNum=or;exports.and=U;exports.applyIf=L;exports.between=mr;exports.checked=_a;exports.contains=Ea;exports.dateAfter=ma;exports.dateBefore=ga;exports.dateBetween=xa;exports.decimal=yr;exports.email=Tr;exports.endsWith=qa;exports.exactLength=Ur;exports.exactValue=Sr;exports.getSize=D;exports.integer=Mr;exports.ipAddress=Pa;exports.isDate=b;exports.isEmpty=u;exports.isFilled=a;exports.isNumber=y;exports.macAddress=va;exports.matchRegex=g;exports.maxLength=Zt;exports.maxValue=$r;exports.minLength=Wr;exports.minValue=Ir;exports.nativeEnum=rn;exports.not=j;exports.numeric=jr;exports.oneOf=Xa;exports.or=q;exports.regex=Za;exports.required=qt;exports.requiredIf=Xt;exports.requiredUnless=Jr;exports.sameAs=ea;exports.startsWith=Ca;exports.toDate=T;exports.toNumber=c;exports.url=na;exports.withAsync=I;exports.withMessage=P;exports.withParams=w;exports.withTooltip=F;
|
package/dist/regle-rules.min.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {createRule,InternalRuleType,unwrapRuleParameters}from'@regle/core';import {unref,computed,toValue}from'vue';function P(e,t){let i,n,s,m;typeof e=="function"&&!("_validator"in e)?(i=InternalRuleType.Inline,n=e):{_type:i,validator:n,_active:s,_params:m}=e;let f=createRule({type:i,validator:n,active:s,message:t}),R=[...m??[]];if(f._params=R,f._message_patched=!0,typeof f=="function"){let r=f(...R);return r._message_patched=!0,r}else return f}function F(e,t){let i,n,s,m,f;typeof e=="function"&&!("_validator"in e)?(i=InternalRuleType.Inline,n=e):{_type:i,validator:n,_active:s,_params:m,_message:f}=e;let R=createRule({type:i,validator:n,active:s,message:f,tooltip:t}),r=[...m??[]];if(R._params=r,R._tooltip_patched=!0,typeof R=="function"){let l=R(...r);return R._tooltip_patched=!0,l}else return R}function I(e,t){let i=async(s,...m)=>e(s,...m),n=createRule({type:InternalRuleType.Async,validator:i,message:""});return n._params=n._params?.concat(t),n(...t??[])}function w(e,t){let i=(s,...m)=>e(s,...m),n=createRule({type:InternalRuleType.Inline,validator:i,message:""});return n._params=n._params?.concat(t),n(...t)}function L(e,t){let i,n,s=[],m="";typeof t=="function"?(i=InternalRuleType.Inline,n=t,s=[e]):({_type:i,validator:n,_message:m}=t,s=t._params?.concat([e]));function f(o,...p){let[x]=unwrapRuleParameters([e]);return x?n(o,...p):!0}function R(o){let[p]=unwrapRuleParameters([e]);return p}let r=createRule({type:i,validator:f,active:R,message:m}),l=[...s??[]];if(r._params=l,typeof r=="function"){let o=r(...l);return o._message_patched=!0,o}else return r}function u(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function a(e){return !u(typeof e=="string"?e.trim():e)}function y(e){return e==null||typeof e!="number"?!1:!isNaN(e)}function g(e,...t){if(u(e))return !0;let i=typeof e=="number"?e.toString():e;return t.every(n=>(n.lastIndex=0,n.test(i)))}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 T(e){if(u(e))return !1;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="number"&&!isNaN(e))t=new Date(e);else if(typeof e=="string"){let i=new Date(e);if(i.toString()==="Invalid Date")return !1;t=i;}return !!t}catch{return !1}}function b(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 c(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}function U(...e){let t=e.some(r=>typeof r=="function"?r.constructor.name==="AsyncFunction":r._async),i=e.map(r=>{if(typeof r=="function")return null;{let l=r._params;return l?.length?l:[]}}).flat().filter(r=>!!r);function n(r,l,...o){let p=[],x=0;for(let d of r)if(typeof d=="function")p.push(d(l)),x++;else {let M=d._params?.length??0;p.push(d.validator(l,...o.slice(x,M))),M&&(x+=M);}return p}function s(r){return r?.some(o=>typeof o!="boolean")?{$valid:r.every(o=>typeof o=="boolean"?!!o:o.$valid),...r.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:x,...d}=p;return {...o,...d}},{})}:r.every(o=>!!o)}let m;e.length?m=t?async(r,...l)=>{let o=await Promise.all(n(e,r,...l));return s(o)}:(r,...l)=>{let o=n(e,r,...l);return s(o)}:m=r=>!1;let f=createRule({type:"and",validator:m,message:"The value does not match all of the provided validators"}),R=[...i??[]];if(f._params=R,typeof f=="function"){let r=f(...R);return r._message_patched=!0,r}else return f}function q(...e){let t=e.some(r=>typeof r=="function"?r.constructor.name==="AsyncFunction":r._async),i=e.map(r=>typeof r=="function"?null:r._params).flat().filter(r=>!!r);function n(r,l,...o){let p=[],x=0;for(let d of r)if(typeof d=="function")p.push(d(l)),x++;else {let M=d._params?.length??0;p.push(d.validator(l,...o.slice(x,M))),M&&(x+=M);}return p}function s(r){return r.some(o=>typeof o!="boolean")?{$valid:r.some(o=>typeof o=="boolean"?!!o:o.$valid),...r.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:x,...d}=p;return {...o,...d}},{})}:r.some(o=>!!o)}let f=createRule({type:"or",validator:t?async(r,...l)=>{let o=await Promise.all(n(e,r,...l));return s(o)}:(r,...l)=>{let o=n(e,r,...l);return s(o)},message:"The value does not match any of the provided validators"}),R=[...i??[]];if(f._params=R,typeof f=="function"){let r=f(...R);return r._message_patched=!0,r}else return f}function j(e,t){let i,n,s,m,f;typeof e=="function"?(n=e,f=e.constructor.name==="AsyncFunction"):({_type:i,validator:n,_params:m}=e,f=e._async),f?s=async(l,...o)=>a(l)?!await n(l,...o):!0:s=(l,...o)=>a(l)?!n(l,...o):!0;let R=createRule({type:"not",validator:s,message:t??"Error"}),r=[...m??[]];if(R._params=r,typeof R=="function"){let l=R(...r);return l._message_patched=!0,l}else return R}var qt=createRule({type:"required",validator:e=>a(e),message:"This field is required"});var Zt=createRule({type:"maxLength",validator:(e,t)=>a(e)&&a(t)?y(t)?D(e)<=t:(console.warn(`[maxLength] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0,message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The maximum length allowed is ${t}`});var Xt=createRule({type:"required",validator(e,t){return t?a(e):!0},message:"This field is required",active({$params:[e]}){return e}});var Q=/^[a-zA-Z]*$/,rr=createRule({type:"alpha",validator(e){return u(e)?!0:g(e,Q)},message:"The value is not alphabetical"});var Y=/^[a-zA-Z0-9]*$/,or=createRule({type:"alpha",validator(e){return u(e)?!0:g(e,Y)},message:"The value must be alpha-numeric"});var mr=createRule({type:"between",validator:(e,t,i)=>{if(a(e)&&a(t)&&a(i)){let n=c(e),s=c(t),m=c(i);return y(n)&&y(s)&&y(m)?n>=s&&n<=m:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${i}`),!1)}return !0},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var re=/^[-]?\d*(\.\d+)?$/,yr=createRule({type:"decimal",validator(e){return u(e)?!0:g(e,re)},message:"Value must be decimal"});var ne=/^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i,br=createRule({type:"email",validator(e){return u(e)?!0:g(e,ne)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,Mr=createRule({type:"integer",validator(e){return u(e)?!0:g(e,oe)},message:"Value must be an integer"});var $r=createRule({type:"maxValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(c(e))?c(e)<=t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:({$params:[e]})=>`The maximum value allowed is ${e}`});var Wr=createRule({type:"minLength",validator:(e,t)=>a(e)&&a(t)?y(t)?D(e)>=t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have at least ${t} items`:`This field should be at least ${t} characters long`});var Ir=createRule({type:"minValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(c(e))?c(e)>=t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:({$params:[e]})=>`The minimum value allowed is ${e}`});var Sr=createRule({type:"exactValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(c(e))?c(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}`});var Ur=createRule({type:"exactLength",validator:(e,t)=>a(e)&&a(t)?y(t)?D(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:({$params:[e]})=>`This field should be exactly ${e} characters long`});var pe=/^\d*(\.\d+)?$/,jr=createRule({type:"numeric",validator(e){return u(e)?!0:g(e,pe)},message:"This field must be numeric"});var Jr=createRule({type:"required",validator(e,t){return t?!0:a(e)},message:"This field is required",active({$params:[e]}){return !e}});var ea=createRule({type:"sameAs",validator(e,t,i="other"){return u(e)?!0: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,na=createRule({type:"url",validator(e){return u(e)?!0:g(e,de)},message:"The value is not a valid URL address"});function be(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function h(e){return e?new Intl.DateTimeFormat(be(),{dateStyle:"short"}).format(new Date(e)):"?"}var ma=createRule({type:"dateAfter",validator:(e,t)=>a(e)&&a(t)?T(e)&&T(t)?b(e).getTime()>b(t).getTime()?!0:{$valid:!1,error:"date-not-after"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${h(e)}`});var ga=createRule({type:"dateBefore",validator:(e,t)=>a(e)&&a(t)?T(e)&&T(t)?b(e).getTime()<b(t).getTime()?!0:{$valid:!1,error:"date-not-before"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${h(e)}`});var xa=createRule({type:"dateBetween",validator:(e,t,i)=>T(e)&&T(t)&&T(i)?b(e).getTime()>b(t).getTime()&&b(e).getTime()<b(i).getTime():!0,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 !1;let t=+e|0;return t>=0&&t<=255}var Pa=createRule({type:"ipAddress",validator(e){if(u(e))return !0;if(typeof e!="string")return !1;let t=e.split(".");return t.length===4&&t.every(he)},message:"The value is not a valid IP address"});var Aa=createRule({type:"macAddress",validator(e,t=":"){if(u(e))return !0;if(typeof e!="string")return !1;let i=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return i!==null&&(i.length===6||i.length===8)&&i.every(we)},message:"The value is not a valid MAC Address"}),we=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var _a=createRule({type:"checked",validator:e=>a(e)?e===!0:!0,message:"This field must be checked"});var Ea=createRule({type:"contains",validator(e,t){return a(e)&&a(t)?e.includes(t):!0},message({$params:[e]}){return `Field must contain ${e}`}});var Ca=createRule({type:"startsWith",validator(e,t){return a(e)&&a(t)?e.startsWith(t):!0},message({$params:[e]}){return `Field must end with ${e}`}});var qa=createRule({type:"endsWith",validator(e,t){return a(e)&&a(t)?e.endsWith(t):!0},message({$params:[e]}){return `Field must end with ${e}`}});var Za=createRule({type:"regex",validator(e,...t){return a(e)?g(e,...t):!0},message:"This field does not match the required pattern"});function Xa(e){let t=computed(()=>toValue(e));return P(w((n,s)=>a(n)&&a(s)?s.includes(n):!0,[t]),({$params:[n]})=>`Value should be one of those options: ${n.join(", ")}.`)}function ke(e){let t=Object.keys(e).filter(n=>typeof e[e[n]]!="number"),i={};for(let n of t)i[n]=e[n];return Object.values(i)}function rn(e){let t=computed(()=>toValue(e));return P(w((n,s)=>a(n)&&!u(s)?ke(s).includes(n):!0,[t]),({$params:[n]})=>`Value should be one of those options: ${Object.values(n).join(", ")}.`)}export{rr as alpha,or as alphaNum,U as and,L as applyIf,mr as between,_a as checked,Ea as contains,ma as dateAfter,ga as dateBefore,xa as dateBetween,yr as decimal,br as email,qa as endsWith,Ur as exactLength,Sr as exactValue,D as getSize,Mr as integer,Pa as ipAddress,T as isDate,u as isEmpty,a as isFilled,y as isNumber,Aa as macAddress,g as matchRegex,Zt as maxLength,$r as maxValue,Wr as minLength,Ir as minValue,rn as nativeEnum,j as not,jr as numeric,Xa as oneOf,q as or,Za as regex,qt as required,Xt as requiredIf,Jr as requiredUnless,ea as sameAs,Ca as startsWith,b as toDate,c as toNumber,na as url,I as withAsync,P as withMessage,w as withParams,F as withTooltip};
|
|
1
|
+
import {createRule,InternalRuleType,unwrapRuleParameters}from'@regle/core';import {unref,computed,toValue}from'vue';function P(e,t){let i,n,s,m;typeof e=="function"&&!("_validator"in e)?(i=InternalRuleType.Inline,n=e):{_type:i,validator:n,_active:s,_params:m}=e;let f=createRule({type:i,validator:n,active:s,message:t}),R=[...m??[]];if(f._params=R,f._message_patched=!0,typeof f=="function"){let r=f(...R);return r._message_patched=!0,r}else return f}function F(e,t){let i,n,s,m,f;typeof e=="function"&&!("_validator"in e)?(i=InternalRuleType.Inline,n=e):{_type:i,validator:n,_active:s,_params:m,_message:f}=e;let R=createRule({type:i,validator:n,active:s,message:f,tooltip:t}),r=[...m??[]];if(R._params=r,R._tooltip_patched=!0,typeof R=="function"){let l=R(...r);return R._tooltip_patched=!0,l}else return R}function I(e,t){let i=async(s,...m)=>e(s,...m),n=createRule({type:InternalRuleType.Async,validator:i,message:""});return n._params=n._params?.concat(t),n(...t??[])}function w(e,t){let i=(s,...m)=>e(s,...m),n=createRule({type:InternalRuleType.Inline,validator:i,message:""});return n._params=n._params?.concat(t),n(...t)}function L(e,t){let i,n,s=[],m="";typeof t=="function"?(i=InternalRuleType.Inline,n=t,s=[e]):({_type:i,validator:n,_message:m}=t,s=t._params?.concat([e]));function f(o,...p){let[x]=unwrapRuleParameters([e]);return x?n(o,...p):!0}function R(o){let[p]=unwrapRuleParameters([e]);return p}let r=createRule({type:i,validator:f,active:R,message:m}),l=[...s??[]];if(r._params=l,typeof r=="function"){let o=r(...l);return o._message_patched=!0,o}else return r}function u(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function b(e){if(u(e))return !1;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let i=new Date(e);if(i.toString()==="Invalid Date")return !1;t=i;}return !!t}catch{return !1}}function 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 a(e){return !u(typeof e=="string"?e.trim():e)}function y(e){return e==null||typeof e!="number"?!1:!isNaN(e)}function g(e,...t){if(u(e))return !0;let i=typeof e=="number"?e.toString():e;return t.every(n=>(n.lastIndex=0,n.test(i)))}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 U(...e){let t=e.some(r=>typeof r=="function"?r.constructor.name==="AsyncFunction":r._async),i=e.map(r=>{if(typeof r=="function")return null;{let l=r._params;return l?.length?l:[]}}).flat().filter(r=>!!r);function n(r,l,...o){let p=[],x=0;for(let d of r)if(typeof d=="function")p.push(d(l)),x++;else {let M=d._params?.length??0;p.push(d.validator(l,...o.slice(x,M))),M&&(x+=M);}return p}function s(r){return r?.some(o=>typeof o!="boolean")?{$valid:r.every(o=>typeof o=="boolean"?!!o:o.$valid),...r.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:x,...d}=p;return {...o,...d}},{})}:r.every(o=>!!o)}let m;e.length?m=t?async(r,...l)=>{let o=await Promise.all(n(e,r,...l));return s(o)}:(r,...l)=>{let o=n(e,r,...l);return s(o)}:m=r=>!1;let f=createRule({type:"and",validator:m,message:"The value does not match all of the provided validators"}),R=[...i??[]];if(f._params=R,typeof f=="function"){let r=f(...R);return r._message_patched=!0,r}else return f}function q(...e){let t=e.some(r=>typeof r=="function"?r.constructor.name==="AsyncFunction":r._async),i=e.map(r=>typeof r=="function"?null:r._params).flat().filter(r=>!!r);function n(r,l,...o){let p=[],x=0;for(let d of r)if(typeof d=="function")p.push(d(l)),x++;else {let M=d._params?.length??0;p.push(d.validator(l,...o.slice(x,M))),M&&(x+=M);}return p}function s(r){return r.some(o=>typeof o!="boolean")?{$valid:r.some(o=>typeof o=="boolean"?!!o:o.$valid),...r.reduce((o,p)=>{if(typeof p=="boolean")return o;let{$valid:x,...d}=p;return {...o,...d}},{})}:r.some(o=>!!o)}let f=createRule({type:"or",validator:t?async(r,...l)=>{let o=await Promise.all(n(e,r,...l));return s(o)}:(r,...l)=>{let o=n(e,r,...l);return s(o)},message:"The value does not match any of the provided validators"}),R=[...i??[]];if(f._params=R,typeof f=="function"){let r=f(...R);return r._message_patched=!0,r}else return f}function j(e,t){let i,n,s,m,f;typeof e=="function"?(n=e,f=e.constructor.name==="AsyncFunction"):({_type:i,validator:n,_params:m}=e,f=e._async),f?s=async(l,...o)=>a(l)?!await n(l,...o):!0:s=(l,...o)=>a(l)?!n(l,...o):!0;let R=createRule({type:"not",validator:s,message:t??"Error"}),r=[...m??[]];if(R._params=r,typeof R=="function"){let l=R(...r);return l._message_patched=!0,l}else return R}var qt=createRule({type:"required",validator:e=>a(e),message:"This field is required"});var Zt=createRule({type:"maxLength",validator:(e,t)=>a(e)&&a(t)?y(t)?D(e)<=t:(console.warn(`[maxLength] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!1):!0,message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The maximum length allowed is ${t}`});var Xt=createRule({type:"required",validator(e,t){return t?a(e):!0},message:"This field is required",active({$params:[e]}){return e}});var Q=/^[a-zA-Z]*$/,rr=createRule({type:"alpha",validator(e){return u(e)?!0:g(e,Q)},message:"The value is not alphabetical"});var Y=/^[a-zA-Z0-9]*$/,or=createRule({type:"alpha",validator(e){return u(e)?!0:g(e,Y)},message:"The value must be alpha-numeric"});var mr=createRule({type:"between",validator:(e,t,i)=>{if(a(e)&&a(t)&&a(i)){let n=c(e),s=c(t),m=c(i);return y(n)&&y(s)&&y(m)?n>=s&&n<=m:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${i}`),!1)}return !0},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var re=/^[-]?\d*(\.\d+)?$/,yr=createRule({type:"decimal",validator(e){return u(e)?!0:g(e,re)},message:"Value must be decimal"});var ne=/^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i,Tr=createRule({type:"email",validator(e){return u(e)?!0:g(e,ne)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,Mr=createRule({type:"integer",validator(e){return u(e)?!0:g(e,oe)},message:"Value must be an integer"});var $r=createRule({type:"maxValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(c(e))?c(e)<=t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:({$params:[e]})=>`The maximum value allowed is ${e}`});var Wr=createRule({type:"minLength",validator:(e,t)=>a(e)&&a(t)?y(t)?D(e)>=t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have at least ${t} items`:`This field should be at least ${t} characters long`});var Ir=createRule({type:"minValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(c(e))?c(e)>=t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),!0):!0,message:({$params:[e]})=>`The minimum value allowed is ${e}`});var Sr=createRule({type:"exactValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(c(e))?c(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}`});var Ur=createRule({type:"exactLength",validator:(e,t)=>a(e)&&a(t)?y(t)?D(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),!1):!0,message:({$params:[e]})=>`This field should be exactly ${e} characters long`});var pe=/^\d*(\.\d+)?$/,jr=createRule({type:"numeric",validator(e){return u(e)?!0:g(e,pe)},message:"This field must be numeric"});var Jr=createRule({type:"required",validator(e,t){return t?!0:a(e)},message:"This field is required",active({$params:[e]}){return !e}});var ea=createRule({type:"sameAs",validator(e,t,i="other"){return u(e)?!0: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,na=createRule({type:"url",validator(e){return u(e)?!0: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 ma=createRule({type:"dateAfter",validator:(e,t)=>a(e)&&a(t)?b(e)&&b(t)?T(e).getTime()>T(t).getTime()?!0:{$valid:!1,error:"date-not-after"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${h(e)}`});var ga=createRule({type:"dateBefore",validator:(e,t)=>a(e)&&a(t)?b(e)&&b(t)?T(e).getTime()<T(t).getTime()?!0:{$valid:!1,error:"date-not-before"}:{$valid:!1,error:"value-or-paramater-not-a-date"}:!0,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${h(e)}`});var xa=createRule({type:"dateBetween",validator:(e,t,i)=>b(e)&&b(t)&&b(i)?T(e).getTime()>T(t).getTime()&&T(e).getTime()<T(i).getTime():!0,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 !1;let t=+e|0;return t>=0&&t<=255}var Pa=createRule({type:"ipAddress",validator(e){if(u(e))return !0;if(typeof e!="string")return !1;let t=e.split(".");return t.length===4&&t.every(he)},message:"The value is not a valid IP address"});var va=createRule({type:"macAddress",validator(e,t=":"){if(u(e))return !0;if(typeof e!="string")return !1;let i=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return i!==null&&(i.length===6||i.length===8)&&i.every(we)},message:"The value is not a valid MAC Address"}),we=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var _a=createRule({type:"checked",validator:e=>a(e)?e===!0:!0,message:"This field must be checked"});var Ea=createRule({type:"contains",validator(e,t){return a(e)&&a(t)?e.includes(t):!0},message({$params:[e]}){return `Field must contain ${e}`}});var Ca=createRule({type:"startsWith",validator(e,t){return a(e)&&a(t)?e.startsWith(t):!0},message({$params:[e]}){return `Field must end with ${e}`}});var qa=createRule({type:"endsWith",validator(e,t){return a(e)&&a(t)?e.endsWith(t):!0},message({$params:[e]}){return `Field must end with ${e}`}});var Za=createRule({type:"regex",validator(e,...t){return a(e)?g(e,...t):!0},message:"This field does not match the required pattern"});function Xa(e){let t=computed(()=>toValue(e));return P(w((n,s)=>a(n)&&a(s)?s.includes(n):!0,[t]),({$params:[n]})=>`Value should be one of those options: ${n.join(", ")}.`)}function ke(e){let t=Object.keys(e).filter(n=>typeof e[e[n]]!="number"),i={};for(let n of t)i[n]=e[n];return Object.values(i)}function rn(e){let t=computed(()=>toValue(e));return P(w((n,s)=>a(n)&&!u(s)?ke(s).includes(n):!0,[t]),({$params:[n]})=>`Value should be one of those options: ${Object.values(n).join(", ")}.`)}export{rr as alpha,or as alphaNum,U as and,L as applyIf,mr as between,_a as checked,Ea as contains,ma as dateAfter,ga as dateBefore,xa as dateBetween,yr as decimal,Tr as email,qa as endsWith,Ur as exactLength,Sr as exactValue,D as getSize,Mr as integer,Pa as ipAddress,b as isDate,u as isEmpty,a as isFilled,y as isNumber,va as macAddress,g as matchRegex,Zt as maxLength,$r as maxValue,Wr as minLength,Ir as minValue,rn as nativeEnum,j as not,jr as numeric,Xa as oneOf,q as or,Za as regex,qt as required,Xt as requiredIf,Jr as requiredUnless,ea as sameAs,Ca as startsWith,T as toDate,c as toNumber,na as url,I as withAsync,P as withMessage,w as withParams,F as withTooltip};
|
package/dist/regle-rules.mjs
CHANGED
|
@@ -142,6 +142,44 @@ function isEmpty(value) {
|
|
|
142
142
|
return !String(value).length;
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
+
// ../shared/utils/isDate.ts
|
|
146
|
+
function isDate(value) {
|
|
147
|
+
if (isEmpty(value)) {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
let possibleDate = null;
|
|
152
|
+
if (value instanceof Date) {
|
|
153
|
+
possibleDate = value;
|
|
154
|
+
} else if (typeof value === "string") {
|
|
155
|
+
const date = new Date(value);
|
|
156
|
+
if (date.toString() === "Invalid Date") {
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
possibleDate = date;
|
|
160
|
+
}
|
|
161
|
+
return !!possibleDate;
|
|
162
|
+
} catch (e) {
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// ../shared/utils/toDate.ts
|
|
168
|
+
function toDate(argument) {
|
|
169
|
+
const argStr = Object.prototype.toString.call(argument);
|
|
170
|
+
if (argument == null) {
|
|
171
|
+
return /* @__PURE__ */ new Date(NaN);
|
|
172
|
+
} else if (argument instanceof Date || typeof argument === "object" && argStr === "[object Date]") {
|
|
173
|
+
return new Date(argument.getTime());
|
|
174
|
+
} else if (typeof argument === "number" || argStr === "[object Number]") {
|
|
175
|
+
return new Date(argument);
|
|
176
|
+
} else if (typeof argument === "string" || argStr === "[object String]") {
|
|
177
|
+
return new Date(argument);
|
|
178
|
+
} else {
|
|
179
|
+
return /* @__PURE__ */ new Date(NaN);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
145
183
|
// src/helpers/ruleHelpers/isFilled.ts
|
|
146
184
|
function isFilled(value) {
|
|
147
185
|
return !isEmpty(typeof value === "string" ? value.trim() : value);
|
|
@@ -185,46 +223,6 @@ function getSize(value) {
|
|
|
185
223
|
return String(_value).length;
|
|
186
224
|
}
|
|
187
225
|
|
|
188
|
-
// src/helpers/ruleHelpers/isDate.ts
|
|
189
|
-
function isDate(value) {
|
|
190
|
-
if (isEmpty(value)) {
|
|
191
|
-
return false;
|
|
192
|
-
}
|
|
193
|
-
try {
|
|
194
|
-
let possibleDate = null;
|
|
195
|
-
if (value instanceof Date) {
|
|
196
|
-
possibleDate = value;
|
|
197
|
-
} else if (typeof value === "number" && !isNaN(value)) {
|
|
198
|
-
possibleDate = new Date(value);
|
|
199
|
-
} else if (typeof value === "string") {
|
|
200
|
-
const date = new Date(value);
|
|
201
|
-
if (date.toString() === "Invalid Date") {
|
|
202
|
-
return false;
|
|
203
|
-
}
|
|
204
|
-
possibleDate = date;
|
|
205
|
-
}
|
|
206
|
-
return !!possibleDate;
|
|
207
|
-
} catch (e) {
|
|
208
|
-
return false;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
// src/helpers/ruleHelpers/toDate.ts
|
|
213
|
-
function toDate(argument) {
|
|
214
|
-
const argStr = Object.prototype.toString.call(argument);
|
|
215
|
-
if (argument == null) {
|
|
216
|
-
return /* @__PURE__ */ new Date(NaN);
|
|
217
|
-
} else if (argument instanceof Date || typeof argument === "object" && argStr === "[object Date]") {
|
|
218
|
-
return new Date(argument.getTime());
|
|
219
|
-
} else if (typeof argument === "number" || argStr === "[object Number]") {
|
|
220
|
-
return new Date(argument);
|
|
221
|
-
} else if (typeof argument === "string" || argStr === "[object String]") {
|
|
222
|
-
return new Date(argument);
|
|
223
|
-
} else {
|
|
224
|
-
return /* @__PURE__ */ new Date(NaN);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
226
|
// src/helpers/ruleHelpers/toNumber.ts
|
|
229
227
|
function toNumber(argument) {
|
|
230
228
|
if (typeof argument === "number") {
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@regle/rules",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.13",
|
|
4
4
|
"description": "Collection of rules and helpers for Regle",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@regle/core": "0.5.
|
|
6
|
+
"@regle/core": "0.5.13"
|
|
7
7
|
},
|
|
8
8
|
"devDependencies": {
|
|
9
9
|
"@typescript-eslint/eslint-plugin": "8.19.1",
|