@regle/core 1.17.4 → 1.18.0-beta.2

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,5 +1,5 @@
1
1
  /**
2
- * @regle/core v1.17.4
2
+ * @regle/core v1.18.0-beta.2
3
3
  * (c) 2026 Victor Garcia
4
4
  * @license MIT
5
5
  */
@@ -62,7 +62,7 @@ interface RegleBehaviourOptions {
62
62
  */
63
63
  immediateDirty?: boolean | undefined;
64
64
  }
65
- interface LocalRegleBehaviourOptions<TState$1 extends Record<string, any>, TRules$1 extends ReglePartialRuleTree<TState$1, CustomRulesDeclarationTree>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]> = {}> {
65
+ interface LocalRegleBehaviourOptions<TState$1 extends Record<string, any>, TRules$1 extends ReglePartialRuleTree<TState$1>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]> = {}> {
66
66
  /**
67
67
  * A dictionary of external errors to be injected into the field statuses.
68
68
  *
@@ -227,7 +227,7 @@ type RegleResult<Data extends Record<string, any> | any[] | unknown, TRules$1 ex
227
227
  /** The result of the validation */
228
228
  valid: false;
229
229
  /** Output data, filter the result by checking the `valid` property */
230
- data: IsUnknown<Data> extends true ? unknown : IsAny<Data> extends true ? unknown : HasNamedKeys<Data> extends true ? NonNullable<Data> extends Date | File ? MaybeOutput<Raw<Data>> : NonNullable<Data> extends Array<infer U extends Record<string, any>> ? PartialFormState<U>[] : NonNullable<Data> extends Record<string, any> ? PartialFormState<NonNullable<Data>> : MaybeOutput<Data> : unknown;
230
+ data: IsUnknown<Data> extends true ? unknown : IsAny<Data> extends true ? unknown : IsEmptyObject<TRules$1> extends true ? MaybeOutput<Data> : HasNamedKeys<Data> extends true ? NonNullable<Data> extends Date | File ? MaybeOutput<Raw<Data>> : NonNullable<Data> extends Array<infer U extends Record<string, any>> ? PartialFormState<U>[] : NonNullable<Data> extends Record<string, any> ? PartialFormState<NonNullable<Data>> : MaybeOutput<Data> : unknown;
231
231
  /**
232
232
  * Collection of all the error messages, collected for all children properties and nested forms.
233
233
  *
@@ -242,7 +242,7 @@ type RegleResult<Data extends Record<string, any> | any[] | unknown, TRules$1 ex
242
242
  errors: DataTypeRegleErrors<Data>;
243
243
  } | {
244
244
  valid: true;
245
- data: IsUnknown<Data> extends true ? unknown : IsAny<Data> extends true ? unknown : HasNamedKeys<Data> extends true ? NonNullable<Data> extends Array<infer U extends Record<string, any>> ? DeepSafeFormState<U, TRules$1>[] : NonNullable<Data> extends Date | File ? SafeFieldProperty<Raw<NonNullable<Data>>, TRules$1> : NonNullable<Data> extends Record<string, any> ? DeepSafeFormState<NonNullable<Data>, TRules$1> : SafeFieldProperty<Data, TRules$1> : unknown;
245
+ data: IsUnknown<Data> extends true ? unknown : IsAny<Data> extends true ? unknown : IsEmptyObject<TRules$1> extends true ? MaybeOutput<Data> : HasNamedKeys<Data> extends true ? NonNullable<Data> extends Array<infer U extends Record<string, any>> ? DeepSafeFormState<U, TRules$1 extends ReglePartialRuleTree<any> ? TRules$1 : {}>[] : NonNullable<Data> extends Date | File ? SafeFieldProperty<Raw<NonNullable<Data>>, TRules$1 extends ReglePartialRuleTree<any> ? TRules$1 : {}> : NonNullable<Data> extends Record<string, any> ? DeepSafeFormState<NonNullable<Data>, TRules$1 extends ReglePartialRuleTree<any> ? TRules$1 : {}> : SafeFieldProperty<Data, TRules$1 extends ReglePartialRuleTree<any> ? TRules$1 : {}> : unknown;
246
246
  issues: EmptyObject;
247
247
  errors: EmptyObject;
248
248
  };
@@ -272,12 +272,14 @@ type $InternalRegleResult = {
272
272
  errors: $InternalRegleErrorTree | $InternalRegleCollectionErrors | string[];
273
273
  issues: $InternalRegleIssuesTree | $InternalRegleCollectionIssues | RegleFieldIssue[];
274
274
  };
275
- type DeepSafeFormState<TState$1 extends Record<string, any>, TRules$1 extends ReglePartialRuleTree<Record<string, any>, CustomRulesDeclarationTree> | RegleFormPropertyType<any, any> | undefined> = [unknown] extends [TState$1] ? {} : TRules$1 extends undefined ? TState$1 : TRules$1 extends ReglePartialRuleTree<TState$1, CustomRulesDeclarationTree> ? Prettify<{ [K in keyof TState$1 as IsPropertyOutputRequired<TState$1[K], TRules$1[K]> extends false ? K : never]?: SafeProperty<TState$1[K], TRules$1[K]> extends MaybeInput<infer M> ? MaybeOutput<M> : SafeProperty<TState$1[K], TRules$1[K]> } & { [K in keyof TState$1 as IsPropertyOutputRequired<TState$1[K], TRules$1[K]> extends false ? never : K]-?: unknown extends SafeProperty<TState$1[K], TRules$1[K]> ? unknown : NonNullable<SafeProperty<TState$1[K], TRules$1[K]>> }> : TState$1;
276
- type FieldHaveRequiredRule<TRule extends RegleFormPropertyType<any, any> | undefined = never> = TRule extends MaybeRefOrComputedRef<RegleRuleDecl<any, any>> ? [unknown] extends UnwrapRef<TRule>['required'] ? NonNullable<UnwrapRef<TRule>['literal']> extends RegleRuleDefinition<any, any[], any, any, any, any> ? true : false : NonNullable<UnwrapRef<TRule>['required']> extends UnwrapRef<TRule>['required'] ? UnwrapRef<TRule>['required'] extends RegleRuleDefinition<any, infer Params, any, any, any, any> ? Params extends never[] ? true : false : false : false : false;
277
- type ObjectHaveAtLeastOneRequiredField<TState$1 extends Record<string, any>, TRule extends ReglePartialRuleTree<TState$1, any>> = TState$1 extends Maybe<TState$1> ? { [K in keyof NonNullable<TState$1>]-?: IsPropertyOutputRequired<NonNullable<TState$1>[K], TRule[K]> }[keyof TState$1] extends false ? false : true : true;
275
+ type DeepSafeFormState<TState$1 extends Record<string, any>, TRules$1 extends ReglePartialRuleTree<Record<string, any>, CustomRulesDeclarationTree> | undefined> = [unknown] extends [TState$1] ? {} : TRules$1 extends undefined ? TState$1 : TRules$1 extends ReglePartialRuleTree<TState$1, CustomRulesDeclarationTree> ? Prettify<{ [K in keyof TState$1 as IsPropertyOutputRequired<TState$1[K], TRules$1[K]> extends false ? K : never]?: SafeProperty<TState$1[K], TRules$1[K]> extends MaybeInput<infer M> ? MaybeOutput<M> : SafeProperty<TState$1[K], TRules$1[K]> } & { [K in keyof TState$1 as IsPropertyOutputRequired<TState$1[K], TRules$1[K]> extends false ? never : K]-?: unknown extends SafeProperty<TState$1[K], TRules$1[K]> ? unknown : NonNullable<SafeProperty<TState$1[K], TRules$1[K]>> }> : TState$1;
276
+ type FieldHaveRequiredRule<TRule extends RegleFormPropertyType<any, any> | undefined = never> = TRule extends MaybeRefOrComputedRef<RegleRuleDecl<any, any>> ? { [K in keyof UnwrapRef<TRule>]-?: UnwrapRef<TRule>[K] extends RegleRuleDefinition<unknown, any, any[], any, any, any, any, true> ? true : false }[keyof UnwrapRef<TRule>] extends false ? false : true : false;
277
+ type ObjectHaveAtLeastOneRequiredField<TState$1 extends Record<string, any>, TRules$1 extends ReglePartialRuleTree<TState$1, any>> = TState$1 extends Maybe<TState$1> ? ({ [K in keyof NonNullable<TState$1>]-?: IsPropertyOutputRequired<NonNullable<TState$1>[K], TRules$1[K] extends RegleFormPropertyType<any, any> ? TRules$1[K] : {}> } & {
278
+ $self: IsPropertyOutputRequired<string, TRules$1['$self']>;
279
+ })[keyof TState$1 | '$self'] extends false ? false : true : true;
278
280
  type ArrayHaveAtLeastOneRequiredField<TState$1 extends Maybe<any[]>, TRule extends RegleCollectionRuleDecl<TState$1>> = TState$1 extends Maybe<TState$1> ? FieldHaveRequiredRule<Omit<TRule, '$each'> extends MaybeRef<RegleRuleDecl> ? Omit<UnwrapRef<TRule>, '$each'> : {}> | ObjectHaveAtLeastOneRequiredField<ArrayElement<NonNullable<TState$1>>, ExtractFromGetter<TRule['$each']> extends undefined ? {} : NonNullable<ExtractFromGetter<TRule['$each']>>> extends false ? false : true : true;
279
281
  type SafeProperty<TState$1, TRule extends RegleFormPropertyType<any, any> | undefined> = unknown extends TState$1 ? unknown : TRule extends RegleCollectionRuleDecl<any, any> ? TState$1 extends Array<infer U extends Record<string, any>> ? DeepSafeFormState<U, ExtractFromGetter<TRule['$each']>>[] : TState$1 : TRule extends ReglePartialRuleTree<any, any> ? ExtendOnlyRealRecord<TState$1> extends true ? DeepSafeFormState<NonNullable<TState$1> extends Record<string, any> ? JoinDiscriminatedUnions<NonNullable<TState$1>> : {}, TRule> : TRule extends MaybeRef<RegleRuleDecl<any, any>> ? FieldHaveRequiredRule<UnwrapRef<TRule>> extends true ? TState$1 : MaybeOutput<TState$1> : TState$1 : TState$1;
280
- type IsPropertyOutputRequired<TState$1, TRule extends RegleFormPropertyType<any, any> | undefined> = [unknown] extends [TState$1] ? unknown : NonNullable<TState$1> extends Array<any> ? TRule extends RegleCollectionRuleDecl<any, any> ? ArrayHaveAtLeastOneRequiredField<NonNullable<TState$1>, TRule> extends false ? false : true : false : TRule extends ReglePartialRuleTree<any, any> ? ExtendOnlyRealRecord<TState$1> extends true ? ObjectHaveAtLeastOneRequiredField<NonNullable<TState$1> extends Record<string, any> ? NonNullable<TState$1> : {}, TRule> extends false ? false : true : TRule extends MaybeRef<RegleRuleDecl<any, any>> ? FieldHaveRequiredRule<UnwrapRef<TRule>> extends false ? false : true : false : false;
282
+ type IsPropertyOutputRequired<TState$1, TRule extends RegleFormPropertyType<any, any> | undefined> = [unknown] extends [TState$1] ? unknown : NonNullable<TState$1> extends Array<any> ? TRule extends RegleCollectionRuleDecl<any, any> ? ArrayHaveAtLeastOneRequiredField<NonNullable<TState$1>, TRule> extends false ? false : true : false : TRule extends ReglePartialRuleTree<any, any> ? ExtendOnlyRealRecord<TState$1> extends true ? ObjectHaveAtLeastOneRequiredField<NonNullable<TState$1> extends Record<string, any> ? NonNullable<TState$1> : {}, TRule extends ReglePartialRuleTree<NonNullable<TState$1> extends Record<string, any> ? NonNullable<TState$1> : {}, any> ? TRule : {}> extends false ? false : true : TRule extends MaybeRef<RegleRuleDecl<any, any>> ? FieldHaveRequiredRule<UnwrapRef<TRule>> extends false ? false : true : false : false;
281
283
  type SafeFieldProperty<TState$1, TRule extends RegleFormPropertyType<any, any> | undefined = never> = FieldHaveRequiredRule<TRule> extends true ? NonNullable<TState$1> : MaybeOutput<TState$1>;
282
284
  /** Types to be augmented by @regle/schemas */
283
285
  interface NarrowVariantExtracts {}
@@ -306,10 +308,10 @@ type ProcessChildrenFields<TState$1 extends Record<string, any> | undefined, TRu
306
308
  type FindCorrespondingVariant<TState$1 extends Record<string, any>, TRules$1 extends any[]> = TRules$1 extends [infer F, ...infer R] ? F extends ReglePartialRuleTree<TState$1> ? [F] : FindCorrespondingVariant<TState$1, R> : [];
307
309
  type PossibleLiteralTypes<T extends Record<string, any>, TKey$1 extends keyof T> = unknown extends T[TKey$1] ? {
308
310
  [x: string]: { [K in TKey$1]-?: Omit<RegleRuleDecl<any, Partial<ExtendedRulesDeclarations>>, 'literal'> & {
309
- literal?: RegleRuleDefinition<any, [literal: any], false, boolean, any, string | number>;
311
+ literal?: RegleRuleDefinition<'literal', any, [literal: any], false, boolean, any, string | number, true>;
310
312
  } };
311
313
  } : { [TVal in NonNullable<T[TKey$1]>]: { [K in TKey$1]-?: Omit<RegleRuleDecl<TVal, Partial<ExtendedRulesDeclarations>>, 'literal'> & {
312
- literal?: RegleRuleDefinition<MaybeInput<TVal>, [literal: TVal], false, boolean, MaybeInput<TVal>, string | number>;
314
+ literal?: RegleRuleDefinition<'literal', MaybeInput<TVal>, [literal: TVal], false, boolean, MaybeInput<TVal>, string | number, true>;
313
315
  } } };
314
316
  type RequiredForm<T extends Record<string, any>, TKey$1 extends keyof T> = Omit<ReglePartialRuleTree<T>, TKey$1> & PossibleLiteralTypes<T, TKey$1>[keyof PossibleLiteralTypes<T, TKey$1>];
315
317
  type VariantTuple<T extends Record<string, any>, TKey$1 extends keyof T> = [RequiredForm<T, TKey$1>, ...RequiredForm<T, TKey$1>[]];
@@ -370,7 +372,7 @@ type MaybeOutput<T = any> = T | undefined;
370
372
  type MaybeReadonly<T> = T | Readonly<T>;
371
373
  type NonUndefined<T> = Exclude<T, undefined>;
372
374
  type PromiseReturn<T> = T extends Promise<infer U> ? U : T;
373
- type MaybeGetter<T, V$1 = any, TAdd extends Record<string, any> = {}> = T | ((value: Ref<V$1>, index: number) => T & TAdd);
375
+ type MaybeGetter<T, V$1 = any, TAdd extends Record<string, any> = {}, TSelf extends Record<string, any> = {}> = (T & TSelf) | ((value: Ref<V$1>, index: number) => T & TAdd & TSelf);
374
376
  type MaybeComputedOrGetter<T> = MaybeRefOrComputedRef<T> | ((...args: any[]) => T);
375
377
  type Unwrap<T extends MaybeRef<unknown>> = T extends Ref ? UnwrapRef<T> : UnwrapNestedRefs<T>;
376
378
  type UnwrapSimple<T extends MaybeRef<Record<string, any>>> = T extends MaybeComputedOrGetter<infer U> ? U : T extends Ref<infer U> ? U : T extends ((...args: any[]) => infer U) ? U : T;
@@ -564,9 +566,9 @@ declare function extendRegleConfig<TRootCustomRules extends Partial<ExtendedRule
564
566
  useRegle: useRegleFn<Merge<TRootCustomRules, TCustomRules>, TRootShortcuts & TShortcuts>;
565
567
  inferRules: inferRulesFn<Merge<TRootCustomRules, TCustomRules>>;
566
568
  };
567
- type useRegleFnOptions<TState$1 extends Record<string, any> | MaybeInput<PrimitiveTypes>, TRules$1 extends ReglePartialRuleTree<Unwrap<TState$1 extends Record<string, any> ? TState$1 : {}>, Partial<ExtendedRulesDeclarations>>, TAdditionalOptions extends Record<string, any>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>> = TState$1 extends MaybeInput<PrimitiveTypes> ? Partial<DeepMaybeRef<RegleBehaviourOptions>> & TAdditionalOptions : Partial<DeepMaybeRef<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<JoinDiscriminatedUnions<TState$1 extends Record<string, any> ? Unwrap<TState$1> : {}>, TState$1 extends Record<string, any> ? (TRules$1 extends Record<string, any> ? TRules$1 : {}) : {}, TValidationGroups> & TAdditionalOptions;
569
+ type useRegleFnOptions<TState$1 extends Record<string, any> | MaybeInput<PrimitiveTypes>, TRules$1 extends ReglePartialRuleTree<NonNullable<JoinDiscriminatedUnions<TState$1>>, Partial<ExtendedRulesDeclarations>>, TAdditionalOptions extends Record<string, any>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>> = TState$1 extends Record<string, any> ? Partial<DeepMaybeRef<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<JoinDiscriminatedUnions<TState$1>, TRules$1, TValidationGroups> & TAdditionalOptions : Partial<DeepMaybeRef<RegleBehaviourOptions>> & TAdditionalOptions;
568
570
  interface useRegleFn<TCustomRules extends Partial<ExtendedRulesDeclarations>, TShortcuts extends RegleShortcutDefinition<any> = never, TAdditionalReturnProperties extends Record<string, any> = {}, TAdditionalOptions extends Record<string, any> = {}> {
569
- <TState$1 extends MaybeRef<Record<string, any> | MaybeInput<PrimitiveTypes>>, TRules$1 extends ReglePartialRuleTree<Unwrap<TState$1>, Partial<ExtendedRulesDeclarations> & Partial<TCustomRules>>, TDecl extends RegleRuleDecl<NonNullable<Unwrap<TState$1>>, Partial<ExtendedRulesDeclarations> & Partial<TCustomRules>>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>>(...params: [state: Maybe<TState$1> | DeepReactiveState<TState$1>, rulesFactory: Unwrap<TState$1> extends MaybeInput<PrimitiveTypes> ? MaybeRefOrGetter<TDecl> : Unwrap<TState$1> extends Record<string, any> ? MaybeComputedOrGetter<TRules$1> : {}, ...(HaveAnyRequiredProps<useRegleFnOptions<Unwrap<TState$1>, TRules$1, TAdditionalOptions, TValidationGroups>> extends true ? [options: useRegleFnOptions<Unwrap<TState$1>, TRules$1, TAdditionalOptions, TValidationGroups>] : [options?: useRegleFnOptions<Unwrap<TState$1>, TRules$1, TAdditionalOptions, TValidationGroups>])]): NonNullable<Unwrap<TState$1>> extends PrimitiveTypes ? RegleSingleField<NonNullable<Unwrap<TState$1>>, TDecl, TShortcuts, TAdditionalReturnProperties> : Regle<Unwrap<TState$1> extends Record<string, any> ? Unwrap<TState$1> : {}, UnwrapSimple<TRules$1> extends Record<string, any> ? UnwrapSimple<TRules$1> : {}, TValidationGroups, TShortcuts, TAdditionalReturnProperties>;
571
+ <TState$1 extends MaybeRef<Record<string, any> | MaybeInput<PrimitiveTypes>>, TRules$1 extends ReglePartialRuleTree<JoinDiscriminatedUnions<Unwrap<TState$1>>, Partial<ExtendedRulesDeclarations> & Partial<TCustomRules>>, TDecl extends RegleRuleDecl<NonNullable<Unwrap<TState$1>>, Partial<ExtendedRulesDeclarations> & Partial<TCustomRules>>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>>(...params: [state: Maybe<TState$1> | DeepReactiveState<TState$1>, rulesFactory: Unwrap<TState$1> extends MaybeInput<PrimitiveTypes> ? MaybeRefOrGetter<TDecl> : Unwrap<TState$1> extends Record<string, any> ? MaybeComputedOrGetter<TRules$1> : {}, ...(HaveAnyRequiredProps<useRegleFnOptions<Unwrap<TState$1>, TRules$1, TAdditionalOptions, TValidationGroups>> extends true ? [options: useRegleFnOptions<Unwrap<TState$1>, TRules$1, TAdditionalOptions, TValidationGroups>] : [options?: useRegleFnOptions<Unwrap<TState$1>, TRules$1, TAdditionalOptions, TValidationGroups>])]): NonNullable<Unwrap<TState$1>> extends PrimitiveTypes ? RegleSingleField<NonNullable<Unwrap<TState$1>>, TDecl, TShortcuts, TAdditionalReturnProperties> : Regle<Unwrap<TState$1> extends Record<string, any> ? Unwrap<TState$1> : {}, UnwrapSimple<TRules$1> extends Record<string, any> ? UnwrapSimple<TRules$1> : {}, TValidationGroups, TShortcuts, TAdditionalReturnProperties>;
570
572
  __config?: GlobalConfigOptions<TCustomRules, TShortcuts>;
571
573
  }
572
574
  /**
@@ -755,7 +757,7 @@ type RegleCustomFieldStatus<T extends useRegleFn<any, any>, TState$1 extends unk
755
757
  * type FormRequest = InferOutput<typeof rules, typeof formState>;
756
758
  * ```
757
759
  */
758
- type InferOutput<TRules$1 extends MaybeRef<ReglePartialRuleTree<Record<string, any>, any>> | ((state: any) => ReglePartialRuleTree<Record<string, any>, any>) | MaybeRef<StandardSchemaV1<any>>, TState$1 extends MaybeRef<unknown> = InferInput<TRules$1>> = isRecordLiteral<TState$1> extends true ? DeepSafeFormState<JoinDiscriminatedUnions<Unwrap<NonNullable<TState$1>>>, TRules$1> : TState$1 extends any[] ? TState$1[] : TState$1;
760
+ type InferOutput<TRules$1 extends MaybeRef<ReglePartialRuleTree<Record<string, any>, any>> | ((state: any) => ReglePartialRuleTree<Record<string, any>, any>) | MaybeRef<StandardSchemaV1<any>>, TState$1 extends MaybeRef<unknown> = InferInput<TRules$1>> = isRecordLiteral<TState$1> extends true ? TRules$1 extends MaybeRef<StandardSchemaV1<infer State>> ? State : DeepSafeFormState<JoinDiscriminatedUnions<Unwrap<NonNullable<TState$1>>>, TRules$1 extends MaybeRef<ReglePartialRuleTree<Record<string, any>, any>> ? UnwrapRef<TRules$1> : {}> : TState$1 extends any[] ? TState$1[] : TState$1;
759
761
  /**
760
762
  * Infer input type from a rules object
761
763
  *
@@ -770,8 +772,8 @@ type ProcessInputChildren<TRule extends unknown, TMarkMaybe extends boolean> = T
770
772
  type ExtractTypeFromRules<TRules$1 extends RegleRuleDecl<any, any>> = FilterRulesWithInput<TRules$1> extends {
771
773
  type: infer Input;
772
774
  } ? Input : [FilterRulesWithSingleType<TRules$1>[keyof FilterRulesWithSingleType<TRules$1>]] extends [never] ? FilterRulesWithInput<TRules$1>[keyof FilterRulesWithInput<TRules$1>] : FilterRulesWithSingleType<TRules$1>[keyof FilterRulesWithSingleType<TRules$1>];
773
- type FilterRulesWithInput<TRules$1 extends RegleRuleDecl<any, any>> = { [K in keyof TRules$1 as TRules$1[K] extends RegleRuleDefinition<any, any, any, any, infer Input> ? unknown extends Input ? never : K : never]: TRules$1[K] extends RegleRuleDefinition<any, any, any, any, infer Input> ? Input : unknown };
774
- type FilterRulesWithSingleType<TRules$1 extends RegleRuleDecl<any, any>> = { [K in keyof TRules$1 as TRules$1[K] extends RegleRuleDefinition<any, any, any, any, infer Input> ? unknown extends Input ? never : IsUnion<NonNullable<Input>> extends true ? never : K : never]: TRules$1[K] extends RegleRuleDefinition<any, any, any, any, infer Input> ? IsUnion<NonNullable<Input>> extends true ? unknown : Input : unknown };
775
+ type FilterRulesWithInput<TRules$1 extends RegleRuleDecl<any, any>> = { [K in keyof TRules$1 as TRules$1[K] extends RegleRuleDefinition<unknown, any, any, any, any, infer Input> ? unknown extends Input ? never : K : never]: TRules$1[K] extends RegleRuleDefinition<unknown, any, any, any, any, infer Input> ? Input : unknown };
776
+ type FilterRulesWithSingleType<TRules$1 extends RegleRuleDecl<any, any>> = { [K in keyof TRules$1 as TRules$1[K] extends RegleRuleDefinition<unknown, any, any, any, any, infer Input> ? unknown extends Input ? never : IsUnion<NonNullable<Input>> extends true ? never : K : never]: TRules$1[K] extends RegleRuleDefinition<unknown, any, any, any, any, infer Input> ? IsUnion<NonNullable<Input>> extends true ? unknown : Input : unknown };
775
777
  type InferTupleUnionInput<T extends any[]> = T extends [infer F extends ReglePartialRuleTree, ...infer R] ? [InferInput<F, true>, ...InferTupleUnionInput<R>] : [];
776
778
  /**
777
779
  * Infer safe output from any `r$` instance
@@ -782,7 +784,7 @@ type InferTupleUnionInput<T extends any[]> = T extends [infer F extends ReglePar
782
784
  *
783
785
  * @deprecated Use {@link InferValidOutput} instead
784
786
  */
785
- type InferSafeOutput<TRegle extends MaybeRef<SuperCompatibleRegleRoot | SuperCompatibleRegleFieldStatus>> = UnwrapRef<TRegle> extends Raw<RegleRoot<infer TState extends Record<string, any>, infer TRules, any, any>> ? DeepSafeFormState<JoinDiscriminatedUnions<TState>, TRules> : UnwrapRef<TRegle> extends RegleFieldStatus<infer TState, infer TRules> ? SafeFieldProperty<TState, TRules> : UnwrapRef<TRegle> extends RegleLike<infer TState extends Record<string, any>> ? TState : never;
787
+ type InferSafeOutput<TRegle extends MaybeRef<SuperCompatibleRegleRoot | SuperCompatibleRegleFieldStatus>> = UnwrapRef<TRegle> extends Raw<RegleRoot<infer TState extends Record<string, any>, infer TRules, any, any>> ? TRules extends ReglePartialRuleTree<Record<string, any>, any> ? DeepSafeFormState<JoinDiscriminatedUnions<TState>, TRules> : never : UnwrapRef<TRegle> extends RegleFieldStatus<infer TState, infer TRules> ? SafeFieldProperty<TState, TRules> : UnwrapRef<TRegle> extends RegleLike<infer TState extends Record<string, any>> ? TState : never;
786
788
  /**
787
789
  * Infer safe output from any `r$` instance
788
790
  *
@@ -855,24 +857,25 @@ type IsLiteral<T> = string extends T ? false : true;
855
857
  /**
856
858
  * Returned typed of rules created with `createRule`
857
859
  * */
858
- interface RegleRuleDefinition<TValue$1 extends unknown = unknown, TParams$1 extends any[] = [], TAsync$1 extends boolean = boolean, TMetaData extends RegleRuleMetadataDefinition = RegleRuleMetadataDefinition, _TInput = unknown, TFilteredValue extends any = (TValue$1 extends Date & File & (infer M) ? M : TValue$1)> extends RegleInternalRuleDefs<TFilteredValue, TParams$1, TAsync$1, TMetaData> {
860
+ interface RegleRuleDefinition<TType$1 extends string | unknown = unknown, TValue$1 extends unknown = unknown, TParams$1 extends any[] = [], TAsync$1 extends boolean = boolean, TMetaData extends RegleRuleMetadataDefinition = RegleRuleMetadataDefinition, _TInput = unknown, TFilteredValue extends any = (TValue$1 extends Date & File & (infer M) ? M : TValue$1), TNonEmpty extends boolean = boolean> extends RegleInternalRuleDefs<TFilteredValue, TParams$1, TAsync$1, TMetaData> {
859
861
  validator: RegleRuleDefinitionProcessor<TFilteredValue, TParams$1, TAsync$1 extends false ? TMetaData : Promise<TMetaData>>;
860
862
  message: (metadata: PossibleRegleRuleMetadataConsumer<TFilteredValue>) => string | string[];
861
863
  active: (metadata: PossibleRegleRuleMetadataConsumer<TFilteredValue>) => boolean;
862
864
  tooltip: (metadata: PossibleRegleRuleMetadataConsumer<TFilteredValue>) => string | string[];
863
- type?: string;
865
+ type?: TType$1;
864
866
  _value?: IsLiteral<TValue$1> extends true ? TValue$1 : any;
865
867
  exec: (value: Maybe<TFilteredValue>) => TAsync$1 extends false ? TMetaData : Promise<TMetaData>;
868
+ required: TNonEmpty;
866
869
  }
867
870
  /**
868
871
  * Rules with params created with `createRules` are callable while being customizable
869
872
  */
870
- type RegleRuleWithParamsDefinition<TValue$1 extends unknown = unknown, TParams$1 extends any[] = never, TAsync$1 extends boolean = false, TMetadata$1 extends RegleRuleMetadataDefinition = boolean, TInput = unknown, TFilteredValue extends any = (TValue$1 extends Date & File & (infer M) ? M : TValue$1)> = RegleRuleCore<TFilteredValue, TParams$1, TAsync$1, TMetadata$1> & RegleInternalRuleDefs<TFilteredValue, TParams$1, TAsync$1, TMetadata$1> & {
871
- (...params: RegleUniversalParams<TParams$1>): RegleRuleDefinition<TFilteredValue, TParams$1, TAsync$1, TMetadata$1, TInput>;
873
+ type RegleRuleWithParamsDefinition<TType$1 extends string | unknown = unknown, TValue$1 extends unknown = unknown, TParams$1 extends any[] = never, TAsync$1 extends boolean = false, TMetadata$1 extends RegleRuleMetadataDefinition = boolean, TInput = unknown, TFilteredValue extends any = (TValue$1 extends Date & File & (infer M) ? M : TValue$1)> = RegleRuleCore<TType$1, TFilteredValue, TParams$1, TAsync$1, TMetadata$1> & RegleInternalRuleDefs<TFilteredValue, TParams$1, TAsync$1, TMetadata$1> & {
874
+ (...params: RegleUniversalParams<TParams$1>): RegleRuleDefinition<TType$1, TFilteredValue, TParams$1, TAsync$1, TMetadata$1, TInput>;
872
875
  } & (TParams$1 extends [param?: any, ...any[]] ? {
873
876
  exec: (value: Maybe<TFilteredValue>) => TAsync$1 extends false ? TMetadata$1 : Promise<TMetadata$1>;
874
877
  } : {});
875
- type RegleRuleWithParamsDefinitionInput<TValue$1 extends any = any, TParams$1 extends any[] = never, TAsync$1 extends boolean = false, TMetadata$1 extends RegleRuleMetadataDefinition = boolean, TFilteredValue extends any = (TValue$1 extends Date & File & (infer M) ? M : TValue$1)> = RegleRuleCore<TFilteredValue, TParams$1, TAsync$1, TMetadata$1> & RegleInternalRuleDefs<TFilteredValue, TParams$1, TAsync$1, TMetadata$1> & (TParams$1 extends [param?: any, ...any[]] ? {
878
+ type RegleRuleWithParamsDefinitionInput<TType$1 extends string | unknown = unknown, TValue$1 extends any = any, TParams$1 extends any[] = never, TAsync$1 extends boolean = false, TMetadata$1 extends RegleRuleMetadataDefinition = boolean, TFilteredValue extends any = (TValue$1 extends Date & File & (infer M) ? M : TValue$1)> = RegleRuleCore<TType$1, TFilteredValue, TParams$1, TAsync$1, TMetadata$1> & RegleInternalRuleDefs<TFilteredValue, TParams$1, TAsync$1, TMetadata$1> & (TParams$1 extends [param?: any, ...any[]] ? {
876
879
  exec: (value: Maybe<TFilteredValue>) => TAsync$1 extends false ? TMetadata$1 : Promise<TMetadata$1>;
877
880
  } : {});
878
881
  type RegleRuleMetadataExtended = {
@@ -882,7 +885,7 @@ type RegleRuleMetadataExtended = {
882
885
  type UnwrapRuleTree<T extends {
883
886
  [x: string]: RegleRuleRawInput<any, any[], any, any> | undefined;
884
887
  }> = { [K in keyof T]: UnwrapRuleWithParams<T[K]> };
885
- type UnwrapRuleWithParams<T extends RegleRuleRawInput<any, any[], any, any> | undefined> = T extends RegleRuleWithParamsDefinition<infer TValue, infer TParams, infer TAsync, infer TMetadata> ? RegleRuleDefinition<TValue, TParams, TAsync, TMetadata> : T;
888
+ type UnwrapRuleWithParams<T extends RegleRuleRawInput<any, any[], any, any> | undefined> = T extends RegleRuleWithParamsDefinition<infer TType, infer TValue, infer TParams, infer TAsync, infer TMetadata> ? RegleRuleDefinition<TType, TValue, TParams, TAsync, TMetadata> : T;
886
889
  /**
887
890
  * Define a rule Metadata definition
888
891
  */
@@ -910,8 +913,8 @@ type PossibleRegleRuleMetadataConsumer<TValue$1> = {
910
913
  /**
911
914
  * Generic types for a created RegleRule
912
915
  */
913
- type RegleRuleRaw<TValue$1 extends any = any, TParams$1 extends [...any[]] = [...any[]], TAsync$1 extends boolean = boolean, TMetaData extends RegleRuleMetadataDefinition = boolean> = RegleRuleDefinition<TValue$1, TParams$1, TAsync$1, TMetaData> | RegleRuleWithParamsDefinition<TValue$1, TParams$1, TAsync$1, TMetaData>;
914
- type RegleRuleRawInput<TValue$1 extends any = any, TParams$1 extends [...any[]] = [...any[]], TAsync$1 extends boolean = boolean, TMetaData extends RegleRuleMetadataDefinition = boolean> = Omit<RegleRuleDefinition<TValue$1, TParams$1, TAsync$1, TMetaData> | RegleRuleWithParamsDefinition<TValue$1, TParams$1, TAsync$1, TMetaData>, 'message' | 'tooltip' | 'active'> & {
916
+ type RegleRuleRaw<TType$1 extends string | unknown = unknown, TValue$1 extends any = any, TParams$1 extends [...any[]] = [...any[]], TAsync$1 extends boolean = boolean, TMetaData extends RegleRuleMetadataDefinition = boolean> = RegleRuleDefinition<TType$1, TValue$1, TParams$1, TAsync$1, TMetaData> | RegleRuleWithParamsDefinition<TType$1, TValue$1, TParams$1, TAsync$1, TMetaData>;
917
+ type RegleRuleRawInput<TValue$1 extends any = any, TParams$1 extends [...any[]] = [...any[]], TAsync$1 extends boolean = boolean, TMetaData extends RegleRuleMetadataDefinition = boolean> = Omit<RegleRuleDefinition<unknown, TValue$1, TParams$1, TAsync$1, TMetaData> | RegleRuleWithParamsDefinition<unknown, TValue$1, TParams$1, TAsync$1, TMetaData>, 'message' | 'tooltip' | 'active'> & {
915
918
  message: any;
916
919
  active?: any;
917
920
  tooltip?: any;
@@ -921,7 +924,7 @@ type RegleRuleRawInput<TValue$1 extends any = any, TParams$1 extends [...any[]]
921
924
  * For a rule with params it will return a function
922
925
  * Otherwise it will return the rule definition
923
926
  */
924
- type InferRegleRule<TValue$1 extends any = any, TParams$1 extends any[] = [], TAsync$1 extends boolean = false, TMetaData extends RegleRuleMetadataDefinition = boolean> = [TParams$1] extends [[]] ? RegleRuleDefinition<TValue$1, TParams$1, TAsync$1, TMetaData> : RegleRuleWithParamsDefinition<TValue$1, TParams$1, TAsync$1, TMetaData>;
927
+ type InferRegleRule<TType$1 extends string | unknown, TValue$1 extends any = any, TParams$1 extends any[] = [], TAsync$1 extends boolean = false, TMetaData extends RegleRuleMetadataDefinition = boolean, TNonEmpty extends boolean = false> = [TParams$1] extends [[]] ? RegleRuleDefinition<TType$1, TValue$1, TParams$1, TAsync$1, TMetaData, TValue$1, TValue$1, TNonEmpty> : RegleRuleWithParamsDefinition<TType$1, TValue$1, TParams$1, TAsync$1, TMetaData, TNonEmpty>;
925
928
  type RegleRuleDefinitionProcessor<TValue$1 extends any = any, TParams$1 extends any[] = [], TReturn = any> = (value: Maybe<TValue$1>, ...params: TParams$1) => TReturn;
926
929
  type RegleRuleDefinitionWithMetadataProcessor<TValue$1 extends any, TMetadata$1 extends RegleRuleMetadataConsumer<TValue$1, any[]>, TReturn = any> = ((metadata: TMetadata$1) => TReturn) | TReturn;
927
930
  type RegleCollectionRuleDefinition<TValue$1 = any[], TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = (RegleRuleDecl<NonNullable<TValue$1>, TCustomRules, CollectionRegleBehaviourOptions> & {
@@ -934,24 +937,25 @@ type RegleInitPropertyGetter<TValue$1, TReturn, TParams$1 extends [...any[]], TM
934
937
  * @argument
935
938
  * createRule arguments options
936
939
  */
937
- interface RegleRuleInit<TValue$1 extends any, TParams$1 extends [...any[]] = [], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = boolean, TMetadata$1 extends RegleRuleMetadataDefinition = RegleRuleMetadataDefinition, TAsync$1 extends boolean = (TReturn extends Promise<any> ? true : false)> {
940
+ interface RegleRuleInit<TType$1 extends string | unknown = unknown, TValue$1 extends unknown = unknown, TParams$1 extends [...any[]] = [], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = boolean, TMetadata$1 extends RegleRuleMetadataDefinition = RegleRuleMetadataDefinition, TAsync$1 extends boolean = (TReturn extends Promise<any> ? true : false), TNonEmpty extends boolean = false> {
938
941
  validator: (value: Maybe<TValue$1>, ...args: TParams$1) => TReturn;
939
942
  message: RegleInitPropertyGetter<TValue$1, string | string[], TParams$1, TMetadata$1>;
940
943
  active?: RegleInitPropertyGetter<TValue$1, boolean, TParams$1, TMetadata$1>;
941
944
  tooltip?: RegleInitPropertyGetter<TValue$1, string | string[], TParams$1, TMetadata$1>;
942
- type?: string;
945
+ type?: TType$1;
943
946
  async?: TAsync$1;
947
+ required?: TNonEmpty;
944
948
  }
945
949
  /**
946
950
  * @argument
947
951
  * Rule core
948
952
  */
949
- interface RegleRuleCore<TValue$1 extends any, TParams$1 extends any[] = [], TAsync$1 extends boolean = false, TMetadata$1 extends RegleRuleMetadataDefinition = boolean> {
953
+ interface RegleRuleCore<TType$1 extends string | unknown, TValue$1 extends any, TParams$1 extends any[] = [], TAsync$1 extends boolean = false, TMetadata$1 extends RegleRuleMetadataDefinition = boolean> {
950
954
  validator: (value: Maybe<TValue$1>, ...args: TParams$1) => TAsync$1 extends false ? TMetadata$1 : Promise<TMetadata$1>;
951
955
  message: RegleInitPropertyGetter<TValue$1, string | string[], TParams$1, TMetadata$1>;
952
956
  active?: RegleInitPropertyGetter<TValue$1, string | string[], TParams$1, TMetadata$1>;
953
957
  tooltip?: RegleInitPropertyGetter<TValue$1, string | string[], TParams$1, TMetadata$1>;
954
- type?: string;
958
+ type?: TType$1;
955
959
  async?: boolean;
956
960
  }
957
961
  type RegleRuleTypeReturn<TValue$1, TParams$1 extends [...any[]]> = {
@@ -973,57 +977,58 @@ interface CommonAlphaOptions {
973
977
  allowSymbols?: boolean;
974
978
  }
975
979
  type DefaultValidators = {
976
- alpha: RegleRuleWithParamsDefinition<string, [options?: CommonAlphaOptions | undefined]>;
977
- alphaNum: RegleRuleWithParamsDefinition<string | number, [options?: CommonAlphaOptions | undefined]>;
978
- between: RegleRuleWithParamsDefinition<number, [min: Maybe<number>, max: Maybe<number>]>;
979
- boolean: RegleRuleDefinition<unknown, [], false, boolean, any, unknown>;
980
- checked: RegleRuleDefinition<boolean, [], false, boolean, boolean>;
981
- contains: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
982
- date: RegleRuleDefinition<unknown, [], false, boolean, MaybeInput<Date>, unknown>;
983
- dateAfter: RegleRuleWithParamsDefinition<string | Date, [after: Maybe<string | Date>, options?: CommonComparisonOptions], false, true | {
980
+ alpha: RegleRuleWithParamsDefinition<unknown, string, [options?: CommonAlphaOptions | undefined]>;
981
+ alphaNum: RegleRuleWithParamsDefinition<unknown, string | number, [options?: CommonAlphaOptions | undefined]>;
982
+ atLeastOne: RegleRuleWithParamsDefinition<unknown, Record<string, unknown> | object, [keys?: string[] | undefined], false, boolean, false, Record<string, unknown> | object>;
983
+ between: RegleRuleWithParamsDefinition<unknown, number, [min: Maybe<number>, max: Maybe<number>]>;
984
+ boolean: RegleRuleDefinition<unknown, unknown, [], false, boolean, any, unknown>;
985
+ checked: RegleRuleDefinition<unknown, boolean, [], false, boolean, boolean>;
986
+ contains: RegleRuleWithParamsDefinition<unknown, string, [part: Maybe<string>], false, boolean>;
987
+ date: RegleRuleDefinition<unknown, unknown, [], false, boolean, MaybeInput<Date>, unknown>;
988
+ dateAfter: RegleRuleWithParamsDefinition<unknown, string | Date, [after: Maybe<string | Date>, options?: CommonComparisonOptions], false, true | {
984
989
  $valid: false;
985
990
  error: 'date-not-after';
986
991
  } | {
987
992
  $valid: false;
988
993
  error: 'value-or-parameter-not-a-date';
989
994
  }>;
990
- dateBefore: RegleRuleWithParamsDefinition<string | Date, [before: Maybe<string | Date>, options?: CommonComparisonOptions], false, true | {
995
+ dateBefore: RegleRuleWithParamsDefinition<unknown, string | Date, [before: Maybe<string | Date>, options?: CommonComparisonOptions], false, true | {
991
996
  $valid: false;
992
997
  error: 'date-not-before';
993
998
  } | {
994
999
  $valid: false;
995
1000
  error: 'value-or-parameter-not-a-date';
996
1001
  }>;
997
- dateBetween: RegleRuleWithParamsDefinition<string | Date, [before: Maybe<string | Date>, after: Maybe<string | Date>, options?: CommonComparisonOptions], false, boolean>;
998
- decimal: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
999
- email: RegleRuleDefinition<string, [], false, boolean, string>;
1000
- endsWith: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
1001
- exactLength: RegleRuleWithParamsDefinition<string | any[] | Record<PropertyKey, any>, [count: number], false, boolean>;
1002
- exactValue: RegleRuleWithParamsDefinition<number, [count: number], false, boolean>;
1003
- file: RegleRuleDefinition<unknown, [], false, boolean, MaybeInput<File>, unknown>;
1004
- fileType: RegleRuleWithParamsDefinition<unknown, [accept: string[]], false, boolean>;
1005
- hexadecimal: RegleRuleDefinition<string, [], false, boolean, string>;
1006
- integer: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
1007
- ipv4Address: RegleRuleDefinition<string, [], false, boolean, string>;
1008
- literal: RegleRuleDefinition<string | number, [literal: string | number], false, boolean, string | number>;
1009
- macAddress: RegleRuleWithParamsDefinition<string, [separator?: string | undefined], false, boolean>;
1010
- maxLength: RegleRuleWithParamsDefinition<string | any[] | Record<PropertyKey, any>, [count: number, options?: CommonComparisonOptions], false, boolean>;
1011
- maxFileSize: RegleRuleWithParamsDefinition<unknown, [maxSize: number], false, boolean, MaybeInput<File>, unknown>;
1012
- maxValue: RegleRuleWithParamsDefinition<number, [count: number, options?: CommonComparisonOptions], false, boolean>;
1013
- minFileSize: RegleRuleWithParamsDefinition<unknown, [minSize: number], false, boolean, MaybeInput<File>, unknown>;
1014
- minLength: RegleRuleWithParamsDefinition<string | any[] | Record<PropertyKey, any>, [count: number, options?: CommonComparisonOptions], false, boolean>;
1015
- minValue: RegleRuleWithParamsDefinition<number, [count: number, options?: CommonComparisonOptions], false, boolean>;
1016
- nativeEnum: RegleRuleDefinition<string | number, [enumLike: EnumLike], false, boolean, string | number>;
1017
- number: RegleRuleDefinition<unknown, [], false, boolean, any, unknown>;
1018
- numeric: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
1019
- oneOf: RegleRuleDefinition<string | number, [options: (string | number)[]], false, boolean, string | number>;
1020
- regex: RegleRuleWithParamsDefinition<string, [regexp: RegExp], false, boolean>;
1021
- required: RegleRuleDefinition<unknown, [], false, boolean, unknown, unknown>;
1022
- sameAs: RegleRuleWithParamsDefinition<unknown, [target: unknown, otherName?: string], false, boolean>;
1023
- string: RegleRuleDefinition<unknown, [], false, boolean, any, unknown>;
1024
- type: RegleRuleDefinition<unknown, [], false, boolean, unknown, unknown>;
1025
- startsWith: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
1026
- url: RegleRuleDefinition<string, [], false, boolean, string>;
1002
+ dateBetween: RegleRuleWithParamsDefinition<unknown, string | Date, [before: Maybe<string | Date>, after: Maybe<string | Date>, options?: CommonComparisonOptions], false, boolean>;
1003
+ decimal: RegleRuleDefinition<unknown, string | number, [], false, boolean, string | number>;
1004
+ email: RegleRuleDefinition<unknown, string, [], false, boolean, string>;
1005
+ endsWith: RegleRuleWithParamsDefinition<unknown, string, [part: Maybe<string>], false, boolean>;
1006
+ exactLength: RegleRuleWithParamsDefinition<unknown, string | any[] | Record<PropertyKey, any>, [count: number], false, boolean>;
1007
+ exactValue: RegleRuleWithParamsDefinition<unknown, number, [count: number], false, boolean>;
1008
+ file: RegleRuleDefinition<unknown, unknown, [], false, boolean, MaybeInput<File>, unknown>;
1009
+ fileType: RegleRuleWithParamsDefinition<unknown, unknown, [accept: string[]], false, boolean>;
1010
+ hexadecimal: RegleRuleDefinition<unknown, string, [], false, boolean, string>;
1011
+ integer: RegleRuleDefinition<unknown, string | number, [], false, boolean, string | number>;
1012
+ ipv4Address: RegleRuleDefinition<unknown, string, [], false, boolean, string>;
1013
+ literal: RegleRuleDefinition<unknown, string | number, [literal: string | number], false, boolean, string | number, string | number, true>;
1014
+ macAddress: RegleRuleWithParamsDefinition<unknown, string, [separator?: string | undefined], false, boolean>;
1015
+ maxLength: RegleRuleWithParamsDefinition<unknown, string | any[] | Record<PropertyKey, any>, [count: number, options?: CommonComparisonOptions], false, boolean>;
1016
+ maxFileSize: RegleRuleWithParamsDefinition<unknown, unknown, [maxSize: number], false, boolean, MaybeInput<File>, unknown>;
1017
+ maxValue: RegleRuleWithParamsDefinition<unknown, number, [count: number, options?: CommonComparisonOptions], false, boolean>;
1018
+ minFileSize: RegleRuleWithParamsDefinition<unknown, unknown, [minSize: number], false, boolean, MaybeInput<File>, unknown>;
1019
+ minLength: RegleRuleWithParamsDefinition<unknown, string | any[] | Record<PropertyKey, any>, [count: number, options?: CommonComparisonOptions], false, boolean>;
1020
+ minValue: RegleRuleWithParamsDefinition<unknown, number, [count: number, options?: CommonComparisonOptions], false, boolean>;
1021
+ nativeEnum: RegleRuleDefinition<unknown, string | number, [enumLike: EnumLike], false, boolean, string | number>;
1022
+ number: RegleRuleDefinition<unknown, unknown, [], false, boolean, any, unknown>;
1023
+ numeric: RegleRuleDefinition<unknown, string | number, [], false, boolean, string | number>;
1024
+ oneOf: RegleRuleDefinition<unknown, string | number, [options: (string | number)[]], false, boolean, string | number>;
1025
+ regex: RegleRuleWithParamsDefinition<unknown, string, [regexp: RegExp], false, boolean>;
1026
+ required: RegleRuleDefinition<unknown, unknown, [], false, boolean, unknown, unknown, true>;
1027
+ sameAs: RegleRuleWithParamsDefinition<unknown, unknown, [target: unknown, otherName?: string], false, boolean>;
1028
+ string: RegleRuleDefinition<unknown, unknown, [], false, boolean, any, unknown>;
1029
+ type: RegleRuleDefinition<unknown, unknown, [], false, boolean, unknown, unknown>;
1030
+ startsWith: RegleRuleWithParamsDefinition<unknown, string, [part: Maybe<string>], false, boolean>;
1031
+ url: RegleRuleDefinition<unknown, string, [], false, boolean, string>;
1027
1032
  };
1028
1033
  type CustomRulesDeclarationTree = {
1029
1034
  [x: string]: RegleRuleRawInput<any, any[], boolean, any> | undefined;
@@ -1032,84 +1037,6 @@ type DefaultValidatorsTree = { [K in keyof DefaultValidators]: RegleRuleRawInput
1032
1037
  type ExtendedRulesDeclarations = CustomRulesDeclarationTree & DefaultValidatorsTree;
1033
1038
  /** @deprecated Use {@link ExtendedRulesDeclarations} instead */
1034
1039
  type AllRulesDeclarations = ExtendedRulesDeclarations;
1035
- /**
1036
- * @public
1037
- */
1038
- type ReglePartialRuleTree<TForm extends Record<string, any> = Record<string, any>, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = { [TKey in keyof TForm]?: RegleFormPropertyType<TForm[TKey], TCustomRules> };
1039
- /**
1040
- * @public
1041
- */
1042
- type RegleRuleTree<TForm extends Record<string, any>, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = { [TKey in keyof TForm]: RegleFormPropertyType<TForm[TKey], TCustomRules> };
1043
- /**
1044
- * @public
1045
- */
1046
- type RegleUnknownRulesTree = {
1047
- [x: string]: RegleRuleDecl | RegleCollectionRuleDecl | RegleUnknownRulesTree;
1048
- };
1049
- /**
1050
- * @public
1051
- */
1052
- type RegleComputedRules<TForm extends MaybeRefOrComputedRef<Record<string, any>> | DeepReactiveState<Record<string, any>>, TCustomRules extends Partial<ExtendedRulesDeclarations> | Regle<any, any> | useRegleFn<any> = Partial<ExtendedRulesDeclarations>, TState$1 = Unwrap<UnwrapMaybeRef<TForm>>, TCustom = (TCustomRules extends Regle<any, infer R> ? R extends ReglePartialRuleTree<any, infer C> ? C : Partial<ExtendedRulesDeclarations> : TCustomRules extends useRegleFn<infer Rules, any> ? Rules : {})> = { [TKey in keyof JoinDiscriminatedUnions<TState$1>]?: RegleFormPropertyType<JoinDiscriminatedUnions<TState$1>[TKey], Omit<Partial<ExtendedRulesDeclarations>, keyof TCustom> & Partial<TCustom>> };
1053
- /**
1054
- * @internal
1055
- * @reference {@link ReglePartialRuleTree}
1056
- */
1057
- type $InternalReglePartialRuleTree = {
1058
- [x: string]: $InternalFormPropertyTypes;
1059
- };
1060
- /**
1061
- * @public
1062
- */
1063
- type RegleFormPropertyType<TValue$1 = any, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = [NonNullable<TValue$1>] extends [never] ? MaybeRefOrComputedRef<RegleRuleDecl<TValue$1, TCustomRules>> : NonNullable<TValue$1> extends Array<any> ? RegleCollectionRuleDecl<TValue$1, TCustomRules> : NonNullable<TValue$1> extends Date ? MaybeRefOrComputedRef<RegleRuleDecl<NonNullable<TValue$1>, TCustomRules>> : NonNullable<TValue$1> extends File ? MaybeRefOrComputedRef<RegleRuleDecl<NonNullable<TValue$1>, TCustomRules>> : NonNullable<TValue$1> extends Ref<infer V> ? RegleFormPropertyType<V, TCustomRules> : NonNullable<TValue$1> extends Record<string, any> ? NonNullable<TValue$1> extends RegleStatic<infer U> ? MaybeRefOrComputedRef<RegleRuleDecl<Raw<U>, TCustomRules>> : ReglePartialRuleTree<NonNullable<TValue$1>, TCustomRules> : MaybeRefOrComputedRef<RegleRuleDecl<NonNullable<TValue$1>, TCustomRules>>;
1064
- /**
1065
- * @internal
1066
- * @reference {@link RegleFormPropertyType}
1067
- */
1068
- type $InternalFormPropertyTypes = MaybeRefOrComputedRef<$InternalRegleRuleDecl> | $InternalRegleCollectionRuleDecl | $InternalReglePartialRuleTree | FieldRegleBehaviourOptions;
1069
- /**
1070
- * @public
1071
- * Rule tree for a form property
1072
- */
1073
- type RegleRuleDecl<TValue$1 extends any = any, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<DefaultValidatorsTree>, TOptions extends Record<string, unknown> = FieldRegleBehaviourOptions<TValue$1>> = TOptions & { [TKey in keyof RemoveIndexSignature<TCustomRules>]?: FormRuleDeclaration<TValue$1, any[]> } & {
1074
- [x: string]: FormRuleDeclaration<TValue$1, any[]> | boolean | number | undefined;
1075
- };
1076
- /**
1077
- * @internal
1078
- * @reference {@link RegleRuleDecl}
1079
- */
1080
- type $InternalRegleRuleDecl = FieldRegleBehaviourOptions & CollectionRegleBehaviourOptions & Record<string, FormRuleDeclaration<any, any>>;
1081
- /**
1082
- * @public
1083
- */
1084
- type RegleCollectionRuleDeclKeyProperty = {
1085
- $key?: PropertyKey;
1086
- };
1087
- /**
1088
- * @public
1089
- */
1090
- type RegleCollectionRuleDecl<TValue$1 = any[], TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = ({
1091
- $each?: RegleCollectionEachRules<TValue$1, TCustomRules>;
1092
- } & RegleRuleDecl<NonNullable<TValue$1>, TCustomRules, CollectionRegleBehaviourOptions>) | ({
1093
- $each?: RegleCollectionEachRules<TValue$1, TCustomRules>;
1094
- } & CollectionRegleBehaviourOptions);
1095
- /** @public */
1096
- type RegleCollectionEachRules<TValue$1 = any[], TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = MaybeGetter<RegleFormPropertyType<ArrayElement<NonNullable<TValue$1>>, TCustomRules>, ArrayElement<TValue$1>, RegleCollectionRuleDeclKeyProperty>;
1097
- /**
1098
- * @internal
1099
- * @reference {@link RegleCollectionRuleDecl}
1100
- */
1101
- type $InternalRegleCollectionRuleDecl = $InternalRegleRuleDecl & {
1102
- $each?: MaybeGetter<$InternalFormPropertyTypes & RegleCollectionRuleDeclKeyProperty, any>;
1103
- };
1104
- /**
1105
- * @public
1106
- */
1107
- type InlineRuleDeclaration<TValue$1 extends any = any, TParams$1 extends any[] = any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = boolean> = (value: Maybe<TValue$1>, ...args: UnwrapRegleUniversalParams<TParams$1>) => TReturn;
1108
- /**
1109
- * @public
1110
- * Regroup inline and registered rules
1111
- * */
1112
- type FormRuleDeclaration<TValue$1 extends any = unknown, TParams$1 extends any[] = any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TMetadata$1 extends RegleRuleMetadataDefinition = (TReturn extends Promise<infer M> ? M : TReturn), TAsync$1 extends boolean = boolean> = InlineRuleDeclaration<TValue$1, TParams$1, TReturn> | RegleRuleDefinition<TValue$1, TParams$1, TAsync$1, TMetadata$1> | RegleRuleWithParamsDefinitionInput<TValue$1, [param?: any], TAsync$1, TMetadata$1> | RegleRuleWithParamsDefinitionInput<TValue$1, [param?: any, ...any[]], TAsync$1, TMetadata$1>;
1113
1040
  /**
1114
1041
  * @public
1115
1042
  */
@@ -1144,7 +1071,10 @@ type RegleStatus<TState$1 extends object | Record<string, any> | undefined = Rec
1144
1071
  $extractDirtyFields: (filterNullishValues?: boolean) => DeepPartial<TState$1>;
1145
1072
  /** Sets all properties as dirty, triggering all rules. It returns a promise that will either resolve to false or a type safe copy of your form state. Values that had the required rule will be transformed into a non-nullable value (type only). */
1146
1073
  $validate: (forceValues?: JoinDiscriminatedUnions<TState$1> extends EmptyObject ? any : HasNamedKeys<JoinDiscriminatedUnions<TState$1>> extends true ? IsUnknown<JoinDiscriminatedUnions<TState$1>> extends true ? any : JoinDiscriminatedUnions<TState$1> : any) => Promise<RegleResult<JoinDiscriminatedUnions<TState$1>, TRules$1>>;
1147
- } & ProcessNestedFields<TState$1, TRules$1, TShortcuts> & ([TShortcuts['nested']] extends [never] ? {} : { [K in keyof TShortcuts['nested']]: ReturnType<NonNullable<TShortcuts['nested']>[K]> });
1074
+ } & ProcessNestedFields<TState$1, TRules$1, TShortcuts> & ([TShortcuts['nested']] extends [never] ? {} : { [K in keyof TShortcuts['nested']]: ReturnType<NonNullable<TShortcuts['nested']>[K]> }) & (TRules$1['$self'] extends RegleRuleDecl ? {
1075
+ /** Represents the status of the parent object. Status only concern the object itself and not its children */
1076
+ readonly $self: RegleFieldStatus<NonNullable<TRules$1['$self']>, NonNullable<TRules$1['$self']>, TShortcuts>;
1077
+ } : {});
1148
1078
  /**
1149
1079
  * @internal
1150
1080
  * @reference {@link RegleStatus}
@@ -1160,11 +1090,12 @@ interface $InternalRegleStatus extends $InternalRegleCommonStatus {
1160
1090
  $extractDirtyFields: (filterNullishValues?: boolean) => Record<string, any>;
1161
1091
  $validate: (forceValues?: any) => Promise<$InternalRegleResult>;
1162
1092
  $id?: string;
1093
+ readonly $self?: $InternalRegleFieldStatus | undefined;
1163
1094
  }
1164
1095
  /**
1165
1096
  * @public
1166
1097
  */
1167
- type InferRegleStatusType<TRule extends RegleCollectionRuleDecl | RegleRuleDecl | ReglePartialRuleTree<any>, TState$1 extends Record<PropertyKey, any> = any, TKey$1 extends PropertyKey = string, TShortcuts extends RegleShortcutDefinition = {}> = HasNamedKeys<TState$1> extends true ? [TState$1[TKey$1]] extends [undefined | null] ? RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : NonNullable<TState$1[TKey$1]> extends Array<infer U extends Record<string, any>> ? U extends Record<string, any> ? TRule extends RegleCollectionRuleDefinition<any, any> ? ExtractFromGetter<TRule['$each']> extends ReglePartialRuleTree<any> ? RegleCollectionStatus<TState$1[TKey$1], ExtractFromGetter<TRule['$each']>, TRule, TShortcuts> : RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : RegleCollectionStatus<TState$1[TKey$1], {}, TRule, TShortcuts> : RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : TRule extends ReglePartialRuleTree<any> ? NonNullable<TState$1[TKey$1]> extends Array<any> ? RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : NonNullable<TState$1[TKey$1]> extends Date | File ? RegleFieldStatus<Raw<TState$1[TKey$1]>, TRule, TShortcuts> : unknown extends TState$1[TKey$1] ? RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : NonNullable<TState$1[TKey$1]> extends Record<PropertyKey, any> ? NonNullable<TState$1[TKey$1]> extends RegleStaticImpl<infer U> ? RegleFieldStatus<Raw<U>, TRule, TShortcuts> : MaybeVariantStatus<TState$1[TKey$1], TRule, TShortcuts> : RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : NonNullable<TState$1[TKey$1]> extends Date | File ? RegleFieldStatus<Raw<NonNullable<TState$1[TKey$1]>>, TRule, TShortcuts> : unknown extends TState$1[TKey$1] ? RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : NonNullable<TState$1[TKey$1]> extends Record<PropertyKey, any> ? NonNullable<TState$1[TKey$1]> extends RegleStaticImpl<infer U> ? RegleFieldStatus<Raw<U>, TRule, TShortcuts> : MaybeVariantStatus<TState$1[TKey$1], ReglePartialRuleTree<TState$1[TKey$1]>, TShortcuts> : RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : RegleCommonStatus<unknown>;
1098
+ type InferRegleStatusType<TRule extends RegleCollectionRuleDecl | RegleRuleDecl | ReglePartialRuleTree<any>, TState$1 extends Record<PropertyKey, any> = any, TKey$1 extends PropertyKey = string, TShortcuts extends RegleShortcutDefinition = {}> = HasNamedKeys<TState$1> extends true ? [TState$1[TKey$1]] extends [undefined | null] ? RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : NonNullable<TState$1[TKey$1]> extends Array<infer U extends Record<string, any>> ? U extends Record<string, any> ? TRule extends RegleCollectionRuleDefinition<any, any> ? ExtractFromGetter<TRule['$each']> extends ReglePartialRuleTree<any> ? RegleCollectionStatus<TState$1[TKey$1], ExtractFromGetter<TRule['$each']>, TRule, TShortcuts> : RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : RegleCollectionStatus<TState$1[TKey$1], {}, TRule, TShortcuts> : RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : TRule extends ReglePartialRuleTree<any> ? NonNullable<TState$1[TKey$1]> extends Array<any> ? RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : NonNullable<TState$1[TKey$1]> extends Date | File ? RegleFieldStatus<Raw<TState$1[TKey$1]>, TRule, TShortcuts> : unknown extends TState$1[TKey$1] ? RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : NonNullable<TState$1[TKey$1]> extends Record<PropertyKey, any> ? NonNullable<TState$1[TKey$1]> extends RegleStaticImpl<infer U> ? RegleFieldStatus<Raw<U>, TRule, TShortcuts> : TRule extends ReglePartialRuleTree<TState$1[TKey$1]> ? MaybeVariantStatus<TState$1[TKey$1], TRule, TShortcuts> : MaybeVariantStatus<TState$1[TKey$1], {}, TShortcuts> : RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : NonNullable<TState$1[TKey$1]> extends Date | File ? RegleFieldStatus<Raw<NonNullable<TState$1[TKey$1]>>, TRule, TShortcuts> : unknown extends TState$1[TKey$1] ? RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : NonNullable<TState$1[TKey$1]> extends Record<PropertyKey, any> ? NonNullable<TState$1[TKey$1]> extends RegleStaticImpl<infer U> ? RegleFieldStatus<Raw<U>, TRule, TShortcuts> : MaybeVariantStatus<TState$1[TKey$1], ReglePartialRuleTree<TState$1[TKey$1]>, TShortcuts> : RegleFieldStatus<TState$1[TKey$1], TRule, TShortcuts> : RegleCommonStatus<unknown>;
1168
1099
  /**
1169
1100
  * @internal
1170
1101
  * @reference {@link InferRegleStatusType}
@@ -1189,11 +1120,11 @@ type RegleFieldIssue<TRules$1 extends RegleFormPropertyType<unknown, Partial<Ext
1189
1120
  } }[keyof ComputeFieldRules<any, TRules$1>]);
1190
1121
  type ComputeFieldRules<TState$1 extends any, TRules$1 extends MaybeRef<RegleFormPropertyType<unknown, Partial<ExtendedRulesDeclarations>>>> = IsEmptyObject<UnwrapRef<TRules$1>> extends true ? {
1191
1122
  readonly [x: string]: RegleRuleStatus<TState$1, any[], any>;
1192
- } : { readonly [TRuleKey in keyof Omit<UnwrapRef<TRules$1>, '$each' | keyof FieldRegleBehaviourOptions>]: RegleRuleStatus<TState$1, UnwrapRef<TRules$1>[TRuleKey] extends RegleRuleDefinition<any, infer TParams, any> ? TParams : [], UnwrapRef<TRules$1>[TRuleKey] extends RegleRuleDefinition<any, any, any, infer TMetadata> ? TMetadata : UnwrapRef<TRules$1>[TRuleKey] extends InlineRuleDeclaration<any, any[], infer TMetadata> ? TMetadata extends Promise<infer P> ? P : TMetadata : boolean> };
1123
+ } : { readonly [TRuleKey in keyof Omit<UnwrapRef<TRules$1>, '$each' | keyof FieldRegleBehaviourOptions>]: RegleRuleStatus<TState$1, UnwrapRef<TRules$1>[TRuleKey] extends RegleRuleDefinition<unknown, any, infer TParams, any> ? TParams : [], UnwrapRef<TRules$1>[TRuleKey] extends RegleRuleDefinition<unknown, any, any, any, infer TMetadata> ? TMetadata : UnwrapRef<TRules$1>[TRuleKey] extends InlineRuleDeclaration<any, any[], infer TMetadata> ? TMetadata extends Promise<infer P> ? P : TMetadata : boolean> };
1193
1124
  /**
1194
1125
  * @public
1195
1126
  */
1196
- type RegleFieldStatus<TState$1 extends any = any, TRules$1 extends RegleFormPropertyType<unknown, Partial<ExtendedRulesDeclarations>> = Record<string, any>, TShortcuts extends RegleShortcutDefinition = never> = Omit<RegleCommonStatus<TState$1, TRules$1>, '$value' | '$silentValue' | '$initialValue' | '$originalValue'> & {
1127
+ type RegleFieldStatus<TState$1 extends any = any, TRules$1 extends RegleFormPropertyType<any, Partial<ExtendedRulesDeclarations>> = Record<string, any>, TShortcuts extends RegleShortcutDefinition = never> = Omit<RegleCommonStatus<TState$1, TRules$1>, '$value' | '$silentValue' | '$initialValue' | '$originalValue'> & {
1197
1128
  /** A reference to the original validated model. It can be used to bind your form with v-model.*/
1198
1129
  $value: MaybeOutput<UnwrapNestedRefs<TState$1>>;
1199
1130
  /** $value variant that will not "touch" the field and update the value silently, running only the rules, so you can easily swap values without impacting user interaction. */
@@ -1391,7 +1322,7 @@ interface $InternalRegleRuleStatus {
1391
1322
  /**
1392
1323
  * @public
1393
1324
  */
1394
- type RegleCollectionStatus<TState$1 extends any[] = any[], TRules$1 extends ReglePartialRuleTree<ArrayElement<TState$1>> = Record<string, any>, TFieldRule extends RegleCollectionRuleDecl<any, any> = never, TShortcuts extends RegleShortcutDefinition = {}> = Omit<RegleCommonStatus<TState$1, TRules$1>, '$value'> & {
1325
+ type RegleCollectionStatus<TState$1 extends any[] = any[], TRules$1 extends ReglePartialRuleTree<any> = Record<string, any>, TFieldRule extends RegleCollectionRuleDecl<any, any> = never, TShortcuts extends RegleShortcutDefinition = {}> = Omit<RegleCommonStatus<TState$1, TRules$1>, '$value'> & {
1395
1326
  /** A reference to the original validated model. It can be used to bind your form with v-model.*/
1396
1327
  $value: MaybeOutput<TState$1>;
1397
1328
  /** $value variant that will not "touch" the field and update the value silently, running only the rules, so you can easily swap values without impacting user interaction. */
@@ -1432,9 +1363,101 @@ interface $InternalRegleCollectionStatus extends Omit<$InternalRegleStatus, '$fi
1432
1363
  $extractDirtyFields: (filterNullishValues?: boolean) => any[];
1433
1364
  $validate: (forceValues?: any) => Promise<$InternalRegleResult>;
1434
1365
  }
1435
- type RegleErrorTree<TState$1 = MaybeRef<Record<string, any> | any[]>, TIssue extends boolean = false, TSchema extends boolean = false> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState$1>>]: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState$1>>[K], false, TIssue, TSchema> };
1436
- type RegleIssuesTree<TState$1 = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState$1>>]: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState$1>>[K], false, true, TSchema> };
1437
- type RegleExternalErrorTree<TState$1 = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState$1>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState$1>>[K], true, TSchema> };
1366
+ /**
1367
+ * @public
1368
+ */
1369
+ type ReglePartialRuleTree<TForm extends Record<string, any> = Record<string, any>, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = { [TKey in keyof TForm]?: RegleFormPropertyType<TForm[TKey], TCustomRules> } & {
1370
+ $self?: MaybeRefOrComputedRef<RegleRuleDecl<TForm, TCustomRules>>;
1371
+ };
1372
+ /**
1373
+ * @public
1374
+ */
1375
+ type RegleRuleTree<TForm extends Record<string, any>, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = { [TKey in keyof TForm]: RegleFormPropertyType<TForm[TKey], TCustomRules> } & {
1376
+ $self?: MaybeRefOrComputedRef<RegleRuleDecl<TForm, TCustomRules>>;
1377
+ };
1378
+ /**
1379
+ * @public
1380
+ */
1381
+ type RegleUnknownRulesTree = {
1382
+ [x: string]: RegleRuleDecl | RegleCollectionRuleDecl | RegleUnknownRulesTree;
1383
+ };
1384
+ /**
1385
+ * @public
1386
+ */
1387
+ type RegleComputedRules<TForm extends MaybeRefOrComputedRef<Record<string, any>> | DeepReactiveState<Record<string, any>>, TCustomRules extends Partial<ExtendedRulesDeclarations> | Regle<any, any> | useRegleFn<any> = Partial<ExtendedRulesDeclarations>, TState$1 = Unwrap<UnwrapMaybeRef<TForm>>, TCustom = (TCustomRules extends Regle<any, infer R> ? R extends ReglePartialRuleTree<any, infer C> ? C : Partial<ExtendedRulesDeclarations> : TCustomRules extends useRegleFn<infer Rules, any> ? Rules : {})> = { [TKey in keyof JoinDiscriminatedUnions<TState$1>]?: RegleFormPropertyType<JoinDiscriminatedUnions<TState$1>[TKey], Omit<Partial<ExtendedRulesDeclarations>, keyof TCustom> & Partial<TCustom>> };
1388
+ /**
1389
+ * @internal
1390
+ * @reference {@link ReglePartialRuleTree}
1391
+ */
1392
+ type $InternalReglePartialRuleTree = {
1393
+ [x: string]: $InternalFormPropertyTypes;
1394
+ } & {
1395
+ $self?: $InternalRegleRuleDecl;
1396
+ };
1397
+ /**
1398
+ * @public
1399
+ */
1400
+ type RegleFormPropertyType<TValue$1 = any, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = [NonNullable<TValue$1>] extends [never] ? MaybeRefOrComputedRef<RegleRuleDecl<TValue$1, TCustomRules>> : NonNullable<TValue$1> extends Array<any> ? RegleCollectionRuleDecl<TValue$1, TCustomRules> : NonNullable<TValue$1> extends Date ? MaybeRefOrComputedRef<RegleRuleDecl<NonNullable<TValue$1>, TCustomRules>> : NonNullable<TValue$1> extends File ? MaybeRefOrComputedRef<RegleRuleDecl<NonNullable<TValue$1>, TCustomRules>> : NonNullable<TValue$1> extends Ref<infer V> ? RegleFormPropertyType<V, TCustomRules> : NonNullable<TValue$1> extends Record<string, any> ? NonNullable<TValue$1> extends RegleStatic<infer U> ? MaybeRefOrComputedRef<RegleRuleDecl<Raw<U>, TCustomRules>> : ReglePartialRuleTree<NonNullable<TValue$1>, TCustomRules> : MaybeRefOrComputedRef<RegleRuleDecl<NonNullable<TValue$1>, TCustomRules>>;
1401
+ /**
1402
+ * @internal
1403
+ * @reference {@link RegleFormPropertyType}
1404
+ */
1405
+ type $InternalFormPropertyTypes = MaybeRefOrComputedRef<$InternalRegleRuleDecl> | $InternalRegleCollectionRuleDecl | $InternalReglePartialRuleTree | FieldRegleBehaviourOptions;
1406
+ /**
1407
+ * @public
1408
+ * Rule tree for a form property
1409
+ */
1410
+ type RegleRuleDecl<TValue$1 extends any = any, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<DefaultValidatorsTree>, TOptions extends Record<string, unknown> = FieldRegleBehaviourOptions<TValue$1>> = TOptions & { [TKey in keyof RemoveIndexSignature<TCustomRules>]?: FormRuleDeclaration<TValue$1, any[]> } & {
1411
+ [x: string]: FormRuleDeclaration<TValue$1, any[]> | boolean | number | undefined;
1412
+ };
1413
+ /**
1414
+ * @internal
1415
+ * @reference {@link RegleRuleDecl}
1416
+ */
1417
+ type $InternalRegleRuleDecl = FieldRegleBehaviourOptions & CollectionRegleBehaviourOptions & Record<string, FormRuleDeclaration<any, any>>;
1418
+ /**
1419
+ * @public
1420
+ */
1421
+ type RegleCollectionRuleDeclKeyProperty = {
1422
+ $key?: PropertyKey;
1423
+ };
1424
+ /**
1425
+ * @public
1426
+ */
1427
+ type RegleCollectionRuleDecl<TValue$1 = any[], TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = ({
1428
+ $each?: RegleCollectionEachRules<TValue$1, TCustomRules>;
1429
+ } & RegleRuleDecl<NonNullable<TValue$1>, TCustomRules, CollectionRegleBehaviourOptions>) | ({
1430
+ $each?: RegleCollectionEachRules<TValue$1, TCustomRules>;
1431
+ } & CollectionRegleBehaviourOptions);
1432
+ /** @public */
1433
+ type RegleCollectionEachRules<TValue$1 = any[], TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = MaybeGetter<RegleFormPropertyType<ArrayElement<NonNullable<TValue$1>>, TCustomRules>, ArrayElement<TValue$1>, RegleCollectionRuleDeclKeyProperty, RegleFormPropertyType<ArrayElement<NonNullable<TValue$1>>, TCustomRules>>;
1434
+ /**
1435
+ * @internal
1436
+ * @reference {@link RegleCollectionRuleDecl}
1437
+ */
1438
+ type $InternalRegleCollectionRuleDecl = $InternalRegleRuleDecl & {
1439
+ $each?: MaybeGetter<$InternalFormPropertyTypes & RegleCollectionRuleDeclKeyProperty, any, {}, {
1440
+ $self?: $InternalRegleFieldStatus;
1441
+ }>;
1442
+ };
1443
+ /**
1444
+ * @public
1445
+ */
1446
+ type InlineRuleDeclaration<TValue$1 extends any = any, TParams$1 extends any[] = any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = boolean> = (value: Maybe<TValue$1>, ...args: UnwrapRegleUniversalParams<TParams$1>) => TReturn;
1447
+ /**
1448
+ * @public
1449
+ * Regroup inline and registered rules
1450
+ * */
1451
+ type FormRuleDeclaration<TValue$1 extends any = unknown, TParams$1 extends any[] = any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TMetadata$1 extends RegleRuleMetadataDefinition = (TReturn extends Promise<infer M> ? M : TReturn), TAsync$1 extends boolean = boolean> = InlineRuleDeclaration<TValue$1, TParams$1, TReturn> | RegleRuleDefinition<unknown, TValue$1, TParams$1, TAsync$1, TMetadata$1, any, any, boolean> | RegleRuleWithParamsDefinitionInput<unknown, TValue$1, [param?: any], TAsync$1, TMetadata$1> | RegleRuleWithParamsDefinitionInput<unknown, TValue$1, [param?: any, ...any[]], TAsync$1, TMetadata$1>;
1452
+ type RegleErrorTree<TState$1 = MaybeRef<Record<string, any> | any[]>, TIssue extends boolean = false, TSchema extends boolean = false> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState$1>>]: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState$1>>[K], false, TIssue, TSchema> } & {
1453
+ readonly $self?: string[];
1454
+ };
1455
+ type RegleIssuesTree<TState$1 = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState$1>>]: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState$1>>[K], false, true, TSchema> } & {
1456
+ readonly $self?: RegleFieldIssue[];
1457
+ };
1458
+ type RegleExternalErrorTree<TState$1 = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState$1>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState$1>>[K], true, TSchema> } & {
1459
+ readonly $self?: RegleFieldIssue[];
1460
+ };
1438
1461
  type RegleExternalSchemaErrorTree<TState$1 = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState$1>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState$1>>[K], true, true, TSchema> };
1439
1462
  type ErrorMessageOrIssue<TIssue extends boolean> = TIssue extends true ? RegleFieldIssue[] : string[];
1440
1463
  type RegleValidationErrors<TState$1 extends Record<string, any> | any[] | unknown = never, TExternal extends boolean = false, TIssue extends boolean = false, TSchema extends boolean = false> = HasNamedKeys<TState$1> extends true ? IsAny<TState$1> extends true ? any : NonNullable<TState$1> extends Array<infer U> ? TSchema extends false ? U extends Record<string, any> ? TExternal extends false ? RegleCollectionErrors<U, TIssue, TSchema> : RegleExternalCollectionErrors<U, TIssue, TSchema> : ErrorMessageOrIssue<TIssue> : RegleCollectionErrors<U, TIssue, TSchema> : NonNullable<TState$1> extends Date | File ? ErrorMessageOrIssue<TIssue> : NonNullable<TState$1> extends Record<string, any> ? IsRegleStatic<NonNullable<TState$1>> extends true ? ErrorMessageOrIssue<TIssue> : TExternal extends false ? RegleErrorTree<TState$1, TIssue, TSchema> : RegleExternalErrorTree<TState$1, TSchema> : ErrorMessageOrIssue<TIssue> : any;
@@ -1573,7 +1596,7 @@ type SuperCompatibleRegleCollectionIssues = $InternalRegleCollectionIssues;
1573
1596
  *
1574
1597
  * @see {@link https://reglejs.dev/core-concepts/rules/reusable-rules Documentation}
1575
1598
  */
1576
- declare function createRule<TValue$1 extends any, TParams$1 extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TMetadata$1 extends RegleRuleMetadataDefinition = (TReturn extends Promise<infer M> ? M : TReturn), TAsync$1 extends boolean = (TReturn extends Promise<any> ? true : false)>(definition: RegleRuleInit<TValue$1, TParams$1, TReturn, TMetadata$1, TAsync$1>): InferRegleRule<TValue$1, TParams$1, TAsync$1, TMetadata$1>;
1599
+ declare function createRule<const TType$1 extends string | unknown, TValue$1 extends any, TParams$1 extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TMetadata$1 extends RegleRuleMetadataDefinition = (TReturn extends Promise<infer M> ? M : TReturn), TAsync$1 extends boolean = (TReturn extends Promise<any> ? true : false), TNonEmpty extends boolean = false>(definition: RegleRuleInit<TType$1, TValue$1, TParams$1, TReturn, TMetadata$1, TAsync$1, TNonEmpty>): InferRegleRule<TType$1, TValue$1, TParams$1, TAsync$1, TMetadata$1, TNonEmpty>;
1577
1600
  /**
1578
1601
  * Returns a clean list of parameters
1579
1602
  * Removing Ref and executing function to return the unwrapped value
@@ -1986,4 +2009,4 @@ declare function refineRules<TRules$1 extends RegleUnknownRulesTree, TRefinement
1986
2009
  * @see {@link https://reglejs.dev/introduction/devtools Documentation}
1987
2010
  */
1988
2011
  declare const RegleVuePlugin: Plugin;
1989
- export { type $InternalRegleStatus, type AllRulesDeclarations, type ArrayElement, type CommonAlphaOptions, type CommonComparisonOptions, type CreateScopedUseRegleOptions, type DeepMaybeRef, type DeepPartial, type DeepReactiveState, type DefaultValidatorsTree, type DumbJoinDiscriminatedUnions, type ExtendedRulesDeclarations, type FormRuleDeclaration, type GlobalConfigOverrides, type HasNamedKeys, type HaveAnyRequiredProps, type InferInput, type InferOutput, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleSettings, type InferRegleShortcuts, type InferRegleStatusType, type InferRegleValidationResult, type InferSafeOutput, type InferValidOutput, type InlineRuleDeclaration, InternalRuleType, type IsRegleStatic, type JoinDiscriminatedUnions, type LazyJoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MaybeReadonly, type MaybeVariantStatus, type MergedRegles, type MergedScopedRegles, type NarrowVariant, type NarrowVariantExtracts, type NarrowVariantFieldExtracts, type NoInferLegacy, type NonEmptyTuple, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleCustomFieldStatus, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleExternalSchemaErrorTree, type RegleFieldIssue, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type RegleIssuesTree, type RegleLike, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleRuleWithParamsDefinitionInput, type RegleShortcutDefinition, type RegleSingleField, type RegleStatic, type RegleStaticImpl, type RegleStatus, type RegleUniversalParams, type RegleUnknownRulesTree, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, RegleVuePlugin, type ResolvedRegleBehaviourOptions, type ScopedInstancesRecord, type ScopedInstancesRecordLike, type SuperCompatibleRegle, type SuperCompatibleRegleCollectionErrors, type SuperCompatibleRegleCollectionStatus, type SuperCompatibleRegleFieldStatus, type SuperCompatibleRegleResult, type SuperCompatibleRegleRoot, type SuperCompatibleRegleRuleStatus, type SuperCompatibleRegleStatus, type TupleToPlainObj, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, type UnwrapStatic, type UseScopedRegleOptions, createRule, createScopedUseRegle, createVariant, defineRegleConfig, defineRules, extendRegleConfig, flatErrors, inferRules, type inferRulesFn, type isEditedHandlerFn, markStatic, mergeRegles, narrowVariant, refineRules, unwrapRuleParameters, useCollectScope, type useCollectScopeFn, useRegle, type useRegleFn, useRootStorage, useRules, type useRulesFn, useScopedRegle, variantToRef };
2012
+ export { type $InternalRegleStatus, type AllRulesDeclarations, type ArrayElement, type CommonAlphaOptions, type CommonComparisonOptions, type CreateScopedUseRegleOptions, type DeepMaybeRef, type DeepPartial, type DeepReactiveState, type DefaultValidatorsTree, type DumbJoinDiscriminatedUnions, type ExtendedRulesDeclarations, type FormRuleDeclaration, type GlobalConfigOverrides, type HasNamedKeys, type HaveAnyRequiredProps, type InferInput, type InferOutput, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleSettings, type InferRegleShortcuts, type InferRegleStatusType, type InferRegleValidationResult, type InferSafeOutput, type InferValidOutput, type InlineRuleDeclaration, InternalRuleType, type IsRegleStatic, type JoinDiscriminatedUnions, type LazyJoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MaybeReadonly, type MaybeVariantStatus, type MergedRegles, type MergedScopedRegles, type NarrowVariant, type NarrowVariantExtracts, type NarrowVariantFieldExtracts, type NoInferLegacy, type NonEmptyTuple, type Prettify, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleCustomFieldStatus, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleExternalSchemaErrorTree, type RegleFieldIssue, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type RegleIssuesTree, type RegleLike, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleRuleWithParamsDefinitionInput, type RegleShortcutDefinition, type RegleSingleField, type RegleStatic, type RegleStaticImpl, type RegleStatus, type RegleUniversalParams, type RegleUnknownRulesTree, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, RegleVuePlugin, type ResolvedRegleBehaviourOptions, type ScopedInstancesRecord, type ScopedInstancesRecordLike, type SuperCompatibleRegle, type SuperCompatibleRegleCollectionErrors, type SuperCompatibleRegleCollectionStatus, type SuperCompatibleRegleFieldStatus, type SuperCompatibleRegleResult, type SuperCompatibleRegleRoot, type SuperCompatibleRegleRuleStatus, type SuperCompatibleRegleStatus, type TupleToPlainObj, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, type UnwrapStatic, type UseScopedRegleOptions, createRule, createScopedUseRegle, createVariant, defineRegleConfig, defineRules, extendRegleConfig, flatErrors, inferRules, type inferRulesFn, type isEditedHandlerFn, markStatic, mergeRegles, narrowVariant, refineRules, unwrapRuleParameters, useCollectScope, type useCollectScopeFn, useRegle, type useRegleFn, useRootStorage, useRules, type useRulesFn, useScopedRegle, variantToRef };