@regle/rules 1.1.2 → 1.2.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { RegleRuleMetadataDefinition, RegleRuleWithParamsDefinition, RegleRuleDefinitionWithMetadataProcessor, RegleRuleMetadataConsumer, RegleRuleDefinition, InlineRuleDeclaration, UnwrapRegleUniversalParams, Maybe, FormRuleDeclaration, CommonComparisonOptions, CommonAlphaOptions } from '@regle/core';
1
+ import { RegleRuleMetadataDefinition, RegleRuleWithParamsDefinition, RegleRuleDefinitionWithMetadataProcessor, RegleRuleMetadataConsumer, RegleRuleDefinition, InlineRuleDeclaration, UnwrapRegleUniversalParams, Maybe, FormRuleDeclaration, CommonComparisonOptions, CommonAlphaOptions, MaybeInput } from '@regle/core';
2
2
  import { Ref, MaybeRefOrGetter, MaybeRef } from 'vue';
3
3
 
4
4
  /**
@@ -227,7 +227,7 @@ declare const requiredIf: RegleRuleWithParamsDefinition<unknown, [condition: boo
227
227
  * */
228
228
  declare const alpha: RegleRuleWithParamsDefinition<string, [
229
229
  options?: CommonAlphaOptions | undefined
230
- ], false, boolean, string>;
230
+ ], false, boolean, MaybeInput<string>, string>;
231
231
 
232
232
  /**
233
233
  * Allows only alphanumeric characters.
@@ -236,7 +236,7 @@ declare const alpha: RegleRuleWithParamsDefinition<string, [
236
236
  */
237
237
  declare const alphaNum: RegleRuleWithParamsDefinition<string | number, [
238
238
  options?: CommonAlphaOptions | undefined
239
- ], false, boolean, string | number>;
239
+ ], false, boolean, MaybeInput<string>>;
240
240
 
241
241
  /**
242
242
  * Checks if a number is in specified bounds. min and max are both inclusive.
@@ -248,22 +248,23 @@ declare const between: RegleRuleWithParamsDefinition<number, [
248
248
  min: number,
249
249
  max: number,
250
250
  options?: CommonComparisonOptions
251
- ], false, boolean>;
251
+ ], false, boolean, MaybeInput<number>>;
252
252
 
253
253
  /**
254
254
  * Allows positive and negative decimal numbers.
255
255
  */
256
- declare const decimal: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
256
+ declare const decimal: RegleRuleDefinition<string | number, [
257
+ ], false, boolean, MaybeInput<number | undefined>>;
257
258
 
258
259
  /**
259
260
  * Validates email addresses. Always verify on the server to ensure the address is real and not already in use.
260
261
  */
261
- declare const email: RegleRuleDefinition<string, [], false, boolean, string>;
262
+ declare const email: RegleRuleDefinition<string, [], false, boolean, MaybeInput<string>>;
262
263
 
263
264
  /**
264
265
  * Allows only integers (positive and negative).
265
266
  */
266
- declare const integer: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
267
+ declare const integer: RegleRuleDefinition<string | number, [], false, boolean, MaybeInput<number>>;
267
268
 
268
269
  /**
269
270
  * Requires a field to have a specified maximum numeric value.
@@ -274,7 +275,7 @@ declare const integer: RegleRuleDefinition<string | number, [], false, boolean,
274
275
  declare const maxValue: RegleRuleWithParamsDefinition<number, [
275
276
  count: number,
276
277
  options?: CommonComparisonOptions
277
- ], false, boolean>;
278
+ ], false, boolean, MaybeInput<number>>;
278
279
 
279
280
  /**
280
281
  * Requires the input value to have a minimum specified length, inclusive. Works with arrays, objects and strings.
@@ -296,12 +297,14 @@ declare const minLength: RegleRuleWithParamsDefinition<string | any[] | Record<P
296
297
  declare const minValue: RegleRuleWithParamsDefinition<number, [
297
298
  count: number,
298
299
  options?: CommonComparisonOptions
299
- ], false, boolean>;
300
+ ], false, boolean, MaybeInput<number>>;
300
301
 
301
302
  /**
302
303
  * Requires a field to have a strict numeric value.
303
304
  */
304
- declare const exactValue: RegleRuleWithParamsDefinition<number, [count: number], false, boolean>;
305
+ declare const exactValue: RegleRuleWithParamsDefinition<number, [
306
+ count: number
307
+ ], false, boolean, MaybeInput<number>>;
305
308
 
306
309
  /**
307
310
  * Requires the input value to have a strict specified length, inclusive. Works with arrays, objects and strings.
@@ -315,7 +318,8 @@ declare const exactLength: RegleRuleWithParamsDefinition<string | any[] | Record
315
318
  /**
316
319
  * Allows only numeric values (including numeric strings).
317
320
  */
318
- declare const numeric: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
321
+ declare const numeric: RegleRuleDefinition<string | number, [
322
+ ], false, boolean, MaybeInput<string | number>>;
319
323
 
320
324
  /**
321
325
  * Requires non-empty data, only if provided data property, ref, or a function resolves to false.
@@ -332,7 +336,7 @@ declare const sameAs: RegleRuleWithParamsDefinition<unknown, [target: unknown, o
332
336
  /**
333
337
  * Validates URLs.
334
338
  */
335
- declare const url: RegleRuleDefinition<string, [], false, boolean, string>;
339
+ declare const url: RegleRuleDefinition<string, [], false, boolean, MaybeInput<string>>;
336
340
 
337
341
  /**
338
342
  * Checks if the date is after the given parameter.
@@ -340,14 +344,14 @@ declare const url: RegleRuleDefinition<string, [], false, boolean, string>;
340
344
  * @param after - the date to compare to
341
345
  */
342
346
  declare const dateAfter: RegleRuleWithParamsDefinition<string | Date, [
343
- after: Maybe<string | Date>
347
+ after: MaybeInput<string | Date>
344
348
  ], false, true | {
345
349
  $valid: false;
346
350
  error: 'date-not-after';
347
351
  } | {
348
352
  $valid: false;
349
353
  error: 'value-or-paramater-not-a-date';
350
- }>;
354
+ }, MaybeInput<string | Date>>;
351
355
 
352
356
  /**
353
357
  * Checks if the date is before the given parameter.
@@ -355,14 +359,14 @@ declare const dateAfter: RegleRuleWithParamsDefinition<string | Date, [
355
359
  * @param before - the date to compare to
356
360
  */
357
361
  declare const dateBefore: RegleRuleWithParamsDefinition<string | Date, [
358
- before: Maybe<string | Date>
362
+ before: MaybeInput<string | Date>
359
363
  ], false, true | {
360
364
  $valid: false;
361
365
  error: 'date-not-before';
362
366
  } | {
363
367
  $valid: false;
364
368
  error: 'value-or-paramater-not-a-date';
365
- }>;
369
+ }, MaybeInput<string | Date>>;
366
370
 
367
371
  /**
368
372
  * Checks if the date falls between the specified bounds.
@@ -371,57 +375,69 @@ declare const dateBefore: RegleRuleWithParamsDefinition<string | Date, [
371
375
  * @param after - the maximum limit
372
376
  */
373
377
  declare const dateBetween: RegleRuleWithParamsDefinition<string | Date, [
374
- before: Maybe<string | Date>,
375
- after: Maybe<string | Date>
376
- ], false, boolean>;
378
+ before: MaybeInput<string | Date>,
379
+ after: MaybeInput<string | Date>
380
+ ], false, boolean, MaybeInput<string | Date>>;
377
381
 
378
382
  /**
379
383
  * Validates IPv4 addresses in dotted decimal notation 127.0.0.1.
380
384
  */
381
- declare const ipv4Address: RegleRuleDefinition<string, [], false, boolean, string>;
385
+ declare const ipv4Address: RegleRuleDefinition<string, [], false, boolean, MaybeInput<string>>;
382
386
 
383
387
  /**
384
388
  * Validates MAC addresses. Call as a function to specify a custom separator (e.g., ':' or an empty string for 00ff1122334455).
385
389
  *
386
390
  * @param separator - the custom separator
387
391
  */
388
- declare const macAddress: RegleRuleWithParamsDefinition<string, [separator?: string | undefined], false, boolean>;
392
+ declare const macAddress: RegleRuleWithParamsDefinition<string, [
393
+ separator?: string | undefined
394
+ ], false, boolean, MaybeInput<string>>;
389
395
 
390
396
  /**
391
397
  * Requires a boolean value to be true. This is useful for checkbox inputs.
392
398
  */
393
- declare const checked: RegleRuleDefinition<boolean, [], false, boolean, boolean>;
399
+ declare const checked: RegleRuleDefinition<boolean, [], false, boolean, MaybeInput<boolean>>;
394
400
 
395
401
  /**
396
402
  * Checks if the string contains the specified substring.
397
403
  *
398
404
  * @param part - the part the value needs to contain
399
405
  */
400
- declare const contains: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
406
+ declare const contains: RegleRuleWithParamsDefinition<string, [
407
+ part: MaybeInput<string>
408
+ ], false, boolean, MaybeInput<string>>;
401
409
 
402
410
  /**
403
411
  * Checks if the string starts with the specified substring.
404
412
  *
405
413
  * @private part - the vlaue the field must start with
406
414
  */
407
- declare const startsWith: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
415
+ declare const startsWith: RegleRuleWithParamsDefinition<string, [
416
+ part: MaybeInput<string>
417
+ ], false, boolean, MaybeInput<string>>;
408
418
 
409
419
  /**
410
420
  * Checks if the string ends with the specified substring.
411
421
  *
412
422
  * @param part - the value the field must end with
413
423
  */
414
- declare const endsWith: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
424
+ declare const endsWith: RegleRuleWithParamsDefinition<string, [
425
+ part: MaybeInput<string>
426
+ ], false, boolean, MaybeInput<string>>;
415
427
 
416
428
  /**
417
429
  * Checks if the value matches one or more regular expressions.
418
430
  */
419
- declare const regex: RegleRuleWithParamsDefinition<string | number, [regexp: RegExp | RegExp[]], false, boolean>;
431
+ declare const regex: RegleRuleWithParamsDefinition<string | number, [
432
+ regexp: RegExp | RegExp[]
433
+ ], false, boolean, MaybeInput<string | number>>;
420
434
 
421
435
  /**
422
436
  * Allow only one of the values from a fixed Array of possible entries.
423
437
  */
424
- declare function oneOf<const TValues extends [string | number, ...(string | number)[]]>(options: MaybeRefOrGetter<[...TValues]>): RegleRuleDefinition<TValues[number], [options: TValues], false, boolean, string | number>;
438
+ declare function oneOf<const TValues extends [string | number, ...(string | number)[]]>(options: MaybeRefOrGetter<[...TValues]>): RegleRuleDefinition<TValues[number], [
439
+ options: TValues
440
+ ], false, boolean, MaybeInput<TValues[number]>, string | number>;
425
441
 
426
442
  type EnumLike = {
427
443
  [k: string]: string | number;
@@ -430,11 +446,18 @@ type EnumLike = {
430
446
  /**
431
447
  * Validate against a native Typescript enum value.
432
448
  */
433
- declare function nativeEnum<T extends EnumLike>(enumLike: T): RegleRuleDefinition<T[keyof T], [enumLike: T], false, boolean, string | number>;
449
+ declare function nativeEnum<T extends EnumLike>(enumLike: T): RegleRuleDefinition<MaybeInput<T[keyof T]>, [enumLike: T], false, boolean, MaybeInput<T[keyof T]>, string | number>;
434
450
 
435
451
  /**
436
452
  * Allow only one possible literal value
437
453
  */
438
- declare function literal<const TValue extends string | number>(literal: MaybeRefOrGetter<TValue>): RegleRuleDefinition<TValue, [literal: TValue], false, boolean, string | number>;
454
+ declare function literal<const TValue extends string | number>(literal: MaybeRefOrGetter<TValue>): RegleRuleDefinition<TValue, [literal: TValue], false, boolean, MaybeInput<TValue>, string | number>;
455
+
456
+ /**
457
+ * Define the input type of a rule
458
+ *
459
+ * Necessary for using `InferState`
460
+ */
461
+ declare function type<T>(): RegleRuleDefinition<unknown, [], false, boolean, MaybeInput<T>>;
439
462
 
440
- export { type EnumLike, alpha, alphaNum, and, applyIf, between, checked, contains, dateAfter, dateBefore, dateBetween, decimal, email, endsWith, exactLength, exactValue, getSize, integer, ipv4Address, isDate, isEmpty, isFilled, isNumber, literal, macAddress, matchRegex, maxLength, maxValue, minLength, minValue, nativeEnum, not, numeric, oneOf, or, regex, required, requiredIf, requiredUnless, sameAs, startsWith, toDate, toNumber, url, withAsync, withMessage, withParams, withTooltip };
463
+ export { type EnumLike, alpha, alphaNum, and, applyIf, between, checked, contains, dateAfter, dateBefore, dateBetween, decimal, email, endsWith, exactLength, exactValue, getSize, integer, ipv4Address, isDate, isEmpty, isFilled, isNumber, literal, macAddress, matchRegex, maxLength, maxValue, minLength, minValue, nativeEnum, not, numeric, oneOf, or, regex, required, requiredIf, requiredUnless, sameAs, startsWith, toDate, toNumber, type, url, withAsync, withMessage, withParams, withTooltip };
@@ -1 +1 @@
1
- import {createRule,InternalRuleType,unwrapRuleParameters}from'@regle/core';import {unref,computed,toValue}from'vue';function M(e,t){let r,n,s,m;typeof e=="function"&&!("_validator"in e)?(r=InternalRuleType.Inline,n=e):{_type:r,validator:n,_active:s,_params:m}=e;let l=createRule({type:r,validator:n,active:s,message:t}),u=[...m??[]];if(l._params=u,l._message_patched=true,typeof l=="function"){if(m!=null){let a=l(...u);return a._message_patched=true,a}return l}else return l}function _(e,t){let r,n,s,m,l;typeof e=="function"&&!("_validator"in e)?(r=InternalRuleType.Inline,n=e):{_type:r,validator:n,_active:s,_params:m,_message:l}=e;let u=createRule({type:r,validator:n,active:s,message:l,tooltip:t}),a=[...m??[]];if(u._params=a,u._tooltip_patched=true,typeof u=="function"){let f=u(...a);return u._tooltip_patched=true,f}else return u}function E(e,t){let r,n,s=[],m="";typeof e=="function"?(r=InternalRuleType.Inline,n=async(u,...a)=>e(u,...a),s=[t]):({_type:r,_message:m}=e,s=s=e._params?.concat(t),n=async(...u)=>e.validator(u));let l=createRule({type:InternalRuleType.Async,validator:n,message:m});return l._params=l._params?.concat(s),l(...t??[])}function P(e,t){let r,n,s=[],m="";typeof e=="function"?(r=InternalRuleType.Inline,n=(u,...a)=>e(u,...a),s=[t]):({_type:r,validator:n,_message:m}=e,s=s=e._params?.concat(t));let l=createRule({type:InternalRuleType.Inline,validator:n,message:m});return l._params=l._params?.concat(s),l(...t)}function S(e,t){let r,n,s=[],m="";typeof t=="function"?(r=InternalRuleType.Inline,n=t,s=[e]):({_type:r,validator:n,_message:m}=t,s=t._params?.concat([e]));function l(o,...y){let[b]=unwrapRuleParameters([e]);return b?n(o,...y):true}function u(o){let[y]=unwrapRuleParameters([e]);return y}let a=createRule({type:r,validator:l,active:u,message:m}),f=[...s??[]];return a._params=f,typeof a=="function"?a(...f):a}function R(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(R(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 !R(typeof e=="string"?e.trim():e,t)}function g(e){return e==null||typeof e!="number"?false:!isNaN(e)}function p(e,...t){if(R(e))return true;let r=typeof e=="number"?e.toString():e;return t.every(n=>(n.lastIndex=0,n.test(r)))}function h(e){let t=unref(e);return Array.isArray(t)?t.length:typeof t=="object"?Object.keys(t).length:typeof t=="number"?isNaN(t)?0:t:String(t).length}function c(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}function q(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),r=e.map(a=>{if(typeof a=="function")return null;{let f=a._params;return f?.length?f:[]}}).flat().filter(a=>!!a);function n(a,f,...o){let y=[],b=0;for(let d of a)if(typeof d=="function")y.push(d(f)),b++;else {let D=d._params?.length??0;y.push(d.validator(f,...o.slice(b,D))),D&&(b+=D);}return y}function s(a){return a?.some(o=>typeof o!="boolean")?{$valid:a.every(o=>typeof o=="boolean"?!!o:o.$valid),...a.reduce((o,y)=>{if(typeof y=="boolean")return o;let{$valid:b,...d}=y;return {...o,...d}},{})}:a.every(o=>!!o)}let m;e.length?m=t?async(a,...f)=>{let o=await Promise.all(n(e,a,...f));return s(o)}:(a,...f)=>{let o=n(e,a,...f);return s(o)}:m=a=>false;let l=createRule({type:"and",validator:m,message:"The value does not match all of the provided validators"}),u=[...r??[]];return l._params=u,typeof l=="function"?l(...u):l}function G(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),r=e.map(a=>typeof a=="function"?null:a._params).flat().filter(a=>!!a);function n(a,f,...o){let y=[],b=0;for(let d of a)if(typeof d=="function")y.push(d(f)),b++;else {let D=d._params?.length??0;y.push(d.validator(f,...o.slice(b,D))),D&&(b+=D);}return y}function s(a){return a.some(o=>typeof o!="boolean")?{$valid:a.some(o=>typeof o=="boolean"?!!o:o.$valid),...a.reduce((o,y)=>{if(typeof y=="boolean")return o;let{$valid:b,...d}=y;return {...o,...d}},{})}:a.some(o=>!!o)}let l=createRule({type:"or",validator:t?async(a,...f)=>{let o=await Promise.all(n(e,a,...f));return s(o)}:(a,...f)=>{let o=n(e,a,...f);return s(o)},message:"The value does not match any of the provided validators"}),u=[...r??[]];return l._params=u,typeof l=="function"?l(...u):l}function B(e,t){let r,n,s,m,l;typeof e=="function"?(n=e,l=e.constructor.name==="AsyncFunction"):({_type:r,validator:n,_params:m}=e,l=e._async),l?s=async(f,...o)=>i(f)?!await n(f,...o):true:s=(f,...o)=>i(f)?!n(f,...o):true;let u=createRule({type:"not",validator:s,message:t??"Error"}),a=[...m??[]];return u._params=a,typeof u=="function"?u(...a):u}var Qt=createRule({type:"required",validator:e=>i(e),message:"This field is required"});var er=createRule({type:"maxLength",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e,false)&&i(t)?g(t)?n?h(e)<=t:h(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 value length should not exceed ${t}`});var ar=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]*$/,Y=/^[\w.]+$/,lr=createRule({type:"alpha",validator(e,t){return R(e)?true:t?.allowSymbols?p(e,Y):p(e,X)},message:"The value is not alphabetical"});var ee=/^[a-zA-Z0-9]*$/,te=/^[a-zA-Z0-9_]*$/,Rr=createRule({type:"alphaNum",validator(e,t){return R(e)?true:t?.allowSymbols?p(e,te):p(e,ee)},message:"The value must be alpha-numeric"});var cr=createRule({type:"between",validator:(e,t,r,n)=>{let{allowEqual:s=true}=n??{};if(i(e)&&i(t)&&i(r)){let m=c(e),l=c(t),u=c(r);return g(m)&&g(l)&&g(u)?s?m>=l&&m<=u:m>l&&m<u:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${r}`),false)}return true},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var ae=/^[-]?\d*(\.\d+)?$/,br=createRule({type:"decimal",validator(e){return R(e)?true:p(e,ae)},message:"The value must be decimal"});var oe=/^(?:[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,Pr=createRule({type:"email",validator(e){return R(e)?true:p(e,oe)},message:"The value must be an valid email address"});var le=/(^[0-9]*$)|(^-[0-9]+$)/,Vr=createRule({type:"integer",validator(e){return R(e)?true:p(e,le)},message:"The value must be an integer"});var Fr=createRule({type:"maxValue",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e)&&i(t)?g(t)&&!isNaN(c(e))?n?c(e)<=t:c(e)<t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true},message:({$params:[e,t]})=>{let{allowEqual:r=true}=t??{};return r?`The value must be less than or equal to ${e}`:`The value must be less than ${e}`}});var Or=createRule({type:"minLength",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e,false)&&i(t)?g(t)?n?h(e)>=t:h(e)>t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true},message:({$value:e,$params:[t]})=>Array.isArray(e)?`The list should have at least ${t} items`:`The value length should be at least ${t}`});var zr=createRule({type:"minValue",validator:(e,t,r)=>{let{allowEqual:n=true}=r??{};return i(e)&&i(t)?g(t)&&!isNaN(c(e))?n?c(e)>=t:c(e)>t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true},message:({$params:[e,t]})=>{let{allowEqual:r=true}=t??{};return r?`The value must be greater than or equal to ${e}`:`The value must be greater than ${e}`}});var Gr=createRule({type:"exactValue",validator:(e,t)=>i(e)&&i(t)?g(t)&&!isNaN(c(e))?c(e)===t:(console.warn(`[exactValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true,message:({$params:[e]})=>`The value must be equal to ${e}`});var Jr=createRule({type:"exactLength",validator:(e,t)=>i(e,false)&&i(t)?g(t)?h(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true,message:({$params:[e]})=>`The value should be exactly ${e} characters long`});var ge=/^\d*(\.\d+)?$/,Yr=createRule({type:"numeric",validator(e){return R(e)?true:p(e,ge)},message:"The value must be numeric"});var rn=createRule({type:"required",validator(e,t){return t?true:i(e)},message:"This field is required",active({$params:[e]}){return !e}});var sn=createRule({type:"sameAs",validator(e,t,r="other"){return R(e)?true:e===t},message({$params:[e,t]}){return `The value must be equal to the ${t} value`}});var xe=/^(?:(?:(?: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,fn=createRule({type:"url",validator(e){return R(e)?true:p(e,xe)},message:"The value is not a valid URL address"});function be(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function w(e){return e?new Intl.DateTimeFormat(be(),{dateStyle:"short"}).format(new Date(e)):"?"}var dn=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 values must be dates":`The date must be after ${w(e)}`});var Dn=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 values must be dates":`The date must be before ${w(e)}`});var vn=createRule({type:"dateBetween",validator:(e,t,r)=>x(e)&&x(t)&&x(r)?T(e).getTime()>T(t).getTime()&&T(e).getTime()<T(r).getTime():true,message:({$params:[e,t]})=>`The date must be between ${w(e)} and ${w(t)}`});function we(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 Cn=createRule({type:"ipv4Address",validator(e){if(R(e))return true;if(typeof e!="string")return false;let t=e.split(".");return t.length===4&&t.every(we)},message:"The value is not a valid IPv4 address"});var En=createRule({type:"macAddress",validator(e,t=":"){if(R(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(ve)},message:"The value is not a valid MAC Address"}),ve=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var Sn=createRule({type:"checked",validator:e=>i(e)?e===true:true,message:"The field must be checked"});var Un=createRule({type:"contains",validator(e,t){return i(e)&&i(t)?e.includes(t):true},message({$params:[e]}){return `The value must contain ${e}`}});var Zn=createRule({type:"startsWith",validator(e,t){return i(e)&&i(t)?e.startsWith(t):true},message({$params:[e]}){return `The value must end with ${e}`}});var Xn=createRule({type:"endsWith",validator(e,t){return i(e)&&i(t)?e.endsWith(t):true},message({$params:[e]}){return `The value must end with ${e}`}});var ta=createRule({type:"regex",validator(e,t){if(i(e)){let r=Array.isArray(t)?t:[t];return p(e,...r)}return true},message:"The value does not match the required pattern"});function ia(e){let t=computed(()=>toValue(e));return M(P((n,s)=>i(n)&&i(s,false)?s.includes(n):true,[t]),({$params:[n]})=>`The value should be one of those options: ${n.join(", ")}.`)}function Ie(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 ua(e){let t=computed(()=>toValue(e));return M(P((n,s)=>i(n)&&!R(s)?Ie(s).includes(n):true,[t]),({$params:[n]})=>`The value should be one of those options: ${Object.values(n).join(", ")}.`)}function ya(e){let t=computed(()=>toValue(e));return M(P((n,s)=>s===n,[t]),({$params:[n]})=>`Value should be ${n}.`)}export{lr as alpha,Rr as alphaNum,q as and,S as applyIf,cr as between,Sn as checked,Un as contains,dn as dateAfter,Dn as dateBefore,vn as dateBetween,br as decimal,Pr as email,Xn as endsWith,Jr as exactLength,Gr as exactValue,h as getSize,Vr as integer,Cn as ipv4Address,x as isDate,R as isEmpty,i as isFilled,g as isNumber,ya as literal,En as macAddress,p as matchRegex,er as maxLength,Fr as maxValue,Or as minLength,zr as minValue,ua as nativeEnum,B as not,Yr as numeric,ia as oneOf,G as or,ta as regex,Qt as required,ar as requiredIf,rn as requiredUnless,sn as sameAs,Zn as startsWith,T as toDate,c as toNumber,fn as url,E as withAsync,M as withMessage,P as withParams,_ as withTooltip};
1
+ import {createRule,InternalRuleType,unwrapRuleParameters}from'@regle/core';import {unref,computed,toValue}from'vue';function D(e,t){let n,r,s,p;typeof e=="function"&&!("_validator"in e)?(n=InternalRuleType.Inline,r=e):{_type:n,validator:r,_active:s,_params:p}=e;let l=createRule({type:n,validator:r,active:s,message:t}),u=[...p??[]];if(l._params=u,l._message_patched=true,typeof l=="function"){let a=l(...u);return a._message_patched=true,a}else return l}function F(e,t){let n,r,s,p,l;typeof e=="function"&&!("_validator"in e)?(n=InternalRuleType.Inline,r=e):{_type:n,validator:r,_active:s,_params:p,_message:l}=e;let u=createRule({type:n,validator:r,active:s,message:l,tooltip:t}),a=[...p??[]];if(u._params=a,u._tooltip_patched=true,typeof u=="function"){let m=u(...a);return u._tooltip_patched=true,m}else return u}function N(e,t){let n,r,s=[],p="";typeof e=="function"?(n=InternalRuleType.Inline,r=async(u,...a)=>e(u,...a),s=[t]):({_type:n,_message:p}=e,s=s=e._params?.concat(t),r=async(...u)=>e.validator(u));let l=createRule({type:InternalRuleType.Async,validator:r,message:p});return l._params=l._params?.concat(s),l(...t??[])}function P(e,t){let n,r,s=[],p="";typeof e=="function"?(n=InternalRuleType.Inline,r=(u,...a)=>e(u,...a),s=[t]):({_type:n,validator:r,_message:p}=e,s=s=e._params?.concat(t));let l=createRule({type:InternalRuleType.Inline,validator:r,message:p});return l._params=l._params?.concat(s),l(...t)}function S(e,t){let n,r,s=[],p="";typeof t=="function"?(n=InternalRuleType.Inline,r=t,s=[e]):({_type:n,validator:r,_message:p}=t,s=t._params?.concat([e]));function l(o,...y){let[x]=unwrapRuleParameters([e]);return x?r(o,...y):true}function u(o){let[y]=unwrapRuleParameters([e]);return y}let a=createRule({type:n,validator:l,active:u,message:p}),m=[...s??[]];return a._params=m,typeof a=="function"?a(...m):a}function f(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function b(e){if(f(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let n=new Date(e);if(n.toString()==="Invalid Date")return !1;t=n;}return !!t}catch{return false}}function T(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function i(e,t=true){return !f(typeof e=="string"?e.trim():e,t)}function g(e){return e==null||typeof e!="number"?false:!isNaN(e)}function R(e,...t){if(f(e))return true;let n=typeof e=="number"?e.toString():e;return t.every(r=>(r.lastIndex=0,r.test(n)))}function h(e){let t=unref(e);return Array.isArray(t)?t.length:typeof t=="object"?Object.keys(t).length:typeof t=="number"?isNaN(t)?0:t:String(t).length}function c(e){return typeof e=="number"?e:e!=null?typeof e=="string"?e.trim()!==e?NaN:+e:NaN:NaN}function q(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),n=e.map(a=>{if(typeof a=="function")return null;{let m=a._params;return m?.length?m:[]}}).flat().filter(a=>!!a);function r(a,m,...o){let y=[],x=0;for(let d of a)if(typeof d=="function")y.push(d(m)),x++;else {let M=d._params?.length??0;y.push(d.validator(m,...o.slice(x,M))),M&&(x+=M);}return y}function s(a){return a?.some(o=>typeof o!="boolean")?{$valid:a.every(o=>typeof o=="boolean"?!!o:o.$valid),...a.reduce((o,y)=>{if(typeof y=="boolean")return o;let{$valid:x,...d}=y;return {...o,...d}},{})}:a.every(o=>!!o)}let p;e.length?p=t?async(a,...m)=>{let o=await Promise.all(r(e,a,...m));return s(o)}:(a,...m)=>{let o=r(e,a,...m);return s(o)}:p=a=>false;let l=createRule({type:"and",validator:p,message:"The value does not match all of the provided validators"}),u=[...n??[]];return l._params=u,typeof l=="function"?l(...u):l}function G(...e){let t=e.some(a=>typeof a=="function"?a.constructor.name==="AsyncFunction":a._async),n=e.map(a=>typeof a=="function"?null:a._params).flat().filter(a=>!!a);function r(a,m,...o){let y=[],x=0;for(let d of a)if(typeof d=="function")y.push(d(m)),x++;else {let M=d._params?.length??0;y.push(d.validator(m,...o.slice(x,M))),M&&(x+=M);}return y}function s(a){return a.some(o=>typeof o!="boolean")?{$valid:a.some(o=>typeof o=="boolean"?!!o:o.$valid),...a.reduce((o,y)=>{if(typeof y=="boolean")return o;let{$valid:x,...d}=y;return {...o,...d}},{})}:a.some(o=>!!o)}let l=createRule({type:"or",validator:t?async(a,...m)=>{let o=await Promise.all(r(e,a,...m));return s(o)}:(a,...m)=>{let o=r(e,a,...m);return s(o)},message:"The value does not match any of the provided validators"}),u=[...n??[]];return l._params=u,typeof l=="function"?l(...u):l}function B(e,t){let n,r,s,p,l;typeof e=="function"?(r=e,l=e.constructor.name==="AsyncFunction"):({_type:n,validator:r,_params:p}=e,l=e._async),l?s=async(m,...o)=>i(m)?!await r(m,...o):true:s=(m,...o)=>i(m)?!r(m,...o):true;let u=createRule({type:"not",validator:s,message:t??"Error"}),a=[...p??[]];return u._params=a,typeof u=="function"?u(...a):u}var Qt=createRule({type:"required",validator:e=>i(e),message:"This field is required"});var en=createRule({type:"maxLength",validator:(e,t,n)=>{let{allowEqual:r=true}=n??{};return i(e,false)&&i(t)?g(t)?r?h(e)<=t:h(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 value length should not exceed ${t}`});var an=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]*$/,Y=/^[\w.]+$/,un=createRule({type:"alpha",validator(e,t){return f(e)?true:t?.allowSymbols?R(e,Y):R(e,X)},message:"The value is not alphabetical"});var ee=/^[a-zA-Z0-9]*$/,te=/^[a-zA-Z0-9_]*$/,Rn=createRule({type:"alphaNum",validator(e,t){return f(e)?true:t?.allowSymbols?R(e,te):R(e,ee)},message:"The value must be alpha-numeric"});var dn=createRule({type:"between",validator:(e,t,n,r)=>{let{allowEqual:s=true}=r??{};if(i(e)&&i(t)&&i(n)){let p=c(e),l=c(t),u=c(n);return g(p)&&g(l)&&g(u)?s?p>=l&&p<=u:p>l&&p<u:(console.warn(`[between] Value or parameters aren't numbers, got value: ${e}, min: ${t}, max: ${n}`),false)}return true},message:({$params:[e,t]})=>`The value must be between ${e} and ${t}`});var ae=/^[-]?\d*(\.\d+)?$/,hn=createRule({type:"decimal",validator(e){return f(e)?true:R(e,ae)},message:"The value must be decimal"});var oe=/^(?:[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,wn=createRule({type:"email",validator(e){return f(e)?true:R(e,oe)},message:"The value must be an valid email address"});var le=/(^[0-9]*$)|(^-[0-9]+$)/,Vn=createRule({type:"integer",validator(e){return f(e)?true:R(e,le)},message:"The value must be an integer"});var Fn=createRule({type:"maxValue",validator:(e,t,n)=>{let{allowEqual:r=true}=n??{};return i(e)&&i(t)?g(t)&&!isNaN(c(e))?r?c(e)<=t:c(e)<t:(console.warn(`[maxValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true},message:({$params:[e,t]})=>{let{allowEqual:n=true}=t??{};return n?`The value must be less than or equal to ${e}`:`The value must be less than ${e}`}});var On=createRule({type:"minLength",validator:(e,t,n)=>{let{allowEqual:r=true}=n??{};return i(e,false)&&i(t)?g(t)?r?h(e)>=t:h(e)>t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true},message:({$value:e,$params:[t]})=>Array.isArray(e)?`The list should have at least ${t} items`:`The value length should be at least ${t}`});var Ln=createRule({type:"minValue",validator:(e,t,n)=>{let{allowEqual:r=true}=n??{};return i(e)&&i(t)?g(t)&&!isNaN(c(e))?r?c(e)>=t:c(e)>t:(console.warn(`[minValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true},message:({$params:[e,t]})=>{let{allowEqual:n=true}=t??{};return n?`The value must be greater than or equal to ${e}`:`The value must be greater than ${e}`}});var Kn=createRule({type:"exactValue",validator:(e,t)=>i(e)&&i(t)?g(t)&&!isNaN(c(e))?c(e)===t:(console.warn(`[exactValue] Value or parameter isn't a number, got value: ${e}, parameter: ${t}`),true):true,message:({$params:[e]})=>`The value must be equal to ${e}`});var Hn=createRule({type:"exactLength",validator:(e,t)=>i(e,false)&&i(t)?g(t)?h(e)===t:(console.warn(`[minLength] Parameter isn't a number, got parameter: ${t}`),false):true,message:({$params:[e]})=>`The value should be exactly ${e} characters long`});var ge=/^\d*(\.\d+)?$/,jn=createRule({type:"numeric",validator(e){return f(e)?true:R(e,ge)},message:"The value must be numeric"});var rr=createRule({type:"required",validator(e,t){return t?true:i(e)},message:"This field is required",active({$params:[e]}){return !e}});var sr=createRule({type:"sameAs",validator(e,t,n){return f(e)?true:e===t},message({$params:[e,t="other"]}){return `The value must be equal to the ${t} value`}});var be=/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i,fr=createRule({type:"url",validator(e){return f(e)?true:R(e,be)},message:"The value is not a valid URL address"});function xe(){return navigator.languages!=null?navigator.languages[0]:navigator.language}function w(e){return e?new Intl.DateTimeFormat(xe(),{dateStyle:"short"}).format(new Date(e)):"?"}var dr=createRule({type:"dateAfter",validator:(e,t)=>i(e)&&i(t)?b(e)&&b(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 values must be dates":`The date must be after ${w(e)}`});var Mr=createRule({type:"dateBefore",validator:(e,t)=>i(e)&&i(t)?b(e)&&b(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 values must be dates":`The date must be before ${w(e)}`});var $r=createRule({type:"dateBetween",validator:(e,t,n)=>b(e)&&b(t)&&b(n)?T(e).getTime()>T(t).getTime()&&T(e).getTime()<T(n).getTime():true,message:({$params:[e,t]})=>`The date must be between ${w(e)} and ${w(t)}`});function we(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 Wr=createRule({type:"ipv4Address",validator(e){if(f(e))return true;if(typeof e!="string")return false;let t=e.split(".");return t.length===4&&t.every(we)},message:"The value is not a valid IPv4 address"});var Nr=createRule({type:"macAddress",validator(e,t=":"){if(f(e))return true;if(typeof e!="string")return false;let n=typeof t=="string"&&t!==""?e.split(t):e.length===12||e.length===16?e.match(/.{2}/g):null;return n!==null&&(n.length===6||n.length===8)&&n.every($e)},message:"The value is not a valid MAC Address"}),$e=e=>e.toLowerCase().match(/^[0-9a-f]{2}$/);var Sr=createRule({type:"checked",validator:e=>i(e)?e===true:true,message:"The field must be checked"});var Ur=createRule({type:"contains",validator(e,t){return i(e)&&i(t)?e.includes(t):true},message({$params:[e]}){return `The value must contain ${e}`}});var Zr=createRule({type:"startsWith",validator(e,t){return i(e)&&i(t)?e.startsWith(t):true},message({$params:[e]}){return `The value must end with ${e}`}});var Xr=createRule({type:"endsWith",validator(e,t){return i(e)&&i(t)?e.endsWith(t):true},message({$params:[e]}){return `The value must end with ${e}`}});var ta=createRule({type:"regex",validator(e,t){if(i(e)){let n=Array.isArray(t)?t:[t];return R(e,...n)}return true},message:"The value does not match the required pattern"});function ia(e){let t=computed(()=>toValue(e));return D(P((r,s)=>i(r)&&i(s,false)?s.includes(r):true,[t]),({$params:[r]})=>`The value should be one of those options: ${r.join(", ")}.`)}function Oe(e){let t=Object.keys(e).filter(r=>typeof e[e[r]]!="number"),n={};for(let r of t)n[r]=e[r];return Object.values(n)}function ua(e){let t=computed(()=>toValue(e));return D(P((r,s)=>i(r)&&!f(s)?Oe(s).includes(r):true,[t]),({$params:[r]})=>`The value should be one of those options: ${Object.values(r).join(", ")}.`)}function Ra(e){let t=computed(()=>toValue(e));return D(P((r,s)=>s===r,[t]),({$params:[r]})=>`Value should be ${r}.`)}function ga(){return ()=>true}export{un as alpha,Rn as alphaNum,q as and,S as applyIf,dn as between,Sr as checked,Ur as contains,dr as dateAfter,Mr as dateBefore,$r as dateBetween,hn as decimal,wn as email,Xr as endsWith,Hn as exactLength,Kn as exactValue,h as getSize,Vn as integer,Wr as ipv4Address,b as isDate,f as isEmpty,i as isFilled,g as isNumber,Ra as literal,Nr as macAddress,R as matchRegex,en as maxLength,Fn as maxValue,On as minLength,Ln as minValue,ua as nativeEnum,B as not,jn as numeric,ia as oneOf,G as or,ta as regex,Qt as required,an as requiredIf,rr as requiredUnless,sr as sameAs,Zr as startsWith,T as toDate,c as toNumber,ga as type,fr as url,N as withAsync,D as withMessage,P as withParams,F as withTooltip};
@@ -23,12 +23,9 @@ function withMessage(rule, newMessage) {
23
23
  newRule._params = newParams;
24
24
  newRule._message_patched = true;
25
25
  if (typeof newRule === "function") {
26
- if (_params != null) {
27
- const executedRule = newRule(...newParams);
28
- executedRule._message_patched = true;
29
- return executedRule;
30
- }
31
- return newRule;
26
+ const executedRule = newRule(...newParams);
27
+ executedRule._message_patched = true;
28
+ return executedRule;
32
29
  } else {
33
30
  return newRule;
34
31
  }
@@ -737,13 +734,13 @@ var requiredUnless = createRule({
737
734
  });
738
735
  var sameAs = createRule({
739
736
  type: "sameAs",
740
- validator(value, target, otherName = "other") {
737
+ validator(value, target, otherName) {
741
738
  if (isEmpty(value)) {
742
739
  return true;
743
740
  }
744
741
  return value === target;
745
742
  },
746
- message({ $params: [_, otherName] }) {
743
+ message({ $params: [_, otherName = "other"] }) {
747
744
  return `The value must be equal to the ${otherName} value`;
748
745
  }
749
746
  });
@@ -982,4 +979,9 @@ function literal(literal2) {
982
979
  return rule;
983
980
  }
984
981
 
985
- export { alpha, alphaNum, and, applyIf, between, checked, contains, dateAfter, dateBefore, dateBetween, decimal, email, endsWith, exactLength, exactValue, getSize, integer, ipv4Address, isDate, isEmpty, isFilled, isNumber, literal, macAddress, matchRegex, maxLength, maxValue, minLength, minValue, nativeEnum, not, numeric, oneOf, or, regex, required, requiredIf, requiredUnless, sameAs, startsWith, toDate, toNumber, url, withAsync, withMessage, withParams, withTooltip };
982
+ // src/rules/type.ts
983
+ function type() {
984
+ return () => true;
985
+ }
986
+
987
+ export { alpha, alphaNum, and, applyIf, between, checked, contains, dateAfter, dateBefore, dateBetween, decimal, email, endsWith, exactLength, exactValue, getSize, integer, ipv4Address, isDate, isEmpty, isFilled, isNumber, literal, macAddress, matchRegex, maxLength, maxValue, minLength, minValue, nativeEnum, not, numeric, oneOf, or, regex, required, requiredIf, requiredUnless, sameAs, startsWith, toDate, toNumber, type, url, withAsync, withMessage, withParams, withTooltip };
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@regle/rules",
3
- "version": "1.1.2",
3
+ "version": "1.2.0-beta.1",
4
4
  "description": "Collection of rules and helpers for Regle",
5
5
  "dependencies": {
6
- "@regle/core": "1.1.2"
6
+ "@regle/core": "1.2.0-beta.1"
7
7
  },
8
8
  "devDependencies": {
9
9
  "@typescript-eslint/eslint-plugin": "8.28.0",