@regle/core 1.3.1 → 1.4.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.
@@ -1839,7 +1839,7 @@ type InferRegleRoot<T extends (...args: any[]) => SuperCompatibleRegle> = T exte
1839
1839
  /**
1840
1840
  * Infer custom rules declared in a global configuration
1841
1841
  */
1842
- type InferRegleRules<T extends useRegleFn<any, any>> = T extends useRegleFn<infer U, any> ? UnwrapRuleTree<Partial<U> & Partial<DefaultValidators>> : {};
1842
+ type InferRegleRules<T extends useRegleFn<any, any>> = T extends useRegleFn<infer U, any> ? UnwrapRuleTree<Partial<DefaultValidators>> & UnwrapRuleTree<Partial<U>> : {};
1843
1843
  /**
1844
1844
  * Infer custom shortcuts declared in a global configuration
1845
1845
  */
@@ -1852,19 +1852,11 @@ type RegleEnforceRequiredRules<TRules extends keyof DefaultValidators> = Omit<Pa
1852
1852
  * Extract a set of custom rules from a global configuration and setting them as required
1853
1853
 
1854
1854
  */
1855
- type RegleEnforceCustomRequiredRules<T extends Partial<AllRulesDeclarations> | useRegleFn<any, any>, TRules extends (T extends useRegleFn<any, any> ? keyof InferRegleRules<T> : keyof T)> = Omit<Partial<DefaultValidatorsTree>, TRules> & { [K in TRules]-?: T extends useRegleFn<any, any> ? K extends keyof InferRegleRules<T> ? NonNullable<UnwrapRuleWithParams<InferRegleRules<T>[K]>> : never : K extends keyof T ? NonNullable<T[K]> : never };
1855
+ type RegleEnforceCustomRequiredRules<T extends useRegleFn<any, any>, TRules extends keyof InferRegleRules<T>> = Omit<Partial<DefaultValidatorsTree>, TRules> & { [K in TRules]-?: T extends useRegleFn<any, any> ? K extends keyof InferRegleRules<T> ? NonNullable<UnwrapRuleWithParams<InferRegleRules<T>[K]>> : never : K extends keyof T ? NonNullable<T[K]> : never };
1856
1856
  /**
1857
1857
  * Extract custom rules and custom shortcuts and apply them to a RegleFieldStatus type
1858
1858
  */
1859
- type RegleCustomFieldStatus<T extends useRegleFn<any, any>, TState extends unknown = any, TRules extends RegleFormPropertyType<any, Partial<AllRulesDeclarations>> = InferRegleRules<T>> = RegleFieldStatus<TState, TRules, InferRegleShortcuts<T>>;
1860
- /**
1861
- * Extract custom rules and custom shortcuts and apply them to a RegleFieldStatus type
1862
- */
1863
- type RegleCustomStatus<T extends useRegleFn<any, any>, TState extends Record<string, any> | undefined = Record<string, any>, TRules extends ReglePartialRuleTree<NonNullable<TState>> = InferRegleRules<T>> = RegleStatus<TState, TRules, InferRegleShortcuts<T>>;
1864
- /**
1865
- * Extract custom rules and custom shortcuts and apply them to a RegleFieldStatus type
1866
- */
1867
- type RegleCustomCollectionStatus<T extends useRegleFn<any, any>, TState extends any[] = any[], TRules extends ReglePartialRuleTree<ArrayElement<TState>> = InferRegleRules<T>> = RegleCollectionStatus<TState, TRules, InferRegleShortcuts<T>>;
1859
+ type RegleCustomFieldStatus<T extends useRegleFn<any, any>, TState extends unknown = any, TRules extends keyof InferRegleRules<T> = never> = RegleFieldStatus<TState, [TRules] extends [never] ? Partial<InferRegleRules<T>> : RegleEnforceCustomRequiredRules<T, TRules>, InferRegleShortcuts<T>>;
1868
1860
  //#endregion
1869
1861
  //#region src/types/utils/object.types.d.ts
1870
1862
  type RemoveCommonKey<T extends readonly any[], K extends PropertyKey> = T extends [infer F, ...infer R] ? [Prettify<Omit<F, K>>, ...RemoveCommonKey<R, K>] : [];
@@ -2134,7 +2126,7 @@ type DefaultValidators = {
2134
2126
  numeric: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
2135
2127
  oneOf: RegleRuleDefinition<string | number, [options: (string | number)[]], false, boolean, string | number>;
2136
2128
  regex: RegleRuleWithParamsDefinition<string, [regexp: RegExp], false, boolean>;
2137
- required: RegleRuleDefinition<unknown, []>;
2129
+ required: RegleRuleDefinition<unknown, [], false, boolean, unknown>;
2138
2130
  sameAs: RegleRuleWithParamsDefinition<unknown, [target: unknown, otherName?: string], false, boolean>;
2139
2131
  string: RegleRuleDefinition<unknown, [], false, boolean, any, unknown>;
2140
2132
  type: RegleRuleDefinition<unknown, [], false, boolean, unknown, unknown>;
@@ -2231,31 +2223,6 @@ type InlineRuleDeclaration<TValue extends any = any, TParams extends any[] = any
2231
2223
  * */
2232
2224
  type FormRuleDeclaration<TValue extends any = unknown, TParams extends any[] = any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TMetadata extends RegleRuleMetadataDefinition = (TReturn extends Promise<infer M> ? M : TReturn), TAsync extends boolean = boolean> = InlineRuleDeclaration<TValue, TParams, TReturn> | RegleRuleDefinition<TValue, TParams, TAsync, TMetadata> | RegleRuleWithParamsDefinitionInput<TValue, [param?: any], TAsync, TMetadata> | RegleRuleWithParamsDefinitionInput<TValue, [param?: any, ...any[]], TAsync, TMetadata>;
2233
2225
  //#endregion
2234
- //#region src/types/rules/rule.errors.types.d.ts
2235
- type RegleErrorTree<TState = MaybeRef<Record<string, any> | any[]>> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], false> };
2236
- type RegleExternalErrorTree<TState = MaybeRef<Record<string, any> | any[]>> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true> };
2237
- type RegleValidationErrors<TState extends Record<string, any> | any[] | unknown = never, TExternal extends boolean = false> = NonNullable<TState> extends Array<infer U extends Record<string, any>> ? ExtendOnlyRealRecord<U> extends true ? TExternal extends false ? RegleCollectionErrors<U> : RegleExternalCollectionErrors<U> : string[] : NonNullable<TState> extends Date | File ? string[] : NonNullable<TState> extends Record<string, any> ? TExternal extends false ? RegleErrorTree<TState> : RegleExternalErrorTree<TState> : string[];
2238
- type RegleCollectionErrors<TState extends Record<string, any>> = {
2239
- readonly $self: string[];
2240
- readonly $each: RegleValidationErrors<TState, false>[];
2241
- };
2242
- type RegleExternalCollectionErrors<TState extends Record<string, any>> = {
2243
- readonly $self?: string[];
2244
- readonly $each?: RegleValidationErrors<TState, true>[];
2245
- };
2246
- /** @internal */
2247
- type $InternalRegleCollectionErrors = {
2248
- readonly $self?: string[];
2249
- readonly $each?: $InternalRegleErrors[];
2250
- };
2251
- type $InternalRegleErrorTree = {
2252
- [x: string]: $InternalRegleErrors;
2253
- };
2254
- /**
2255
- * @internal
2256
- */
2257
- type $InternalRegleErrors = $InternalRegleCollectionErrors | string[] | $InternalRegleErrorTree;
2258
- //#endregion
2259
2226
  //#region src/types/rules/rule.status.types.d.ts
2260
2227
  /**
2261
2228
  * @public
@@ -2306,6 +2273,13 @@ type InferRegleStatusType<TRule extends RegleCollectionRuleDecl | RegleRuleDecl
2306
2273
  * @reference {@link InferRegleStatusType}
2307
2274
  */
2308
2275
  type $InternalRegleStatusType = $InternalRegleCollectionStatus | $InternalRegleStatus | $InternalRegleFieldStatus;
2276
+ interface RegleFieldIssue {
2277
+ $property: string;
2278
+ $rule: string;
2279
+ $type?: string;
2280
+ $message: string;
2281
+ [x: string]: unknown;
2282
+ }
2309
2283
  /**
2310
2284
  * @public
2311
2285
  */
@@ -2320,6 +2294,10 @@ type RegleFieldStatus<TState extends any = any, TRules extends RegleFormProperty
2320
2294
  readonly $errors: string[];
2321
2295
  /** Collection of all the error messages, collected for all children properties and nested forms. */
2322
2296
  readonly $silentErrors: string[];
2297
+ /**
2298
+ * Collect all metadata of validators, including the error message
2299
+ */
2300
+ readonly $issues: RegleFieldIssue[];
2323
2301
  /** Stores external errors of the current field */
2324
2302
  readonly $externalErrors: string[];
2325
2303
  /** Stores active tooltips messages of the current field */
@@ -2333,7 +2311,7 @@ type RegleFieldStatus<TState extends any = any, TRules extends RegleFormProperty
2333
2311
  /** This is reactive tree containing all the declared rules of your field. To know more about the rule properties check the rules properties section */
2334
2312
  readonly $rules: IsEmptyObject<TRules> extends true ? {
2335
2313
  readonly [x: string]: RegleRuleStatus<TState, any[], any>;
2336
- } : { readonly [TRuleKey in keyof Omit<TRules, '$each' | keyof FieldRegleBehaviourOptions>]: RegleRuleStatus<TState, TRules[TRuleKey] extends RegleRuleDefinition<any, infer TParams, any> ? TParams : [], TRules[TRuleKey] extends RegleRuleDefinition<any, any, any, infer TMetadata> ? TMetadata : TRules[TRuleKey] extends InlineRuleDeclaration<any, any[], infer TMetadata> ? TMetadata extends Promise<infer P> ? P : TMetadata : any> };
2314
+ } : { readonly [TRuleKey in keyof Omit<TRules, '$each' | keyof FieldRegleBehaviourOptions>]: RegleRuleStatus<TState, TRules[TRuleKey] extends RegleRuleDefinition<any, infer TParams, any> ? TParams : [], TRules[TRuleKey] extends RegleRuleDefinition<any, any, any, infer TMetadata> ? TMetadata : TRules[TRuleKey] extends InlineRuleDeclaration<any, any[], infer TMetadata> ? TMetadata extends Promise<infer P> ? P : TMetadata : boolean> };
2337
2315
  } & ([TShortcuts['fields']] extends [never] ? {} : { [K in keyof TShortcuts['fields']]: ReturnType<NonNullable<TShortcuts['fields']>[K]> });
2338
2316
  /**
2339
2317
  * @internal
@@ -2348,6 +2326,7 @@ interface $InternalRegleFieldStatus extends $InternalRegleCommonStatus {
2348
2326
  readonly $tooltips: string[];
2349
2327
  readonly $inactive: boolean;
2350
2328
  readonly $silentErrors: string[];
2329
+ readonly $issues: RegleFieldIssue[];
2351
2330
  $extractDirtyFields: (filterNullishValues?: boolean) => any;
2352
2331
  $validate: () => Promise<$InternalRegleResult>;
2353
2332
  }
@@ -2445,7 +2424,7 @@ type RegleRuleStatus<TValue = any, TParams extends any[] = any[], TMetadata exte
2445
2424
  * @reference {@link RegleRuleStatus}
2446
2425
  */
2447
2426
  interface $InternalRegleRuleStatus {
2448
- $type: string;
2427
+ $type?: string;
2449
2428
  $message: string | string[];
2450
2429
  $tooltip: string | string[];
2451
2430
  $active: boolean;
@@ -2506,6 +2485,29 @@ interface $InternalRegleCollectionStatus extends Omit<$InternalRegleStatus, '$fi
2506
2485
  $validate: () => Promise<$InternalRegleResult>;
2507
2486
  }
2508
2487
  //#endregion
2488
+ //#region src/types/rules/rule.errors.types.d.ts
2489
+ type RegleErrorTree<TState = MaybeRef<Record<string, any> | any[]>> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], false> };
2490
+ type RegleExternalErrorTree<TState = MaybeRef<Record<string, any> | any[]>> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true> };
2491
+ type RegleExternalSchemaErrorTree<TState = MaybeRef<Record<string, any> | any[]>> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true, true> };
2492
+ type RegleValidationErrors<TState extends Record<string, any> | any[] | unknown = never, TExternal extends boolean = false, TIssue extends boolean = false> = NonNullable<TState> extends Array<infer U extends Record<string, any>> ? ExtendOnlyRealRecord<U> extends true ? TExternal extends false ? RegleCollectionErrors<U> : RegleExternalCollectionErrors<U> : TIssue extends true ? RegleFieldIssue[] : string[] : NonNullable<TState> extends Date | File ? TIssue extends true ? RegleFieldIssue[] : string[] : NonNullable<TState> extends Record<string, any> ? TExternal extends false ? RegleErrorTree<TState> : RegleExternalErrorTree<TState> : TIssue extends true ? RegleFieldIssue[] : string[];
2493
+ type RegleCollectionErrors<TState extends Record<string, any>, TIssue extends boolean = false> = {
2494
+ readonly $self: string[];
2495
+ readonly $each: RegleValidationErrors<TState, false, TIssue>[];
2496
+ };
2497
+ type RegleExternalCollectionErrors<TState extends Record<string, any>, TIssue extends boolean = false> = {
2498
+ readonly $self?: string[];
2499
+ readonly $each?: RegleValidationErrors<TState, true, TIssue>[];
2500
+ };
2501
+ /** @internal */
2502
+ type $InternalRegleCollectionErrors = {
2503
+ readonly $self?: string[];
2504
+ readonly $each?: $InternalRegleErrors[];
2505
+ };
2506
+ type $InternalRegleErrorTree = {
2507
+ [x: string]: $InternalRegleErrors;
2508
+ };
2509
+ type $InternalRegleErrors = $InternalRegleCollectionErrors | string[] | $InternalRegleErrorTree;
2510
+ //#endregion
2509
2511
  //#region src/types/rules/compatibility.rules.d.ts
2510
2512
  interface SuperCompatibleRegle {
2511
2513
  r$: SuperCompatibleRegleRoot;
@@ -2817,4 +2819,4 @@ declare function defineRules<TRules extends RegleUnknownRulesTree>(rules: TRules
2817
2819
  */
2818
2820
  declare function refineRules<TRules extends RegleUnknownRulesTree, TRefinement extends ReglePartialRuleTree<InferInput<TRules>> & RegleUnknownRulesTree>(rules: TRules, refinement: (state: Ref<InferInput<TRules>>) => TRefinement): (state: Ref<InferInput<TRules>>) => Merge<TRules, TRefinement>;
2819
2821
  //#endregion
2820
- export { $InternalRegleStatus, AllRulesDeclarations, CommonAlphaOptions, CommonComparisonOptions, CreateScopedUseRegleOptions, DeepMaybeRef, DeepReactiveState, DefaultValidatorsTree, FormRuleDeclaration, HaveAnyRequiredProps, InferInput, InferRegleRoot, InferRegleRule, InferRegleRules, InferRegleShortcuts, InferRegleStatusType, InferSafeOutput, InlineRuleDeclaration, InternalRuleType, JoinDiscriminatedUnions, LocalRegleBehaviourOptions, Maybe, MaybeInput, MaybeOutput, MaybeReadonly, MaybeVariantStatus, MergedRegles, MergedScopedRegles, NarrowVariant, NoInferLegacy, PrimitiveTypes, Regle, RegleBehaviourOptions, RegleCollectionErrors, RegleCollectionRuleDecl, RegleCollectionRuleDefinition, RegleCollectionStatus, RegleCommonStatus, RegleComputedRules, RegleCustomCollectionStatus, RegleCustomFieldStatus, RegleCustomStatus, RegleEnforceCustomRequiredRules, RegleEnforceRequiredRules, RegleErrorTree, RegleExternalCollectionErrors, RegleExternalErrorTree, RegleFieldStatus, RegleFormPropertyType, RegleInternalRuleDefs, ReglePartialRuleTree, RegleResult, RegleRoot, RegleRuleCore, RegleRuleDecl, RegleRuleDefinition, RegleRuleDefinitionProcessor, RegleRuleDefinitionWithMetadataProcessor, RegleRuleInit, RegleRuleMetadataConsumer, RegleRuleMetadataDefinition, RegleRuleMetadataExtended, RegleRuleRaw, RegleRuleStatus, RegleRuleTypeReturn, RegleRuleWithParamsDefinition, RegleShortcutDefinition, RegleSingleField, RegleStatus, RegleUniversalParams, RegleUnknownRulesTree, RegleValidationErrors, RegleValidationGroupEntry, RegleValidationGroupOutput, RegleRuleTree as RegleValidationTree, ResolvedRegleBehaviourOptions, ScopedInstancesRecord, ScopedInstancesRecordLike, SuperCompatibleRegle, SuperCompatibleRegleCollectionErrors, SuperCompatibleRegleCollectionStatus, SuperCompatibleRegleFieldStatus, SuperCompatibleRegleResult, SuperCompatibleRegleRoot, SuperCompatibleRegleRuleStatus, SuperCompatibleRegleStatus, Unwrap, UnwrapRegleUniversalParams, UnwrapRuleWithParams, UseScopedRegleOptions, createRule, createScopedUseRegle, createVariant, defineRegleConfig, defineRules, extendRegleConfig, flatErrors, inferRules, inferRulesFn, mergeRegles, narrowVariant, refineRules, unwrapRuleParameters, useCollectScope, useCollectScopeFn, useRegle, useRegleFn, useRootStorage, useScopedRegle, variantToRef };
2822
+ export { $InternalRegleStatus, AllRulesDeclarations, CommonAlphaOptions, CommonComparisonOptions, CreateScopedUseRegleOptions, DeepMaybeRef, DeepReactiveState, DefaultValidatorsTree, FormRuleDeclaration, HaveAnyRequiredProps, InferInput, InferRegleRoot, InferRegleRule, InferRegleRules, InferRegleShortcuts, InferRegleStatusType, InferSafeOutput, InlineRuleDeclaration, InternalRuleType, JoinDiscriminatedUnions, LocalRegleBehaviourOptions, Maybe, MaybeInput, MaybeOutput, MaybeReadonly, MaybeVariantStatus, MergedRegles, MergedScopedRegles, NarrowVariant, NoInferLegacy, PrimitiveTypes, Regle, RegleBehaviourOptions, RegleCollectionErrors, RegleCollectionRuleDecl, RegleCollectionRuleDefinition, RegleCollectionStatus, RegleCommonStatus, RegleComputedRules, RegleCustomFieldStatus, RegleEnforceCustomRequiredRules, RegleEnforceRequiredRules, RegleErrorTree, RegleExternalCollectionErrors, RegleExternalErrorTree, RegleExternalSchemaErrorTree, RegleFieldIssue, RegleFieldStatus, RegleFormPropertyType, RegleInternalRuleDefs, ReglePartialRuleTree, RegleResult, RegleRoot, RegleRuleCore, RegleRuleDecl, RegleRuleDefinition, RegleRuleDefinitionProcessor, RegleRuleDefinitionWithMetadataProcessor, RegleRuleInit, RegleRuleMetadataConsumer, RegleRuleMetadataDefinition, RegleRuleMetadataExtended, RegleRuleRaw, RegleRuleStatus, RegleRuleTypeReturn, RegleRuleWithParamsDefinition, RegleShortcutDefinition, RegleSingleField, RegleStatus, RegleUniversalParams, RegleUnknownRulesTree, RegleValidationErrors, RegleValidationGroupEntry, RegleValidationGroupOutput, RegleRuleTree as RegleValidationTree, ResolvedRegleBehaviourOptions, ScopedInstancesRecord, ScopedInstancesRecordLike, SuperCompatibleRegle, SuperCompatibleRegleCollectionErrors, SuperCompatibleRegleCollectionStatus, SuperCompatibleRegleFieldStatus, SuperCompatibleRegleResult, SuperCompatibleRegleRoot, SuperCompatibleRegleRuleStatus, SuperCompatibleRegleStatus, Unwrap, UnwrapRegleUniversalParams, UnwrapRuleWithParams, UseScopedRegleOptions, createRule, createScopedUseRegle, createVariant, defineRegleConfig, defineRules, extendRegleConfig, flatErrors, inferRules, inferRulesFn, mergeRegles, narrowVariant, refineRules, unwrapRuleParameters, useCollectScope, useCollectScopeFn, useRegle, useRegleFn, useRootStorage, useScopedRegle, variantToRef };
@@ -567,15 +567,32 @@ function isFieldStatus(rule) {
567
567
 
568
568
  //#endregion
569
569
  //#region src/core/useRegle/useErrors.ts
570
- function extractRulesErrors({ field, silent = false }) {
571
- return Object.entries(field.$rules ?? {}).map(([_, rule]) => {
572
- if (silent && !rule.$valid) return rule.$message;
573
- else if (!rule.$valid && field.$error && !rule.$validating) return rule.$message;
574
- return null;
575
- }).filter((msg) => !!msg).reduce((acc, value) => {
576
- if (typeof value === "string") return acc?.concat([value]);
577
- else return acc?.concat(value);
578
- }, []).concat(field.$error ? field.$externalErrors ?? [] : []).concat(field.$error ? field.$schemaErrors ?? [] : []);
570
+ function extractRulesIssues({ field, silent = false }) {
571
+ const issues = Object.entries(field.$rules ?? {}).map(([key, rule]) => {
572
+ let message = "";
573
+ if (silent && !rule.$valid) message = rule.$message;
574
+ else if (!rule.$valid && field.$error && !rule.$validating) message = rule.$message;
575
+ else return null;
576
+ const issue = {
577
+ $message: message,
578
+ $property: field.fieldName,
579
+ $rule: key,
580
+ $type: rule.$type
581
+ };
582
+ return issue;
583
+ });
584
+ return issues.filter((msg) => !!msg).reduce((acc, issue) => {
585
+ if (typeof issue.$message === "string") return acc?.concat([issue]);
586
+ else return acc?.concat(issue.$message.map((msg) => ({
587
+ ...issue,
588
+ $message: msg
589
+ })));
590
+ }, []).concat(field.$error ? field.$externalErrors?.map((error) => ({
591
+ $message: error,
592
+ $property: field.fieldName,
593
+ $rule: "external",
594
+ $type: void 0
595
+ })) ?? [] : []).concat(field.$error ? field.$schemaErrors ?? [] : []);
579
596
  }
580
597
  function extractRulesTooltips({ field }) {
581
598
  return Object.entries(field.$rules ?? {}).map(([_, rule]) => rule.$tooltip).filter((tooltip) => !!tooltip).reduce((acc, value) => {
@@ -912,25 +929,33 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, fiel
912
929
  const $error = computed(() => {
913
930
  return $invalid.value && !$pending.value && $dirty.value;
914
931
  });
915
- const $errors = computed(() => {
916
- return extractRulesErrors({ field: {
932
+ const $issues = computed(() => {
933
+ return extractRulesIssues({ field: {
917
934
  $rules: $rules.value,
918
935
  $error: $error.value,
919
936
  $externalErrors: externalErrors?.value,
920
- $schemaErrors: schemaErrors?.value
937
+ $schemaErrors: schemaErrors?.value,
938
+ fieldName
921
939
  } });
922
940
  });
923
- const $silentErrors = computed(() => {
924
- return extractRulesErrors({
941
+ const $silentIssues = computed(() => {
942
+ return extractRulesIssues({
925
943
  field: {
926
944
  $rules: $rules.value,
927
945
  $error: $error.value,
928
946
  $externalErrors: externalErrors?.value,
929
- $schemaErrors: schemaErrors?.value
947
+ $schemaErrors: schemaErrors?.value,
948
+ fieldName
930
949
  },
931
950
  silent: true
932
951
  });
933
952
  });
953
+ const $errors = computed(() => {
954
+ return $issues.value.map((issue) => issue.$message);
955
+ });
956
+ const $silentErrors = computed(() => {
957
+ return $silentIssues.value.map((issue) => issue.$message);
958
+ });
934
959
  const $edited = computed(() => {
935
960
  if ($dirty.value) {
936
961
  if (initialState.value instanceof Date && state.value instanceof Date) return toDate(initialState.value).getDate() !== toDate(state.value).getDate();
@@ -1027,8 +1052,10 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, fiel
1027
1052
  $debounce: $debounce$1,
1028
1053
  $deepCompare,
1029
1054
  $lazy: $lazy$1,
1030
- $errors,
1031
1055
  $ready,
1056
+ $issues,
1057
+ $silentIssues,
1058
+ $errors,
1032
1059
  $silentErrors,
1033
1060
  $rewardEarly: $rewardEarly$1,
1034
1061
  $autoDirty: $autoDirty$1,
@@ -1 +1 @@
1
- import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,isRef as i,markRaw as a,nextTick as o,onMounted as s,onScopeDispose as c,reactive as l,ref as u,shallowRef as d,toRef as f,toValue as p,triggerRef as m,unref as h,version as g,watch as _,watchEffect as v}from"vue";function y(e){return e?.constructor.name==`File`||e?.constructor.name==`FileList`}function b(e,t=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):y(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:typeof e==`object`&&e?Object.keys(e).length===0:!String(e).length}const x=Symbol(`regle-rule`);function S(e){if(typeof e.source.flags==`string`)return e.source.flags;{let t=[];return e.global&&t.push(`g`),e.ignoreCase&&t.push(`i`),e.multiline&&t.push(`m`),e.sticky&&t.push(`y`),e.unicode&&t.push(`u`),t.join(``)}}function C(e){let t=e,n={}.toString.call(e).slice(8,-1);if(n==`Set`&&(t=new Set([...e].map(e=>C(e)))),n==`Map`&&(t=new Map([...e].map(e=>[C(e[0]),C(e[1])]))),n==`Date`&&(t=new Date(e.getTime())),n==`RegExp`&&(t=RegExp(e.source,S(e))),n==`Array`||n==`Object`)for(let n in t=Array.isArray(e)?[]:{},e)t[n]=C(e[n]);return t}function w(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function T(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function E(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e==`object`&&t===`[object Date]`?new Date(e.getTime()):typeof e==`number`||t===`[object Number]`||typeof e==`string`||t===`[object String]`?new Date(e):new Date(NaN)}function D(e,t,n){let r,i=(...i)=>new Promise(a=>{clearTimeout(r),r=setTimeout(()=>{r=void 0,n||Promise.resolve(e.apply(this,[...i])).then(a)},t),n&&!r&&Promise.resolve(e.apply(this,[...i])).then(a)});return i.cancel=()=>{clearTimeout(r),r=void 0},i}function O(e,t,n=!1,r=!0){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(e.constructor!==t.constructor)return!1;var i,a,o;if(Array.isArray(e)&&Array.isArray(t)){if(i=e.length,i!=t.length)return!1;if(r||!r&&n){for(a=i;a--!==0;)if(!O(e[a],t[a],n,!1))return!1}return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(t).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[a]))return!1;for(a=i;a--!==0;){var s=o[a];return!(w(e)&&w(t)&&(r||!r&&n)&&!O(e[s],t[s],n,!1))}return!0}return e!==e&&t!==t}const k={Inline:`__inline`,Async:`__async`};function A(e,t){return e.some(e=>e[t])}function j(e,t){return e.reduce((e,n)=>{let r=n[t]||[];return e.concat(r)},[])}function M(e){try{return e.map(e=>p(e))}catch{return[]}}function N(t){return t.map(t=>t instanceof Function?e(t):i(t)?t:f(()=>t))}function P(e){let t=e.toString(),n=t.replace(/\/\/.*$/gm,``).replace(/\/\*[\s\S]*?\*\//g,``),r=n.match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);if(!r)return 0;let i=r[0]||r[1]||r[2]||r[3]||r[4]||``,a=i.split(`,`).map(e=>e.trim()).filter(e=>e.length>0);return a.length}function F(e,...t){let{validator:n,type:r}=e,i=r===k.Async||n.constructor.name===`AsyncFunction`,o={validator(n,...r){return e.validator(n,...M(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:M(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:M(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:M(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...M(t)),i;return r instanceof Promise?r.then(e=>(i=e,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)):(i=r,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)}},s=a({...o,_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:i,_params:N(t),_brand:x});return s}function I(e){if(typeof e.validator==`function`){let t=[],n=F(e,...t),r=e.async??e.validator.constructor.name===`AsyncFunction`;if(P(e.validator)>1){let t=function(...t){return F(e,...t)};return t.validator=n.validator,t.message=n.message,t.active=n.active,t.tooltip=n.tooltip,t.type=n.type,t.exec=n.exec,t._validator=n.validator,t._message=n.message,t._active=n.active,t._tooltip=n.tooltip,t._type=e.type,t._message_pacthed=!1,t._tooltip_pacthed=!1,t._async=r,t}else return n}throw Error(`[createRule] validator must be a function`)}function L(){let e=d(new Map),t=d(new Map),n=d(new Map),i=d(new Map),a=d(new Map),o=d(new Map);function s(e){let n=t.value.get(e);if(n)return n;{let n=u({});return t.value.set(e,n),n}}function l(e){let t=n.value.get(e);if(t)return t;{let t=u([]);return n.value.set(e,t),t}}function f(e,t,n){o.value.set(`${e}-${t}`,n)}function p(e,t){return o.value.get(`${e}-${t}`)}function m(e,t){e&&t!=null&&o.value.delete(`${e}-${t}`)}function h(e,t){i.value.set(e,t)}function g(e){return i.value.get(e)??!1}function _(t,n){e.value.set(t,n)}function v(t,n){let r=e.value.get(t);if(!r)return;let i=r,a=y(n,i);return a?{valid:!0}:{valid:!1}}function y(e,t){let n=Object.keys(t),r=Object.keys(e);if(r.length!==n.length)return!1;let i=r.every(e=>n.includes(e));return i?r.every(n=>{let r=e[n],i=t[n];return!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`?!1:r._params?r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`)return!0;{let e=M(i._params),n=M(r._params);return e?.[t]===n?.[t]}}):!0}):!1}function b(e){let t=a.value.get(e);if(t)return t;{let t=u(!1),n=u(!0),r=u({}),i=u(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}return r()&&c(()=>{e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),o.value.clear()}),{addRuleDeclEntry:_,setDirtyEntry:h,checkRuleDeclEntry:v,getDirtyState:g,trySetRuleStatusRef:b,getFieldsEntry:s,getCollectionsEntry:l,getArrayStatus:p,addArrayStatus:f,deleteArrayStatus:m,arrayStatusStorage:o}}function R(e){return w(e.value)}function z(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const B={LessThan:-1,EqualTo:0,GreaterThan:1};function V(e,t){let n=String(e).split(`.`),r=String(t).split(`.`);for(let e=0;e<Math.min(n.length,r.length);e++){let t=Number(n[e]),i=Number(r[e]);if(t>i)return B.GreaterThan;if(i>t)return B.LessThan;if(!isNaN(t)&&isNaN(i))return B.GreaterThan;if(isNaN(t)&&!isNaN(i))return B.LessThan}return B.EqualTo}const H=V(g,`3.5.0`)!==-1;function U(){return Math.floor(Math.random()*Date.now()).toString()}function W(){if(typeof window>`u`)return U();{let e=window.crypto.getRandomValues(new Uint32Array(1))[0];return e.toString(10)}}function G(e){return r()?(c(e),!0):!1}function K(e){let n=!1,r,i=t(!0);return(...t)=>(n||(r=i.run(()=>e(...t)),n=!0),r)}function q(e,t){return R(e)||w(t.value)&&!b(t.value)&&!Object.entries(t.value).some(([e,t])=>X(t)||typeof t==`function`)}function J(e,t,n=!1){return!!e.value&&w(e.value)&&`$each`in e.value||n&&Array.isArray(t.value)&&t.value.some(w)||Array.isArray(t.value)&&t.value.some(w)}function Y(e){return!!e.value&&w(e.value)}function X(e){return w(e)&&`_validator`in e}function Z(e){return typeof e.value==`function`?`_validator`in e.value:!0}function ee(e){return w(e)&&`$fields`in e}function te(e){return!!e&&`$rules`in e}function ne({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([n,r])=>t&&!r.$valid||!r.$valid&&e.$error&&!r.$validating?r.$message:null).filter(e=>!!e).reduce((e,t)=>typeof t==`string`?e?.concat([t]):e?.concat(t),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function re({field:e}){return Object.entries(e.$rules??{}).map(([e,t])=>t.$tooltip).filter(e=>!!e).reduce((e,t)=>typeof t==`string`?e?.concat([t]):e?.concat(t),[])}function ie(e){return w(e)&&`$each`in e}function ae(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!w(e)))return e;if(ie(e)){let t=n?e.$self?.map(e=>({error:e,path:``}))??[]:e.$self??[],r=e.$each?.map(e=>oe(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>oe(t,n,[e])).flat()}function oe(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!w(e)))return t?e.map(e=>({error:e,path:r?.join(`.`)??``})):e;if(ie(e)){let n=r?.length?e.$self?.map(e=>({error:e,path:r.join(`.`)}))??[]:e.$self??[],i=e.$each?.map((e,n)=>oe(e,t,r?.concat(n.toString())))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>oe(n,t,r?.concat(e))).flat()}function se({customMessages:n,rule:r,ruleKey:i,state:a,path:o,storage:s,$debounce:c,modifiers:d}){let f=t(),p={},m,h=u(!1),g=u(!1),{$pending:v,$valid:y,$metadata:x,$validating:S}=s.trySetRuleStatusRef(`${o}.${i}`);function C(){f=t(),p=f.run(()=>{let t=u(!1),s=u(!1),c=u(!0),l=u(!1),d=u(!1),f=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:d.value,$invalid:c.value,$rule:{$valid:y.value,$invalid:!y.value,$pending:v.value},$params:C.value,...x.value})),p=e(()=>Z(r)?typeof r.value.active==`function`?r.value.active(f.value):!!r.value.active:!0);function m(e){let t=``,a=n?n[i]?.[e]:void 0;if(a&&(t=typeof a==`function`?a(f.value):a),Z(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](f.value):r.value[e]??``)}return t}let h=e(()=>{let e=m(`message`);return b(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),_=e(()=>Z(r)&&r.value.type?r.value.type:i),S=e(()=>Z(r)?r.value.validator:r.value),C=e(()=>typeof r.value==`function`?[]:M(r.value._params??[])),w=e(()=>`${o}.${_.value}`);return{$active:p,$message:h,$type:_,$validator:S,$params:C,$path:w,$tooltip:g,$fieldCorrect:d,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=_(p?.$params,()=>{(!d.$silent.value||d.$rewardEarly.value&&p.$fieldError.value)&&O()})}C();function w(){y.value=!0,p.$fieldDirty.value&&(v.value=!0)}async function T(){let e=!1;try{let t=p.$validator.value;if(typeof t!=`function`)return console.error(`${o}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let n=t(a.value,...p.$params.value),r=a.value;w();let i;if(i=n instanceof Promise?await n:n,a.value!==r)return!0;if(typeof i==`boolean`)e=i;else{let{$valid:t,...n}=i;e=t,x.value=n}}catch{e=!1}finally{v.value=!1}return e}let E=D(T,c??200);async function O(){try{S.value=!0;let e=!1;if(g.value=!0,X(r.value)&&r.value._async)e=await E();else{let t=p.$validator.value,n=t(a.value,...p.$params.value);if(n instanceof Promise)console.warn(`You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper`);else if(n!=null)if(typeof n==`boolean`)e=n;else{let{$valid:t,...r}=n;e=t,x.value=r}}return y.value=e,e}catch{return!1}finally{S.value=!1,g.value=!1}}function k(){y.value=!0,x.value={},v.value=!1,S.value=!1,C()}function A(){m(),f.stop(),f=t()}return l({...p,$pending:v,$valid:y,$metadata:x,$haveAsync:h,$maybePending:g,$validating:S,$parse:O,$unwatch:A,$watch:C,$reset:k})}function ce({state:n,rulesDef:r,customMessages:i,path:a,fieldName:o,storage:s,options:c,externalErrors:d,schemaErrors:p,schemaMode:m,onUnwatch:g,$isArray:y,initialState:x,shortcuts:S,onValidate:T}){let k=t(),A,j=[],M,N,P,F,I,L=()=>{};function R(){let e=r.value,t=s.checkRuleDeclEntry(a,e);K.value=Object.fromEntries(Object.entries(e).filter(([e])=>e.startsWith(`$`))),V(),G.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>!e.startsWith(`$`)).map(([e,t])=>{if(t){let r=f(()=>t);return[e,se({modifiers:{$silent:A.$silent,$rewardEarly:A.$rewardEarly},customMessages:i,rule:r,ruleKey:e,state:n,path:a,storage:s,$debounce:K.value.$debounce})]}return[]}).filter(e=>!!e.length)),A.processShortcuts(),z(),t?.valid!=null&&(A.$dirty.value=s.getDirtyState(a),(A.$dirty.value&&!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&L()),s.addRuleDeclEntry(a,e)}function z(){L=A.$debounce.value?D(W,A.$debounce.value??A.$haveAnyAsyncRule?100:0):W}function B(){G.value&&Object.entries(G.value).forEach(([e,t])=>{t.$unwatch()}),P(),I?.(),A.$dirty.value&&s.setDirtyEntry(a,A.$dirty.value),M?.(),k.stop(),k=t(),j.forEach(e=>e.stop()),j=[],g?.(),F?.()}function V(){G.value&&Object.entries(G.value).forEach(([e,t])=>{t.$watch()}),A=k.run(()=>{let i=u(!1),a=u(!1),s=e(()=>i.value),f=e(()=>K.value.$debounce),g=e(()=>K.value.$deepCompare==null?!1:K.value.$deepCompare),_=e(()=>K.value.$lazy==null?h(c.lazy)==null?!1:h(c.lazy):K.value.$lazy),y=e(()=>K.value.$rewardEarly==null?h(c.rewardEarly)==null?!1:h(c.rewardEarly):K.value.$rewardEarly),C=e(()=>K.value.$clearExternalErrorsOnChange==null?h(c.clearExternalErrorsOnChange)==null?!w.value:h(c.clearExternalErrorsOnChange):K.value.$clearExternalErrorsOnChange),w=e(()=>y.value?!0:K.value.$silent==null?h(c.silent)==null?!1:h(c.silent):K.value.$silent),T=e(()=>K.value.$autoDirty==null?h(c.autoDirty)==null?!0:h(c.autoDirty):K.value.$autoDirty),D=e(()=>Object.entries(G.value).some(([e,t])=>t.$validating)),k=e({get:()=>n.value,set(e){M(),n.value=e,U()}}),A=e(()=>B.value&&!z.value&&i.value),N=e(()=>ne({field:{$rules:G.value,$error:A.value,$externalErrors:d?.value,$schemaErrors:p?.value}})),P=e(()=>ne({field:{$rules:G.value,$error:A.value,$externalErrors:d?.value,$schemaErrors:p?.value},silent:!0})),F=e(()=>i.value?x.value instanceof Date&&n.value instanceof Date?E(x.value).getDate()!==E(n.value).getDate():x.value==null?!!n.value:Array.isArray(n.value)&&Array.isArray(x.value)?!O(n.value,x.value,K.value.$deepCompare):x.value!==n.value:!1),I=e(()=>F.value),L=e(()=>re({field:{$rules:G.value}})),R=e(()=>(w.value||s.value)&&!(B.value||z.value)),z=e(()=>a.value||!y.value?Object.entries(G.value).some(([e,t])=>t.$pending):!1),B=e(()=>{if(d?.value?.length||p?.value?.length)return!0;if(H.value)return!1;if(!y.value||y.value){let e=Object.entries(G.value).some(([e,t])=>!(t.$valid&&!t.$maybePending));return e}return!1}),V=e(()=>o),H=e(()=>Object.keys(r.value).filter(([e])=>!e.startsWith(`$`)).length===0&&!m),W=e(()=>{if(d?.value?.length||H.value)return!1;if(i.value&&!b(n.value)&&!D.value&&!z.value){if(m)return!p?.value?.length;{let e=Object.values(G.value).some(e=>e.$active);return e?Object.values(G.value).filter(e=>e.$active).every(e=>e.$valid):!1}}return!1}),q=e(()=>Object.entries(G.value).some(([e,t])=>t.$haveAsync));function J(){S?.fields&&Object.entries(S.fields).forEach(([e,r])=>{let a=t();Y[e]=a.run(()=>{let e=u();return v(()=>{e.value=r(l({$dirty:i,$externalErrors:d?.value??[],$value:n,$silentValue:k,$rules:G,$error:A,$pending:z,$invalid:B,$correct:W,$errors:N,$ready:R,$silentErrors:P,$anyDirty:s,$tooltips:L,$name:V,$inactive:H,$edited:F,$anyEdited:I}))}),e}),j.push(a)})}let Y={};return{$error:A,$pending:z,$invalid:B,$correct:W,$debounce:f,$deepCompare:g,$lazy:_,$errors:N,$ready:R,$silentErrors:P,$rewardEarly:y,$autoDirty:T,$silent:w,$clearExternalErrorsOnChange:C,$anyDirty:s,$edited:F,$anyEdited:I,$name:V,$haveAnyAsyncRule:q,$shortcuts:Y,$validating:D,$tooltips:L,$dirty:i,processShortcuts:J,$silentValue:k,$inactive:H}}),U(),P=_(A.$dirty,e=>{s.setDirtyEntry(a,e),Object.values(G.value).forEach(t=>{t.$fieldDirty=e})}),I=_([A.$error,A.$correct,A.$invalid,A.$pending],()=>{Object.values(G.value).forEach(e=>{e.$fieldError=A.$error.value,e.$fieldInvalid=A.$invalid.value,e.$fieldPending=A.$pending.value,e.$fieldCorrect=A.$correct.value})}),F=_(A.$haveAnyAsyncRule,z)}function U(){M=_(n,()=>{A.$autoDirty.value&&!A.$silent.value&&(A.$dirty.value||(A.$dirty.value=!0)),r.value instanceof Function&&R(),(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&L(),A.$clearExternalErrorsOnChange.value&&Z()},{deep:y?!0:H?1:!0})}function W(){Object.values(G.value).forEach(e=>{e.$parse()})}let G=u({}),K=u({});R();function q(e,t){if(Z(),A.$dirty.value=!1,s.setDirtyEntry(a,!1),!t)if(e?.toInitialState)n.value=C(x.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,x.value=C(t),n.value=C(t)}else x.value=w(n.value)?C(n.value):Array.isArray(n.value)?[...n.value]:n.value;e?.clearExternalErrors&&Z(),t||Object.entries(G.value).forEach(([e,t])=>{t.$reset()}),!A.$lazy.value&&!A.$silent.value&&!t&&Object.values(G.value).forEach(e=>e.$parse())}function J(e=!0,t=!1){A.$dirty.value||(A.$dirty.value=!0),t&&e?(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&L():e&&L()}async function Y(){try{if(m)return T?(J(!1),T()):{valid:!1,data:n.value};let e=n.value;if(!A.$dirty.value)A.$dirty.value=!0;else if(!A.$silent.value&&A.$dirty.value&&!A.$pending.value)return{valid:!A.$error.value,data:e};if(m)return{valid:!p?.value?.length,data:e};if(b(G.value))return{valid:!0,data:e};let t=await Promise.allSettled(Object.entries(G.value).map(([e,t])=>t.$parse())),r=t.every(e=>e.status===`fulfilled`?e.value===!0:!1);return{valid:r,data:e}}catch{return{valid:!1,data:n.value}}}function X(e=!0){return A.$dirty.value?n.value:e?{_null:!0}:null}function Z(){d?.value?.length&&(d.value=[])}!A.$lazy.value&&!A.$dirty.value&&!A.$silent.value&&L();let{$shortcuts:ee,$validating:te,$autoDirty:ie,$rewardEarly:ae,$clearExternalErrorsOnChange:oe,$haveAnyAsyncRule:ce,$debounce:le,$lazy:ue,...Q}=A;return l({...Q,$externalErrors:d,$value:n,$rules:G,...ee,$reset:q,$touch:J,$validate:Y,$unwatch:B,$watch:V,$extractDirtyFields:X,$clearExternalErrors:Z})}function le({$id:t,path:n,index:r,options:i,storage:a,stateValue:o,customMessages:s,rules:c,externalErrors:l,schemaErrors:u,initialState:d,shortcuts:p,fieldName:m,schemaMode:h}){let g=c.$key?c.$key:W(),_=`${n}.${String(g)}`;typeof o.value==`object`&&o.value!=null&&(o.value.$id?_=`${n}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:g,enumerable:!1,configurable:!1,writable:!1}}));let v=f(l?.value??[],r),y=e(()=>u?.value?.[r]),b=$({state:o,rulesDef:f(()=>c),customMessages:s,path:_,storage:a,options:i,externalErrors:v,schemaErrors:y,initialState:d,shortcuts:p,fieldName:m,schemaMode:h});if(b){let e=o.value?.$id;b.$id=e??String(g),a.addArrayStatus(t,b.$id,b)}return b}function ue({state:n,rulesDef:r,customMessages:i,path:a,storage:o,options:s,externalErrors:c,schemaErrors:d,schemaMode:p,initialState:m,shortcuts:g,fieldName:y}){let x=t(),S,w=t(),T,E=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let D=u(),O=u(n.value),k=u({}),A,j,M=u({}),N=o.getCollectionsEntry(a);T=w.run(()=>{let t=e(()=>n.value?.length?Array.isArray(n.value)&&n.value.length?n.value.every(e=>typeof e!=`object`):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(e=>X(e)||typeof e==`function`):!1:!1);return{isPrimitiveArray:t}}),P(),L();function P(){k.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(D.value=W(),Object.defineProperties(n.value,{$id:{value:D.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(D.value=n.value.$id)),O.value=M.value.$value,Array.isArray(n.value)&&!T.isPrimitiveArray.value?N.value=n.value.filter(e=>typeof e==`object`).map((t,n)=>{let{scope:l,unwrapped:u}=z(r.value.$each,f(()=>t),n);l&&E.push(l);let h=f(m.value??[],n),_=f(c?.value??{},`$each`),v=e(()=>d?.value?.$each),b=le({$id:D.value,path:a,customMessages:i,rules:u??{},stateValue:f(()=>t),index:n,options:s,storage:o,externalErrors:_,schemaErrors:v,initialState:h,shortcuts:g,fieldName:y,schemaMode:p});return b||null}).filter(e=>!!e):N.value=[],M.value=ce({state:n,rulesDef:r,customMessages:i,path:a,storage:o,options:s,externalErrors:f(c?.value??{},`$self`),schemaErrors:e(()=>d?.value?.$self),$isArray:!0,initialState:m,shortcuts:g,fieldName:y,schemaMode:p})}function F(){if(Array.isArray(n.value)&&!T.isPrimitiveArray.value){let t=C(N.value);N.value=n.value.filter(e=>typeof e==`object`).map((t,n)=>{let l=f(()=>t);if(t.$id&&N.value.find(e=>e.$id===t.$id)){let e=o.getArrayStatus(D.value,t.$id);return e?(e.$value=l,e):null}else{let{scope:t,unwrapped:u}=z(r.value.$each,l,n);t&&E.push(t);let h=f(c?.value??{},`$each`),_=e(()=>d?.value?.$each??[]),v=le({$id:D.value,path:a,customMessages:i,rules:u??{},stateValue:l,index:n,options:s,storage:o,externalErrors:h,schemaErrors:_,initialState:f(m.value??[],n),shortcuts:g,fieldName:y,schemaMode:p});return v||null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{o.deleteArrayStatus(D.value,t.toString())})}else N.value=[]}function I(){A=_(n,()=>{n.value!=null&&!Object.hasOwn(n.value,`$id`)?P():F()},{deep:H?1:!0,flush:`pre`}),j=_(n,()=>{S.$autoDirty.value&&!S.$silent.value&&B(!1,!0)},{flush:`pre`})}function L(){I(),x=t(),S=x.run(()=>{let r=e({get:()=>n.value,set(e){A?.(),j?.(),n.value=e,I()}}),i=e(()=>M.value.$dirty&&(!N.value.length||N.value.every(e=>e.$dirty))),a=e(()=>M.value.$anyDirty||N.value.some(e=>e.$anyDirty)),o=e(()=>M.value.$invalid||N.value.some(e=>e.$invalid)),c=e(()=>(b(M.value.$rules)?!0:M.value.$correct)&&(!N.value.length||N.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),d=e(()=>M.value.$error||N.value.some(e=>e.$error)),f=e(()=>!(o.value||p.value)),p=e(()=>M.value.$pending||N.value.some(e=>e.$pending)),m=e(()=>!!N.value.length&&N.value.every(e=>e.$edited)),_=e(()=>M.value.$anyEdited||N.value.some(e=>e.$anyEdited)),x=e(()=>({$self:M.value.$errors,$each:N.value.map(e=>e.$errors)})),S=e(()=>({$self:M.value.$silentErrors,$each:N.value.map(e=>e.$silentErrors)})),C=e(()=>k.value.$rewardEarly==null?h(s.rewardEarly)==null?!1:h(s.rewardEarly):k.value.$rewardEarly),w=e(()=>C.value?!0:k.value.$silent==null?h(s.silent)==null?!1:h(s.silent):k.value.$silent),T=e(()=>k.value.$autoDirty==null?h(s.autoDirty)==null?!0:h(s.autoDirty):k.value.$autoDirty),D=e(()=>y);function O(){g?.collections&&Object.entries(g?.collections).forEach(([e,s])=>{let h=t();P[e]=h.run(()=>{let e=u();return v(()=>{e.value=s(l({$dirty:i,$error:d,$silentValue:r,$pending:p,$invalid:o,$correct:c,$errors:x,$ready:f,$silentErrors:S,$anyDirty:a,$name:D,$each:N,$self:M,$value:n,$edited:m,$anyEdited:_}))}),e}),E.push(h)})}let P={};return O(),{$dirty:i,$anyDirty:a,$invalid:o,$correct:c,$error:d,$pending:p,$errors:x,$silentErrors:S,$ready:f,$name:D,$shortcuts:P,$silentValue:r,$edited:m,$anyEdited:_,$rewardEarly:C,$silent:w,$autoDirty:T}}),T.isPrimitiveArray.value&&r.value.$each&&console.warn(`${a} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`)}function R(){A?.(),M.value&&M.value.$unwatch(),N.value&&N.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),x.stop(),x=t(),w.stop(),w=t(!0),E.forEach(e=>e.stop()),E=[]}function B(e=!0,t=!1){M.value.$touch(e,t),N.value.forEach(n=>{n.$touch(e,t)})}function V(e,t){if(R(),!t)if(e?.toInitialState)n.value=C(m.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,m.value=C(t),n.value=C(t)}else m.value=C(n.value);e?.clearExternalErrors&&G(),M.value.$reset(e,t),N.value.forEach(t=>{t.$reset(e,!0)}),t||P()}async function U(){let e=n.value;try{let t=await Promise.allSettled([M.value.$validate(),...N.value.map(e=>e.$validate())]),n=t.every(e=>e.status===`fulfilled`?e.value.valid===!0:!1);return{valid:n,data:e}}catch{return{valid:!1,data:e}}}function G(){M.value.$clearExternalErrors(),N.value.forEach(e=>{e.$clearExternalErrors()})}function K(e=!0){let t=N.value.map(t=>{if(ee(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>b(e))&&(t=[]),t}let{$shortcuts:q,...J}=S;return l({$self:M,...J,...q,$each:N,$value:n,$validate:U,$unwatch:R,$watch:L,$touch:B,$reset:V,$extractDirtyFields:K,$clearExternalErrors:G})}function Q({rulesDef:n,state:r,path:i=``,rootRules:a,externalErrors:o,schemaErrors:s,rootSchemaErrors:c,validationGroups:d,initialState:p,fieldName:m,...g}){let y=t(),x,S=[],T=null,E=null,D=null,O=null,k=null;async function M(t=!0){let a=Object.entries(n.value),c=Object.fromEntries(a.filter(([e,t])=>!!t).map(([t,n])=>{if(n){let a=f(r.value??{},t),c=f(()=>n),l=f(o?.value??{},t),u=e(()=>s?.value?.[t]),d=f(p?.value??{},t);return[t,$({state:a,rulesDef:c,path:i?`${i}.${t}`:t,externalErrors:l,schemaErrors:u,initialState:d,fieldName:t,...g})]}return[]})),l=Object.fromEntries(Object.entries(h(o)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=f(r.value??{},t),a=f(o?.value??{},t),c=e(()=>s?.value?.[t]),l=f(p?.value??{},t);return[t,$({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,externalErrors:a,schemaErrors:c,initialState:l,fieldName:t,...g})]})),u=Object.fromEntries(Object.entries(h(s)??{}).map(([t])=>{let n=f(r.value??{},t),a=f(o?.value??{},t),c=e(()=>s?.value?.[t]),l=f(p?.value??{},t);return[t,$({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,externalErrors:a,schemaErrors:c,initialState:l,fieldName:t,...g})]})),d=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(l??{}))&&!(e in(u??{}))).map(([t])=>{let n=f(r.value??{},t),a=f(o?.value??{},t),c=e(()=>s?.value?.[t]),l=f(p?.value??{},t);return[t,$({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,externalErrors:a,schemaErrors:c,initialState:l,fieldName:t,...g})]}));N.value={...c,...l,...u,...d},t&&I()}let N=g.storage.getFieldsEntry(i);M();function P(){o&&(D=_(o,()=>{L(),M()},{deep:!0}))}function F(){O=_(r,()=>{L(),M(),x.$autoDirty.value&&!x.$silent.value&&B(!1,!0)})}function I(){a&&(T?.(),T=_(a,()=>{L(),M()},{deep:!0,flush:`pre`}),P()),c&&(E?.(),E=_(c,()=>{L(),M()},{deep:!0,flush:`post`})),F(),x=y.run(()=>{let n=e({get:()=>r.value,set(e){L(),r.value=e,M(),x.$autoDirty.value&&!x.$silent.value&&B(!1,!0)}}),i=e({get:()=>r.value,set(e){L(),r.value=e,M()}}),a=e(()=>!!Object.entries(N.value).length&&Object.entries(N.value).every(([e,t])=>t?.$dirty)),o=e(()=>Object.entries(N.value).some(([e,t])=>t?.$anyDirty)),s=e(()=>!!Object.entries(N.value).length&&Object.entries(N.value).some(([e,t])=>t?.$invalid)),c=e(()=>{let e=Object.entries(N.value).filter(([e,t])=>te(t)?!t.$inactive:!0);return e.length?e.every(([e,t])=>g.schemaMode?t.$correct:te(t)?`required`in t.$rules&&t.$rules.required.$active?t?.$correct:!t.$invalid&&!t.$pending:t?.$correct):!1}),f=e(()=>!!Object.entries(N.value).length&&Object.entries(N.value).some(([e,t])=>t?.$error)),p=e(()=>h(g.options.rewardEarly)==null?!1:h(g.options.rewardEarly)),_=e(()=>h(g.options.silent)==null?!!p.value:h(g.options.silent)),y=e(()=>h(g.options.autoDirty)==null?!0:h(g.options.autoDirty)),b=e(()=>(_.value||o.value)&&!(s.value||w.value)),C=u(!1),w=e(()=>C.value||Object.entries(N.value).some(([e,t])=>t?.$pending)),T=e(()=>Object.fromEntries(Object.entries(N.value).map(([e,t])=>[e,t?.$errors]))),E=e(()=>Object.fromEntries(Object.entries(N.value).map(([e,t])=>[e,t?.$silentErrors]))),D=e(()=>!!Object.entries(N.value).length&&Object.entries(N.value).every(([e,t])=>t?.$edited)),O=e(()=>Object.entries(N.value).some(([e,t])=>t?.$anyEdited)),k=e(()=>m);function P(){g.shortcuts?.nested&&Object.entries(g.shortcuts.nested).forEach(([e,n])=>{let d=t();I[e]=d.run(()=>{let e=u();return v(()=>{e.value=n(l({$dirty:a,$value:r,$silentValue:i,$error:f,$pending:w,$invalid:s,$correct:c,$ready:b,$anyDirty:o,$name:k,$silentErrors:E,$errors:T,$fields:N,$edited:D,$anyEdited:O}))}),e}),S.push(d)})}let F=e({get:()=>d?Object.fromEntries(Object.entries(d?.(N.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,A(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,j(t,e)]))}]:[])):{},set(){}}),I={};return P(),{$dirty:a,$anyDirty:o,$invalid:s,$correct:c,$error:f,$pending:w,$errors:T,$silentErrors:E,$ready:b,$name:k,$shortcuts:I,$groups:F,$silentValue:i,$edited:D,$anyEdited:O,$localPending:C,$autoDirty:y,$silent:_,$value:n}})}function L(){T?.(),D?.(),O?.(),k?.(),E?.(),S=[],x={},N.value&&Object.entries(N.value).forEach(([e,t])=>{t.$unwatch()})}function R(){Object.entries(N.value).forEach(([e,t])=>{t.$clearExternalErrors()})}function z(e,t){if(D?.(),L(),!t)if(e?.toInitialState)r.value=C({...p.value??{}});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,p.value=C(t),r.value=C(t)}else p.value=C(r.value);Object.values(N.value).forEach(t=>{t.$reset(e,!0)}),e?.clearExternalErrors&&R(),P(),t||M()}function B(e=!0,t=!1){Object.values(N.value).forEach(n=>{n.$touch(e,t)})}function V(e){return e.filter(([e,t])=>w(t)?!(t&&typeof t==`object`&&`_null`in t)&&!b(t):Array.isArray(t)?t.length:!0)}function H(e=!0){let t=Object.entries(N.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=V(t)),Object.fromEntries(t)}async function U(){try{if(g.schemaMode)return g.onValidate?(B(!1),x.$localPending.value=!0,g.onValidate()):{valid:!1,data:r.value};{let e=r.value,t=await Promise.allSettled(Object.values(N.value).map(e=>e.$validate())),n=t.every(e=>e.status===`fulfilled`?e.value.valid===!0:!1);return{valid:n,data:e}}}catch{return{valid:!1,data:r.value}}finally{x.$localPending.value=!1}}let{$shortcuts:W,$localPending:G,...K}=x;return l({...K,...W,$fields:N,$reset:z,$touch:B,$validate:U,$unwatch:L,$watch:I,$clearExternalErrors:R,$extractDirtyFields:H})}function $({rulesDef:e,...n}){if(J(e,n.state,n.schemaMode))return ue({rulesDef:e,...n});if(q(n.state,e)){if(R(n.state))return Q({rulesDef:e,...n});{let r=t(),i=r.run(()=>{let e=f(n.state.value?n.state:u({}));return _(()=>n.state.value,t=>{e.value=t},{deep:!0}),_(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:a,...o}=n;return Q({rulesDef:e,...o,state:i.fakeState})}}else if(Y(e))return ce({rulesDef:e,...n})}function de({initialState:e,options:t,scopeRules:n,state:i,customRules:a,shortcuts:o,schemaErrors:s,schemaMode:d=!1,onValidate:f}){let p=L(),m=u();return q(i,n)?m.value=Q({rootRules:n,rulesDef:n,state:i,customMessages:a?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:`root`,path:``,schemaErrors:s,rootSchemaErrors:s,schemaMode:d,onValidate:f}):Y(n)&&(m.value=ce({rulesDef:n,state:i,customMessages:a?.(),storage:p,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:`root`,path:``,schemaMode:d,schemaErrors:s,onValidate:f})),r()&&c(()=>{m.value?.$unwatch()}),l({regle:m})}function fe(t,n,r){let a={autoDirty:n?.autoDirty,lazy:n?.lazy,rewardEarly:n?.rewardEarly,silent:n?.silent,clearExternalErrorsOnChange:n?.clearExternalErrorsOnChange};function o(n,o,s){let c=i(o)?o:typeof o==`function`?void 0:e(()=>o),l={...a,...s},f=i(n)?n:u(n),p=d(c??{});typeof o==`function`&&v(()=>{p.value=o(f),m(p)});let h=u(w(f.value)?{...C(f.value)}:C(f.value)),g=de({scopeRules:p,state:f,options:l,initialState:h,customRules:t,shortcuts:r});return{r$:g.regle}}return o}const pe=fe();function me(){function e(e,t){return t}return e}const he=me();function ge({rules:e,modifiers:t,shortcuts:n}){let r=fe(e,t,n);r.__config={rules:e,modifiers:t,shortcuts:n};let i=me();return{useRegle:r,inferRules:i}}function _e(e,{rules:t,modifiers:n,shortcuts:r}){let i=e.__config??{},a=()=>({...i.rules?.(),...t?.()}),o=i.modifiers&&n?T(i.modifiers,n):n,s=i.shortcuts&&r?T(i.shortcuts,r):r,c=fe(a,o,s);c.__config={rules:a,modifiers:o,shortcuts:s};let l=me();return{useRegle:c,inferRules:l}}function ve(t,n){let r=n??!1,i=e({get:()=>r?Object.values(t).map(e=>e.$value):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$value])),set:e=>{r||typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$value=n)}}),a=e({get:()=>Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentValue])),set:e=>{typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$silentValue=n)}}),o=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$dirty)}),s=e(()=>Object.entries(t).some(([e,t])=>t?.$anyDirty)),c=e(()=>Object.entries(t).some(([e,t])=>t?.$invalid)),u=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$correct||t.$anyDirty&&!t.$invalid)}),d=e(()=>Object.entries(t).some(([e,t])=>t?.$error)),f=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$ready)}),p=e(()=>Object.entries(t).some(([e,t])=>t?.$pending)),m=e(()=>r?Object.entries(t).map(([e,t])=>t.$errors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$errors]))),h=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentErrors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentErrors]))),g=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),_=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),v=e(()=>r?Object.values(t):t);function y(e){Object.values(t).forEach(t=>{t.$reset(e)})}function b(){Object.values(t).forEach(e=>{e.$touch()})}function x(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function S(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}async function C(){try{let e=i.value,n=await Promise.allSettled(Object.values(t).map(e=>e.$validate())),r=n.every(e=>e.status===`fulfilled`?e.value.valid===!0:!1);return{valid:r,data:e}}catch{return{valid:!1,data:i.value}}}return l({...!r&&{$silentValue:a},$errors:m,$silentErrors:h,$instances:v,$value:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:u,$error:d,$pending:p,$ready:f,$edited:g,$anyEdited:_,$reset:y,$touch:b,$validate:C,$extractDirtyFields:x,$clearExternalErrors:S})}function ye(t,n){function r(r){let i=e(()=>p(r));s();let a=u(c(t.value)),o=l({r$:a});function s(){i.value&&!t.value[i.value]&&(t.value[i.value]={})}_(i,s),_(t,e=>{a.value=c(e)},{deep:!0});function c(e){if(i.value){let t=e[i.value]??{};return ve(t,!n.asRecord)}else return ve(e[`~~global`]??{},!n.asRecord)}return{r$:o.r$}}return{useCollectScope:r}}function be(t,r){let i=r??pe,a=(r,a,o)=>{let{namespace:c,scopeKey:l,...d}=o??{};i.__config??={};let f=e(()=>p(c)),m=u(`${Object.keys(t.value).length+1}-${W()}`),h=e(()=>o?.scopeKey??`instance-${m.value}`),{r$:g}=i(r,a,d);y(),G(v),_(f,(e,t)=>{v(t),y()}),n()&&s(()=>{let e=n();typeof window<`u`&&e?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(e?.proxy?.$el?.parentElement)&&v()});function v(e){let n=e??f.value;n?t.value[n]&&delete t.value[n][h.value]:t.value[`~~global`][h.value]&&delete t.value[`~~global`][h.value]}function y(){f.value?(t.value[f.value]||(t.value[f.value]={}),t.value[f.value][h.value]=g):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][h.value]=g)}return{r$:g,dispose:v,register:y}};return{useScopedRegle:a}}function xe(e){let t=e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):K(()=>{let e=u({"~~global":{}});return e}),n=t(),{useScopedRegle:r}=be(n,e?.customUseRegle),{useCollectScope:i}=ye(n,{asRecord:e?.asRecord});return{useScopedRegle:r,useCollectScope:i}}const{useCollectScope:Se,useScopedRegle:Ce}=xe();function we(t,n,r){let i=e(()=>p(t)[n]),a=e(()=>{let e=r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if(X(t))return h(t._params?.[0])===i.value}});if(e)return e;{let e=r.find(e=>w(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`));return e||{}}});return a}function Te(e,t,n){return w(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function Ee(e,t,n){let r=i(e)?f(e.value,`$fields`):f(e,`$fields`),a=u();return _(r,async()=>{await o(),Te(r.value,t,n)?a.value=r.value:a.value=void 0},{immediate:!0,flush:`pre`}),a}function De(e){return e}function Oe(e,t){return n=>T({...e},t(n))}export{k as InternalRuleType,I as createRule,xe as createScopedUseRegle,we as createVariant,ge as defineRegleConfig,De as defineRules,_e as extendRegleConfig,ae as flatErrors,he as inferRules,ve as mergeRegles,Te as narrowVariant,Oe as refineRules,M as unwrapRuleParameters,Se as useCollectScope,pe as useRegle,de as useRootStorage,Ce as useScopedRegle,Ee as variantToRef};
1
+ import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,isRef as i,markRaw as a,nextTick as o,onMounted as s,onScopeDispose as c,reactive as l,ref as u,shallowRef as d,toRef as f,toValue as p,triggerRef as m,unref as h,version as g,watch as _,watchEffect as v}from"vue";function y(e){return e?.constructor.name==`File`||e?.constructor.name==`FileList`}function b(e,t=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):y(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:typeof e==`object`&&e?Object.keys(e).length===0:!String(e).length}const x=Symbol(`regle-rule`);function S(e){if(typeof e.source.flags==`string`)return e.source.flags;{let t=[];return e.global&&t.push(`g`),e.ignoreCase&&t.push(`i`),e.multiline&&t.push(`m`),e.sticky&&t.push(`y`),e.unicode&&t.push(`u`),t.join(``)}}function C(e){let t=e,n={}.toString.call(e).slice(8,-1);if(n==`Set`&&(t=new Set([...e].map(e=>C(e)))),n==`Map`&&(t=new Map([...e].map(e=>[C(e[0]),C(e[1])]))),n==`Date`&&(t=new Date(e.getTime())),n==`RegExp`&&(t=RegExp(e.source,S(e))),n==`Array`||n==`Object`)for(let n in t=Array.isArray(e)?[]:{},e)t[n]=C(e[n]);return t}function w(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function T(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function E(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e==`object`&&t===`[object Date]`?new Date(e.getTime()):typeof e==`number`||t===`[object Number]`||typeof e==`string`||t===`[object String]`?new Date(e):new Date(NaN)}function D(e,t,n){let r,i=(...i)=>new Promise(a=>{clearTimeout(r),r=setTimeout(()=>{r=void 0,n||Promise.resolve(e.apply(this,[...i])).then(a)},t),n&&!r&&Promise.resolve(e.apply(this,[...i])).then(a)});return i.cancel=()=>{clearTimeout(r),r=void 0},i}function O(e,t,n=!1,r=!0){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(e.constructor!==t.constructor)return!1;var i,a,o;if(Array.isArray(e)&&Array.isArray(t)){if(i=e.length,i!=t.length)return!1;if(r||!r&&n){for(a=i;a--!==0;)if(!O(e[a],t[a],n,!1))return!1}return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(t).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[a]))return!1;for(a=i;a--!==0;){var s=o[a];return!(w(e)&&w(t)&&(r||!r&&n)&&!O(e[s],t[s],n,!1))}return!0}return e!==e&&t!==t}const k={Inline:`__inline`,Async:`__async`};function A(e,t){return e.some(e=>e[t])}function j(e,t){return e.reduce((e,n)=>{let r=n[t]||[];return e.concat(r)},[])}function M(e){try{return e.map(e=>p(e))}catch{return[]}}function N(t){return t.map(t=>t instanceof Function?e(t):i(t)?t:f(()=>t))}function P(e){let t=e.toString(),n=t.replace(/\/\/.*$/gm,``).replace(/\/\*[\s\S]*?\*\//g,``),r=n.match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);if(!r)return 0;let i=r[0]||r[1]||r[2]||r[3]||r[4]||``,a=i.split(`,`).map(e=>e.trim()).filter(e=>e.length>0);return a.length}function F(e,...t){let{validator:n,type:r}=e,i=r===k.Async||n.constructor.name===`AsyncFunction`,o={validator(n,...r){return e.validator(n,...M(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:M(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:M(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:M(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...M(t)),i;return r instanceof Promise?r.then(e=>(i=e,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)):(i=r,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)}},s=a({...o,_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:i,_params:N(t),_brand:x});return s}function I(e){if(typeof e.validator==`function`){let t=[],n=F(e,...t),r=e.async??e.validator.constructor.name===`AsyncFunction`;if(P(e.validator)>1){let t=function(...t){return F(e,...t)};return t.validator=n.validator,t.message=n.message,t.active=n.active,t.tooltip=n.tooltip,t.type=n.type,t.exec=n.exec,t._validator=n.validator,t._message=n.message,t._active=n.active,t._tooltip=n.tooltip,t._type=e.type,t._message_pacthed=!1,t._tooltip_pacthed=!1,t._async=r,t}else return n}throw Error(`[createRule] validator must be a function`)}function L(){let e=d(new Map),t=d(new Map),n=d(new Map),i=d(new Map),a=d(new Map),o=d(new Map);function s(e){let n=t.value.get(e);if(n)return n;{let n=u({});return t.value.set(e,n),n}}function l(e){let t=n.value.get(e);if(t)return t;{let t=u([]);return n.value.set(e,t),t}}function f(e,t,n){o.value.set(`${e}-${t}`,n)}function p(e,t){return o.value.get(`${e}-${t}`)}function m(e,t){e&&t!=null&&o.value.delete(`${e}-${t}`)}function h(e,t){i.value.set(e,t)}function g(e){return i.value.get(e)??!1}function _(t,n){e.value.set(t,n)}function v(t,n){let r=e.value.get(t);if(!r)return;let i=r,a=y(n,i);return a?{valid:!0}:{valid:!1}}function y(e,t){let n=Object.keys(t),r=Object.keys(e);if(r.length!==n.length)return!1;let i=r.every(e=>n.includes(e));return i?r.every(n=>{let r=e[n],i=t[n];return!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`?!1:r._params?r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`)return!0;{let e=M(i._params),n=M(r._params);return e?.[t]===n?.[t]}}):!0}):!1}function b(e){let t=a.value.get(e);if(t)return t;{let t=u(!1),n=u(!0),r=u({}),i=u(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}return r()&&c(()=>{e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),o.value.clear()}),{addRuleDeclEntry:_,setDirtyEntry:h,checkRuleDeclEntry:v,getDirtyState:g,trySetRuleStatusRef:b,getFieldsEntry:s,getCollectionsEntry:l,getArrayStatus:p,addArrayStatus:f,deleteArrayStatus:m,arrayStatusStorage:o}}function R(e){return w(e.value)}function z(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const B={LessThan:-1,EqualTo:0,GreaterThan:1};function V(e,t){let n=String(e).split(`.`),r=String(t).split(`.`);for(let e=0;e<Math.min(n.length,r.length);e++){let t=Number(n[e]),i=Number(r[e]);if(t>i)return B.GreaterThan;if(i>t)return B.LessThan;if(!isNaN(t)&&isNaN(i))return B.GreaterThan;if(isNaN(t)&&!isNaN(i))return B.LessThan}return B.EqualTo}const H=V(g,`3.5.0`)!==-1;function U(){return Math.floor(Math.random()*Date.now()).toString()}function W(){if(typeof window>`u`)return U();{let e=window.crypto.getRandomValues(new Uint32Array(1))[0];return e.toString(10)}}function G(e){return r()?(c(e),!0):!1}function K(e){let n=!1,r,i=t(!0);return(...t)=>(n||(r=i.run(()=>e(...t)),n=!0),r)}function q(e,t){return R(e)||w(t.value)&&!b(t.value)&&!Object.entries(t.value).some(([e,t])=>X(t)||typeof t==`function`)}function J(e,t,n=!1){return!!e.value&&w(e.value)&&`$each`in e.value||n&&Array.isArray(t.value)&&t.value.some(w)||Array.isArray(t.value)&&t.value.some(w)}function Y(e){return!!e.value&&w(e.value)}function X(e){return w(e)&&`_validator`in e}function Z(e){return typeof e.value==`function`?`_validator`in e.value:!0}function ee(e){return w(e)&&`$fields`in e}function te(e){return!!e&&`$rules`in e}function ne({field:e,silent:t=!1}){let n=Object.entries(e.$rules??{}).map(([n,r])=>{let i=``;if(t&&!r.$valid)i=r.$message;else if(!r.$valid&&e.$error&&!r.$validating)i=r.$message;else return null;let a={$message:i,$property:e.fieldName,$rule:n,$type:r.$type};return a});return n.filter(e=>!!e).reduce((e,t)=>typeof t.$message==`string`?e?.concat([t]):e?.concat(t.$message.map(e=>({...t,$message:e}))),[]).concat(e.$error?e.$externalErrors?.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0}))??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function re({field:e}){return Object.entries(e.$rules??{}).map(([e,t])=>t.$tooltip).filter(e=>!!e).reduce((e,t)=>typeof t==`string`?e?.concat([t]):e?.concat(t),[])}function ie(e){return w(e)&&`$each`in e}function ae(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!w(e)))return e;if(ie(e)){let t=n?e.$self?.map(e=>({error:e,path:``}))??[]:e.$self??[],r=e.$each?.map(e=>Q(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>Q(t,n,[e])).flat()}function Q(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!w(e)))return t?e.map(e=>({error:e,path:r?.join(`.`)??``})):e;if(ie(e)){let n=r?.length?e.$self?.map(e=>({error:e,path:r.join(`.`)}))??[]:e.$self??[],i=e.$each?.map((e,n)=>Q(e,t,r?.concat(n.toString())))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>Q(n,t,r?.concat(e))).flat()}function oe({customMessages:n,rule:r,ruleKey:i,state:a,path:o,storage:s,$debounce:c,modifiers:d}){let f=t(),p={},m,h=u(!1),g=u(!1),{$pending:v,$valid:y,$metadata:x,$validating:S}=s.trySetRuleStatusRef(`${o}.${i}`);function C(){f=t(),p=f.run(()=>{let t=u(!1),s=u(!1),c=u(!0),l=u(!1),d=u(!1),f=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:d.value,$invalid:c.value,$rule:{$valid:y.value,$invalid:!y.value,$pending:v.value},$params:C.value,...x.value})),p=e(()=>Z(r)?typeof r.value.active==`function`?r.value.active(f.value):!!r.value.active:!0);function m(e){let t=``,a=n?n[i]?.[e]:void 0;if(a&&(t=typeof a==`function`?a(f.value):a),Z(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](f.value):r.value[e]??``)}return t}let h=e(()=>{let e=m(`message`);return b(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),_=e(()=>Z(r)&&r.value.type?r.value.type:i),S=e(()=>Z(r)?r.value.validator:r.value),C=e(()=>typeof r.value==`function`?[]:M(r.value._params??[])),w=e(()=>`${o}.${_.value}`);return{$active:p,$message:h,$type:_,$validator:S,$params:C,$path:w,$tooltip:g,$fieldCorrect:d,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=_(p?.$params,()=>{(!d.$silent.value||d.$rewardEarly.value&&p.$fieldError.value)&&O()})}C();function w(){y.value=!0,p.$fieldDirty.value&&(v.value=!0)}async function T(){let e=!1;try{let t=p.$validator.value;if(typeof t!=`function`)return console.error(`${o}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let n=t(a.value,...p.$params.value),r=a.value;w();let i;if(i=n instanceof Promise?await n:n,a.value!==r)return!0;if(typeof i==`boolean`)e=i;else{let{$valid:t,...n}=i;e=t,x.value=n}}catch{e=!1}finally{v.value=!1}return e}let E=D(T,c??200);async function O(){try{S.value=!0;let e=!1;if(g.value=!0,X(r.value)&&r.value._async)e=await E();else{let t=p.$validator.value,n=t(a.value,...p.$params.value);if(n instanceof Promise)console.warn(`You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper`);else if(n!=null)if(typeof n==`boolean`)e=n;else{let{$valid:t,...r}=n;e=t,x.value=r}}return y.value=e,e}catch{return!1}finally{S.value=!1,g.value=!1}}function k(){y.value=!0,x.value={},v.value=!1,S.value=!1,C()}function A(){m(),f.stop(),f=t()}return l({...p,$pending:v,$valid:y,$metadata:x,$haveAsync:h,$maybePending:g,$validating:S,$parse:O,$unwatch:A,$watch:C,$reset:k})}function se({state:n,rulesDef:r,customMessages:i,path:a,fieldName:o,storage:s,options:c,externalErrors:d,schemaErrors:p,schemaMode:m,onUnwatch:g,$isArray:y,initialState:x,shortcuts:S,onValidate:T}){let k=t(),A,j=[],M,N,P,F,I,L=()=>{};function R(){let e=r.value,t=s.checkRuleDeclEntry(a,e);K.value=Object.fromEntries(Object.entries(e).filter(([e])=>e.startsWith(`$`))),V(),G.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>!e.startsWith(`$`)).map(([e,t])=>{if(t){let r=f(()=>t);return[e,oe({modifiers:{$silent:A.$silent,$rewardEarly:A.$rewardEarly},customMessages:i,rule:r,ruleKey:e,state:n,path:a,storage:s,$debounce:K.value.$debounce})]}return[]}).filter(e=>!!e.length)),A.processShortcuts(),z(),t?.valid!=null&&(A.$dirty.value=s.getDirtyState(a),(A.$dirty.value&&!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&L()),s.addRuleDeclEntry(a,e)}function z(){L=A.$debounce.value?D(W,A.$debounce.value??A.$haveAnyAsyncRule?100:0):W}function B(){G.value&&Object.entries(G.value).forEach(([e,t])=>{t.$unwatch()}),P(),I?.(),A.$dirty.value&&s.setDirtyEntry(a,A.$dirty.value),M?.(),k.stop(),k=t(),j.forEach(e=>e.stop()),j=[],g?.(),F?.()}function V(){G.value&&Object.entries(G.value).forEach(([e,t])=>{t.$watch()}),A=k.run(()=>{let i=u(!1),a=u(!1),s=e(()=>i.value),f=e(()=>K.value.$debounce),g=e(()=>K.value.$deepCompare==null?!1:K.value.$deepCompare),_=e(()=>K.value.$lazy==null?h(c.lazy)==null?!1:h(c.lazy):K.value.$lazy),y=e(()=>K.value.$rewardEarly==null?h(c.rewardEarly)==null?!1:h(c.rewardEarly):K.value.$rewardEarly),C=e(()=>K.value.$clearExternalErrorsOnChange==null?h(c.clearExternalErrorsOnChange)==null?!w.value:h(c.clearExternalErrorsOnChange):K.value.$clearExternalErrorsOnChange),w=e(()=>y.value?!0:K.value.$silent==null?h(c.silent)==null?!1:h(c.silent):K.value.$silent),T=e(()=>K.value.$autoDirty==null?h(c.autoDirty)==null?!0:h(c.autoDirty):K.value.$autoDirty),D=e(()=>Object.entries(G.value).some(([e,t])=>t.$validating)),k=e({get:()=>n.value,set(e){M(),n.value=e,U()}}),A=e(()=>H.value&&!V.value&&i.value),N=e(()=>ne({field:{$rules:G.value,$error:A.value,$externalErrors:d?.value,$schemaErrors:p?.value,fieldName:o}})),P=e(()=>ne({field:{$rules:G.value,$error:A.value,$externalErrors:d?.value,$schemaErrors:p?.value,fieldName:o},silent:!0})),F=e(()=>N.value.map(e=>e.$message)),I=e(()=>P.value.map(e=>e.$message)),L=e(()=>i.value?x.value instanceof Date&&n.value instanceof Date?E(x.value).getDate()!==E(n.value).getDate():x.value==null?!!n.value:Array.isArray(n.value)&&Array.isArray(x.value)?!O(n.value,x.value,K.value.$deepCompare):x.value!==n.value:!1),R=e(()=>L.value),z=e(()=>re({field:{$rules:G.value}})),B=e(()=>(w.value||s.value)&&!(H.value||V.value)),V=e(()=>a.value||!y.value?Object.entries(G.value).some(([e,t])=>t.$pending):!1),H=e(()=>{if(d?.value?.length||p?.value?.length)return!0;if(q.value)return!1;if(!y.value||y.value){let e=Object.entries(G.value).some(([e,t])=>!(t.$valid&&!t.$maybePending));return e}return!1}),W=e(()=>o),q=e(()=>Object.keys(r.value).filter(([e])=>!e.startsWith(`$`)).length===0&&!m),J=e(()=>{if(d?.value?.length||q.value)return!1;if(i.value&&!b(n.value)&&!D.value&&!V.value){if(m)return!p?.value?.length;{let e=Object.values(G.value).some(e=>e.$active);return e?Object.values(G.value).filter(e=>e.$active).every(e=>e.$valid):!1}}return!1}),Y=e(()=>Object.entries(G.value).some(([e,t])=>t.$haveAsync));function X(){S?.fields&&Object.entries(S.fields).forEach(([e,r])=>{let a=t();Z[e]=a.run(()=>{let e=u();return v(()=>{e.value=r(l({$dirty:i,$externalErrors:d?.value??[],$value:n,$silentValue:k,$rules:G,$error:A,$pending:V,$invalid:H,$correct:J,$errors:F,$ready:B,$silentErrors:I,$anyDirty:s,$tooltips:z,$name:W,$inactive:q,$edited:L,$anyEdited:R}))}),e}),j.push(a)})}let Z={};return{$error:A,$pending:V,$invalid:H,$correct:J,$debounce:f,$deepCompare:g,$lazy:_,$ready:B,$issues:N,$silentIssues:P,$errors:F,$silentErrors:I,$rewardEarly:y,$autoDirty:T,$silent:w,$clearExternalErrorsOnChange:C,$anyDirty:s,$edited:L,$anyEdited:R,$name:W,$haveAnyAsyncRule:Y,$shortcuts:Z,$validating:D,$tooltips:z,$dirty:i,processShortcuts:X,$silentValue:k,$inactive:q}}),U(),P=_(A.$dirty,e=>{s.setDirtyEntry(a,e),Object.values(G.value).forEach(t=>{t.$fieldDirty=e})}),I=_([A.$error,A.$correct,A.$invalid,A.$pending],()=>{Object.values(G.value).forEach(e=>{e.$fieldError=A.$error.value,e.$fieldInvalid=A.$invalid.value,e.$fieldPending=A.$pending.value,e.$fieldCorrect=A.$correct.value})}),F=_(A.$haveAnyAsyncRule,z)}function U(){M=_(n,()=>{A.$autoDirty.value&&!A.$silent.value&&(A.$dirty.value||(A.$dirty.value=!0)),r.value instanceof Function&&R(),(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&L(),A.$clearExternalErrorsOnChange.value&&Z()},{deep:y?!0:H?1:!0})}function W(){Object.values(G.value).forEach(e=>{e.$parse()})}let G=u({}),K=u({});R();function q(e,t){if(Z(),A.$dirty.value=!1,s.setDirtyEntry(a,!1),!t)if(e?.toInitialState)n.value=C(x.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,x.value=C(t),n.value=C(t)}else x.value=w(n.value)?C(n.value):Array.isArray(n.value)?[...n.value]:n.value;e?.clearExternalErrors&&Z(),t||Object.entries(G.value).forEach(([e,t])=>{t.$reset()}),!A.$lazy.value&&!A.$silent.value&&!t&&Object.values(G.value).forEach(e=>e.$parse())}function J(e=!0,t=!1){A.$dirty.value||(A.$dirty.value=!0),t&&e?(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&L():e&&L()}async function Y(){try{if(m)return T?(J(!1),T()):{valid:!1,data:n.value};let e=n.value;if(!A.$dirty.value)A.$dirty.value=!0;else if(!A.$silent.value&&A.$dirty.value&&!A.$pending.value)return{valid:!A.$error.value,data:e};if(m)return{valid:!p?.value?.length,data:e};if(b(G.value))return{valid:!0,data:e};let t=await Promise.allSettled(Object.entries(G.value).map(([e,t])=>t.$parse())),r=t.every(e=>e.status===`fulfilled`?e.value===!0:!1);return{valid:r,data:e}}catch{return{valid:!1,data:n.value}}}function X(e=!0){return A.$dirty.value?n.value:e?{_null:!0}:null}function Z(){d?.value?.length&&(d.value=[])}!A.$lazy.value&&!A.$dirty.value&&!A.$silent.value&&L();let{$shortcuts:ee,$validating:te,$autoDirty:ie,$rewardEarly:ae,$clearExternalErrorsOnChange:Q,$haveAnyAsyncRule:se,$debounce:ce,$lazy:le,...ue}=A;return l({...ue,$externalErrors:d,$value:n,$rules:G,...ee,$reset:q,$touch:J,$validate:Y,$unwatch:B,$watch:V,$extractDirtyFields:X,$clearExternalErrors:Z})}function ce({$id:t,path:n,index:r,options:i,storage:a,stateValue:o,customMessages:s,rules:c,externalErrors:l,schemaErrors:u,initialState:d,shortcuts:p,fieldName:m,schemaMode:h}){let g=c.$key?c.$key:W(),_=`${n}.${String(g)}`;typeof o.value==`object`&&o.value!=null&&(o.value.$id?_=`${n}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:g,enumerable:!1,configurable:!1,writable:!1}}));let v=f(l?.value??[],r),y=e(()=>u?.value?.[r]),b=$({state:o,rulesDef:f(()=>c),customMessages:s,path:_,storage:a,options:i,externalErrors:v,schemaErrors:y,initialState:d,shortcuts:p,fieldName:m,schemaMode:h});if(b){let e=o.value?.$id;b.$id=e??String(g),a.addArrayStatus(t,b.$id,b)}return b}function le({state:n,rulesDef:r,customMessages:i,path:a,storage:o,options:s,externalErrors:c,schemaErrors:d,schemaMode:p,initialState:m,shortcuts:g,fieldName:y}){let x=t(),S,w=t(),T,E=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let D=u(),O=u(n.value),k=u({}),A,j,M=u({}),N=o.getCollectionsEntry(a);T=w.run(()=>{let t=e(()=>n.value?.length?Array.isArray(n.value)&&n.value.length?n.value.every(e=>typeof e!=`object`):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(e=>X(e)||typeof e==`function`):!1:!1);return{isPrimitiveArray:t}}),P(),L();function P(){k.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(D.value=W(),Object.defineProperties(n.value,{$id:{value:D.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(D.value=n.value.$id)),O.value=M.value.$value,Array.isArray(n.value)&&!T.isPrimitiveArray.value?N.value=n.value.filter(e=>typeof e==`object`).map((t,n)=>{let{scope:l,unwrapped:u}=z(r.value.$each,f(()=>t),n);l&&E.push(l);let h=f(m.value??[],n),_=f(c?.value??{},`$each`),v=e(()=>d?.value?.$each),b=ce({$id:D.value,path:a,customMessages:i,rules:u??{},stateValue:f(()=>t),index:n,options:s,storage:o,externalErrors:_,schemaErrors:v,initialState:h,shortcuts:g,fieldName:y,schemaMode:p});return b||null}).filter(e=>!!e):N.value=[],M.value=se({state:n,rulesDef:r,customMessages:i,path:a,storage:o,options:s,externalErrors:f(c?.value??{},`$self`),schemaErrors:e(()=>d?.value?.$self),$isArray:!0,initialState:m,shortcuts:g,fieldName:y,schemaMode:p})}function F(){if(Array.isArray(n.value)&&!T.isPrimitiveArray.value){let t=C(N.value);N.value=n.value.filter(e=>typeof e==`object`).map((t,n)=>{let l=f(()=>t);if(t.$id&&N.value.find(e=>e.$id===t.$id)){let e=o.getArrayStatus(D.value,t.$id);return e?(e.$value=l,e):null}else{let{scope:t,unwrapped:u}=z(r.value.$each,l,n);t&&E.push(t);let h=f(c?.value??{},`$each`),_=e(()=>d?.value?.$each??[]),v=ce({$id:D.value,path:a,customMessages:i,rules:u??{},stateValue:l,index:n,options:s,storage:o,externalErrors:h,schemaErrors:_,initialState:f(m.value??[],n),shortcuts:g,fieldName:y,schemaMode:p});return v||null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{o.deleteArrayStatus(D.value,t.toString())})}else N.value=[]}function I(){A=_(n,()=>{n.value!=null&&!Object.hasOwn(n.value,`$id`)?P():F()},{deep:H?1:!0,flush:`pre`}),j=_(n,()=>{S.$autoDirty.value&&!S.$silent.value&&B(!1,!0)},{flush:`pre`})}function L(){I(),x=t(),S=x.run(()=>{let r=e({get:()=>n.value,set(e){A?.(),j?.(),n.value=e,I()}}),i=e(()=>M.value.$dirty&&(!N.value.length||N.value.every(e=>e.$dirty))),a=e(()=>M.value.$anyDirty||N.value.some(e=>e.$anyDirty)),o=e(()=>M.value.$invalid||N.value.some(e=>e.$invalid)),c=e(()=>(b(M.value.$rules)?!0:M.value.$correct)&&(!N.value.length||N.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),d=e(()=>M.value.$error||N.value.some(e=>e.$error)),f=e(()=>!(o.value||p.value)),p=e(()=>M.value.$pending||N.value.some(e=>e.$pending)),m=e(()=>!!N.value.length&&N.value.every(e=>e.$edited)),_=e(()=>M.value.$anyEdited||N.value.some(e=>e.$anyEdited)),x=e(()=>({$self:M.value.$errors,$each:N.value.map(e=>e.$errors)})),S=e(()=>({$self:M.value.$silentErrors,$each:N.value.map(e=>e.$silentErrors)})),C=e(()=>k.value.$rewardEarly==null?h(s.rewardEarly)==null?!1:h(s.rewardEarly):k.value.$rewardEarly),w=e(()=>C.value?!0:k.value.$silent==null?h(s.silent)==null?!1:h(s.silent):k.value.$silent),T=e(()=>k.value.$autoDirty==null?h(s.autoDirty)==null?!0:h(s.autoDirty):k.value.$autoDirty),D=e(()=>y);function O(){g?.collections&&Object.entries(g?.collections).forEach(([e,s])=>{let h=t();P[e]=h.run(()=>{let e=u();return v(()=>{e.value=s(l({$dirty:i,$error:d,$silentValue:r,$pending:p,$invalid:o,$correct:c,$errors:x,$ready:f,$silentErrors:S,$anyDirty:a,$name:D,$each:N,$self:M,$value:n,$edited:m,$anyEdited:_}))}),e}),E.push(h)})}let P={};return O(),{$dirty:i,$anyDirty:a,$invalid:o,$correct:c,$error:d,$pending:p,$errors:x,$silentErrors:S,$ready:f,$name:D,$shortcuts:P,$silentValue:r,$edited:m,$anyEdited:_,$rewardEarly:C,$silent:w,$autoDirty:T}}),T.isPrimitiveArray.value&&r.value.$each&&console.warn(`${a} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`)}function R(){A?.(),M.value&&M.value.$unwatch(),N.value&&N.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),x.stop(),x=t(),w.stop(),w=t(!0),E.forEach(e=>e.stop()),E=[]}function B(e=!0,t=!1){M.value.$touch(e,t),N.value.forEach(n=>{n.$touch(e,t)})}function V(e,t){if(R(),!t)if(e?.toInitialState)n.value=C(m.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,m.value=C(t),n.value=C(t)}else m.value=C(n.value);e?.clearExternalErrors&&G(),M.value.$reset(e,t),N.value.forEach(t=>{t.$reset(e,!0)}),t||P()}async function U(){let e=n.value;try{let t=await Promise.allSettled([M.value.$validate(),...N.value.map(e=>e.$validate())]),n=t.every(e=>e.status===`fulfilled`?e.value.valid===!0:!1);return{valid:n,data:e}}catch{return{valid:!1,data:e}}}function G(){M.value.$clearExternalErrors(),N.value.forEach(e=>{e.$clearExternalErrors()})}function K(e=!0){let t=N.value.map(t=>{if(ee(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>b(e))&&(t=[]),t}let{$shortcuts:q,...J}=S;return l({$self:M,...J,...q,$each:N,$value:n,$validate:U,$unwatch:R,$watch:L,$touch:B,$reset:V,$extractDirtyFields:K,$clearExternalErrors:G})}function ue({rulesDef:n,state:r,path:i=``,rootRules:a,externalErrors:o,schemaErrors:s,rootSchemaErrors:c,validationGroups:d,initialState:p,fieldName:m,...g}){let y=t(),x,S=[],T=null,E=null,D=null,O=null,k=null;async function M(t=!0){let a=Object.entries(n.value),c=Object.fromEntries(a.filter(([e,t])=>!!t).map(([t,n])=>{if(n){let a=f(r.value??{},t),c=f(()=>n),l=f(o?.value??{},t),u=e(()=>s?.value?.[t]),d=f(p?.value??{},t);return[t,$({state:a,rulesDef:c,path:i?`${i}.${t}`:t,externalErrors:l,schemaErrors:u,initialState:d,fieldName:t,...g})]}return[]})),l=Object.fromEntries(Object.entries(h(o)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=f(r.value??{},t),a=f(o?.value??{},t),c=e(()=>s?.value?.[t]),l=f(p?.value??{},t);return[t,$({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,externalErrors:a,schemaErrors:c,initialState:l,fieldName:t,...g})]})),u=Object.fromEntries(Object.entries(h(s)??{}).map(([t])=>{let n=f(r.value??{},t),a=f(o?.value??{},t),c=e(()=>s?.value?.[t]),l=f(p?.value??{},t);return[t,$({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,externalErrors:a,schemaErrors:c,initialState:l,fieldName:t,...g})]})),d=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(l??{}))&&!(e in(u??{}))).map(([t])=>{let n=f(r.value??{},t),a=f(o?.value??{},t),c=e(()=>s?.value?.[t]),l=f(p?.value??{},t);return[t,$({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,externalErrors:a,schemaErrors:c,initialState:l,fieldName:t,...g})]}));N.value={...c,...l,...u,...d},t&&I()}let N=g.storage.getFieldsEntry(i);M();function P(){o&&(D=_(o,()=>{L(),M()},{deep:!0}))}function F(){O=_(r,()=>{L(),M(),x.$autoDirty.value&&!x.$silent.value&&B(!1,!0)})}function I(){a&&(T?.(),T=_(a,()=>{L(),M()},{deep:!0,flush:`pre`}),P()),c&&(E?.(),E=_(c,()=>{L(),M()},{deep:!0,flush:`post`})),F(),x=y.run(()=>{let n=e({get:()=>r.value,set(e){L(),r.value=e,M(),x.$autoDirty.value&&!x.$silent.value&&B(!1,!0)}}),i=e({get:()=>r.value,set(e){L(),r.value=e,M()}}),a=e(()=>!!Object.entries(N.value).length&&Object.entries(N.value).every(([e,t])=>t?.$dirty)),o=e(()=>Object.entries(N.value).some(([e,t])=>t?.$anyDirty)),s=e(()=>!!Object.entries(N.value).length&&Object.entries(N.value).some(([e,t])=>t?.$invalid)),c=e(()=>{let e=Object.entries(N.value).filter(([e,t])=>te(t)?!t.$inactive:!0);return e.length?e.every(([e,t])=>g.schemaMode?t.$correct:te(t)?`required`in t.$rules&&t.$rules.required.$active?t?.$correct:!t.$invalid&&!t.$pending:t?.$correct):!1}),f=e(()=>!!Object.entries(N.value).length&&Object.entries(N.value).some(([e,t])=>t?.$error)),p=e(()=>h(g.options.rewardEarly)==null?!1:h(g.options.rewardEarly)),_=e(()=>h(g.options.silent)==null?!!p.value:h(g.options.silent)),y=e(()=>h(g.options.autoDirty)==null?!0:h(g.options.autoDirty)),b=e(()=>(_.value||o.value)&&!(s.value||w.value)),C=u(!1),w=e(()=>C.value||Object.entries(N.value).some(([e,t])=>t?.$pending)),T=e(()=>Object.fromEntries(Object.entries(N.value).map(([e,t])=>[e,t?.$errors]))),E=e(()=>Object.fromEntries(Object.entries(N.value).map(([e,t])=>[e,t?.$silentErrors]))),D=e(()=>!!Object.entries(N.value).length&&Object.entries(N.value).every(([e,t])=>t?.$edited)),O=e(()=>Object.entries(N.value).some(([e,t])=>t?.$anyEdited)),k=e(()=>m);function P(){g.shortcuts?.nested&&Object.entries(g.shortcuts.nested).forEach(([e,n])=>{let d=t();I[e]=d.run(()=>{let e=u();return v(()=>{e.value=n(l({$dirty:a,$value:r,$silentValue:i,$error:f,$pending:w,$invalid:s,$correct:c,$ready:b,$anyDirty:o,$name:k,$silentErrors:E,$errors:T,$fields:N,$edited:D,$anyEdited:O}))}),e}),S.push(d)})}let F=e({get:()=>d?Object.fromEntries(Object.entries(d?.(N.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,A(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,j(t,e)]))}]:[])):{},set(){}}),I={};return P(),{$dirty:a,$anyDirty:o,$invalid:s,$correct:c,$error:f,$pending:w,$errors:T,$silentErrors:E,$ready:b,$name:k,$shortcuts:I,$groups:F,$silentValue:i,$edited:D,$anyEdited:O,$localPending:C,$autoDirty:y,$silent:_,$value:n}})}function L(){T?.(),D?.(),O?.(),k?.(),E?.(),S=[],x={},N.value&&Object.entries(N.value).forEach(([e,t])=>{t.$unwatch()})}function R(){Object.entries(N.value).forEach(([e,t])=>{t.$clearExternalErrors()})}function z(e,t){if(D?.(),L(),!t)if(e?.toInitialState)r.value=C({...p.value??{}});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,p.value=C(t),r.value=C(t)}else p.value=C(r.value);Object.values(N.value).forEach(t=>{t.$reset(e,!0)}),e?.clearExternalErrors&&R(),P(),t||M()}function B(e=!0,t=!1){Object.values(N.value).forEach(n=>{n.$touch(e,t)})}function V(e){return e.filter(([e,t])=>w(t)?!(t&&typeof t==`object`&&`_null`in t)&&!b(t):Array.isArray(t)?t.length:!0)}function H(e=!0){let t=Object.entries(N.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=V(t)),Object.fromEntries(t)}async function U(){try{if(g.schemaMode)return g.onValidate?(B(!1),x.$localPending.value=!0,g.onValidate()):{valid:!1,data:r.value};{let e=r.value,t=await Promise.allSettled(Object.values(N.value).map(e=>e.$validate())),n=t.every(e=>e.status===`fulfilled`?e.value.valid===!0:!1);return{valid:n,data:e}}}catch{return{valid:!1,data:r.value}}finally{x.$localPending.value=!1}}let{$shortcuts:W,$localPending:G,...K}=x;return l({...K,...W,$fields:N,$reset:z,$touch:B,$validate:U,$unwatch:L,$watch:I,$clearExternalErrors:R,$extractDirtyFields:H})}function $({rulesDef:e,...n}){if(J(e,n.state,n.schemaMode))return le({rulesDef:e,...n});if(q(n.state,e)){if(R(n.state))return ue({rulesDef:e,...n});{let r=t(),i=r.run(()=>{let e=f(n.state.value?n.state:u({}));return _(()=>n.state.value,t=>{e.value=t},{deep:!0}),_(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:a,...o}=n;return ue({rulesDef:e,...o,state:i.fakeState})}}else if(Y(e))return se({rulesDef:e,...n})}function de({initialState:e,options:t,scopeRules:n,state:i,customRules:a,shortcuts:o,schemaErrors:s,schemaMode:d=!1,onValidate:f}){let p=L(),m=u();return q(i,n)?m.value=ue({rootRules:n,rulesDef:n,state:i,customMessages:a?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:`root`,path:``,schemaErrors:s,rootSchemaErrors:s,schemaMode:d,onValidate:f}):Y(n)&&(m.value=se({rulesDef:n,state:i,customMessages:a?.(),storage:p,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:`root`,path:``,schemaMode:d,schemaErrors:s,onValidate:f})),r()&&c(()=>{m.value?.$unwatch()}),l({regle:m})}function fe(t,n,r){let a={autoDirty:n?.autoDirty,lazy:n?.lazy,rewardEarly:n?.rewardEarly,silent:n?.silent,clearExternalErrorsOnChange:n?.clearExternalErrorsOnChange};function o(n,o,s){let c=i(o)?o:typeof o==`function`?void 0:e(()=>o),l={...a,...s},f=i(n)?n:u(n),p=d(c??{});typeof o==`function`&&v(()=>{p.value=o(f),m(p)});let h=u(w(f.value)?{...C(f.value)}:C(f.value)),g=de({scopeRules:p,state:f,options:l,initialState:h,customRules:t,shortcuts:r});return{r$:g.regle}}return o}const pe=fe();function me(){function e(e,t){return t}return e}const he=me();function ge({rules:e,modifiers:t,shortcuts:n}){let r=fe(e,t,n);r.__config={rules:e,modifiers:t,shortcuts:n};let i=me();return{useRegle:r,inferRules:i}}function _e(e,{rules:t,modifiers:n,shortcuts:r}){let i=e.__config??{},a=()=>({...i.rules?.(),...t?.()}),o=i.modifiers&&n?T(i.modifiers,n):n,s=i.shortcuts&&r?T(i.shortcuts,r):r,c=fe(a,o,s);c.__config={rules:a,modifiers:o,shortcuts:s};let l=me();return{useRegle:c,inferRules:l}}function ve(t,n){let r=n??!1,i=e({get:()=>r?Object.values(t).map(e=>e.$value):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$value])),set:e=>{r||typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$value=n)}}),a=e({get:()=>Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentValue])),set:e=>{typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$silentValue=n)}}),o=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$dirty)}),s=e(()=>Object.entries(t).some(([e,t])=>t?.$anyDirty)),c=e(()=>Object.entries(t).some(([e,t])=>t?.$invalid)),u=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$correct||t.$anyDirty&&!t.$invalid)}),d=e(()=>Object.entries(t).some(([e,t])=>t?.$error)),f=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$ready)}),p=e(()=>Object.entries(t).some(([e,t])=>t?.$pending)),m=e(()=>r?Object.entries(t).map(([e,t])=>t.$errors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$errors]))),h=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentErrors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentErrors]))),g=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),_=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),v=e(()=>r?Object.values(t):t);function y(e){Object.values(t).forEach(t=>{t.$reset(e)})}function b(){Object.values(t).forEach(e=>{e.$touch()})}function x(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function S(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}async function C(){try{let e=i.value,n=await Promise.allSettled(Object.values(t).map(e=>e.$validate())),r=n.every(e=>e.status===`fulfilled`?e.value.valid===!0:!1);return{valid:r,data:e}}catch{return{valid:!1,data:i.value}}}return l({...!r&&{$silentValue:a},$errors:m,$silentErrors:h,$instances:v,$value:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:u,$error:d,$pending:p,$ready:f,$edited:g,$anyEdited:_,$reset:y,$touch:b,$validate:C,$extractDirtyFields:x,$clearExternalErrors:S})}function ye(t,n){function r(r){let i=e(()=>p(r));s();let a=u(c(t.value)),o=l({r$:a});function s(){i.value&&!t.value[i.value]&&(t.value[i.value]={})}_(i,s),_(t,e=>{a.value=c(e)},{deep:!0});function c(e){if(i.value){let t=e[i.value]??{};return ve(t,!n.asRecord)}else return ve(e[`~~global`]??{},!n.asRecord)}return{r$:o.r$}}return{useCollectScope:r}}function be(t,r){let i=r??pe,a=(r,a,o)=>{let{namespace:c,scopeKey:l,...d}=o??{};i.__config??={};let f=e(()=>p(c)),m=u(`${Object.keys(t.value).length+1}-${W()}`),h=e(()=>o?.scopeKey??`instance-${m.value}`),{r$:g}=i(r,a,d);y(),G(v),_(f,(e,t)=>{v(t),y()}),n()&&s(()=>{let e=n();typeof window<`u`&&e?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(e?.proxy?.$el?.parentElement)&&v()});function v(e){let n=e??f.value;n?t.value[n]&&delete t.value[n][h.value]:t.value[`~~global`][h.value]&&delete t.value[`~~global`][h.value]}function y(){f.value?(t.value[f.value]||(t.value[f.value]={}),t.value[f.value][h.value]=g):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][h.value]=g)}return{r$:g,dispose:v,register:y}};return{useScopedRegle:a}}function xe(e){let t=e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):K(()=>{let e=u({"~~global":{}});return e}),n=t(),{useScopedRegle:r}=be(n,e?.customUseRegle),{useCollectScope:i}=ye(n,{asRecord:e?.asRecord});return{useScopedRegle:r,useCollectScope:i}}const{useCollectScope:Se,useScopedRegle:Ce}=xe();function we(t,n,r){let i=e(()=>p(t)[n]),a=e(()=>{let e=r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if(X(t))return h(t._params?.[0])===i.value}});if(e)return e;{let e=r.find(e=>w(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`));return e||{}}});return a}function Te(e,t,n){return w(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function Ee(e,t,n){let r=i(e)?f(e.value,`$fields`):f(e,`$fields`),a=u();return _(r,async()=>{await o(),Te(r.value,t,n)?a.value=r.value:a.value=void 0},{immediate:!0,flush:`pre`}),a}function De(e){return e}function Oe(e,t){return n=>T({...e},t(n))}export{k as InternalRuleType,I as createRule,xe as createScopedUseRegle,we as createVariant,ge as defineRegleConfig,De as defineRules,_e as extendRegleConfig,ae as flatErrors,he as inferRules,ve as mergeRegles,Te as narrowVariant,Oe as refineRules,M as unwrapRuleParameters,Se as useCollectScope,pe as useRegle,de as useRootStorage,Ce as useScopedRegle,Ee as variantToRef};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "1.3.1",
3
+ "version": "1.4.0-beta.1",
4
4
  "description": "Headless form validation library for Vue 3",
5
5
  "peerDependencies": {
6
6
  "pinia": ">=2.2.5",