@regle/rules 0.10.4 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -139,7 +139,7 @@ function applyIf(_condition, rule) {
139
139
 
140
140
  // ../shared/utils/isEmpty.ts
141
141
  function isEmpty(value, considerEmptyArrayInvalid = true) {
142
- if (value === undefined || value === null) {
142
+ if (value === void 0 || value === null) {
143
143
  return true;
144
144
  }
145
145
  if (value instanceof Date) {
@@ -468,10 +468,15 @@ var required = core.createRule({
468
468
  });
469
469
  var maxLength = core.createRule({
470
470
  type: "maxLength",
471
- validator: (value, count) => {
471
+ validator: (value, count, options) => {
472
+ const { allowEqual = true } = options ?? {};
472
473
  if (isFilled(value, false) && isFilled(count)) {
473
474
  if (isNumber(count)) {
474
- return getSize(value) <= count;
475
+ if (allowEqual) {
476
+ return getSize(value) <= count;
477
+ } else {
478
+ return getSize(value) < count;
479
+ }
475
480
  }
476
481
  console.warn(`[maxLength] Value or parameter isn't a number, got value: ${value}, parameter: ${count}`);
477
482
  return false;
@@ -522,13 +527,18 @@ var alphaNum = core.createRule({
522
527
  });
523
528
  var between = core.createRule({
524
529
  type: "between",
525
- validator: (value, min, max) => {
530
+ validator: (value, min, max, options) => {
531
+ const { allowEqual = true } = options ?? {};
526
532
  if (isFilled(value) && isFilled(min) && isFilled(max)) {
527
533
  const tValue = toNumber(value);
528
534
  const tMin = toNumber(min);
529
535
  const tMax = toNumber(max);
530
536
  if (isNumber(tValue) && isNumber(tMin) && isNumber(tMax)) {
531
- return tValue >= tMin && tValue <= tMax;
537
+ if (allowEqual) {
538
+ return tValue >= tMin && tValue <= tMax;
539
+ } else {
540
+ return tValue > tMin && tValue < tMax;
541
+ }
532
542
  }
533
543
  console.warn(`[between] Value or parameters aren't numbers, got value: ${value}, min: ${min}, max: ${max}`);
534
544
  return false;
@@ -574,26 +584,41 @@ var integer = core.createRule({
574
584
  });
575
585
  var maxValue = core.createRule({
576
586
  type: "maxValue",
577
- validator: (value, count) => {
587
+ validator: (value, count, options) => {
588
+ const { allowEqual = true } = options ?? {};
578
589
  if (isFilled(value) && isFilled(count)) {
579
590
  if (isNumber(count) && !isNaN(toNumber(value))) {
580
- return toNumber(value) <= count;
591
+ if (allowEqual) {
592
+ return toNumber(value) <= count;
593
+ } else {
594
+ return toNumber(value) < count;
595
+ }
581
596
  }
582
597
  console.warn(`[maxValue] Value or parameter isn't a number, got value: ${value}, parameter: ${count}`);
583
598
  return true;
584
599
  }
585
600
  return true;
586
601
  },
587
- message: ({ $params: [count] }) => {
588
- return `The maximum value allowed is ${count}`;
602
+ message: ({ $params: [count, options] }) => {
603
+ const { allowEqual = true } = options ?? {};
604
+ if (allowEqual) {
605
+ return `Value must be less than or equal to ${count}`;
606
+ } else {
607
+ return `Value must be less than ${count}`;
608
+ }
589
609
  }
590
610
  });
591
611
  var minLength = core.createRule({
592
612
  type: "minLength",
593
- validator: (value, count) => {
613
+ validator: (value, count, options) => {
614
+ const { allowEqual = true } = options ?? {};
594
615
  if (isFilled(value, false) && isFilled(count)) {
595
616
  if (isNumber(count)) {
596
- return getSize(value) >= count;
617
+ if (allowEqual) {
618
+ return getSize(value) >= count;
619
+ } else {
620
+ return getSize(value) > count;
621
+ }
597
622
  }
598
623
  console.warn(`[minLength] Parameter isn't a number, got parameter: ${count}`);
599
624
  return false;
@@ -609,18 +634,28 @@ var minLength = core.createRule({
609
634
  });
610
635
  var minValue = core.createRule({
611
636
  type: "minValue",
612
- validator: (value, count) => {
637
+ validator: (value, count, options) => {
638
+ const { allowEqual = true } = options ?? {};
613
639
  if (isFilled(value) && isFilled(count)) {
614
640
  if (isNumber(count) && !isNaN(toNumber(value))) {
615
- return toNumber(value) >= count;
641
+ if (allowEqual) {
642
+ return toNumber(value) >= count;
643
+ } else {
644
+ return toNumber(value) > count;
645
+ }
616
646
  }
617
647
  console.warn(`[minValue] Value or parameter isn't a number, got value: ${value}, parameter: ${count}`);
618
648
  return true;
619
649
  }
620
650
  return true;
621
651
  },
622
- message: ({ $params: [count] }) => {
623
- return `The minimum value allowed is ${count}`;
652
+ message: ({ $params: [count, options] }) => {
653
+ const { allowEqual = true } = options ?? {};
654
+ if (allowEqual) {
655
+ return `Value must be greater than or equal to ${count}`;
656
+ } else {
657
+ return `Value must be greater than ${count}`;
658
+ }
624
659
  }
625
660
  });
626
661
  var exactValue = core.createRule({
@@ -705,7 +740,7 @@ var url = core.createRule({
705
740
 
706
741
  // src/utils/getLocale.util.ts
707
742
  function getUserLocale() {
708
- if (navigator.languages != undefined) return navigator.languages[0];
743
+ if (navigator.languages != void 0) return navigator.languages[0];
709
744
  return navigator.language;
710
745
  }
711
746
  function formatLocaleDate(date) {
@@ -214,12 +214,8 @@ type MetadataBase = {
214
214
  type ExtractMetaDataFromRules<T extends any[]> = T extends [infer F, ...infer R] ? F extends RegleRuleDefinition<any, any, any, infer M extends MetadataBase> ? [M, ...ExtractMetaDataFromRules<R>] : F extends InlineRuleDeclaration<any, any[], infer M extends MetadataBase | Promise<MetadataBase>> ? [M, ...ExtractMetaDataFromRules<R>] : [...ExtractMetaDataFromRules<R>] : [];
215
215
  type ExtractMetadata<T extends [...any[]]> = T extends [infer F, ...infer R] ? F & ExtractMetadata<R> : {};
216
216
  type GuessMetadataFromRules<T extends any[], TMeta = ExtractMetadata<ExtractMetaDataFromRules<T>>> = TMeta extends EmptyObject ? boolean : TMeta;
217
- type CreateFn<T extends any[]> = (...args: T) => any;
218
217
  type FilterTuple<T extends any[]> = T extends [infer F, ...infer R] ? [F] extends [[]] ? [...FilterTuple<R>] : [F, ...FilterTuple<R>] : [];
219
- type UnwrapTuplesRaw<T extends any[] = [], F = CreateFn<T>> = [T] extends [[]] ? [] : Parameters<F extends (...args: infer Args) => any ? (...args: {
220
- [K in keyof Args]: Args[K] extends Array<infer U> ? U : never;
221
- }) => any : never>;
222
- type UnwrapTuples<T extends any[]> = FilterTuple<UnwrapTuplesRaw<T>>;
218
+ type UnwrapTuples<T extends any[]> = FilterTuple<T> extends [infer U extends any[]] ? U : FilterTuple<T>;
223
219
 
224
220
  /**
225
221
  * The and operator combines multiple rules and validates successfully only if all provided rules are valid.
@@ -241,13 +237,22 @@ declare function not<TValue, TParams extends any[] = [], TReturn extends RegleRu
241
237
  */
242
238
  declare const required: RegleRuleDefinition<unknown, [], false, boolean, unknown>;
243
239
 
240
+ interface CommonComparationOptions {
241
+ /**
242
+ * Change the behaviour of the rule to check only if the value is equal in addition to be strictly superior or inferior
243
+ * @default true
244
+ */
245
+ allowEqual?: boolean;
246
+ }
247
+
244
248
  /**
245
249
  * Requires the input value to have a maximum specified length, inclusive. Works with arrays, objects and strings.
246
250
  *
247
251
  * @param max - the maximum length
248
252
  */
249
253
  declare const maxLength: RegleRuleWithParamsDefinition<string | any[] | Record<PropertyKey, any>, [
250
- count: number
254
+ count: number,
255
+ options?: CommonComparationOptions
251
256
  ], false, boolean>;
252
257
 
253
258
  /**
@@ -273,7 +278,11 @@ declare const alphaNum: RegleRuleDefinition<string | number, [], false, boolean,
273
278
  * @param min - the minimum limit
274
279
  * @param max - the maximum limit
275
280
  */
276
- declare const between: RegleRuleWithParamsDefinition<number, [min: number, max: number], false, boolean>;
281
+ declare const between: RegleRuleWithParamsDefinition<number, [
282
+ min: number,
283
+ max: number,
284
+ options?: CommonComparationOptions
285
+ ], false, boolean>;
277
286
 
278
287
  /**
279
288
  * Allows positive and negative decimal numbers.
@@ -295,7 +304,10 @@ declare const integer: RegleRuleDefinition<string | number, [], false, boolean,
295
304
  *
296
305
  * @param max - the maximum value
297
306
  */
298
- declare const maxValue: RegleRuleWithParamsDefinition<number, [count: number], false, boolean>;
307
+ declare const maxValue: RegleRuleWithParamsDefinition<number, [
308
+ count: number,
309
+ options?: CommonComparationOptions
310
+ ], false, boolean>;
299
311
 
300
312
  /**
301
313
  * Requires the input value to have a minimum specified length, inclusive. Works with arrays, objects and strings.
@@ -303,7 +315,8 @@ declare const maxValue: RegleRuleWithParamsDefinition<number, [count: number], f
303
315
  * @param min - the minimum value
304
316
  */
305
317
  declare const minLength: RegleRuleWithParamsDefinition<string | any[] | Record<PropertyKey, any>, [
306
- count: number
318
+ count: number,
319
+ options?: CommonComparationOptions
307
320
  ], false, boolean>;
308
321
 
309
322
  /**
@@ -311,7 +324,10 @@ declare const minLength: RegleRuleWithParamsDefinition<string | any[] | Record<P
311
324
  *
312
325
  * @param count - the minimum count
313
326
  */
314
- declare const minValue: RegleRuleWithParamsDefinition<number, [count: number], false, boolean>;
327
+ declare const minValue: RegleRuleWithParamsDefinition<number, [
328
+ count: number,
329
+ options?: CommonComparationOptions
330
+ ], false, boolean>;
315
331
 
316
332
  declare const exactValue: RegleRuleWithParamsDefinition<number, [count: number], false, boolean>;
317
333
 
@@ -214,12 +214,8 @@ type MetadataBase = {
214
214
  type ExtractMetaDataFromRules<T extends any[]> = T extends [infer F, ...infer R] ? F extends RegleRuleDefinition<any, any, any, infer M extends MetadataBase> ? [M, ...ExtractMetaDataFromRules<R>] : F extends InlineRuleDeclaration<any, any[], infer M extends MetadataBase | Promise<MetadataBase>> ? [M, ...ExtractMetaDataFromRules<R>] : [...ExtractMetaDataFromRules<R>] : [];
215
215
  type ExtractMetadata<T extends [...any[]]> = T extends [infer F, ...infer R] ? F & ExtractMetadata<R> : {};
216
216
  type GuessMetadataFromRules<T extends any[], TMeta = ExtractMetadata<ExtractMetaDataFromRules<T>>> = TMeta extends EmptyObject ? boolean : TMeta;
217
- type CreateFn<T extends any[]> = (...args: T) => any;
218
217
  type FilterTuple<T extends any[]> = T extends [infer F, ...infer R] ? [F] extends [[]] ? [...FilterTuple<R>] : [F, ...FilterTuple<R>] : [];
219
- type UnwrapTuplesRaw<T extends any[] = [], F = CreateFn<T>> = [T] extends [[]] ? [] : Parameters<F extends (...args: infer Args) => any ? (...args: {
220
- [K in keyof Args]: Args[K] extends Array<infer U> ? U : never;
221
- }) => any : never>;
222
- type UnwrapTuples<T extends any[]> = FilterTuple<UnwrapTuplesRaw<T>>;
218
+ type UnwrapTuples<T extends any[]> = FilterTuple<T> extends [infer U extends any[]] ? U : FilterTuple<T>;
223
219
 
224
220
  /**
225
221
  * The and operator combines multiple rules and validates successfully only if all provided rules are valid.
@@ -241,13 +237,22 @@ declare function not<TValue, TParams extends any[] = [], TReturn extends RegleRu
241
237
  */
242
238
  declare const required: RegleRuleDefinition<unknown, [], false, boolean, unknown>;
243
239
 
240
+ interface CommonComparationOptions {
241
+ /**
242
+ * Change the behaviour of the rule to check only if the value is equal in addition to be strictly superior or inferior
243
+ * @default true
244
+ */
245
+ allowEqual?: boolean;
246
+ }
247
+
244
248
  /**
245
249
  * Requires the input value to have a maximum specified length, inclusive. Works with arrays, objects and strings.
246
250
  *
247
251
  * @param max - the maximum length
248
252
  */
249
253
  declare const maxLength: RegleRuleWithParamsDefinition<string | any[] | Record<PropertyKey, any>, [
250
- count: number
254
+ count: number,
255
+ options?: CommonComparationOptions
251
256
  ], false, boolean>;
252
257
 
253
258
  /**
@@ -273,7 +278,11 @@ declare const alphaNum: RegleRuleDefinition<string | number, [], false, boolean,
273
278
  * @param min - the minimum limit
274
279
  * @param max - the maximum limit
275
280
  */
276
- declare const between: RegleRuleWithParamsDefinition<number, [min: number, max: number], false, boolean>;
281
+ declare const between: RegleRuleWithParamsDefinition<number, [
282
+ min: number,
283
+ max: number,
284
+ options?: CommonComparationOptions
285
+ ], false, boolean>;
277
286
 
278
287
  /**
279
288
  * Allows positive and negative decimal numbers.
@@ -295,7 +304,10 @@ declare const integer: RegleRuleDefinition<string | number, [], false, boolean,
295
304
  *
296
305
  * @param max - the maximum value
297
306
  */
298
- declare const maxValue: RegleRuleWithParamsDefinition<number, [count: number], false, boolean>;
307
+ declare const maxValue: RegleRuleWithParamsDefinition<number, [
308
+ count: number,
309
+ options?: CommonComparationOptions
310
+ ], false, boolean>;
299
311
 
300
312
  /**
301
313
  * Requires the input value to have a minimum specified length, inclusive. Works with arrays, objects and strings.
@@ -303,7 +315,8 @@ declare const maxValue: RegleRuleWithParamsDefinition<number, [count: number], f
303
315
  * @param min - the minimum value
304
316
  */
305
317
  declare const minLength: RegleRuleWithParamsDefinition<string | any[] | Record<PropertyKey, any>, [
306
- count: number
318
+ count: number,
319
+ options?: CommonComparationOptions
307
320
  ], false, boolean>;
308
321
 
309
322
  /**
@@ -311,7 +324,10 @@ declare const minLength: RegleRuleWithParamsDefinition<string | any[] | Record<P
311
324
  *
312
325
  * @param count - the minimum count
313
326
  */
314
- declare const minValue: RegleRuleWithParamsDefinition<number, [count: number], false, boolean>;
327
+ declare const minValue: RegleRuleWithParamsDefinition<number, [
328
+ count: number,
329
+ options?: CommonComparationOptions
330
+ ], false, boolean>;
315
331
 
316
332
  declare const exactValue: RegleRuleWithParamsDefinition<number, [count: number], false, boolean>;
317
333
 
@@ -1 +1 @@
1
- 'use strict';var core=require('@regle/core'),vue=require('vue');function P(e,t){let i,n,s,f;typeof e=="function"&&!("_validator"in e)?(i=core.InternalRuleType.Inline,n=e):{_type:i,validator:n,_active:s,_params:f}=e;let m=core.createRule({type:i,validator:n,active:s,message:t}),R=[...f??[]];if(m._params=R,m._message_patched=true,typeof m=="function"){let r=m(...R);return r._message_patched=true,r}else return m}function _(e,t){let i,n,s,f,m;typeof e=="function"&&!("_validator"in e)?(i=core.InternalRuleType.Inline,n=e):{_type:i,validator:n,_active:s,_params:f,_message:m}=e;let R=core.createRule({type:i,validator:n,active:s,message:m,tooltip:t}),r=[...f??[]];if(R._params=r,R._tooltip_patched=true,typeof R=="function"){let l=R(...r);return R._tooltip_patched=true,l}else return R}function I(e,t){let i=async(s,...f)=>e(s,...f),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,n,s=[],f="";typeof e=="function"?(i=core.InternalRuleType.Inline,n=(R,...r)=>e(R,...r),s=[t]):({_type:i,validator:n,_message:f}=e,s=s=e._params?.concat(t));let m=core.createRule({type:core.InternalRuleType.Inline,validator:n,message:f});return m._params=m._params?.concat(s),m(...t)}function L(e,t){let i,n,s=[],f="";typeof t=="function"?(i=core.InternalRuleType.Inline,n=t,s=[e]):({_type:i,validator:n,_message:f}=t,s=t._params?.concat([e]));function m(o,...p){let[b]=core.unwrapRuleParameters([e]);return b?n(o,...p):true}function R(o){let[p]=core.unwrapRuleParameters([e]);return p}let r=core.createRule({type:i,validator:m,active:R,message:f}),l=[...s??[]];return r._params=l,typeof r=="function"?r(...l):r}function u(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function x(e){if(u(e))return false;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 false}}function T(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function a(e,t=true){return !u(typeof e=="string"?e.trim():e,t)}function y(e){return e==null||typeof e!="number"?false:!isNaN(e)}function c(e,...t){if(u(e))return true;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 g(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=[],b=0;for(let d of r)if(typeof d=="function")p.push(d(l)),b++;else {let h=d._params?.length??0;p.push(d.validator(l,...o.slice(b,h))),h&&(b+=h);}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:b,...d}=p;return {...o,...d}},{})}:r.every(o=>!!o)}let f;e.length?f=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)}:f=r=>false;let m=core.createRule({type:"and",validator:f,message:"The value does not match all of the provided validators"}),R=[...i??[]];return m._params=R,typeof m=="function"?m(...R):m}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=[],b=0;for(let d of r)if(typeof d=="function")p.push(d(l)),b++;else {let h=d._params?.length??0;p.push(d.validator(l,...o.slice(b,h))),h&&(b+=h);}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:b,...d}=p;return {...o,...d}},{})}:r.some(o=>!!o)}let m=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??[]];return m._params=R,typeof m=="function"?m(...R):m}function B(e,t){let i,n,s,f,m;typeof e=="function"?(n=e,m=e.constructor.name==="AsyncFunction"):({_type:i,validator:n,_params:f}=e,m=e._async),m?s=async(l,...o)=>a(l)?!await n(l,...o):true:s=(l,...o)=>a(l)?!n(l,...o):true;let R=core.createRule({type:"not",validator:s,message:t??"Error"}),r=[...f??[]];return R._params=r,typeof R=="function"?R(...r):R}var Bt=core.createRule({type:"required",validator:e=>a(e),message:"This field is required"});var Qt=core.createRule({type:"maxLength",validator:(e,t)=>a(e,false)&&a(t)?y(t)?D(e)<=t:(console.warn(`[maxLength] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),false):true,message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The maximum length allowed is ${t}`});var er=core.createRule({type:"required",validator(e,t){return t?a(e):true},message:"This field is required",active({$params:[e]}){return e}});var X=/^[a-zA-Z]*$/,nr=core.createRule({type:"alpha",validator(e){return u(e)?true:c(e,X)},message:"The value is not alphabetical"});var j=/^[a-zA-Z0-9]*$/,lr=core.createRule({type:"alpha",validator(e){return u(e)?true:c(e,j)},message:"The value must be alpha-numeric"});var Rr=core.createRule({type:"between",validator:(e,t,i)=>{if(a(e)&&a(t)&&a(i)){let n=g(e),s=g(t),f=g(i);return y(n)&&y(s)&&y(f)?n>=s&&n<=f:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${i}`),false)}return true},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var re=/^[-]?\d*(\.\d+)?$/,gr=core.createRule({type:"decimal",validator(e){return u(e)?true:c(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)?true:c(e,ne)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,Pr=core.createRule({type:"integer",validator(e){return u(e)?true:c(e,oe)},message:"Value must be an integer"});var Ar=core.createRule({type:"maxValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(g(e))?g(e)<=t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true,message:({$params:[e]})=>`The maximum value allowed is ${e}`});var _r=core.createRule({type:"minLength",validator:(e,t)=>a(e,false)&&a(t)?y(t)?D(e)>=t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true,message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have at least ${t} items`:`This field should be at least ${t} characters long`});var kr=core.createRule({type:"minValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(g(e))?g(e)>=t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true,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(g(e))?g(e)===t:(console.warn(`[exactValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true,message:({$params:[e]})=>`The value must be equal to ${e}`});var qr=core.createRule({type:"exactLength",validator:(e,t)=>a(e,false)&&a(t)?y(t)?D(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true,message:({$params:[e]})=>`This field should be exactly ${e} characters long`});var pe=/^\d*(\.\d+)?$/,Jr=core.createRule({type:"numeric",validator(e){return u(e)?true:c(e,pe)},message:"This field must be numeric"});var Yr=core.createRule({type:"required",validator(e,t){return t?true:a(e)},message:"This field is required",active({$params:[e]}){return !e}});var ra=core.createRule({type:"sameAs",validator(e,t,i="other"){return u(e)?true:e===t},message({$params:[e,t]}){return `Value must be equal to the ${t} value`}});var de=/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i,oa=core.createRule({type:"url",validator(e){return u(e)?true:c(e,de)},message:"The value is not a valid URL address"});function Te(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function M(e){return e?new Intl.DateTimeFormat(Te(),{dateStyle:"short"}).format(new Date(e)):"?"}var Ra=core.createRule({type:"dateAfter",validator:(e,t)=>a(e)&&a(t)?x(e)&&x(t)?T(e).getTime()>T(t).getTime()?true:{$valid:false,error:"date-not-after"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${M(e)}`});var da=core.createRule({type:"dateBefore",validator:(e,t)=>a(e)&&a(t)?x(e)&&x(t)?T(e).getTime()<T(t).getTime()?true:{$valid:false,error:"date-not-before"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${M(e)}`});var ha=core.createRule({type:"dateBetween",validator:(e,t,i)=>x(e)&&x(t)&&x(i)?T(e).getTime()>T(t).getTime()&&T(e).getTime()<T(i).getTime():true,message:({$params:[e,t]})=>`The date must be between ${M(e)} and ${M(t)}`});function Me(e){if(e.length>3||e.length===0||e[0]==="0"&&e!=="0"||!e.match(/^\d+$/))return false;let t=+e|0;return t>=0&&t<=255}var $a=core.createRule({type:"ipAddress",validator(e){if(u(e))return true;if(typeof e!="string")return false;let t=e.split(".");return t.length===4&&t.every(Me)},message:"The value is not a valid IP address"});var Wa=core.createRule({type:"macAddress",validator(e,t=":"){if(u(e))return true;if(typeof e!="string")return false;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 Ea=core.createRule({type:"checked",validator:e=>a(e)?e===true:true,message:"This field must be checked"});var Ca=core.createRule({type:"contains",validator(e,t){return a(e)&&a(t)?e.includes(t):true},message({$params:[e]}){return `Field must contain ${e}`}});var Ua=core.createRule({type:"startsWith",validator(e,t){return a(e)&&a(t)?e.startsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var Ba=core.createRule({type:"endsWith",validator(e,t){return a(e)&&a(t)?e.endsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var Qa=core.createRule({type:"regex",validator(e,t){if(a(e)){let i=Array.isArray(t)?t:[t];return c(e,...i)}return true},message:"This field does not match the required pattern"});function en(e){let t=vue.computed(()=>vue.toValue(e));return P(w((n,s)=>a(n)&&a(s,false)?s.includes(n):true,[t]),({$params:[n]})=>`Value should be one of those options: ${n.join(", ")}.`)}function Ie(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 nn(e){let t=vue.computed(()=>vue.toValue(e));return P(w((n,s)=>a(n)&&!u(s)?Ie(s).includes(n):true,[t]),({$params:[n]})=>`Value should be one of those options: ${Object.values(n).join(", ")}.`)}exports.alpha=nr;exports.alphaNum=lr;exports.and=U;exports.applyIf=L;exports.between=Rr;exports.checked=Ea;exports.contains=Ca;exports.dateAfter=Ra;exports.dateBefore=da;exports.dateBetween=ha;exports.decimal=gr;exports.email=br;exports.endsWith=Ba;exports.exactLength=qr;exports.exactValue=Sr;exports.getSize=D;exports.integer=Pr;exports.ipAddress=$a;exports.isDate=x;exports.isEmpty=u;exports.isFilled=a;exports.isNumber=y;exports.macAddress=Wa;exports.matchRegex=c;exports.maxLength=Qt;exports.maxValue=Ar;exports.minLength=_r;exports.minValue=kr;exports.nativeEnum=nn;exports.not=B;exports.numeric=Jr;exports.oneOf=en;exports.or=q;exports.regex=Qa;exports.required=Bt;exports.requiredIf=er;exports.requiredUnless=Yr;exports.sameAs=ra;exports.startsWith=Ua;exports.toDate=T;exports.toNumber=g;exports.url=oa;exports.withAsync=I;exports.withMessage=P;exports.withParams=w;exports.withTooltip=_;
1
+ 'use strict';var core=require('@regle/core'),vue=require('vue');function P(e,t){let r,n,s,f;typeof e=="function"&&!("_validator"in e)?(r=core.InternalRuleType.Inline,n=e):{_type:r,validator:n,_active:s,_params:f}=e;let l=core.createRule({type:r,validator:n,active:s,message:t}),p=[...f??[]];if(l._params=p,l._message_patched=true,typeof l=="function"){let a=l(...p);return a._message_patched=true,a}else return l}function C(e,t){let r,n,s,f,l;typeof e=="function"&&!("_validator"in e)?(r=core.InternalRuleType.Inline,n=e):{_type:r,validator:n,_active:s,_params:f,_message:l}=e;let p=core.createRule({type:r,validator:n,active:s,message:l,tooltip:t}),a=[...f??[]];if(p._params=a,p._tooltip_patched=true,typeof p=="function"){let u=p(...a);return p._tooltip_patched=true,u}else return p}function E(e,t){let r=async(s,...f)=>e(s,...f),n=core.createRule({type:core.InternalRuleType.Async,validator:r,message:""});return n._params=n._params?.concat(t),n(...t??[])}function w(e,t){let r,n,s=[],f="";typeof e=="function"?(r=core.InternalRuleType.Inline,n=(p,...a)=>e(p,...a),s=[t]):({_type:r,validator:n,_message:f}=e,s=s=e._params?.concat(t));let l=core.createRule({type:core.InternalRuleType.Inline,validator:n,message:f});return l._params=l._params?.concat(s),l(...t)}function z(e,t){let r,n,s=[],f="";typeof t=="function"?(r=core.InternalRuleType.Inline,n=t,s=[e]):({_type:r,validator:n,_message:f}=t,s=t._params?.concat([e]));function l(o,...R){let[b]=core.unwrapRuleParameters([e]);return b?n(o,...R):true}function p(o){let[R]=core.unwrapRuleParameters([e]);return R}let a=core.createRule({type:r,validator:l,active:p,message:f}),u=[...s??[]];return a._params=u,typeof a=="function"?a(...u):a}function m(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function x(e){if(m(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return false}}function T(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function i(e,t=true){return !m(typeof e=="string"?e.trim():e,t)}function y(e){return e==null||typeof e!="number"?false:!isNaN(e)}function c(e,...t){if(m(e))return true;let r=typeof e=="number"?e.toString():e;return t.every(n=>(n.lastIndex=0,n.test(r)))}function D(e){let t=vue.unref(e);return Array.isArray(t)?t.length:typeof t=="object"?Object.keys(t).length:typeof t=="number"?isNaN(t)?0:t:String(t).length}function g(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}function q(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),r=e.map(a=>{if(typeof a=="function")return null;{let u=a._params;return u?.length?u:[]}}).flat().filter(a=>!!a);function n(a,u,...o){let R=[],b=0;for(let d of a)if(typeof d=="function")R.push(d(u)),b++;else {let h=d._params?.length??0;R.push(d.validator(u,...o.slice(b,h))),h&&(b+=h);}return R}function s(a){return a?.some(o=>typeof o!="boolean")?{$valid:a.every(o=>typeof o=="boolean"?!!o:o.$valid),...a.reduce((o,R)=>{if(typeof R=="boolean")return o;let{$valid:b,...d}=R;return {...o,...d}},{})}:a.every(o=>!!o)}let f;e.length?f=t?async(a,...u)=>{let o=await Promise.all(n(e,a,...u));return s(o)}:(a,...u)=>{let o=n(e,a,...u);return s(o)}:f=a=>false;let l=core.createRule({type:"and",validator:f,message:"The value does not match all of the provided validators"}),p=[...r??[]];return l._params=p,typeof l=="function"?l(...p):l}function G(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),r=e.map(a=>typeof a=="function"?null:a._params).flat().filter(a=>!!a);function n(a,u,...o){let R=[],b=0;for(let d of a)if(typeof d=="function")R.push(d(u)),b++;else {let h=d._params?.length??0;R.push(d.validator(u,...o.slice(b,h))),h&&(b+=h);}return R}function s(a){return a.some(o=>typeof o!="boolean")?{$valid:a.some(o=>typeof o=="boolean"?!!o:o.$valid),...a.reduce((o,R)=>{if(typeof R=="boolean")return o;let{$valid:b,...d}=R;return {...o,...d}},{})}:a.some(o=>!!o)}let l=core.createRule({type:"or",validator:t?async(a,...u)=>{let o=await Promise.all(n(e,a,...u));return s(o)}:(a,...u)=>{let o=n(e,a,...u);return s(o)},message:"The value does not match any of the provided validators"}),p=[...r??[]];return l._params=p,typeof l=="function"?l(...p):l}function B(e,t){let r,n,s,f,l;typeof e=="function"?(n=e,l=e.constructor.name==="AsyncFunction"):({_type:r,validator:n,_params:f}=e,l=e._async),l?s=async(u,...o)=>i(u)?!await n(u,...o):true:s=(u,...o)=>i(u)?!n(u,...o):true;let p=core.createRule({type:"not",validator:s,message:t??"Error"}),a=[...f??[]];return p._params=a,typeof p=="function"?p(...a):p}var Bt=core.createRule({type:"required",validator:e=>i(e),message:"This field is required"});var Qt=core.createRule({type:"maxLength",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e,false)&&i(t)?y(t)?n?D(e)<=t:D(e)<t:(console.warn(`[maxLength] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),false):true},message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The maximum length allowed is ${t}`});var er=core.createRule({type:"required",validator(e,t){return t?i(e):true},message:"This field is required",active({$params:[e]}){return e}});var X=/^[a-zA-Z]*$/,ar=core.createRule({type:"alpha",validator(e){return m(e)?true:c(e,X)},message:"The value is not alphabetical"});var j=/^[a-zA-Z0-9]*$/,lr=core.createRule({type:"alpha",validator(e){return m(e)?true:c(e,j)},message:"The value must be alpha-numeric"});var pr=core.createRule({type:"between",validator:(e,t,r,n)=>{let{allowEqual:s=true}=n??{};if(i(e)&&i(t)&&i(r)){let f=g(e),l=g(t),p=g(r);return y(f)&&y(l)&&y(p)?s?f>=l&&f<=p:f>l&&f<p:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${r}`),false)}return true},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var re=/^[-]?\d*(\.\d+)?$/,gr=core.createRule({type:"decimal",validator(e){return m(e)?true:c(e,re)},message:"Value must be decimal"});var ae=/^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i,br=core.createRule({type:"email",validator(e){return m(e)?true:c(e,ae)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,Pr=core.createRule({type:"integer",validator(e){return m(e)?true:c(e,oe)},message:"Value must be an integer"});var Ar=core.createRule({type:"maxValue",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e)&&i(t)?y(t)&&!isNaN(g(e))?n?g(e)<=t:g(e)<t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true},message:({$params:[e,t]})=>{let{allowEqual:r=true}=t??{};return r?`Value must be less than or equal to ${e}`:`Value must be less than ${e}`}});var Cr=core.createRule({type:"minLength",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e,false)&&i(t)?y(t)?n?D(e)>=t:D(e)>t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true},message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have at least ${t} items`:`This field should be at least ${t} characters long`});var Ir=core.createRule({type:"minValue",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e)&&i(t)?y(t)&&!isNaN(g(e))?n?g(e)>=t:g(e)>t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true},message:({$params:[e,t]})=>{let{allowEqual:r=true}=t??{};return r?`Value must be greater than or equal to ${e}`:`Value must be greater than ${e}`}});var Lr=core.createRule({type:"exactValue",validator:(e,t)=>i(e)&&i(t)?y(t)&&!isNaN(g(e))?g(e)===t:(console.warn(`[exactValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true,message:({$params:[e]})=>`The value must be equal to ${e}`});var Gr=core.createRule({type:"exactLength",validator:(e,t)=>i(e,false)&&i(t)?y(t)?D(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true,message:({$params:[e]})=>`This field should be exactly ${e} characters long`});var Re=/^\d*(\.\d+)?$/,Jr=core.createRule({type:"numeric",validator(e){return m(e)?true:c(e,Re)},message:"This field must be numeric"});var Yr=core.createRule({type:"required",validator(e,t){return t?true:i(e)},message:"This field is required",active({$params:[e]}){return !e}});var rn=core.createRule({type:"sameAs",validator(e,t,r="other"){return m(e)?true:e===t},message({$params:[e,t]}){return `Value must be equal to the ${t} value`}});var de=/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i,sn=core.createRule({type:"url",validator(e){return m(e)?true:c(e,de)},message:"The value is not a valid URL address"});function Te(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function M(e){return e?new Intl.DateTimeFormat(Te(),{dateStyle:"short"}).format(new Date(e)):"?"}var Rn=core.createRule({type:"dateAfter",validator:(e,t)=>i(e)&&i(t)?x(e)&&x(t)?T(e).getTime()>T(t).getTime()?true:{$valid:false,error:"date-not-after"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${M(e)}`});var Tn=core.createRule({type:"dateBefore",validator:(e,t)=>i(e)&&i(t)?x(e)&&x(t)?T(e).getTime()<T(t).getTime()?true:{$valid:false,error:"date-not-before"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${M(e)}`});var Mn=core.createRule({type:"dateBetween",validator:(e,t,r)=>x(e)&&x(t)&&x(r)?T(e).getTime()>T(t).getTime()&&T(e).getTime()<T(r).getTime():true,message:({$params:[e,t]})=>`The date must be between ${M(e)} and ${M(t)}`});function Me(e){if(e.length>3||e.length===0||e[0]==="0"&&e!=="0"||!e.match(/^\d+$/))return false;let t=+e|0;return t>=0&&t<=255}var Vn=core.createRule({type:"ipAddress",validator(e){if(m(e))return true;if(typeof e!="string")return false;let t=e.split(".");return t.length===4&&t.every(Me)},message:"The value is not a valid IP address"});var Fn=core.createRule({type:"macAddress",validator(e,t=":"){if(m(e))return true;if(typeof e!="string")return false;let r=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return r!==null&&(r.length===6||r.length===8)&&r.every(we)},message:"The value is not a valid MAC Address"}),we=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var En=core.createRule({type:"checked",validator:e=>i(e)?e===true:true,message:"This field must be checked"});var zn=core.createRule({type:"contains",validator(e,t){return i(e)&&i(t)?e.includes(t):true},message({$params:[e]}){return `Field must contain ${e}`}});var Un=core.createRule({type:"startsWith",validator(e,t){return i(e)&&i(t)?e.startsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var Zn=core.createRule({type:"endsWith",validator(e,t){return i(e)&&i(t)?e.endsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var Xn=core.createRule({type:"regex",validator(e,t){if(i(e)){let r=Array.isArray(t)?t:[t];return c(e,...r)}return true},message:"This field does not match the required pattern"});function ta(e){let t=vue.computed(()=>vue.toValue(e));return P(w((n,s)=>i(n)&&i(s,false)?s.includes(n):true,[t]),({$params:[n]})=>`Value should be one of those options: ${n.join(", ")}.`)}function Ee(e){let t=Object.keys(e).filter(n=>typeof e[e[n]]!="number"),r={};for(let n of t)r[n]=e[n];return Object.values(r)}function ia(e){let t=vue.computed(()=>vue.toValue(e));return P(w((n,s)=>i(n)&&!m(s)?Ee(s).includes(n):true,[t]),({$params:[n]})=>`Value should be one of those options: ${Object.values(n).join(", ")}.`)}exports.alpha=ar;exports.alphaNum=lr;exports.and=q;exports.applyIf=z;exports.between=pr;exports.checked=En;exports.contains=zn;exports.dateAfter=Rn;exports.dateBefore=Tn;exports.dateBetween=Mn;exports.decimal=gr;exports.email=br;exports.endsWith=Zn;exports.exactLength=Gr;exports.exactValue=Lr;exports.getSize=D;exports.integer=Pr;exports.ipAddress=Vn;exports.isDate=x;exports.isEmpty=m;exports.isFilled=i;exports.isNumber=y;exports.macAddress=Fn;exports.matchRegex=c;exports.maxLength=Qt;exports.maxValue=Ar;exports.minLength=Cr;exports.minValue=Ir;exports.nativeEnum=ia;exports.not=B;exports.numeric=Jr;exports.oneOf=ta;exports.or=G;exports.regex=Xn;exports.required=Bt;exports.requiredIf=er;exports.requiredUnless=Yr;exports.sameAs=rn;exports.startsWith=Un;exports.toDate=T;exports.toNumber=g;exports.url=sn;exports.withAsync=E;exports.withMessage=P;exports.withParams=w;exports.withTooltip=C;
@@ -1 +1 @@
1
- import {createRule,InternalRuleType,unwrapRuleParameters}from'@regle/core';import {unref,computed,toValue}from'vue';function P(e,t){let i,n,s,f;typeof e=="function"&&!("_validator"in e)?(i=InternalRuleType.Inline,n=e):{_type:i,validator:n,_active:s,_params:f}=e;let m=createRule({type:i,validator:n,active:s,message:t}),R=[...f??[]];if(m._params=R,m._message_patched=true,typeof m=="function"){let r=m(...R);return r._message_patched=true,r}else return m}function _(e,t){let i,n,s,f,m;typeof e=="function"&&!("_validator"in e)?(i=InternalRuleType.Inline,n=e):{_type:i,validator:n,_active:s,_params:f,_message:m}=e;let R=createRule({type:i,validator:n,active:s,message:m,tooltip:t}),r=[...f??[]];if(R._params=r,R._tooltip_patched=true,typeof R=="function"){let l=R(...r);return R._tooltip_patched=true,l}else return R}function I(e,t){let i=async(s,...f)=>e(s,...f),n=createRule({type:InternalRuleType.Async,validator:i,message:""});return n._params=n._params?.concat(t),n(...t??[])}function w(e,t){let i,n,s=[],f="";typeof e=="function"?(i=InternalRuleType.Inline,n=(R,...r)=>e(R,...r),s=[t]):({_type:i,validator:n,_message:f}=e,s=s=e._params?.concat(t));let m=createRule({type:InternalRuleType.Inline,validator:n,message:f});return m._params=m._params?.concat(s),m(...t)}function L(e,t){let i,n,s=[],f="";typeof t=="function"?(i=InternalRuleType.Inline,n=t,s=[e]):({_type:i,validator:n,_message:f}=t,s=t._params?.concat([e]));function m(o,...p){let[b]=unwrapRuleParameters([e]);return b?n(o,...p):true}function R(o){let[p]=unwrapRuleParameters([e]);return p}let r=createRule({type:i,validator:m,active:R,message:f}),l=[...s??[]];return r._params=l,typeof r=="function"?r(...l):r}function u(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function x(e){if(u(e))return false;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 false}}function T(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function a(e,t=true){return !u(typeof e=="string"?e.trim():e,t)}function y(e){return e==null||typeof e!="number"?false:!isNaN(e)}function c(e,...t){if(u(e))return true;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 g(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=[],b=0;for(let d of r)if(typeof d=="function")p.push(d(l)),b++;else {let h=d._params?.length??0;p.push(d.validator(l,...o.slice(b,h))),h&&(b+=h);}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:b,...d}=p;return {...o,...d}},{})}:r.every(o=>!!o)}let f;e.length?f=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)}:f=r=>false;let m=createRule({type:"and",validator:f,message:"The value does not match all of the provided validators"}),R=[...i??[]];return m._params=R,typeof m=="function"?m(...R):m}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=[],b=0;for(let d of r)if(typeof d=="function")p.push(d(l)),b++;else {let h=d._params?.length??0;p.push(d.validator(l,...o.slice(b,h))),h&&(b+=h);}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:b,...d}=p;return {...o,...d}},{})}:r.some(o=>!!o)}let m=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??[]];return m._params=R,typeof m=="function"?m(...R):m}function B(e,t){let i,n,s,f,m;typeof e=="function"?(n=e,m=e.constructor.name==="AsyncFunction"):({_type:i,validator:n,_params:f}=e,m=e._async),m?s=async(l,...o)=>a(l)?!await n(l,...o):true:s=(l,...o)=>a(l)?!n(l,...o):true;let R=createRule({type:"not",validator:s,message:t??"Error"}),r=[...f??[]];return R._params=r,typeof R=="function"?R(...r):R}var Bt=createRule({type:"required",validator:e=>a(e),message:"This field is required"});var Qt=createRule({type:"maxLength",validator:(e,t)=>a(e,false)&&a(t)?y(t)?D(e)<=t:(console.warn(`[maxLength] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),false):true,message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The maximum length allowed is ${t}`});var er=createRule({type:"required",validator(e,t){return t?a(e):true},message:"This field is required",active({$params:[e]}){return e}});var X=/^[a-zA-Z]*$/,nr=createRule({type:"alpha",validator(e){return u(e)?true:c(e,X)},message:"The value is not alphabetical"});var j=/^[a-zA-Z0-9]*$/,lr=createRule({type:"alpha",validator(e){return u(e)?true:c(e,j)},message:"The value must be alpha-numeric"});var Rr=createRule({type:"between",validator:(e,t,i)=>{if(a(e)&&a(t)&&a(i)){let n=g(e),s=g(t),f=g(i);return y(n)&&y(s)&&y(f)?n>=s&&n<=f:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${i}`),false)}return true},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var re=/^[-]?\d*(\.\d+)?$/,gr=createRule({type:"decimal",validator(e){return u(e)?true:c(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)?true:c(e,ne)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,Pr=createRule({type:"integer",validator(e){return u(e)?true:c(e,oe)},message:"Value must be an integer"});var Ar=createRule({type:"maxValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(g(e))?g(e)<=t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true,message:({$params:[e]})=>`The maximum value allowed is ${e}`});var _r=createRule({type:"minLength",validator:(e,t)=>a(e,false)&&a(t)?y(t)?D(e)>=t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true,message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have at least ${t} items`:`This field should be at least ${t} characters long`});var kr=createRule({type:"minValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(g(e))?g(e)>=t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true,message:({$params:[e]})=>`The minimum value allowed is ${e}`});var Sr=createRule({type:"exactValue",validator:(e,t)=>a(e)&&a(t)?y(t)&&!isNaN(g(e))?g(e)===t:(console.warn(`[exactValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true,message:({$params:[e]})=>`The value must be equal to ${e}`});var qr=createRule({type:"exactLength",validator:(e,t)=>a(e,false)&&a(t)?y(t)?D(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true,message:({$params:[e]})=>`This field should be exactly ${e} characters long`});var pe=/^\d*(\.\d+)?$/,Jr=createRule({type:"numeric",validator(e){return u(e)?true:c(e,pe)},message:"This field must be numeric"});var Yr=createRule({type:"required",validator(e,t){return t?true:a(e)},message:"This field is required",active({$params:[e]}){return !e}});var ra=createRule({type:"sameAs",validator(e,t,i="other"){return u(e)?true:e===t},message({$params:[e,t]}){return `Value must be equal to the ${t} value`}});var de=/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i,oa=createRule({type:"url",validator(e){return u(e)?true:c(e,de)},message:"The value is not a valid URL address"});function Te(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function M(e){return e?new Intl.DateTimeFormat(Te(),{dateStyle:"short"}).format(new Date(e)):"?"}var Ra=createRule({type:"dateAfter",validator:(e,t)=>a(e)&&a(t)?x(e)&&x(t)?T(e).getTime()>T(t).getTime()?true:{$valid:false,error:"date-not-after"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${M(e)}`});var da=createRule({type:"dateBefore",validator:(e,t)=>a(e)&&a(t)?x(e)&&x(t)?T(e).getTime()<T(t).getTime()?true:{$valid:false,error:"date-not-before"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${M(e)}`});var ha=createRule({type:"dateBetween",validator:(e,t,i)=>x(e)&&x(t)&&x(i)?T(e).getTime()>T(t).getTime()&&T(e).getTime()<T(i).getTime():true,message:({$params:[e,t]})=>`The date must be between ${M(e)} and ${M(t)}`});function Me(e){if(e.length>3||e.length===0||e[0]==="0"&&e!=="0"||!e.match(/^\d+$/))return false;let t=+e|0;return t>=0&&t<=255}var $a=createRule({type:"ipAddress",validator(e){if(u(e))return true;if(typeof e!="string")return false;let t=e.split(".");return t.length===4&&t.every(Me)},message:"The value is not a valid IP address"});var Wa=createRule({type:"macAddress",validator(e,t=":"){if(u(e))return true;if(typeof e!="string")return false;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 Ea=createRule({type:"checked",validator:e=>a(e)?e===true:true,message:"This field must be checked"});var Ca=createRule({type:"contains",validator(e,t){return a(e)&&a(t)?e.includes(t):true},message({$params:[e]}){return `Field must contain ${e}`}});var Ua=createRule({type:"startsWith",validator(e,t){return a(e)&&a(t)?e.startsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var Ba=createRule({type:"endsWith",validator(e,t){return a(e)&&a(t)?e.endsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var Qa=createRule({type:"regex",validator(e,t){if(a(e)){let i=Array.isArray(t)?t:[t];return c(e,...i)}return true},message:"This field does not match the required pattern"});function en(e){let t=computed(()=>toValue(e));return P(w((n,s)=>a(n)&&a(s,false)?s.includes(n):true,[t]),({$params:[n]})=>`Value should be one of those options: ${n.join(", ")}.`)}function Ie(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 nn(e){let t=computed(()=>toValue(e));return P(w((n,s)=>a(n)&&!u(s)?Ie(s).includes(n):true,[t]),({$params:[n]})=>`Value should be one of those options: ${Object.values(n).join(", ")}.`)}export{nr as alpha,lr as alphaNum,U as and,L as applyIf,Rr as between,Ea as checked,Ca as contains,Ra as dateAfter,da as dateBefore,ha as dateBetween,gr as decimal,br as email,Ba as endsWith,qr as exactLength,Sr as exactValue,D as getSize,Pr as integer,$a as ipAddress,x as isDate,u as isEmpty,a as isFilled,y as isNumber,Wa as macAddress,c as matchRegex,Qt as maxLength,Ar as maxValue,_r as minLength,kr as minValue,nn as nativeEnum,B as not,Jr as numeric,en as oneOf,q as or,Qa as regex,Bt as required,er as requiredIf,Yr as requiredUnless,ra as sameAs,Ua as startsWith,T as toDate,g as toNumber,oa as url,I as withAsync,P as withMessage,w as withParams,_ as withTooltip};
1
+ import {createRule,InternalRuleType,unwrapRuleParameters}from'@regle/core';import {unref,computed,toValue}from'vue';function P(e,t){let r,n,s,f;typeof e=="function"&&!("_validator"in e)?(r=InternalRuleType.Inline,n=e):{_type:r,validator:n,_active:s,_params:f}=e;let l=createRule({type:r,validator:n,active:s,message:t}),p=[...f??[]];if(l._params=p,l._message_patched=true,typeof l=="function"){let a=l(...p);return a._message_patched=true,a}else return l}function C(e,t){let r,n,s,f,l;typeof e=="function"&&!("_validator"in e)?(r=InternalRuleType.Inline,n=e):{_type:r,validator:n,_active:s,_params:f,_message:l}=e;let p=createRule({type:r,validator:n,active:s,message:l,tooltip:t}),a=[...f??[]];if(p._params=a,p._tooltip_patched=true,typeof p=="function"){let u=p(...a);return p._tooltip_patched=true,u}else return p}function E(e,t){let r=async(s,...f)=>e(s,...f),n=createRule({type:InternalRuleType.Async,validator:r,message:""});return n._params=n._params?.concat(t),n(...t??[])}function w(e,t){let r,n,s=[],f="";typeof e=="function"?(r=InternalRuleType.Inline,n=(p,...a)=>e(p,...a),s=[t]):({_type:r,validator:n,_message:f}=e,s=s=e._params?.concat(t));let l=createRule({type:InternalRuleType.Inline,validator:n,message:f});return l._params=l._params?.concat(s),l(...t)}function z(e,t){let r,n,s=[],f="";typeof t=="function"?(r=InternalRuleType.Inline,n=t,s=[e]):({_type:r,validator:n,_message:f}=t,s=t._params?.concat([e]));function l(o,...R){let[b]=unwrapRuleParameters([e]);return b?n(o,...R):true}function p(o){let[R]=unwrapRuleParameters([e]);return R}let a=createRule({type:r,validator:l,active:p,message:f}),u=[...s??[]];return a._params=u,typeof a=="function"?a(...u):a}function m(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function x(e){if(m(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return false}}function T(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function i(e,t=true){return !m(typeof e=="string"?e.trim():e,t)}function y(e){return e==null||typeof e!="number"?false:!isNaN(e)}function c(e,...t){if(m(e))return true;let r=typeof e=="number"?e.toString():e;return t.every(n=>(n.lastIndex=0,n.test(r)))}function D(e){let t=unref(e);return Array.isArray(t)?t.length:typeof t=="object"?Object.keys(t).length:typeof t=="number"?isNaN(t)?0:t:String(t).length}function g(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}function q(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),r=e.map(a=>{if(typeof a=="function")return null;{let u=a._params;return u?.length?u:[]}}).flat().filter(a=>!!a);function n(a,u,...o){let R=[],b=0;for(let d of a)if(typeof d=="function")R.push(d(u)),b++;else {let h=d._params?.length??0;R.push(d.validator(u,...o.slice(b,h))),h&&(b+=h);}return R}function s(a){return a?.some(o=>typeof o!="boolean")?{$valid:a.every(o=>typeof o=="boolean"?!!o:o.$valid),...a.reduce((o,R)=>{if(typeof R=="boolean")return o;let{$valid:b,...d}=R;return {...o,...d}},{})}:a.every(o=>!!o)}let f;e.length?f=t?async(a,...u)=>{let o=await Promise.all(n(e,a,...u));return s(o)}:(a,...u)=>{let o=n(e,a,...u);return s(o)}:f=a=>false;let l=createRule({type:"and",validator:f,message:"The value does not match all of the provided validators"}),p=[...r??[]];return l._params=p,typeof l=="function"?l(...p):l}function G(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),r=e.map(a=>typeof a=="function"?null:a._params).flat().filter(a=>!!a);function n(a,u,...o){let R=[],b=0;for(let d of a)if(typeof d=="function")R.push(d(u)),b++;else {let h=d._params?.length??0;R.push(d.validator(u,...o.slice(b,h))),h&&(b+=h);}return R}function s(a){return a.some(o=>typeof o!="boolean")?{$valid:a.some(o=>typeof o=="boolean"?!!o:o.$valid),...a.reduce((o,R)=>{if(typeof R=="boolean")return o;let{$valid:b,...d}=R;return {...o,...d}},{})}:a.some(o=>!!o)}let l=createRule({type:"or",validator:t?async(a,...u)=>{let o=await Promise.all(n(e,a,...u));return s(o)}:(a,...u)=>{let o=n(e,a,...u);return s(o)},message:"The value does not match any of the provided validators"}),p=[...r??[]];return l._params=p,typeof l=="function"?l(...p):l}function B(e,t){let r,n,s,f,l;typeof e=="function"?(n=e,l=e.constructor.name==="AsyncFunction"):({_type:r,validator:n,_params:f}=e,l=e._async),l?s=async(u,...o)=>i(u)?!await n(u,...o):true:s=(u,...o)=>i(u)?!n(u,...o):true;let p=createRule({type:"not",validator:s,message:t??"Error"}),a=[...f??[]];return p._params=a,typeof p=="function"?p(...a):p}var Bt=createRule({type:"required",validator:e=>i(e),message:"This field is required"});var Qt=createRule({type:"maxLength",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e,false)&&i(t)?y(t)?n?D(e)<=t:D(e)<t:(console.warn(`[maxLength] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),false):true},message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have maximum ${t} items`:`The maximum length allowed is ${t}`});var er=createRule({type:"required",validator(e,t){return t?i(e):true},message:"This field is required",active({$params:[e]}){return e}});var X=/^[a-zA-Z]*$/,ar=createRule({type:"alpha",validator(e){return m(e)?true:c(e,X)},message:"The value is not alphabetical"});var j=/^[a-zA-Z0-9]*$/,lr=createRule({type:"alpha",validator(e){return m(e)?true:c(e,j)},message:"The value must be alpha-numeric"});var pr=createRule({type:"between",validator:(e,t,r,n)=>{let{allowEqual:s=true}=n??{};if(i(e)&&i(t)&&i(r)){let f=g(e),l=g(t),p=g(r);return y(f)&&y(l)&&y(p)?s?f>=l&&f<=p:f>l&&f<p:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${r}`),false)}return true},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var re=/^[-]?\d*(\.\d+)?$/,gr=createRule({type:"decimal",validator(e){return m(e)?true:c(e,re)},message:"Value must be decimal"});var ae=/^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i,br=createRule({type:"email",validator(e){return m(e)?true:c(e,ae)},message:"Value must be an valid email address"});var oe=/(^[0-9]*$)|(^-[0-9]+$)/,Pr=createRule({type:"integer",validator(e){return m(e)?true:c(e,oe)},message:"Value must be an integer"});var Ar=createRule({type:"maxValue",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e)&&i(t)?y(t)&&!isNaN(g(e))?n?g(e)<=t:g(e)<t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true},message:({$params:[e,t]})=>{let{allowEqual:r=true}=t??{};return r?`Value must be less than or equal to ${e}`:`Value must be less than ${e}`}});var Cr=createRule({type:"minLength",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e,false)&&i(t)?y(t)?n?D(e)>=t:D(e)>t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true},message:({$value:e,$params:[t]})=>Array.isArray(e)?`This list should have at least ${t} items`:`This field should be at least ${t} characters long`});var Ir=createRule({type:"minValue",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e)&&i(t)?y(t)&&!isNaN(g(e))?n?g(e)>=t:g(e)>t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true},message:({$params:[e,t]})=>{let{allowEqual:r=true}=t??{};return r?`Value must be greater than or equal to ${e}`:`Value must be greater than ${e}`}});var Lr=createRule({type:"exactValue",validator:(e,t)=>i(e)&&i(t)?y(t)&&!isNaN(g(e))?g(e)===t:(console.warn(`[exactValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true,message:({$params:[e]})=>`The value must be equal to ${e}`});var Gr=createRule({type:"exactLength",validator:(e,t)=>i(e,false)&&i(t)?y(t)?D(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true,message:({$params:[e]})=>`This field should be exactly ${e} characters long`});var Re=/^\d*(\.\d+)?$/,Jr=createRule({type:"numeric",validator(e){return m(e)?true:c(e,Re)},message:"This field must be numeric"});var Yr=createRule({type:"required",validator(e,t){return t?true:i(e)},message:"This field is required",active({$params:[e]}){return !e}});var rn=createRule({type:"sameAs",validator(e,t,r="other"){return m(e)?true:e===t},message({$params:[e,t]}){return `Value must be equal to the ${t} value`}});var de=/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i,sn=createRule({type:"url",validator(e){return m(e)?true:c(e,de)},message:"The value is not a valid URL address"});function Te(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function M(e){return e?new Intl.DateTimeFormat(Te(),{dateStyle:"short"}).format(new Date(e)):"?"}var Rn=createRule({type:"dateAfter",validator:(e,t)=>i(e)&&i(t)?x(e)&&x(t)?T(e).getTime()>T(t).getTime()?true:{$valid:false,error:"date-not-after"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The inputs must be Dates":`The date must be after ${M(e)}`});var Tn=createRule({type:"dateBefore",validator:(e,t)=>i(e)&&i(t)?x(e)&&x(t)?T(e).getTime()<T(t).getTime()?true:{$valid:false,error:"date-not-before"}:{$valid:false,error:"value-or-paramater-not-a-date"}:true,message:({$params:[e],error:t})=>t==="value-or-paramater-not-a-date"?"The fields must be Dates":`The date must be before ${M(e)}`});var Mn=createRule({type:"dateBetween",validator:(e,t,r)=>x(e)&&x(t)&&x(r)?T(e).getTime()>T(t).getTime()&&T(e).getTime()<T(r).getTime():true,message:({$params:[e,t]})=>`The date must be between ${M(e)} and ${M(t)}`});function Me(e){if(e.length>3||e.length===0||e[0]==="0"&&e!=="0"||!e.match(/^\d+$/))return false;let t=+e|0;return t>=0&&t<=255}var Vn=createRule({type:"ipAddress",validator(e){if(m(e))return true;if(typeof e!="string")return false;let t=e.split(".");return t.length===4&&t.every(Me)},message:"The value is not a valid IP address"});var Fn=createRule({type:"macAddress",validator(e,t=":"){if(m(e))return true;if(typeof e!="string")return false;let r=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return r!==null&&(r.length===6||r.length===8)&&r.every(we)},message:"The value is not a valid MAC Address"}),we=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var En=createRule({type:"checked",validator:e=>i(e)?e===true:true,message:"This field must be checked"});var zn=createRule({type:"contains",validator(e,t){return i(e)&&i(t)?e.includes(t):true},message({$params:[e]}){return `Field must contain ${e}`}});var Un=createRule({type:"startsWith",validator(e,t){return i(e)&&i(t)?e.startsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var Zn=createRule({type:"endsWith",validator(e,t){return i(e)&&i(t)?e.endsWith(t):true},message({$params:[e]}){return `Field must end with ${e}`}});var Xn=createRule({type:"regex",validator(e,t){if(i(e)){let r=Array.isArray(t)?t:[t];return c(e,...r)}return true},message:"This field does not match the required pattern"});function ta(e){let t=computed(()=>toValue(e));return P(w((n,s)=>i(n)&&i(s,false)?s.includes(n):true,[t]),({$params:[n]})=>`Value should be one of those options: ${n.join(", ")}.`)}function Ee(e){let t=Object.keys(e).filter(n=>typeof e[e[n]]!="number"),r={};for(let n of t)r[n]=e[n];return Object.values(r)}function ia(e){let t=computed(()=>toValue(e));return P(w((n,s)=>i(n)&&!m(s)?Ee(s).includes(n):true,[t]),({$params:[n]})=>`Value should be one of those options: ${Object.values(n).join(", ")}.`)}export{ar as alpha,lr as alphaNum,q as and,z as applyIf,pr as between,En as checked,zn as contains,Rn as dateAfter,Tn as dateBefore,Mn as dateBetween,gr as decimal,br as email,Zn as endsWith,Gr as exactLength,Lr as exactValue,D as getSize,Pr as integer,Vn as ipAddress,x as isDate,m as isEmpty,i as isFilled,y as isNumber,Fn as macAddress,c as matchRegex,Qt as maxLength,Ar as maxValue,Cr as minLength,Ir as minValue,ia as nativeEnum,B as not,Jr as numeric,ta as oneOf,G as or,Xn as regex,Bt as required,er as requiredIf,Yr as requiredUnless,rn as sameAs,Un as startsWith,T as toDate,g as toNumber,sn as url,E as withAsync,P as withMessage,w as withParams,C as withTooltip};
@@ -137,7 +137,7 @@ function applyIf(_condition, rule) {
137
137
 
138
138
  // ../shared/utils/isEmpty.ts
139
139
  function isEmpty(value, considerEmptyArrayInvalid = true) {
140
- if (value === undefined || value === null) {
140
+ if (value === void 0 || value === null) {
141
141
  return true;
142
142
  }
143
143
  if (value instanceof Date) {
@@ -466,10 +466,15 @@ var required = createRule({
466
466
  });
467
467
  var maxLength = createRule({
468
468
  type: "maxLength",
469
- validator: (value, count) => {
469
+ validator: (value, count, options) => {
470
+ const { allowEqual = true } = options ?? {};
470
471
  if (isFilled(value, false) && isFilled(count)) {
471
472
  if (isNumber(count)) {
472
- return getSize(value) <= count;
473
+ if (allowEqual) {
474
+ return getSize(value) <= count;
475
+ } else {
476
+ return getSize(value) < count;
477
+ }
473
478
  }
474
479
  console.warn(`[maxLength] Value or parameter isn't a number, got value: ${value}, parameter: ${count}`);
475
480
  return false;
@@ -520,13 +525,18 @@ var alphaNum = createRule({
520
525
  });
521
526
  var between = createRule({
522
527
  type: "between",
523
- validator: (value, min, max) => {
528
+ validator: (value, min, max, options) => {
529
+ const { allowEqual = true } = options ?? {};
524
530
  if (isFilled(value) && isFilled(min) && isFilled(max)) {
525
531
  const tValue = toNumber(value);
526
532
  const tMin = toNumber(min);
527
533
  const tMax = toNumber(max);
528
534
  if (isNumber(tValue) && isNumber(tMin) && isNumber(tMax)) {
529
- return tValue >= tMin && tValue <= tMax;
535
+ if (allowEqual) {
536
+ return tValue >= tMin && tValue <= tMax;
537
+ } else {
538
+ return tValue > tMin && tValue < tMax;
539
+ }
530
540
  }
531
541
  console.warn(`[between] Value or parameters aren't numbers, got value: ${value}, min: ${min}, max: ${max}`);
532
542
  return false;
@@ -572,26 +582,41 @@ var integer = createRule({
572
582
  });
573
583
  var maxValue = createRule({
574
584
  type: "maxValue",
575
- validator: (value, count) => {
585
+ validator: (value, count, options) => {
586
+ const { allowEqual = true } = options ?? {};
576
587
  if (isFilled(value) && isFilled(count)) {
577
588
  if (isNumber(count) && !isNaN(toNumber(value))) {
578
- return toNumber(value) <= count;
589
+ if (allowEqual) {
590
+ return toNumber(value) <= count;
591
+ } else {
592
+ return toNumber(value) < count;
593
+ }
579
594
  }
580
595
  console.warn(`[maxValue] Value or parameter isn't a number, got value: ${value}, parameter: ${count}`);
581
596
  return true;
582
597
  }
583
598
  return true;
584
599
  },
585
- message: ({ $params: [count] }) => {
586
- return `The maximum value allowed is ${count}`;
600
+ message: ({ $params: [count, options] }) => {
601
+ const { allowEqual = true } = options ?? {};
602
+ if (allowEqual) {
603
+ return `Value must be less than or equal to ${count}`;
604
+ } else {
605
+ return `Value must be less than ${count}`;
606
+ }
587
607
  }
588
608
  });
589
609
  var minLength = createRule({
590
610
  type: "minLength",
591
- validator: (value, count) => {
611
+ validator: (value, count, options) => {
612
+ const { allowEqual = true } = options ?? {};
592
613
  if (isFilled(value, false) && isFilled(count)) {
593
614
  if (isNumber(count)) {
594
- return getSize(value) >= count;
615
+ if (allowEqual) {
616
+ return getSize(value) >= count;
617
+ } else {
618
+ return getSize(value) > count;
619
+ }
595
620
  }
596
621
  console.warn(`[minLength] Parameter isn't a number, got parameter: ${count}`);
597
622
  return false;
@@ -607,18 +632,28 @@ var minLength = createRule({
607
632
  });
608
633
  var minValue = createRule({
609
634
  type: "minValue",
610
- validator: (value, count) => {
635
+ validator: (value, count, options) => {
636
+ const { allowEqual = true } = options ?? {};
611
637
  if (isFilled(value) && isFilled(count)) {
612
638
  if (isNumber(count) && !isNaN(toNumber(value))) {
613
- return toNumber(value) >= count;
639
+ if (allowEqual) {
640
+ return toNumber(value) >= count;
641
+ } else {
642
+ return toNumber(value) > count;
643
+ }
614
644
  }
615
645
  console.warn(`[minValue] Value or parameter isn't a number, got value: ${value}, parameter: ${count}`);
616
646
  return true;
617
647
  }
618
648
  return true;
619
649
  },
620
- message: ({ $params: [count] }) => {
621
- return `The minimum value allowed is ${count}`;
650
+ message: ({ $params: [count, options] }) => {
651
+ const { allowEqual = true } = options ?? {};
652
+ if (allowEqual) {
653
+ return `Value must be greater than or equal to ${count}`;
654
+ } else {
655
+ return `Value must be greater than ${count}`;
656
+ }
622
657
  }
623
658
  });
624
659
  var exactValue = createRule({
@@ -703,7 +738,7 @@ var url = createRule({
703
738
 
704
739
  // src/utils/getLocale.util.ts
705
740
  function getUserLocale() {
706
- if (navigator.languages != undefined) return navigator.languages[0];
741
+ if (navigator.languages != void 0) return navigator.languages[0];
707
742
  return navigator.language;
708
743
  }
709
744
  function formatLocaleDate(date) {
package/package.json CHANGED
@@ -1,26 +1,26 @@
1
1
  {
2
2
  "name": "@regle/rules",
3
- "version": "0.10.4",
3
+ "version": "1.0.0",
4
4
  "description": "Collection of rules and helpers for Regle",
5
5
  "dependencies": {
6
- "@regle/core": "0.10.4"
6
+ "@regle/core": "1.0.0"
7
7
  },
8
8
  "devDependencies": {
9
- "@typescript-eslint/eslint-plugin": "8.21.0",
10
- "@typescript-eslint/parser": "8.21.0",
9
+ "@typescript-eslint/eslint-plugin": "8.26.1",
10
+ "@typescript-eslint/parser": "8.26.1",
11
11
  "@vue/reactivity": "3.5.13",
12
12
  "@vue/test-utils": "2.4.6",
13
- "bumpp": "9.10.2",
14
- "changelogithub": "13.12.1",
13
+ "bumpp": "10.1.0",
14
+ "changelogithub": "13.13.0",
15
15
  "cross-env": "7.0.3",
16
16
  "eslint": "9.15.0",
17
17
  "eslint-config-prettier": "9.1.0",
18
18
  "eslint-plugin-vue": "9.31.0",
19
19
  "prettier": "3.3.3",
20
20
  "tsup": "8.3.5",
21
- "type-fest": "4.33.0",
21
+ "type-fest": "4.37.0",
22
22
  "typescript": "5.6.3",
23
- "vitest": "2.1.8",
23
+ "vitest": "3.0.9",
24
24
  "vue": "3.5.13",
25
25
  "vue-eslint-parser": "9.4.3",
26
26
  "vue-tsc": "2.1.10"