@regle/core 1.21.0-beta.1 → 1.21.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @regle/core v1.21.0-beta.1
2
+ * @regle/core v1.21.0-beta.2
3
3
  * (c) 2026 Victor Garcia
4
4
  * @license MIT
5
5
  */
@@ -1590,15 +1590,14 @@ interface $InternalRegleCollectionStatus extends Omit<$InternalRegleStatus, '$fi
1590
1590
  /**
1591
1591
  * @public
1592
1592
  */
1593
- type ReglePartialRuleTree<TForm extends Record<string, any> = Record<string, any>, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = { [TKey in keyof TForm]?: RegleFormPropertyType<TForm[TKey], TCustomRules> } & {
1593
+ type ReglePartialRuleTree<TForm extends Record<string, any> = Record<string, any>, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = { [TKey in keyof TForm]?: RegleFormPropertyType<TForm[TKey], TCustomRules> } & SelfObjectValidationDecl<TForm, TCustomRules>;
1594
+ type SelfObjectValidationDecl<TForm extends Record<string, any> = Record<string, any>, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = {
1594
1595
  $self?: MaybeRefOrComputedRef<RegleRuleDecl<TForm, TCustomRules>>;
1595
1596
  };
1596
1597
  /**
1597
1598
  * @public
1598
1599
  */
1599
- type RegleRuleTree<TForm extends Record<string, any>, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = HasNamedKeys<TForm> extends true ? { [TKey in keyof TForm]: RegleFormPropertyType<TForm[TKey], TCustomRules> } & {
1600
- $self?: MaybeRefOrComputedRef<RegleRuleDecl<TForm, TCustomRules>>;
1601
- } : RegleUnknownRulesTree;
1600
+ type RegleRuleTree<TForm extends Record<string, any>, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = HasNamedKeys<TForm> extends true ? { [TKey in keyof TForm]: RegleFormPropertyType<TForm[TKey], TCustomRules> } & SelfObjectValidationDecl<TForm, TCustomRules> : RegleUnknownRulesTree;
1602
1601
  /**
1603
1602
  * @public
1604
1603
  */
@@ -1,19 +1,17 @@
1
1
  /**
2
- * @regle/core v1.21.0-beta.1
2
+ * @regle/core v1.21.0-beta.2
3
3
  * (c) 2026 Victor Garcia
4
4
  * @license MIT
5
5
  */
6
6
 
7
7
  import { computed, effectScope, getCurrentInstance, getCurrentScope, inject, isRef, markRaw, nextTick, onMounted, onScopeDispose, reactive, ref, shallowRef, toRef, toValue, triggerRef, unref, version, watch, watchEffect } from "vue";
8
8
  import { setupDevtoolsPlugin } from "@vue/devtools-api";
9
-
10
9
  /**
11
10
  * Server side friendly way of checking for a File
12
11
  */
13
12
  function isFile(value) {
14
13
  return value?.constructor?.name == "File";
15
14
  }
16
-
17
15
  function isObject(obj) {
18
16
  if (obj && (obj instanceof Date || obj.constructor.name == "File" || obj.constructor.name == "FileList")) return false;
19
17
  return typeof obj === "object" && obj !== null && !Array.isArray(obj);
@@ -125,7 +123,6 @@ function def(obj, key, value, writable = false) {
125
123
  function isConstructor(value) {
126
124
  return typeof value === "function" && !!value.prototype && "constructor" in value.prototype && value.prototype.constructor === value;
127
125
  }
128
-
129
126
  /**
130
127
  * Checks if a value is empty in any way (including arrays and objects).
131
128
  * This is the inverse of `isFilled`.
@@ -170,9 +167,7 @@ function isEmpty(value, considerEmptyArrayInvalid = true, considerEmptyObjectInv
170
167
  }
171
168
  return !String(value).length;
172
169
  }
173
-
174
170
  const RegleRuleSymbol = Symbol("regle-rule");
175
-
176
171
  function getRegExpFlags(regExp) {
177
172
  let flags = [];
178
173
  if (regExp.global) flags.push("g");
@@ -196,7 +191,6 @@ function cloneDeep(obj, dep = 0) {
196
191
  }
197
192
  return result;
198
193
  }
199
-
200
194
  /**
201
195
  * Coerces any string, number, or Date value into a `Date` using the `Date` constructor.
202
196
  *
@@ -222,7 +216,6 @@ function toDate(argument) {
222
216
  else if (typeof argument === "string" || argStr === "[object String]") return new Date(argument);
223
217
  else return /* @__PURE__ */ new Date(NaN);
224
218
  }
225
-
226
219
  function debounce(func, wait, { immediate = false, trackDebounceRef } = {}) {
227
220
  let timeout;
228
221
  const debouncedFn = (...args) => {
@@ -262,7 +255,6 @@ function debounce(func, wait, { immediate = false, trackDebounceRef } = {}) {
262
255
  };
263
256
  return debouncedFn;
264
257
  }
265
-
266
258
  function isEqual(a, b, deep = false, firstDeep = true) {
267
259
  if (a === b) return true;
268
260
  if (a && b && typeof a == "object" && typeof b == "object") {
@@ -294,7 +286,6 @@ function isEqual(a, b, deep = false, firstDeep = true) {
294
286
  }
295
287
  return a !== a && b !== b;
296
288
  }
297
-
298
289
  var AbortError = class extends Error {
299
290
  constructor(message = "Promise was aborted") {
300
291
  super(message);
@@ -331,7 +322,6 @@ function abortablePromise(input) {
331
322
  signal
332
323
  };
333
324
  }
334
-
335
325
  /**
336
326
  * Converts ref to reactive.
337
327
  *
@@ -377,12 +367,10 @@ function toReactive(objectRef, isDisabled) {
377
367
  }
378
368
  }));
379
369
  }
380
-
381
370
  const InternalRuleType = {
382
371
  Inline: "__inline",
383
372
  Async: "__async"
384
373
  };
385
-
386
374
  /**
387
375
  * Returns a clean list of parameters
388
376
  * Removing Ref and executing function to return the unwrapped value
@@ -413,7 +401,6 @@ function getFunctionParametersLength(func) {
413
401
  if (!paramsMatch) return 0;
414
402
  return (paramsMatch[0] || paramsMatch[1] || paramsMatch[2] || paramsMatch[3] || paramsMatch[4] || "").split(",").map((p) => p.trim()).filter((p) => p.length > 0).length;
415
403
  }
416
-
417
404
  function defineRuleProcessors(definition, ...params) {
418
405
  const { validator, type, async } = definition;
419
406
  const isAsync = async || type === InternalRuleType.Async || validator.constructor.name === "AsyncFunction";
@@ -469,7 +456,6 @@ function defineRuleProcessors(definition, ...params) {
469
456
  _brand: RegleRuleSymbol
470
457
  });
471
458
  }
472
-
473
459
  /**
474
460
  * Create a typed custom rule that can be used like built-in rules.
475
461
  * The created rule can be declared in global options or used directly.
@@ -554,7 +540,6 @@ function createRule(definition) {
554
540
  }
555
541
  throw new Error("[createRule] validator must be a function");
556
542
  }
557
-
558
543
  const REGLE_SYMBOL = Symbol.for("regle:instance");
559
544
  /**
560
545
  * Checks if a value is a Regle instance (`r$`).
@@ -591,7 +576,6 @@ function unwrapGetter(getter, value, index) {
591
576
  unwrapped
592
577
  };
593
578
  }
594
-
595
579
  const VersionIs = {
596
580
  LessThan: -1,
597
581
  EqualTo: 0,
@@ -617,7 +601,6 @@ function versionCompare(current, other) {
617
601
  return VersionIs.EqualTo;
618
602
  }
619
603
  const isVueSuperiorOrEqualTo3dotFive = versionCompare(version, "3.5.0") === -1 ? false : true;
620
-
621
604
  function uniqueIDNuxt() {
622
605
  return Math.floor(Math.random() * Date.now()).toString();
623
606
  }
@@ -628,7 +611,6 @@ function randomId() {
628
611
  if (typeof window === "undefined") return uniqueIDNuxt();
629
612
  else return window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10);
630
613
  }
631
-
632
614
  function tryOnScopeDispose(fn) {
633
615
  if (getCurrentScope()) {
634
616
  onScopeDispose(fn);
@@ -654,7 +636,6 @@ function createGlobalState(stateFactory) {
654
636
  return state;
655
637
  });
656
638
  }
657
-
658
639
  function mergeBooleanGroupProperties(entries, property) {
659
640
  return entries.some((entry) => {
660
641
  if (!property) return false;
@@ -668,7 +649,6 @@ function mergeArrayGroupProperties(entries, property) {
668
649
  return all.concat(fetchedProperty);
669
650
  }, []);
670
651
  }
671
-
672
652
  const COLORS = {
673
653
  ERROR: {
674
654
  text: 16777215,
@@ -761,11 +741,9 @@ const INSPECTOR_IDS = {
761
741
  COMPONENTS: "components",
762
742
  TIMELINE: "regle-timeline"
763
743
  };
764
-
765
744
  const regleSymbol = Symbol("regle");
766
745
  const regleConfigSymbol = Symbol("regle-config");
767
746
  const REGLE_FLAGS = { REGLE_STATIC: "__regle_static" };
768
-
769
747
  function useRegleDevtoolsRegistry() {
770
748
  const loggedWarning = ref(false);
771
749
  const devtoolsApi = shallowRef();
@@ -871,7 +849,6 @@ function registerRegleInstance(r$, options) {
871
849
  tryOnScopeDispose(unregister);
872
850
  return unregister;
873
851
  }
874
-
875
852
  function isNestedRulesDef(state, rules) {
876
853
  return !isStatic(state.value) && (isRefObject(state) || isObject(rules.value) && !isEmpty(rules.value) && !Object.entries(rules.value).some(([_, rule]) => isRuleDef(rule) || typeof rule === "function"));
877
854
  }
@@ -894,7 +871,6 @@ function isFormRuleDefinition(rule) {
894
871
  function isStatic(value) {
895
872
  return isObject(value) && hasOwn(value, REGLE_FLAGS.REGLE_STATIC) && value[REGLE_FLAGS.REGLE_STATIC] === true;
896
873
  }
897
-
898
874
  function isNestedRulesStatus(rule) {
899
875
  return isObject(rule) && "$fields" in rule;
900
876
  }
@@ -904,7 +880,6 @@ function isCollectionRulesStatus(rule) {
904
880
  function isFieldStatus(rule) {
905
881
  return !!rule && "$rules" in rule;
906
882
  }
907
-
908
883
  function isMethod(value) {
909
884
  return typeof value === "function";
910
885
  }
@@ -953,7 +928,6 @@ function parseRuleNodeId(nodeId) {
953
928
  function createRuleNodeId(instanceId, fieldName, ruleName) {
954
929
  return `${createFieldNodeId(instanceId, fieldName)}:rule:${ruleName}`;
955
930
  }
956
-
957
931
  /**
958
932
  * Build state for a field node
959
933
  */
@@ -1085,7 +1059,6 @@ function buildInspectorState(nodeId, getInstance) {
1085
1059
  if (!instance) return null;
1086
1060
  return buildRootState(instance.r$);
1087
1061
  }
1088
-
1089
1062
  function handleValidateAction(nodeId) {
1090
1063
  if (nodeId.includes(":rule:")) return;
1091
1064
  const fieldInfo = parseFieldNodeId(nodeId);
@@ -1148,7 +1121,6 @@ async function emitInspectorState(api) {
1148
1121
  api.sendInspectorTree(INSPECTOR_IDS.INSPECTOR);
1149
1122
  api.sendInspectorState(INSPECTOR_IDS.INSPECTOR);
1150
1123
  }
1151
-
1152
1124
  function buildNodeTags(fieldOrR$, componentName) {
1153
1125
  const tags = [];
1154
1126
  let isDisabled = false;
@@ -1372,9 +1344,7 @@ function filterInspectorTree(nodes, filter) {
1372
1344
  }
1373
1345
  return filtered;
1374
1346
  }
1375
-
1376
- var version$1 = "1.21.0-beta.1";
1377
-
1347
+ var version$1 = "1.21.0-beta.2";
1378
1348
  function createDevtools(app) {
1379
1349
  setupDevtoolsPlugin({
1380
1350
  id: "regle-devtools",
@@ -1456,7 +1426,6 @@ function createDevtools(app) {
1456
1426
  });
1457
1427
  });
1458
1428
  }
1459
-
1460
1429
  /**
1461
1430
  * Inspired by Vuelidate storage
1462
1431
  */
@@ -1587,7 +1556,6 @@ function useStorage() {
1587
1556
  getAdditionalRulesEntry
1588
1557
  };
1589
1558
  }
1590
-
1591
1559
  function extractRulesIssues({ field, silent = false }) {
1592
1560
  const ruleIssues = Object.entries(field.$rules ?? {}).map(([key, rule]) => {
1593
1561
  let message = "";
@@ -1665,7 +1633,6 @@ function iterateErrors(errors, includePath = false, _path) {
1665
1633
  return selfErrors?.concat(eachErrors.flat());
1666
1634
  } else return Object.entries(errors).map(([key, value]) => iterateErrors(value, includePath, path?.concat(key))).flat();
1667
1635
  }
1668
-
1669
1636
  function createReactiveRuleStatus({ customMessages, rule, ruleKey, state, path, cachePath, storage, modifiers }) {
1670
1637
  let scope = effectScope();
1671
1638
  let scopeState = {};
@@ -1874,7 +1841,6 @@ function createReactiveRuleStatus({ customMessages, rule, ruleKey, state, path,
1874
1841
  $reset
1875
1842
  });
1876
1843
  }
1877
-
1878
1844
  function createStandardSchema(validateFn) {
1879
1845
  return { "~standard": {
1880
1846
  version: 1,
@@ -1889,7 +1855,6 @@ function createStandardSchema(validateFn) {
1889
1855
  }
1890
1856
  } };
1891
1857
  }
1892
-
1893
1858
  const DEFAULT_DEBOUNCE_TIME = 200;
1894
1859
  function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cachePath, fieldName, storage, options, externalErrors, schemaErrors, schemaMode, onUnwatch, $isArray, initialState, originalState, shortcuts, overrides, onValidate }) {
1895
1860
  let scope = effectScope();
@@ -2412,7 +2377,6 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cach
2412
2377
  Object.defineProperty(fullStatus, Symbol.for("regle:instance"), { value: true });
2413
2378
  return fullStatus;
2414
2379
  }
2415
-
2416
2380
  function createCollectionElement({ $id, path, cachePath, index, options, storage, stateValue, customMessages, rules, externalErrors, schemaErrors, initialState, originalState, shortcuts, fieldName, schemaMode, overrides }) {
2417
2381
  const $fieldId = stateValue.value?.$id ?? rules.$key ?? randomId();
2418
2382
  let $cachePath = `${cachePath}.${String($fieldId)}`;
@@ -2452,7 +2416,6 @@ function createCollectionElement({ $id, path, cachePath, index, options, storage
2452
2416
  if (stateValue.value && (!isObject(stateValue.value) || isStatic(stateValue.value)) && schemaMode) $status?.$touch();
2453
2417
  return $status;
2454
2418
  }
2455
-
2456
2419
  function createReactiveCollectionStatus({ state, rulesDef, customMessages, path, cachePath, storage, options, externalErrors, schemaErrors, schemaMode, initialState, originalState, shortcuts, fieldName, overrides }) {
2457
2420
  let scope = effectScope();
2458
2421
  let scopeState;
@@ -2918,7 +2881,6 @@ function createReactiveCollectionStatus({ state, rulesDef, customMessages, path,
2918
2881
  ...createStandardSchema($validate)
2919
2882
  });
2920
2883
  }
2921
-
2922
2884
  function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, rootRules, externalErrors, schemaErrors, rootSchemaErrors, validationGroups, initialState, originalState, fieldName, ...commonArgs }) {
2923
2885
  let scope = effectScope();
2924
2886
  let scopeState;
@@ -3472,7 +3434,6 @@ function createReactiveChildrenStatus({ rulesDef, ...properties }) {
3472
3434
  ...properties
3473
3435
  });
3474
3436
  }
3475
-
3476
3437
  /**
3477
3438
  * @internal
3478
3439
  * This is the internal function that creates the root storage for the Regle instance.
@@ -3575,7 +3536,6 @@ function useRootStorage({ initialState, originalState, options, scopeRules, stat
3575
3536
  registerDevtools();
3576
3537
  return regle;
3577
3538
  }
3578
-
3579
3539
  function createRootRegleLogic({ state, rulesFactory, options, globalOptions, customRules, shortcuts, overrides }) {
3580
3540
  const definedRules = isRef(rulesFactory) ? rulesFactory : typeof rulesFactory === "function" ? void 0 : computed(() => rulesFactory);
3581
3541
  /**
@@ -3624,7 +3584,6 @@ function createRootRegleLogic({ state, rulesFactory, options, globalOptions, cus
3624
3584
  overrides: mergedOverrides
3625
3585
  });
3626
3586
  }
3627
-
3628
3587
  function createUseRegleComposable(options) {
3629
3588
  const { rules: customRules, modifiers = {}, shortcuts, overrides } = options ?? {};
3630
3589
  function useRegle(state, rulesFactory, options) {
@@ -3676,7 +3635,6 @@ function createUseRegleComposable(options) {
3676
3635
  * @see {@link https://reglejs.dev/core-concepts/ Documentation}
3677
3636
  */
3678
3637
  const useRegle = createUseRegleComposable();
3679
-
3680
3638
  function createInferRuleHelper() {
3681
3639
  function inferRules(state, rulesFactory) {
3682
3640
  return rulesFactory;
@@ -3711,7 +3669,6 @@ function createInferRuleHelper() {
3711
3669
  * @see {@link https://reglejs.dev/core-concepts/#dynamic-rules-object Documentation}
3712
3670
  */
3713
3671
  const inferRules = createInferRuleHelper();
3714
-
3715
3672
  /**
3716
3673
  * Retrieves error messages for a specific field using a dot-notation path.
3717
3674
  * Provides type-safe access to nested error arrays in a Regle instance.
@@ -3748,7 +3705,6 @@ const inferRules = createInferRuleHelper();
3748
3705
  function getErrors(r$, path) {
3749
3706
  return getDotPath(toValue(r$).$errors, String(path));
3750
3707
  }
3751
-
3752
3708
  /**
3753
3709
  * Retrieves detailed validation issues for a specific field using a dot-notation path.
3754
3710
  * Issues contain more information than errors, including the rule name, property, and metadata.
@@ -3789,7 +3745,6 @@ function getErrors(r$, path) {
3789
3745
  function getIssues(r$, path) {
3790
3746
  return getDotPath(toValue(r$).$issues, String(path));
3791
3747
  }
3792
-
3793
3748
  function createEmptyRuleState(rules) {
3794
3749
  const result = {};
3795
3750
  if (Object.entries(rules).some(([_, rule]) => isRuleDef(rule) || typeof rule === "function")) return null;
@@ -3850,7 +3805,6 @@ function createUseRulesComposable(options) {
3850
3805
  * @see {@link https://reglejs.dev/common-usage/standard-schema#userules Documentation}
3851
3806
  */
3852
3807
  const useRules = createUseRulesComposable();
3853
-
3854
3808
  /**
3855
3809
  * Marks a value as static and treats the constructor as a regular raw Field.
3856
3810
  * @param value - The value to mark as static.
@@ -3879,7 +3833,6 @@ function applyMarkStatic(value) {
3879
3833
  if (!hasOwn(value, REGLE_FLAGS.REGLE_STATIC) && Object.isExtensible(value)) def(value, REGLE_FLAGS.REGLE_STATIC, true);
3880
3834
  return value;
3881
3835
  }
3882
-
3883
3836
  /**
3884
3837
  * Define a global Regle configuration to customize the validation behavior across your application.
3885
3838
  *
@@ -4024,7 +3977,6 @@ function extendRegleConfig(regle, { rules, modifiers, shortcuts, overrides }) {
4024
3977
  function defineRegleOptions(options) {
4025
3978
  return options;
4026
3979
  }
4027
-
4028
3980
  /**
4029
3981
  * Merge multiple Regle instances into a single validation state.
4030
3982
  * Useful for combining multiple forms or validation scopes.
@@ -4256,7 +4208,6 @@ function mergeRegles(regles, _scoped) {
4256
4208
  });
4257
4209
  return fullStatus;
4258
4210
  }
4259
-
4260
4211
  function createUseCollectScope(instances, options) {
4261
4212
  function useCollectScope(namespace) {
4262
4213
  const computedNamespace = computed(() => toValue(namespace));
@@ -4295,7 +4246,6 @@ function createUseCollectScope(instances, options) {
4295
4246
  }
4296
4247
  return { useCollectScope };
4297
4248
  }
4298
-
4299
4249
  function createUseScopedRegleComposable(instances, customUseRegle) {
4300
4250
  const scopedUseRegle = customUseRegle ?? useRegle;
4301
4251
  const useScopedRegle = ((state, rulesFactory, options) => {
@@ -4346,7 +4296,6 @@ function createUseScopedRegleComposable(instances, customUseRegle) {
4346
4296
  });
4347
4297
  return { useScopedRegle };
4348
4298
  }
4349
-
4350
4299
  /**
4351
4300
  * Create a scoped validation system for collecting and validating multiple form instances.
4352
4301
  * Useful for dynamic forms, multi-step wizards, or component-based form architectures.
@@ -4449,7 +4398,6 @@ const useCollectScope = _useCollectScope;
4449
4398
  * @see {@link https://reglejs.dev/advanced-usage/scoped-validation Documentation}
4450
4399
  */
4451
4400
  const useScopedRegle = _useScopedRegle;
4452
-
4453
4401
  /**
4454
4402
  * Create variant-based validation rules that depend on a discriminant field value.
4455
4403
  * Useful for union types where different fields are required based on a type discriminant.
@@ -4542,7 +4490,6 @@ function variantToRef(root, discriminantKey, discriminantValue, _options) {
4542
4490
  });
4543
4491
  return returnedRef;
4544
4492
  }
4545
-
4546
4493
  /**
4547
4494
  * Helper method to wrap a raw rules object with type inference.
4548
4495
  * Provides autocomplete and type-checking without processing.
@@ -4599,7 +4546,6 @@ function defineRules(rules) {
4599
4546
  function refineRules(rules, refinement) {
4600
4547
  return (state) => merge({ ...rules }, refinement(state));
4601
4548
  }
4602
-
4603
4549
  /**
4604
4550
  * Vue plugin to enable Regle devtools integration with Vue Devtools.
4605
4551
  * Provides debugging capabilities for inspecting validation trees, states, and actions.
@@ -4627,5 +4573,4 @@ const RegleVuePlugin = { install(app, options) {
4627
4573
  if (options) app.provide(regleConfigSymbol, options);
4628
4574
  if (typeof window !== "undefined" && true) createDevtools(app);
4629
4575
  } };
4630
-
4631
- export { InternalRuleType, RegleVuePlugin, createRule, createScopedUseRegle, createVariant, defineRegleConfig, defineRegleOptions, defineRules, extendRegleConfig, flatErrors, getErrors, getIssues, inferRules, isRegleInstance, markStatic, mergeRegles, narrowVariant, refineRules, unwrapRuleParameters, useCollectScope, useRegle, useRootStorage, useRules, useScopedRegle, variantToRef };
4576
+ export { InternalRuleType, RegleVuePlugin, createRule, createScopedUseRegle, createVariant, defineRegleConfig, defineRegleOptions, defineRules, extendRegleConfig, flatErrors, getErrors, getIssues, inferRules, isRegleInstance, markStatic, mergeRegles, narrowVariant, refineRules, unwrapRuleParameters, useCollectScope, useRegle, useRootStorage, useRules, useScopedRegle, variantToRef };
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @regle/core v1.21.0-beta.1
2
+ * @regle/core v1.21.0-beta.2
3
3
  * (c) 2026 Victor Garcia
4
4
  * @license MIT
5
5
  */
6
6
 
7
- import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,inject as i,isRef as a,markRaw as o,nextTick as s,onMounted as c,onScopeDispose as l,reactive as u,ref as d,shallowRef as f,toRef as p,toValue as m,triggerRef as h,unref as g,version as _,watch as v,watchEffect as y}from"vue";function b(e){return e?.constructor?.name==`File`}function x(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function S(e,t,n){if(!e)return n;var r,i;if(Array.isArray(t)&&(r=t.slice(0)),typeof t==`string`&&(r=t.split(`.`)),typeof t==`symbol`&&(r=[t]),!Array.isArray(r))throw Error(`props arg must be an array, a string or a symbol`);for(;r.length;)if(i=r.shift(),!e||!i||(e=e[i],e===void 0))return n;return e}function C(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 w(e){let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n],i=n.split(`.`),a=t;for(let e=0;e<i.length;e++){let t=i[e],n=e===i.length-1,o=t.match(/^\d+$/)?Number(t):null;if(o!==null){if(Array.isArray(a))if(n)a[o]=r;else{if(typeof a[o]!=`object`||a[o]===null){let t=i[e+1];a[o]=t&&t.match(/^\d+$/)?{$each:[],$self:[]}:{}}a=`$each`in a[o]?a[o].$each:a[o]}}else if(n)if(Array.isArray(a[t])){let e=a[t].slice();a[t]={},a[t].$self=e}else typeof a[t]==`object`&&a[t]!==null&&`$each`in a[t]?a[t].$self=r:a[t]=r;else{let n=i[e+1];if(Array.isArray(a[t])){let e=a[t].slice();a[t]={$each:[]},a[t].$self=e}(typeof a[t]!=`object`||a[t]===null||Array.isArray(a[t])&&!n.match(/^\d+$/))&&(n&&n.match(/^\d+$/)?a[t]={$each:[],$self:[]}:a[t]={}),a=`$each`in a[t]?a[t].$each:a[t]}}}return t}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function E(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function D(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function O(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):b(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:x(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const k=Symbol(`regle-rule`);function A(e){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 j(e,t=0){if(t>20)return e;let n=e,r={}.toString.call(e).slice(8,-1);if(r==`Set`&&(n=new Set([...e].map(e=>j(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[j(e[0]),j(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,A(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=j(e[r],t++)}return n}function M(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 N(e,t,{immediate:n=!1,trackDebounceRef:r}={}){let i,a=(...a)=>{r&&(r.value=!0);function o(){r&&(r.value=!1)}return new Promise((r,s)=>{function c(e){r(e),o()}if(clearTimeout(i),i=setTimeout(()=>{if(o(),i=void 0,!n)try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}},t),n){o();try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}}})};return a.cancel=()=>{clearTimeout(i),i=void 0,r&&(r.value=!1)},a}function P(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(!P(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];if(x(e)&&x(t)&&s&&(r||!r&&n)&&!P(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var F=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function I(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new F)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new F):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new F):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function L(e,t){if(!a(e))return u(e);let r=d(!1);return n()&&c(async()=>{await s(),typeof window<`u`&&window.requestAnimationFrame(()=>{r.value=!0})}),u(new Proxy({},{get(n,i,a){if(t.value&&i!==`$value`&&r.value)return Reflect.get(n,i,a);if(e.value!==void 0)return g(Reflect.get(e.value,i,a))},set(t,n,r){return a(e.value[n])&&!a(r)?e.value[n].value=r:e.value[n]=r,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return e.value===void 0?!1:Reflect.has(e.value,n)},ownKeys(){return e.value===void 0?[]:Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}}))}const R={Inline:`__inline`,Async:`__async`};function z(e){try{return e.map(e=>m(e))}catch{return[]}}function B(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:p(()=>t))}function V(e){let t=e.toString().replace(/\/\/.*$/gm,``).replace(/\/\*[\s\S]*?\*\//g,``).match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return t?(t[0]||t[1]||t[2]||t[3]||t[4]||``).split(`,`).map(e=>e.trim()).filter(e=>e.length>0).length:0}function H(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===R.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...z(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:z(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:z(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:z(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...z(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)},type:r,_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:a,_params:B(t),_brand:k})}function U(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=H({...e,async:n},...t);if(V(e.validator)>1){let t=function(...t){return H(e,...t)};return t.validator=r.validator,t.message=r.message,t.active=r.active,t.tooltip=r.tooltip,t.type=r.type,t.exec=r.exec,t._validator=r.validator,t._message=r.message,t._active=r.active,t._tooltip=r.tooltip,t._type=e.type,t._message_pacthed=!1,t._tooltip_pacthed=!1,t._async=n,t}else return r}throw Error(`[createRule] validator must be a function`)}const W=Symbol.for(`regle:instance`);function G(e){return typeof e==`object`&&!!e&&W in e}function K(e){return x(e.value)}function ee(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const q={LessThan:-1,EqualTo:0,GreaterThan:1};function J(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 q.GreaterThan;if(i>t)return q.LessThan;if(!isNaN(t)&&isNaN(i))return q.GreaterThan;if(isNaN(t)&&!isNaN(i))return q.LessThan}return q.EqualTo}const te=J(_,`3.5.0`)!==-1;function Y(){return Math.floor(Math.random()*Date.now()).toString()}function X(){return typeof window>`u`?Y():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ne(e){return r()?(l(e),!0):!1}function re(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function ie(e,t){return e.some(e=>t?e?.[t]:!1)}function ae(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const oe=Symbol(`regle`),Z=Symbol(`regle-config`),Q={REGLE_STATIC:`__regle_static`};function se(e,t){return!de(e.value)&&(K(e)||x(t.value)&&!O(t.value)&&!Object.entries(t.value).some(([e,t])=>$(t)||typeof t==`function`))}function ce(e,t){return!!e.value&&x(e.value)&&`$each`in e.value||Array.isArray(t.value)}function le(e){return!!e.value&&(x(e.value)||K(e.value))}function $(e){return(x(e)||typeof e==`function`)&&`_validator`in e}function ue(e){return typeof e.value==`function`?`_validator`in e.value:!0}function de(e){return x(e)&&T(e,Q.REGLE_STATIC)&&e[Q.REGLE_STATIC]===!0}function fe(e){return x(e)&&`$fields`in e}function pe(e){return!!e&&`$rules`in e}var me=`1.21.0-beta.1`;function he(){let e=f(new Map),t=f(new Map),n=f(new Map),i=f(new Map),a=f(new Map),o=f(new Map),s=f(new Map);function c(e){let n=t.value.get(e);if(n)return n;{let n=d({});return t.value.set(e,n),n}}function u(e){let t=n.value.get(e);if(t)return t;{let t=d([]);return n.value.set(e,t),t}}function p(e,t){o.value.set(e,t)}function m(e){return o.value.get(e)}function h(e,t,n){s.value.set(`${e}-${t}`,n)}function g(e,t){return s.value.get(`${e}-${t}`)}function _(e,t){e&&t!=null&&s.value.delete(`${e}-${t}`)}function v(e,t){i.value.set(e,t)}function y(e){return i.value.get(e)??!1}function b(t,n){e.value.set(t,n)}function x(t,n){let r=e.value.get(t);if(r)return S(n,r)?{valid:!0}:{valid:!1}}function S(e,t){let n=Object.keys(t),r=Object.keys(e);return r.length!==n.length||!r.every(e=>n.includes(e))?!1:r.every(n=>{let r=e[n],i=t[n];if(!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`||typeof r==`string`)return!1;if(`_params`in r){if(!r._params)return!0;if(Array.isArray(r._params))return r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`||typeof i==`string`)return!0;{let e=z(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=z(r._params);return e?.[t]===n?.[t]}})}})}function C(e){let t=a.value.get(e);if(t)return t;{let t=d(!1),n=d(!0),r=d({}),i=d(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}return r()&&l(()=>{e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),s.value.clear()}),{addRuleDeclEntry:b,setDirtyEntry:v,checkRuleDeclEntry:x,getDirtyState:y,trySetRuleStatusRef:C,getFieldsEntry:c,getCollectionsEntry:u,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:_,arrayStatusStorage:s,addAdditionalRulesEntry:p,getAdditionalRulesEntry:m}}function ge({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;return{$message:i,$property:e.fieldName,$rule:n,$type:r.$type,...typeof r.$metadata==`object`?r.$metadata:{}}}).filter(e=>!!e).reduce((e,t)=>(typeof t.$message==`string`?e.push(t):e.push(...t.$message.map(e=>({...t,$message:e}))),e),[]),r=e.$error&&e.$externalErrors&&Array.isArray(e.$externalErrors)?e.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=[];return e.$schemaErrors&&e.$error&&(i=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i]}function _e({field:e}){let t=[];for(let n of Object.values(e.$rules??{})){let e=n.$tooltip;e&&(typeof e==`string`?t.push(e):t.push(...e))}return t}function ve(e){return x(e)&&`$each`in e}function ye(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!x(e)))return e;if(ve(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>be(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>be(t,n,[e])).flat()}function be(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!x(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(ve(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>be(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>be(n,t,r?.concat(e))).flat()}function xe({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let f=t(),p={},m,h=e(()=>$(r.value)&&r.value._async),g=d(!1),{$pending:_,$valid:y,$metadata:b,$validating:x}=c.trySetRuleStatusRef(`${s}.${i}`);function S(){f=t(),p=f.run(()=>{let t=d(!1),s=d(!1),c=d(!0),l=d(!1),u=d(!1),f=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:u.value,$invalid:c.value,$rule:{$valid:y.value,$invalid:!y.value,$pending:_.value},$params:S.value,...b.value})),p=e(()=>{try{return ue(r)?typeof r.value.active==`function`?r.value.active(f.value):!!r.value.active:!0}catch(e){return console.error(`Error in "active" function for "${o}.${i}" rule`,{cause:e}),!0}});function m(e){try{let t=``,a=n?n[i]?.[e]:void 0;if(a&&(t=typeof a==`function`?a(f.value):a),ue(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}catch(t){return console.error(`Error in "${e}" function for "${o}.${i}" rule`,{cause:t}),``}}let h=e(()=>{let e=m(`message`);return O(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),v=e(()=>ue(r)&&r.value.type?r.value.type:i),x=e(()=>ue(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:z(r.value._params??[]));return{$active:p,$message:h,$type:v,$validator:x,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:u,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=v(p?.$params,()=>{(!l.$silent.value||l.$rewardEarly.value&&p.$fieldError.value)&&E()},{deep:te?1:!0})}S();function C(){y.value=!0,p.$fieldDirty.value&&(_.value=!0)}async function w(){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;C();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,b.value=n}}catch{e=!1}finally{_.value=!1}return e}function T(e,t=!0){if($(r.value)&&r.value._async)return!0;let n=e(a.value,...p.$params.value);if(n instanceof Promise)return!0;if(n!=null){if(typeof n==`boolean`)return n;{let{$valid:e,...t}=n;return b.value=t,e}}return!0}async function E(){try{x.value=!0;let e=!1;if(g.value=!0,$(r.value)&&r.value._async)e=await w();else{let t=p.$validator.value;e=T(t)}return y.value=e,e}catch{return!1}finally{x.value=!1,g.value=!1}}function D(){try{return x.value=!0,T(p.$validator.value)}catch{return!1}finally{x.value=!1}}function k(){y.value=!0,b.value={},_.value=!1,x.value=!1,S()}function A(){m(),f.stop(),f=t()}return u({...p,$pending:_,$valid:y,$metadata:b,$haveAsync:h,$maybePending:g,$validating:x,$parse:E,$parseSync:D,$unwatch:A,$watch:S,$reset:k})}function Se(e){return{"~standard":{version:1,vendor:`regle`,validate:async t=>{let{valid:n,data:r,errors:i}=await e(t,!0);return n?{value:r,issues:[]}:{issues:ye(i,{includePath:!0})}}}}}function Ce({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:f,externalErrors:h,schemaErrors:g,schemaMode:_,onUnwatch:b,$isArray:S,initialState:C,originalState:w,shortcuts:T,overrides:E,onValidate:D}){let k=t(),A,F=[],L,R,z,B,V=()=>{},H,U=()=>{},W=d(!1),G=d(l.getAdditionalRulesEntry(o)??{});function K(e){G.value=e??{},l.addAdditionalRulesEntry(o,e??{}),q(),V()}function ee(e){K(e)}function q(){let e={...r.value,...G.value},t=[];for(let r in e){if(r.startsWith(`$`)||r.startsWith(`~`))continue;let s=e[r];if(!s)continue;let c=p(()=>s);t.push([r,xe({modifiers:{$silent:A.$silent,$rewardEarly:A.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:Q.value.$debounce})])}Z.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function J(){let e={...r.value,...G.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return Q.value=n,t}function Y(){let e=J();ie(),q(),A.processShortcuts(),X(),ne(),e?.valid!=null&&(A.$dirty.value=l.getDirtyState(o),(A.$dirty.value&&!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&V()),l.addRuleDeclEntry(o,r.value)}function X(){V=A.$debounce.value>0?N(oe,A.$debounce.value,{trackDebounceRef:W}):oe}function ne(){U=A.$debounce.value>0?N(()=>{A.$dirty.value=!0},A.$debounce.value):()=>{A.$dirty.value=!0}}function re(){if(Z.value)for(let e of Object.values(Z.value))e.$unwatch();R(),B?.(),A.$dirty.value&&l.setDirtyEntry(o,A.$dirty.value),L?.(),k.stop(),k=t();for(let e of F)e.stop();F=[],b?.(),z?.()}function ie(){if(Z.value)for(let e of Object.values(Z.value))e.$watch();A=k.run(()=>{let r=d(!1),i=d(!1),a=e(()=>r.value),o=e(()=>S||de(n.value)),s=e(()=>Q.value.$debounce==null?A.$haveAnyAsyncRule.value?200:0:Q.value.$debounce),l=e(()=>Q.value.$deepCompare==null?!1:Q.value.$deepCompare),p=e(()=>Q.value.$lazy==null?m(f.lazy)==null?!1:m(f.lazy)===!0:Q.value.$lazy),v=e(()=>Q.value.$immediateDirty==null?m(f.immediateDirty)==null?!1:m(f.immediateDirty)===!0:Q.value.$immediateDirty),b=e(()=>Q.value.$rewardEarly==null?m(f.rewardEarly)==null?!1:m(f.rewardEarly)===!0:!!Q.value.$rewardEarly),x=e(()=>Q.value.$clearExternalErrorsOnChange==null?m(f.clearExternalErrorsOnChange)==null?!D.value:m(f.clearExternalErrorsOnChange)===!0:!!Q.value.$clearExternalErrorsOnChange),w=e(()=>Q.value.$clearExternalErrorsOnValidate==null?m(f.clearExternalErrorsOnValidate)==null?!1:m(f.clearExternalErrorsOnValidate)===!0:!!Q.value.$clearExternalErrorsOnValidate),D=e(()=>b.value?!0:Q.value.$silent==null?m(f.silent)==null?!1:m(f.silent)===!0:Q.value.$silent),k=e(()=>Q.value.$autoDirty==null?m(f.autoDirty)==null?!0:m(f.autoDirty)===!0:Q.value.$autoDirty),j=e(()=>{if(Q.value.$isEdited!=null)return Q.value.$isEdited;if(E?.isEdited!=null)return E.isEdited}),N=e(()=>{for(let e of Object.values(Z.value))if(e.$validating)return!0;return!1}),I=e({get:()=>n.value,set(e){L(),n.value=e,ae()}}),R=e(()=>W.value?te.value&&r.value:te.value&&!J.value&&r.value),z=e(()=>ge({field:{$rules:Z.value,$error:R.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:Y.value}})),B=e(()=>ge({field:{$rules:Z.value,$error:R.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:Y.value},silent:!0})),V=e(()=>z.value.map(e=>e.$message)),H=e(()=>B.value.map(e=>e.$message)),U=d(!1);function G(e,t){return t instanceof Date&&e instanceof Date?M(t).getDate()!==M(e).getDate():t==null?!!e:Array.isArray(e)&&Array.isArray(t)?!P(e,t,Q.value.$deepCompare):t!==e}y(()=>{r.value?j.value?U.value=j.value(n.value,C.value,G):U.value=G(n.value,C.value):U.value=!1});let K=e(()=>U.value),ee=e(()=>_e({field:{$rules:Z.value}})),q=e(()=>!(te.value||J.value)),J=e(()=>i.value||!b.value?Object.entries(Z.value).some(([e,t])=>t.$pending):!1),te=e(()=>h?.value?.length||g?.value?.length?!0:X.value?!1:Object.values(Z.value).some(e=>!e.$valid||e.$maybePending)),Y=e(()=>c??f.id??`root`),X=e(()=>!_&&!Object.keys(Z.value).some(e=>!e.startsWith(`$`))),ne=e(()=>{if(h?.value?.length||X.value||W.value)return!1;if(r.value&&!O(n.value)&&!N.value&&!J.value){if(_)return!g?.value?.length;{let e=Object.values(Z.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),re=e(()=>Object.values(Z.value).some(e=>e.$haveAsync)),ie=e(()=>({$debounce:s.value,$lazy:p.value,$rewardEarly:b.value,$autoDirty:k.value,$silent:D.value,$clearExternalErrorsOnChange:x.value,$clearExternalErrorsOnValidate:w.value,$immediateDirty:v.value,$isEdited:j.value,$disabled:m(f.disabled)??!1}));function oe(){T?.fields&&Object.entries(T.fields).forEach(([e,i])=>{let o=t();se[e]=o.run(()=>{let e=d();return y(()=>{e.value=i(u({$dirty:r,$externalErrors:h?.value??[],$value:n,$silentValue:I,$rules:Z,$error:R,$pending:J,$invalid:te,$correct:ne,$errors:V,$ready:q,$silentErrors:H,$anyDirty:a,$tooltips:ee,$name:Y,$inactive:X,$edited:U,$anyEdited:K}))}),e}),F.push(o)})}let se={};return{$error:R,$pending:J,$invalid:te,$correct:ne,$debounce:s,$deepCompare:l,$lazy:p,$immediateDirty:v,$ready:q,$issues:z,$silentIssues:B,$errors:V,$silentErrors:H,$rewardEarly:b,$autoDirty:k,$silent:D,$clearExternalErrorsOnChange:x,$clearExternalErrorsOnValidate:w,$anyDirty:a,$edited:U,$anyEdited:K,$name:Y,$haveAnyAsyncRule:re,$shortcuts:se,$validating:N,$tooltips:ee,$dirty:r,processShortcuts:oe,$silentValue:I,$inactive:X,$modifiers:ie,$isArrayOrRegleStatic:o}}),ae(),R=v(A.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(Z.value).forEach(t=>{t.$fieldDirty=e})}),B=v([A.$error,A.$correct,A.$invalid,A.$pending],()=>{Object.values(Z.value).forEach(e=>{e.$fieldError=A.$error.value,e.$fieldInvalid=A.$invalid.value,e.$fieldPending=A.$pending.value,e.$fieldCorrect=A.$correct.value})}),z=v(A.$haveAnyAsyncRule,X)}function ae(){L=v(n,()=>{A.$autoDirty.value&&!A.$silent.value&&(A.$dirty.value||U()),r.value instanceof Function&&Y(),(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&V(),A.$clearExternalErrorsOnChange.value&&ve()},{deep:A.$isArrayOrRegleStatic.value?!0:te?1:!0})}async function oe(){try{let{promise:e}=le(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse())));await e}catch{}}let Z=d({}),Q=d({});Y();function se(e,t){if(ce(),ve(),A.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=j(w),C.value=j(w);else if(e?.toInitialState)n.value=j(C.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,C.value=j(t),n.value=j(t)}else C.value=x(n.value)&&!de(n.value)?j(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&ve(),!t&&!e?.keepValidationState)for(let e of Object.values(Z.value))e.$reset();if(!A.$lazy.value&&!A.$silent.value&&!t)for(let e of Object.values(Z.value))e.$parse()}function ce(){`cancel`in V&&V.cancel()}function le(e){return H&&H.abort(),H=I(e),H}function $(){ce(),H&&H.abort()}function ue(e=!0,t=!1){A.$dirty.value||U(),t&&e?(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&(ce(),V()):e&&(ce(),V())}async function fe(e){try{if(e&&(n.value=e),_)return D?(ue(!1),D()):{valid:!1,data:n.value,errors:A.$errors.value,issues:A.$issues.value};let t=n.value;if(A.$dirty.value||(A.$dirty.value=!0),O(Z.value))return{valid:!0,data:t,errors:A.$errors.value,issues:A.$issues.value};$();let{promise:r}=le(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse()))),i=await r;return await s(),{valid:i.every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:A.$errors.value,issues:A.$issues.value}}catch{return{valid:!1,data:n.value,errors:A.$errors.value,issues:A.$issues.value}}}function pe(e){try{return e&&(n.value=e),A.$dirty.value||(A.$dirty.value=!0),_?!1:Object.values(Z.value).map(e=>e.$parseSync()).every(e=>!!e)}catch{return!1}}function me(e=!0){return A.$dirty.value?n.value:e?{_null:!0}:null}function he(e){h&&(h.value=e)}function ve(){h?.value?.length&&(h.value=[])}!A.$lazy.value&&!A.$dirty.value&&!A.$silent.value&&oe(),A.$immediateDirty.value&&(A.$dirty.value=!0);let{$shortcuts:ye,$validating:be,$autoDirty:Ce,$rewardEarly:we,$clearExternalErrorsOnChange:Te,$clearExternalErrorsOnValidate:Ee,$haveAnyAsyncRule:De,$debounce:Oe,$lazy:ke,...Ae}=A,je=u({...Ae,$externalErrors:h,$value:n,$initialValue:C,$originalValue:w,$rules:Z,...ye,$path:a,$isDebouncing:W,$reset:se,$touch:ue,$validate:fe,$validateSync:pe,$unwatch:re,$watch:ie,$extractDirtyFields:me,$clearExternalErrors:ve,$abort:$,$addRules:K,addRules:ee,$schemaMode:_,"~modifiers":A.$modifiers,$setExternalErrors:he,...Se(fe)});return Object.defineProperty(je,Symbol.for(`regle:instance`),{value:!0}),je}function we({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,schemaErrors:d,initialState:f,originalState:m,shortcuts:h,fieldName:g,schemaMode:_,overrides:v}){let y=s.value?.$id??l.$key??X(),b=`${r}.${String(y)}`,S=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:y,enumerable:!1,configurable:!1,writable:!1}}));let C=p(u?.value??[],i),w=e(()=>d?.value?.[i]),T=De({index:i,state:s,rulesDef:p(()=>l),customMessages:c,path:S,cachePath:b,storage:o,options:a,externalErrors:C,schemaErrors:w,initialState:f,originalState:m,shortcuts:h,fieldName:g,schemaMode:_,overrides:v});return T&&(T.$id=s.value?.$id??String(y),o.addArrayStatus(t,T.$id,T)),s.value&&(!x(s.value)||de(s.value))&&_&&T?.$touch(),T}function Te({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,schemaErrors:f,schemaMode:h,initialState:g,originalState:_,shortcuts:b,fieldName:x,overrides:S}){let C=t(),w,T=t(),E,D=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let k=d(),A=d(n.value),M=d({}),N,P,F=d({}),I=s.getCollectionsEntry(a);E=T.run(()=>({isPrimitiveArray: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=>$(e)||typeof e==`function`):!1:!1)})),L(),V();function L(){M.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(k.value=X(),Object.defineProperties(n.value,{$id:{value:k.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(k.value=n.value.$id)),A.value=F.value.$value,Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)?I.value=n.value.map((t,n)=>{let{scope:u,unwrapped:d}=ee(r.value.$each,p(()=>t),n);u&&D.push(u);let m=p(g.value??[],n),v=p(l?.value??{},`$each`),y=e(()=>f?.value?.$each);return we({$id:k.value,path:a,cachePath:o,customMessages:i,rules:d??{},stateValue:p(()=>t),index:n,options:c,storage:s,externalErrors:v,schemaErrors:y,initialState:m,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})||null}).filter(e=>!!e):I.value=[],F.value=Ce({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:p(l?.value??{},`$self`),schemaErrors:e(()=>f?.value?.$self),$isArray:!0,initialState:g,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})}function R(){if(Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)){let t=j(I.value);I.value=n.value.map((t,n)=>{let o=p(()=>t);if(t.$id&&I.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(k.value,t.$id);return e?(e.$value=o,e):null}else{let{scope:t,unwrapped:u}=ee(r.value.$each,o,n);t&&D.push(t);let d=p(l?.value??{},`$each`),m=e(()=>f?.value?.$each??[]);return we({$id:k.value,path:a,cachePath:a,customMessages:i,rules:u??{},stateValue:o,index:n,options:c,storage:s,externalErrors:d,schemaErrors:m,initialState:p(g.value??[],n),originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})||null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(k.value,t.toString())})}else I.value=[]}function z(){N=v(n,()=>{P?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?L():R(),B()},{deep:te?1:!0,flush:`pre`}),B()}function B(){P=v(n,()=>{w.$autoDirty.value&&!w.$silent.value&&F.value.$touch(!1,!0)},{flush:`post`})}function V(){z(),C=t(),w=C.run(()=>{let r=e({get:()=>n.value,set(e){N?.(),P?.(),n.value=e,z()}}),i=e(()=>F.value.$dirty&&(!I.value.length||I.value.every(e=>e.$dirty))),o=e(()=>F.value.$anyDirty||I.value.some(e=>e.$anyDirty)),s=e(()=>F.value.$invalid||I.value.some(e=>e.$invalid)),l=e(()=>(h?F.value.$correct:O(F.value.$rules)?!0:F.value.$correct)&&(!I.value.length||I.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),f=e(()=>F.value.$error||I.value.some(e=>e.$error)),p=e(()=>!(s.value||v.value)),v=e(()=>F.value.$pending||I.value.some(e=>e.$pending)),C=e(()=>!!I.value.length&&I.value.every(e=>e.$edited)),w=e(()=>F.value.$anyEdited||I.value.some(e=>e.$anyEdited)),T=e(()=>({$self:F.value.$issues,$each:I.value.map(e=>e.$issues)})),E=e(()=>({$self:F.value.$errors,$each:I.value.map(e=>e.$errors)})),k=e(()=>({$self:F.value.$silentErrors,$each:I.value.map(e=>e.$silentErrors)})),A=e(()=>M.value.$rewardEarly==null?m(c.rewardEarly)==null?!1:m(c.rewardEarly)===!0:M.value.$rewardEarly),j=e(()=>A.value?!0:M.value.$silent==null?m(c.silent)==null?!1:m(c.silent)===!0:M.value.$silent),L=e(()=>M.value.$autoDirty==null?m(c.autoDirty)==null?!0:m(c.autoDirty)===!0:M.value.$autoDirty),R=e(()=>M.value.$immediateDirty==null?m(c.immediateDirty)==null?!1:m(c.immediateDirty)===!0:M.value.$immediateDirty),B=e(()=>M.value.$clearExternalErrorsOnChange==null?m(c.clearExternalErrorsOnChange)==null?!0:m(c.clearExternalErrorsOnChange)===!0:M.value.$clearExternalErrorsOnChange),V=e(()=>M.value.$clearExternalErrorsOnValidate==null?m(c.clearExternalErrorsOnValidate)==null?!1:m(c.clearExternalErrorsOnValidate)===!0:M.value.$clearExternalErrorsOnValidate),H=e(()=>{if(M.value.$isEdited!=null)return M.value.$isEdited;if(S?.isEdited!=null)return S.isEdited}),U=e(()=>x??c.id??`root`),W=e(()=>({$deepCompare:M.value.$deepCompare??!1,$debounce:M.value.$debounce??0,$lazy:M.value.$lazy??!1,$rewardEarly:A.value,$autoDirty:L.value,$silent:j.value,$clearExternalErrorsOnChange:B.value,$clearExternalErrorsOnValidate:V.value,$immediateDirty:R.value,$isEdited:H.value,$disabled:m(c.disabled)??!1}));function G(){b?.collections&&Object.entries(b?.collections).forEach(([e,c])=>{let m=t();K[e]=m.run(()=>{let e=d();return y(()=>{e.value=c(u({$dirty:i,$error:f,$path:a,$silentValue:r,$pending:v,$invalid:s,$correct:l,$errors:E,$silentErrors:k,$initialValue:g,$originalValue:_,$ready:p,$anyDirty:o,$name:U,$each:I,$self:F,$value:n,$edited:C,$anyEdited:w,$issues:T}))}),e}),D.push(m)})}let K={};return G(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:f,$pending:v,$errors:E,$silentErrors:k,$ready:p,$name:U,$shortcuts:K,$silentValue:r,$edited:C,$anyEdited:w,$rewardEarly:A,$silent:j,$autoDirty:L,$issues:T,$modifiers:W}}),E.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 H(){N?.(),F.value&&F.value.$unwatch(),I.value&&I.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),C.stop(),C=t(),T.stop(),T=t(!0),D.forEach(e=>e.stop()),D=[]}function U(e=!0,t=!1){F.value.$touch(e,t),I.value.forEach(n=>{n.$touch(e,t)})}function W(e,t){if(H(),!t)if(e?.toOriginalState)n.value=j(_),g.value=j(_);else if(e?.toInitialState)n.value=j(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=j(t),n.value=j(t)}else g.value=j(n.value);e?.clearExternalErrors&&Y(),e?.keepValidationState||(F.value.$reset(e,t),I.value.forEach(t=>{t.$reset(e,!0)})),t||L()}function G(){F.value.$abort(),I.value.forEach(e=>{e.$abort()})}async function K(e){e&&(n.value=e);let t=n.value;try{return G(),{valid:(await Promise.allSettled([F.value.$validate(e),...I.value.map(e=>e.$validate())])).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:t,errors:w.$errors.value,issues:w.$issues.value}}catch{return{valid:!1,data:t,errors:w.$errors.value,issues:w.$issues.value}}}function q(e){e&&(n.value=e);try{return[F.value.$validateSync(e),...I.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function J(e){l?.value&&(l.value=e)}function Y(){F.value.$clearExternalErrors(),I.value.forEach(e=>{e.$clearExternalErrors()})}function ne(e=!0){let t=I.value.map(t=>{if(fe(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>O(e))&&(t=[]),t}let{$shortcuts:re,...ie}=w;return u({$self:F,...ie,...re,$path:a,$each:I,$value:n,$initialValue:g,$originalValue:_,$validate:K,$validateSync:q,$unwatch:H,$watch:V,$touch:U,$reset:W,$abort:G,$extractDirtyFields:ne,$clearExternalErrors:Y,$setExternalErrors:J,"~modifiers":w.$modifiers,...Se(K)})}function Ee({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:s,schemaErrors:c,rootSchemaErrors:l,validationGroups:f,initialState:h,originalState:_,fieldName:b,...S}){let C=t(),w,T=[],E=null,D=null,k=null,A=null,M=d(void 0);async function N(t=!0){let o=Object.entries(n.value).filter(([e])=>e!==`$self`),l=Object.fromEntries(o.reduce((t,[n,o])=>{if(!o)return t;let l=p(r.value??{},n),u=p(()=>o),d=p(s?.value??{},n),f=e(()=>c?.value?.[n]),m=p(h?.value??{},n);return t.push([n,De({state:l,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,schemaErrors:f,initialState:m,originalState:_?.[n],fieldName:n,...S})]),t},[])),u=Object.fromEntries(Object.entries(m(s)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=p(r.value??{},t),o=p(s?.value??{},t),l=e(()=>c?.value?.[t]),u=p(h?.value??{},t),d=i?`${i}.${t}`:t,f=a?`${a}.${t}`:t;return[t,De({state:n,rulesDef:e(()=>({})),path:d,cachePath:f,externalErrors:o,schemaErrors:l,initialState:u,originalState:_?.[t],fieldName:t,...S})]})),d=Object.fromEntries(Object.entries(m(c)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,l=p(r.value??{},t),u=p(s?.value??{},t),d=e(()=>c?.value?.[t]),f=p(h?.value??{},t);return[t,De({state:l,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,schemaErrors:d,initialState:f,originalState:_?.[t],fieldName:t,...S})]})),f=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=p(r.value??{},t),o=p(s?.value??{},t),l=e(()=>c?.value?.[t]),u=p(h?.value??{},t);return[t,De({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,schemaErrors:l,initialState:u,originalState:_?.[t],fieldName:t,...S})]}));F.value={...l,...u,...d,...f},t&&R()}function P(){n.value.$self&&(M.value=Ce({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:d(void 0),schemaErrors:d(void 0),initialState:p(h?.value??{},`$self`),originalState:_?.$self,fieldName:`$self`,...S}))}let F=S.storage.getFieldsEntry(a);N(),P();function I(){s&&(k=v(s,()=>{z(),N()},{deep:!0}))}function L(){A=v(r,()=>{z(),N(),w.$autoDirty.value&&!w.$silent.value&&U(!1,!0)},{flush:`post`})}function R(){o&&(E?.(),E=v(o,()=>{z(),N()},{deep:!0,flush:`pre`}),I()),l&&(D?.(),D=v(l,()=>{z(),N()},{deep:!0,flush:`post`})),L(),w=C.run(()=>{let a=e({get:()=>r.value,set(e){z(),r.value=e,N(),w.$autoDirty.value&&!w.$silent.value&&U(!1,!0)}}),o=e({get:()=>r.value,set(e){z(),r.value=e,N()}}),s=e(()=>{let e=F.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),c=e(()=>{let e=F.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),l=e(()=>{if(M.value?.$invalid)return!0;let e=F.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),p=e(()=>{let e=Object.entries(F.value).reduce((e,[t,n])=>((!pe(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!O(n.value.$self);if(e.length||t){let t=M.value?.$correct??!0,n=!1;return n=S.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>pe(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),v=e(()=>{if(M.value?.$error)return!0;let e=F.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),x=e(()=>m(S.options.rewardEarly)==null?!1:m(S.options.rewardEarly)),C=e(()=>m(S.options.silent)==null?!!x.value:m(S.options.silent)===!0),E=e(()=>m(S.options.autoDirty)==null?!0:m(S.options.autoDirty)===!0),D=e(()=>m(S.options.immediateDirty)==null?!1:m(S.options.immediateDirty)===!0),k=e(()=>m(S.options.lazy)==null?!1:m(S.options.lazy)===!0),A=e(()=>m(S.options.clearExternalErrorsOnChange)==null?!1:m(S.options.clearExternalErrorsOnChange)===!0),j=e(()=>m(S.options.clearExternalErrorsOnValidate)==null?!1:m(S.options.clearExternalErrorsOnValidate)===!0),P=e(()=>!(l.value||L.value)),I=d(!1),L=e(()=>{if(M.value?.$pending||I.value)return!0;let e=F.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),R=e(()=>{let e={...M.value&&{$self:M.value?.$issues??[]}};for(let t in F.value)e[t]=F.value[t]?.$issues;return e}),B=e(()=>{let e={...M.value&&{$self:M.value?.$errors??[]}};for(let t in F.value)e[t]=F.value[t]?.$errors;return e}),V=e(()=>{let e={...M.value&&{$self:M.value?.$silentErrors??[]}};for(let t in F.value)e[t]=F.value[t]?.$silentErrors;return e}),H=e(()=>{if(M.value?.$edited)return!0;if(!Object.keys(F.value).length)return!1;for(let e in F.value)if(!F.value[e]?.$edited)return!1;return!0}),W=e(()=>{if(M.value?.$anyEdited)return!0;for(let e in F.value)if(F.value[e]?.$anyEdited)return!0;return!1}),G=e(()=>b??S.options.id??`root`),K=e(()=>({autoDirty:E.value,lazy:k.value,rewardEarly:x.value,silent:C.value,clearExternalErrorsOnChange:A.value,clearExternalErrorsOnValidate:j.value,immediateDirty:D.value,id:m(S.options.id),disabled:m(S.options.disabled)}));function ee(){S.shortcuts?.nested&&Object.entries(S.shortcuts.nested).forEach(([e,n])=>{let a=t();J[e]=a.run(()=>{let e=d();return y(()=>{e.value=n(u({$dirty:s,$path:i,$value:r,$silentValue:o,$error:v,$originalValue:_,$pending:L,$invalid:l,$correct:p,$ready:P,$anyDirty:c,$name:G,$silentErrors:V,$initialValue:h,$errors:B,$fields:F,$edited:H,$anyEdited:W,$issues:R,$self:M,"~modifiers":g(S.options)}))}),e}),T.push(a)})}let q=e({get:()=>f?Object.fromEntries(Object.entries(f?.(F.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,ie(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,ae(t,e)]))}]:[])):{},set(){}}),J={};return ee(),{$dirty:s,$anyDirty:c,$invalid:l,$correct:p,$error:v,$pending:L,$issues:R,$errors:B,$silentErrors:V,$clearExternalErrorsOnValidate:j,$ready:P,$name:G,$shortcuts:J,$groups:q,$silentValue:o,$edited:H,$anyEdited:W,$localPending:I,$autoDirty:E,$silent:C,$value:a,$modifiers:K}})}function z(){if(E?.(),k?.(),A?.(),D?.(),T=[],w={},F.value)for(let e of Object.values(F.value))e?.$unwatch()}function B(e){s&&(s.value=e)}function V(){s&&!O(s.value)&&(s.value={})}function H(e,t){if(k?.(),z(),!t)if(e?.toOriginalState)r.value=j({..._}),h.value=j({..._});else if(e?.toInitialState)r.value=j({...h.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,h.value=j(t),r.value=j(t)}else h.value=j(r.value);if(!e?.keepValidationState){for(let t of Object.values(F.value))t?.$reset(e,!0);M.value?.$reset(e,!0)}e?.clearExternalErrors===!1&&V(),I(),t||N()}function U(e=!0,t=!1){for(let n of Object.values(F.value))n?.$touch(e,t);M.value?.$touch(e,t)}function W(e){return e.filter(([e,t])=>x(t)&&!de(t)?!(t&&typeof t==`object`&&`_null`in t)&&!O(t):Array.isArray(t)?t.length:!0)}function G(e=!0){let t=Object.entries(F.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=W(t)),Object.fromEntries(t)}function K(){for(let e of Object.values(F.value))e.$abort();M.value?.$abort()}async function ee(e){try{if(e&&(r.value=e),S.schemaMode)return S.onValidate?(U(!1),w.$localPending.value=!0,S.onValidate()):{valid:!1,data:r.value,errors:w.$errors.value,issues:w.$issues.value};{let e=r.value;K(),w.$clearExternalErrorsOnValidate.value&&V();let t=[...Object.values(F.value).map(e=>e.$validate()),...M.value?[M.value?.$validate()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:w.$errors.value,issues:w.$issues.value}}}catch{return{valid:!1,data:r.value,errors:w.$errors.value,issues:w.$issues.value}}finally{w.$localPending.value=!1}}function q(e){try{return e&&(r.value=e),w.$clearExternalErrorsOnValidate.value&&V(),[...Object.values(F.value).map(e=>e.$validateSync()),...M.value?[M.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}let{$shortcuts:J,$localPending:te,...Y}=w,X=u({...Y,...J,$path:i,$initialValue:h,$originalValue:_,$self:M,$externalErrors:s,$fields:F,$reset:H,$touch:U,$validate:ee,$unwatch:z,$watch:R,$setExternalErrors:B,$clearExternalErrors:V,$extractDirtyFields:G,$abort:K,$validateSync:q,...o?{"~modifiers":w.$modifiers}:{},...Se(ee)});return Object.defineProperty(X,Symbol.for(`regle:instance`),{value:!0}),y(()=>{for(let e of Object.keys(X).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete X[e];for(let e of Object.values(F.value))e?.$name&&Object.assign(X,{[e.$name]:e})}),X}function De({rulesDef:e,...n}){if(ce(e,n.state))return Te({rulesDef:e,...n});if(se(n.state,e)){if(K(n.state))return Ee({rulesDef:e,...n});{let r=t().run(()=>{let e=p(n.state.value?n.state:d({}));return v(()=>n.state.value,t=>{e.value=t},{deep:!0}),v(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return Ee({rulesDef:e,...a,state:r.fakeState})}}else if(le(e))return Ce({rulesDef:a(e.value)?e.value:e,...n})}function Oe({initialState:e,originalState:t,options:n,scopeRules:i,state:a,customRules:o,shortcuts:c,schemaErrors:u,schemaMode:f=!1,onValidate:p,overrides:h}){let g=he(),_=d(),y=d(),b,S,C;function T(){C=v(()=>m(n.disabled),async e=>{e?A():(k(),D())})}function E(e){S?.(),e&&(x(e)&&Object.keys(e).some(e=>e.includes(`.`))?y.value=w(e):Array.isArray(e)?y.value=e:y.value=e??{}),O()}function D(){b=v(()=>n.externalErrors?.value,E,{deep:!0})}function O(){S=v(()=>y.value,e=>{b?.(),n.externalErrors?.value&&(n.externalErrors.value=e),E(e),D()},{deep:!0})}function k(){se(a,i)?_.value=Ee({rootRules:i,rulesDef:i,state:a,customMessages:o?.(),storage:g,options:n,externalErrors:y,validationGroups:n.validationGroups,initialState:e,originalState:t,shortcuts:c,fieldName:void 0,path:``,cachePath:``,schemaErrors:u,rootSchemaErrors:u,schemaMode:f,onValidate:p,overrides:h}):le(i)&&(_.value=Ce({rulesDef:i,state:a,customMessages:o?.(),storage:g,options:n,externalErrors:y,initialState:e,originalState:t,shortcuts:c,fieldName:void 0,path:``,cachePath:``,schemaMode:f,schemaErrors:u,onValidate:p,overrides:h}))}E(n.externalErrors?.value),k(),m(n.disabled)?s().then(()=>{_.value?.$unwatch()}):D(),T();function A(){_.value?.$unwatch(),S?.(),b?.()}return r()&&l(()=>{A(),C?.()}),_}function ke({state:t,rulesFactory:n,options:r,globalOptions:o,customRules:s,shortcuts:c,overrides:l}){let u=a(n)?n:typeof n==`function`?void 0:e(()=>n),p=i(Z,void 0)??{},m={...p.modifiers,...o},g=()=>({...p.rules?.(),...s?.()}),_={...p.shortcuts,...c},v={...p.overrides,...l},b={...m,...r},S,C=f(u??{});typeof n==`function`&&(S=y(()=>{C.value=n(t),h(C)}));let w=d(x(t.value)?{...j(t.value)}:j(t.value)),T=x(t.value)?{...j(t.value)}:j(t.value);return ne(()=>{S?.()}),Oe({scopeRules:C,state:t,options:b,initialState:w,originalState:T,customRules:g,shortcuts:_,overrides:v})}function Ae(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s,c){let l=a(t)?t:d(t),u=e(()=>m(c?.disabled)??!1);return{r$:L(ke({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o}),u)}}return s}const je=Ae();function Me(){function e(e,t){return t}return e}const Ne=Me();function Pe(e,t){return S(m(e).$errors,String(t))}function Fe(e,t){return S(m(e).$issues,String(t))}function Ie(e){let t={};if(Object.entries(e).some(([e,t])=>$(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&x(r)&&`$each`in r&&r.$each&&x(r.$each)?t[n]=[Ie(r.$each)]:x(r)&&!O(r)&&!Object.entries(r).some(([e,t])=>$(t)||typeof t==`function`)?t[n]=Ie(r):t[n]=null}return t}function Le(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s){let c=a(t)?t:typeof t==`function`?void 0:e(()=>t),l=d(Ie(c?.value)),u=e(()=>m(s?.disabled)??!1);return L(ke({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o}),u)}return s}const Re=Le();function ze(e){if(D(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Be(this)}};return Object.defineProperty(n,`name`,{value:t.name}),Be(n)}return Be(e)}function Be(e){return!T(e,Q.REGLE_STATIC)&&Object.isExtensible(e)&&E(e,Q.REGLE_STATIC,!0),e}function Ve({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=Ae({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=Le({rules:e,modifiers:t,shortcuts:n,overrides:r});return i.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},a.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},{useRegle:i,inferRules:Me(),useRules:a}}function He(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?C(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?C(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?C(a.overrides,i):a.overrides??i,u=Ae({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:Me()}}function Ue(e){return e}function We(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)),l=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.$issues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$issues]))),h=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentIssues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentIssues]))),g=e(()=>r?Object.entries(t).map(([e,t])=>t.$errors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$errors]))),_=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentErrors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentErrors]))),v=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),b=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),x=e(()=>r?Object.values(t):t);function S(e){Object.values(t).forEach(t=>{t.$reset(e)})}function C(){Object.values(t).forEach(e=>{e.$touch()})}function w(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function T(e){Object.values(t).forEach(t=>{t.$setExternalErrors(e)})}function E(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}function D(e){try{return e&&(i.value=e),Object.values(t).every(t=>t.$validateSync(e))}catch{return!1}}async function O(e){try{e&&(i.value=e);let n=i.value;return{valid:(await Promise.allSettled(Object.values(t).map(e=>e.$validate()))).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:n,errors:g.value,issues:m.value}}catch{return{valid:!1,data:i.value,errors:g.value,issues:m.value}}}let k=u({...!r&&{$silentValue:a},$errors:g,$issues:m,$silentIssues:h,$silentErrors:_,$instances:x,$value:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:l,$error:d,$pending:p,$ready:f,$edited:v,$anyEdited:b,$reset:S,$touch:C,$validate:O,$validateSync:D,$extractDirtyFields:w,$clearExternalErrors:E,$setExternalErrors:T});return y(()=>{if(!r){for(let e of Object.keys(k).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete k[e];for(let[e,t]of Object.entries(x.value))Object.assign(k,{[e]:t})}}),k}function Ge(t,n){function r(r){let i=e(()=>m(r)),a=u({});c();let o=d(l(t.value)),s=u({r$:o});function c(){i.value&&(typeof i.value==`string`&&!t.value[i.value]?t.value[i.value]={}:Array.isArray(i.value)&&i.value.forEach(e=>{t.value[e]||(t.value[e]={})}))}v(i,c),v(t,e=>{o.value=l(e)},{deep:!0});function l(e){return i.value?typeof i.value==`string`?We(e[i.value]??{},!n.asRecord):(Object.keys(a).forEach(e=>{delete a[e]}),i.value.forEach(t=>{Object.entries(e[t]).forEach(([e,t])=>{Object.assign(a,{[e]:t})})}),We(a,!n.asRecord)):We(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Ke(t,r){let i=r??je;return{useScopedRegle:((r,a,o)=>{let{namespace:s,scopeKey:l,id:u,...f}=o??{};i.__config??={};let p=e(()=>u??l),h=e(()=>m(s)),g=d(`${Object.keys(t.value).length+1}-${X()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:y}=i(r,a,{...f,id:p.value});x(),ne(b),v(h,(e,t)=>{b(t),x()}),n()&&c(()=>{let e=n();typeof window<`u`&&e?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(e?.proxy?.$el?.parentElement)&&b()});function b(e){let n=e??h.value;n?t.value[n]&&delete t.value[n][_.value]:t.value[`~~global`][_.value]&&delete t.value[`~~global`][_.value]}function x(){h.value?(t.value[h.value]||(t.value[h.value]={}),t.value[h.value][_.value]=y):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][_.value]=y)}return{r$:y,dispose:b,register:x}})}}function qe(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):re(()=>d({"~~global":{}})))(),{useScopedRegle:n}=Ke(t,e?.customUseRegle),{useCollectScope:r}=Ge(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:Je,useScopedRegle:Ye}=qe(),Xe=Je,Ze=Ye;function Qe(t,n,r){let i=e(()=>m(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if($(t))return m(t._params?.[0])===i.value}})||r.find(e=>x(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function $e(e,t,n){return!!e&&t in e&&x(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function et(e,t,n,r){let i=a(e)?p(e.value,`$fields`):p(e,`$fields`),o=d();return v(i,async()=>{await s(),$e(i.value,t,n)?o.value=p(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function tt(e){return e}function nt(e,t){return n=>C({...e},t(n))}const rt={install(e,t){e.provide(oe,me),t&&e.provide(Z,t)}};export{R as InternalRuleType,rt as RegleVuePlugin,U as createRule,qe as createScopedUseRegle,Qe as createVariant,Ve as defineRegleConfig,Ue as defineRegleOptions,tt as defineRules,He as extendRegleConfig,ye as flatErrors,Pe as getErrors,Fe as getIssues,Ne as inferRules,G as isRegleInstance,ze as markStatic,We as mergeRegles,$e as narrowVariant,nt as refineRules,z as unwrapRuleParameters,Xe as useCollectScope,je as useRegle,Oe as useRootStorage,Re as useRules,Ze as useScopedRegle,et as variantToRef};
7
+ import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,inject as i,isRef as a,markRaw as o,nextTick as s,onMounted as c,onScopeDispose as l,reactive as u,ref as d,shallowRef as f,toRef as p,toValue as m,triggerRef as h,unref as g,version as _,watch as v,watchEffect as y}from"vue";function b(e){return e?.constructor?.name==`File`}function x(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function S(e,t,n){if(!e)return n;var r,i;if(Array.isArray(t)&&(r=t.slice(0)),typeof t==`string`&&(r=t.split(`.`)),typeof t==`symbol`&&(r=[t]),!Array.isArray(r))throw Error(`props arg must be an array, a string or a symbol`);for(;r.length;)if(i=r.shift(),!e||!i||(e=e[i],e===void 0))return n;return e}function C(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 w(e){let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n],i=n.split(`.`),a=t;for(let e=0;e<i.length;e++){let t=i[e],n=e===i.length-1,o=t.match(/^\d+$/)?Number(t):null;if(o!==null){if(Array.isArray(a))if(n)a[o]=r;else{if(typeof a[o]!=`object`||a[o]===null){let t=i[e+1];a[o]=t&&t.match(/^\d+$/)?{$each:[],$self:[]}:{}}a=`$each`in a[o]?a[o].$each:a[o]}}else if(n)if(Array.isArray(a[t])){let e=a[t].slice();a[t]={},a[t].$self=e}else typeof a[t]==`object`&&a[t]!==null&&`$each`in a[t]?a[t].$self=r:a[t]=r;else{let n=i[e+1];if(Array.isArray(a[t])){let e=a[t].slice();a[t]={$each:[]},a[t].$self=e}(typeof a[t]!=`object`||a[t]===null||Array.isArray(a[t])&&!n.match(/^\d+$/))&&(n&&n.match(/^\d+$/)?a[t]={$each:[],$self:[]}:a[t]={}),a=`$each`in a[t]?a[t].$each:a[t]}}}return t}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function E(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function D(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function O(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):b(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:x(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const k=Symbol(`regle-rule`);function A(e){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 j(e,t=0){if(t>20)return e;let n=e,r={}.toString.call(e).slice(8,-1);if(r==`Set`&&(n=new Set([...e].map(e=>j(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[j(e[0]),j(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,A(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=j(e[r],t++)}return n}function M(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 N(e,t,{immediate:n=!1,trackDebounceRef:r}={}){let i,a=(...a)=>{r&&(r.value=!0);function o(){r&&(r.value=!1)}return new Promise((r,s)=>{function c(e){r(e),o()}if(clearTimeout(i),i=setTimeout(()=>{if(o(),i=void 0,!n)try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}},t),n){o();try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}}})};return a.cancel=()=>{clearTimeout(i),i=void 0,r&&(r.value=!1)},a}function P(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(!P(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];if(x(e)&&x(t)&&s&&(r||!r&&n)&&!P(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var F=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function I(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new F)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new F):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new F):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function L(e,t){if(!a(e))return u(e);let r=d(!1);return n()&&c(async()=>{await s(),typeof window<`u`&&window.requestAnimationFrame(()=>{r.value=!0})}),u(new Proxy({},{get(n,i,a){if(t.value&&i!==`$value`&&r.value)return Reflect.get(n,i,a);if(e.value!==void 0)return g(Reflect.get(e.value,i,a))},set(t,n,r){return a(e.value[n])&&!a(r)?e.value[n].value=r:e.value[n]=r,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return e.value===void 0?!1:Reflect.has(e.value,n)},ownKeys(){return e.value===void 0?[]:Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}}))}const R={Inline:`__inline`,Async:`__async`};function z(e){try{return e.map(e=>m(e))}catch{return[]}}function B(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:p(()=>t))}function V(e){let t=e.toString().replace(/\/\/.*$/gm,``).replace(/\/\*[\s\S]*?\*\//g,``).match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return t?(t[0]||t[1]||t[2]||t[3]||t[4]||``).split(`,`).map(e=>e.trim()).filter(e=>e.length>0).length:0}function H(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===R.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...z(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:z(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:z(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:z(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...z(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)},type:r,_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:a,_params:B(t),_brand:k})}function U(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=H({...e,async:n},...t);if(V(e.validator)>1){let t=function(...t){return H(e,...t)};return t.validator=r.validator,t.message=r.message,t.active=r.active,t.tooltip=r.tooltip,t.type=r.type,t.exec=r.exec,t._validator=r.validator,t._message=r.message,t._active=r.active,t._tooltip=r.tooltip,t._type=e.type,t._message_pacthed=!1,t._tooltip_pacthed=!1,t._async=n,t}else return r}throw Error(`[createRule] validator must be a function`)}const W=Symbol.for(`regle:instance`);function G(e){return typeof e==`object`&&!!e&&W in e}function K(e){return x(e.value)}function ee(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const q={LessThan:-1,EqualTo:0,GreaterThan:1};function J(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 q.GreaterThan;if(i>t)return q.LessThan;if(!isNaN(t)&&isNaN(i))return q.GreaterThan;if(isNaN(t)&&!isNaN(i))return q.LessThan}return q.EqualTo}const te=J(_,`3.5.0`)!==-1;function Y(){return Math.floor(Math.random()*Date.now()).toString()}function X(){return typeof window>`u`?Y():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ne(e){return r()?(l(e),!0):!1}function re(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function ie(e,t){return e.some(e=>t?e?.[t]:!1)}function ae(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const oe=Symbol(`regle`),Z=Symbol(`regle-config`),Q={REGLE_STATIC:`__regle_static`};function se(e,t){return!de(e.value)&&(K(e)||x(t.value)&&!O(t.value)&&!Object.entries(t.value).some(([e,t])=>$(t)||typeof t==`function`))}function ce(e,t){return!!e.value&&x(e.value)&&`$each`in e.value||Array.isArray(t.value)}function le(e){return!!e.value&&(x(e.value)||K(e.value))}function $(e){return(x(e)||typeof e==`function`)&&`_validator`in e}function ue(e){return typeof e.value==`function`?`_validator`in e.value:!0}function de(e){return x(e)&&T(e,Q.REGLE_STATIC)&&e[Q.REGLE_STATIC]===!0}function fe(e){return x(e)&&`$fields`in e}function pe(e){return!!e&&`$rules`in e}var me=`1.21.0-beta.2`;function he(){let e=f(new Map),t=f(new Map),n=f(new Map),i=f(new Map),a=f(new Map),o=f(new Map),s=f(new Map);function c(e){let n=t.value.get(e);if(n)return n;{let n=d({});return t.value.set(e,n),n}}function u(e){let t=n.value.get(e);if(t)return t;{let t=d([]);return n.value.set(e,t),t}}function p(e,t){o.value.set(e,t)}function m(e){return o.value.get(e)}function h(e,t,n){s.value.set(`${e}-${t}`,n)}function g(e,t){return s.value.get(`${e}-${t}`)}function _(e,t){e&&t!=null&&s.value.delete(`${e}-${t}`)}function v(e,t){i.value.set(e,t)}function y(e){return i.value.get(e)??!1}function b(t,n){e.value.set(t,n)}function x(t,n){let r=e.value.get(t);if(r)return S(n,r)?{valid:!0}:{valid:!1}}function S(e,t){let n=Object.keys(t),r=Object.keys(e);return r.length!==n.length||!r.every(e=>n.includes(e))?!1:r.every(n=>{let r=e[n],i=t[n];if(!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`||typeof r==`string`)return!1;if(`_params`in r){if(!r._params)return!0;if(Array.isArray(r._params))return r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`||typeof i==`string`)return!0;{let e=z(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=z(r._params);return e?.[t]===n?.[t]}})}})}function C(e){let t=a.value.get(e);if(t)return t;{let t=d(!1),n=d(!0),r=d({}),i=d(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}return r()&&l(()=>{e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),s.value.clear()}),{addRuleDeclEntry:b,setDirtyEntry:v,checkRuleDeclEntry:x,getDirtyState:y,trySetRuleStatusRef:C,getFieldsEntry:c,getCollectionsEntry:u,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:_,arrayStatusStorage:s,addAdditionalRulesEntry:p,getAdditionalRulesEntry:m}}function ge({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;return{$message:i,$property:e.fieldName,$rule:n,$type:r.$type,...typeof r.$metadata==`object`?r.$metadata:{}}}).filter(e=>!!e).reduce((e,t)=>(typeof t.$message==`string`?e.push(t):e.push(...t.$message.map(e=>({...t,$message:e}))),e),[]),r=e.$error&&e.$externalErrors&&Array.isArray(e.$externalErrors)?e.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=[];return e.$schemaErrors&&e.$error&&(i=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i]}function _e({field:e}){let t=[];for(let n of Object.values(e.$rules??{})){let e=n.$tooltip;e&&(typeof e==`string`?t.push(e):t.push(...e))}return t}function ve(e){return x(e)&&`$each`in e}function ye(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!x(e)))return e;if(ve(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>be(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>be(t,n,[e])).flat()}function be(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!x(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(ve(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>be(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>be(n,t,r?.concat(e))).flat()}function xe({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let f=t(),p={},m,h=e(()=>$(r.value)&&r.value._async),g=d(!1),{$pending:_,$valid:y,$metadata:b,$validating:x}=c.trySetRuleStatusRef(`${s}.${i}`);function S(){f=t(),p=f.run(()=>{let t=d(!1),s=d(!1),c=d(!0),l=d(!1),u=d(!1),f=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:u.value,$invalid:c.value,$rule:{$valid:y.value,$invalid:!y.value,$pending:_.value},$params:S.value,...b.value})),p=e(()=>{try{return ue(r)?typeof r.value.active==`function`?r.value.active(f.value):!!r.value.active:!0}catch(e){return console.error(`Error in "active" function for "${o}.${i}" rule`,{cause:e}),!0}});function m(e){try{let t=``,a=n?n[i]?.[e]:void 0;if(a&&(t=typeof a==`function`?a(f.value):a),ue(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}catch(t){return console.error(`Error in "${e}" function for "${o}.${i}" rule`,{cause:t}),``}}let h=e(()=>{let e=m(`message`);return O(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),v=e(()=>ue(r)&&r.value.type?r.value.type:i),x=e(()=>ue(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:z(r.value._params??[]));return{$active:p,$message:h,$type:v,$validator:x,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:u,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=v(p?.$params,()=>{(!l.$silent.value||l.$rewardEarly.value&&p.$fieldError.value)&&E()},{deep:te?1:!0})}S();function C(){y.value=!0,p.$fieldDirty.value&&(_.value=!0)}async function w(){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;C();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,b.value=n}}catch{e=!1}finally{_.value=!1}return e}function T(e,t=!0){if($(r.value)&&r.value._async)return!0;let n=e(a.value,...p.$params.value);if(n instanceof Promise)return!0;if(n!=null){if(typeof n==`boolean`)return n;{let{$valid:e,...t}=n;return b.value=t,e}}return!0}async function E(){try{x.value=!0;let e=!1;if(g.value=!0,$(r.value)&&r.value._async)e=await w();else{let t=p.$validator.value;e=T(t)}return y.value=e,e}catch{return!1}finally{x.value=!1,g.value=!1}}function D(){try{return x.value=!0,T(p.$validator.value)}catch{return!1}finally{x.value=!1}}function k(){y.value=!0,b.value={},_.value=!1,x.value=!1,S()}function A(){m(),f.stop(),f=t()}return u({...p,$pending:_,$valid:y,$metadata:b,$haveAsync:h,$maybePending:g,$validating:x,$parse:E,$parseSync:D,$unwatch:A,$watch:S,$reset:k})}function Se(e){return{"~standard":{version:1,vendor:`regle`,validate:async t=>{let{valid:n,data:r,errors:i}=await e(t,!0);return n?{value:r,issues:[]}:{issues:ye(i,{includePath:!0})}}}}}function Ce({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:f,externalErrors:h,schemaErrors:g,schemaMode:_,onUnwatch:b,$isArray:S,initialState:C,originalState:w,shortcuts:T,overrides:E,onValidate:D}){let k=t(),A,F=[],L,R,z,B,V=()=>{},H,U=()=>{},W=d(!1),G=d(l.getAdditionalRulesEntry(o)??{});function K(e){G.value=e??{},l.addAdditionalRulesEntry(o,e??{}),q(),V()}function ee(e){K(e)}function q(){let e={...r.value,...G.value},t=[];for(let r in e){if(r.startsWith(`$`)||r.startsWith(`~`))continue;let s=e[r];if(!s)continue;let c=p(()=>s);t.push([r,xe({modifiers:{$silent:A.$silent,$rewardEarly:A.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:Q.value.$debounce})])}Z.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function J(){let e={...r.value,...G.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return Q.value=n,t}function Y(){let e=J();ie(),q(),A.processShortcuts(),X(),ne(),e?.valid!=null&&(A.$dirty.value=l.getDirtyState(o),(A.$dirty.value&&!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&V()),l.addRuleDeclEntry(o,r.value)}function X(){V=A.$debounce.value>0?N(oe,A.$debounce.value,{trackDebounceRef:W}):oe}function ne(){U=A.$debounce.value>0?N(()=>{A.$dirty.value=!0},A.$debounce.value):()=>{A.$dirty.value=!0}}function re(){if(Z.value)for(let e of Object.values(Z.value))e.$unwatch();R(),B?.(),A.$dirty.value&&l.setDirtyEntry(o,A.$dirty.value),L?.(),k.stop(),k=t();for(let e of F)e.stop();F=[],b?.(),z?.()}function ie(){if(Z.value)for(let e of Object.values(Z.value))e.$watch();A=k.run(()=>{let r=d(!1),i=d(!1),a=e(()=>r.value),o=e(()=>S||de(n.value)),s=e(()=>Q.value.$debounce==null?A.$haveAnyAsyncRule.value?200:0:Q.value.$debounce),l=e(()=>Q.value.$deepCompare==null?!1:Q.value.$deepCompare),p=e(()=>Q.value.$lazy==null?m(f.lazy)==null?!1:m(f.lazy)===!0:Q.value.$lazy),v=e(()=>Q.value.$immediateDirty==null?m(f.immediateDirty)==null?!1:m(f.immediateDirty)===!0:Q.value.$immediateDirty),b=e(()=>Q.value.$rewardEarly==null?m(f.rewardEarly)==null?!1:m(f.rewardEarly)===!0:!!Q.value.$rewardEarly),x=e(()=>Q.value.$clearExternalErrorsOnChange==null?m(f.clearExternalErrorsOnChange)==null?!D.value:m(f.clearExternalErrorsOnChange)===!0:!!Q.value.$clearExternalErrorsOnChange),w=e(()=>Q.value.$clearExternalErrorsOnValidate==null?m(f.clearExternalErrorsOnValidate)==null?!1:m(f.clearExternalErrorsOnValidate)===!0:!!Q.value.$clearExternalErrorsOnValidate),D=e(()=>b.value?!0:Q.value.$silent==null?m(f.silent)==null?!1:m(f.silent)===!0:Q.value.$silent),k=e(()=>Q.value.$autoDirty==null?m(f.autoDirty)==null?!0:m(f.autoDirty)===!0:Q.value.$autoDirty),j=e(()=>{if(Q.value.$isEdited!=null)return Q.value.$isEdited;if(E?.isEdited!=null)return E.isEdited}),N=e(()=>{for(let e of Object.values(Z.value))if(e.$validating)return!0;return!1}),I=e({get:()=>n.value,set(e){L(),n.value=e,ae()}}),R=e(()=>W.value?te.value&&r.value:te.value&&!J.value&&r.value),z=e(()=>ge({field:{$rules:Z.value,$error:R.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:Y.value}})),B=e(()=>ge({field:{$rules:Z.value,$error:R.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:Y.value},silent:!0})),V=e(()=>z.value.map(e=>e.$message)),H=e(()=>B.value.map(e=>e.$message)),U=d(!1);function G(e,t){return t instanceof Date&&e instanceof Date?M(t).getDate()!==M(e).getDate():t==null?!!e:Array.isArray(e)&&Array.isArray(t)?!P(e,t,Q.value.$deepCompare):t!==e}y(()=>{r.value?j.value?U.value=j.value(n.value,C.value,G):U.value=G(n.value,C.value):U.value=!1});let K=e(()=>U.value),ee=e(()=>_e({field:{$rules:Z.value}})),q=e(()=>!(te.value||J.value)),J=e(()=>i.value||!b.value?Object.entries(Z.value).some(([e,t])=>t.$pending):!1),te=e(()=>h?.value?.length||g?.value?.length?!0:X.value?!1:Object.values(Z.value).some(e=>!e.$valid||e.$maybePending)),Y=e(()=>c??f.id??`root`),X=e(()=>!_&&!Object.keys(Z.value).some(e=>!e.startsWith(`$`))),ne=e(()=>{if(h?.value?.length||X.value||W.value)return!1;if(r.value&&!O(n.value)&&!N.value&&!J.value){if(_)return!g?.value?.length;{let e=Object.values(Z.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),re=e(()=>Object.values(Z.value).some(e=>e.$haveAsync)),ie=e(()=>({$debounce:s.value,$lazy:p.value,$rewardEarly:b.value,$autoDirty:k.value,$silent:D.value,$clearExternalErrorsOnChange:x.value,$clearExternalErrorsOnValidate:w.value,$immediateDirty:v.value,$isEdited:j.value,$disabled:m(f.disabled)??!1}));function oe(){T?.fields&&Object.entries(T.fields).forEach(([e,i])=>{let o=t();se[e]=o.run(()=>{let e=d();return y(()=>{e.value=i(u({$dirty:r,$externalErrors:h?.value??[],$value:n,$silentValue:I,$rules:Z,$error:R,$pending:J,$invalid:te,$correct:ne,$errors:V,$ready:q,$silentErrors:H,$anyDirty:a,$tooltips:ee,$name:Y,$inactive:X,$edited:U,$anyEdited:K}))}),e}),F.push(o)})}let se={};return{$error:R,$pending:J,$invalid:te,$correct:ne,$debounce:s,$deepCompare:l,$lazy:p,$immediateDirty:v,$ready:q,$issues:z,$silentIssues:B,$errors:V,$silentErrors:H,$rewardEarly:b,$autoDirty:k,$silent:D,$clearExternalErrorsOnChange:x,$clearExternalErrorsOnValidate:w,$anyDirty:a,$edited:U,$anyEdited:K,$name:Y,$haveAnyAsyncRule:re,$shortcuts:se,$validating:N,$tooltips:ee,$dirty:r,processShortcuts:oe,$silentValue:I,$inactive:X,$modifiers:ie,$isArrayOrRegleStatic:o}}),ae(),R=v(A.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(Z.value).forEach(t=>{t.$fieldDirty=e})}),B=v([A.$error,A.$correct,A.$invalid,A.$pending],()=>{Object.values(Z.value).forEach(e=>{e.$fieldError=A.$error.value,e.$fieldInvalid=A.$invalid.value,e.$fieldPending=A.$pending.value,e.$fieldCorrect=A.$correct.value})}),z=v(A.$haveAnyAsyncRule,X)}function ae(){L=v(n,()=>{A.$autoDirty.value&&!A.$silent.value&&(A.$dirty.value||U()),r.value instanceof Function&&Y(),(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&V(),A.$clearExternalErrorsOnChange.value&&ve()},{deep:A.$isArrayOrRegleStatic.value?!0:te?1:!0})}async function oe(){try{let{promise:e}=le(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse())));await e}catch{}}let Z=d({}),Q=d({});Y();function se(e,t){if(ce(),ve(),A.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=j(w),C.value=j(w);else if(e?.toInitialState)n.value=j(C.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,C.value=j(t),n.value=j(t)}else C.value=x(n.value)&&!de(n.value)?j(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&ve(),!t&&!e?.keepValidationState)for(let e of Object.values(Z.value))e.$reset();if(!A.$lazy.value&&!A.$silent.value&&!t)for(let e of Object.values(Z.value))e.$parse()}function ce(){`cancel`in V&&V.cancel()}function le(e){return H&&H.abort(),H=I(e),H}function $(){ce(),H&&H.abort()}function ue(e=!0,t=!1){A.$dirty.value||U(),t&&e?(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&(ce(),V()):e&&(ce(),V())}async function fe(e){try{if(e&&(n.value=e),_)return D?(ue(!1),D()):{valid:!1,data:n.value,errors:A.$errors.value,issues:A.$issues.value};let t=n.value;if(A.$dirty.value||(A.$dirty.value=!0),O(Z.value))return{valid:!0,data:t,errors:A.$errors.value,issues:A.$issues.value};$();let{promise:r}=le(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse()))),i=await r;return await s(),{valid:i.every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:A.$errors.value,issues:A.$issues.value}}catch{return{valid:!1,data:n.value,errors:A.$errors.value,issues:A.$issues.value}}}function pe(e){try{return e&&(n.value=e),A.$dirty.value||(A.$dirty.value=!0),_?!1:Object.values(Z.value).map(e=>e.$parseSync()).every(e=>!!e)}catch{return!1}}function me(e=!0){return A.$dirty.value?n.value:e?{_null:!0}:null}function he(e){h&&(h.value=e)}function ve(){h?.value?.length&&(h.value=[])}!A.$lazy.value&&!A.$dirty.value&&!A.$silent.value&&oe(),A.$immediateDirty.value&&(A.$dirty.value=!0);let{$shortcuts:ye,$validating:be,$autoDirty:Ce,$rewardEarly:we,$clearExternalErrorsOnChange:Te,$clearExternalErrorsOnValidate:Ee,$haveAnyAsyncRule:De,$debounce:Oe,$lazy:ke,...Ae}=A,je=u({...Ae,$externalErrors:h,$value:n,$initialValue:C,$originalValue:w,$rules:Z,...ye,$path:a,$isDebouncing:W,$reset:se,$touch:ue,$validate:fe,$validateSync:pe,$unwatch:re,$watch:ie,$extractDirtyFields:me,$clearExternalErrors:ve,$abort:$,$addRules:K,addRules:ee,$schemaMode:_,"~modifiers":A.$modifiers,$setExternalErrors:he,...Se(fe)});return Object.defineProperty(je,Symbol.for(`regle:instance`),{value:!0}),je}function we({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,schemaErrors:d,initialState:f,originalState:m,shortcuts:h,fieldName:g,schemaMode:_,overrides:v}){let y=s.value?.$id??l.$key??X(),b=`${r}.${String(y)}`,S=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:y,enumerable:!1,configurable:!1,writable:!1}}));let C=p(u?.value??[],i),w=e(()=>d?.value?.[i]),T=De({index:i,state:s,rulesDef:p(()=>l),customMessages:c,path:S,cachePath:b,storage:o,options:a,externalErrors:C,schemaErrors:w,initialState:f,originalState:m,shortcuts:h,fieldName:g,schemaMode:_,overrides:v});return T&&(T.$id=s.value?.$id??String(y),o.addArrayStatus(t,T.$id,T)),s.value&&(!x(s.value)||de(s.value))&&_&&T?.$touch(),T}function Te({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,schemaErrors:f,schemaMode:h,initialState:g,originalState:_,shortcuts:b,fieldName:x,overrides:S}){let C=t(),w,T=t(),E,D=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let k=d(),A=d(n.value),M=d({}),N,P,F=d({}),I=s.getCollectionsEntry(a);E=T.run(()=>({isPrimitiveArray: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=>$(e)||typeof e==`function`):!1:!1)})),L(),V();function L(){M.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(k.value=X(),Object.defineProperties(n.value,{$id:{value:k.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(k.value=n.value.$id)),A.value=F.value.$value,Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)?I.value=n.value.map((t,n)=>{let{scope:u,unwrapped:d}=ee(r.value.$each,p(()=>t),n);u&&D.push(u);let m=p(g.value??[],n),v=p(l?.value??{},`$each`),y=e(()=>f?.value?.$each);return we({$id:k.value,path:a,cachePath:o,customMessages:i,rules:d??{},stateValue:p(()=>t),index:n,options:c,storage:s,externalErrors:v,schemaErrors:y,initialState:m,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})||null}).filter(e=>!!e):I.value=[],F.value=Ce({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:p(l?.value??{},`$self`),schemaErrors:e(()=>f?.value?.$self),$isArray:!0,initialState:g,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})}function R(){if(Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)){let t=j(I.value);I.value=n.value.map((t,n)=>{let o=p(()=>t);if(t.$id&&I.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(k.value,t.$id);return e?(e.$value=o,e):null}else{let{scope:t,unwrapped:u}=ee(r.value.$each,o,n);t&&D.push(t);let d=p(l?.value??{},`$each`),m=e(()=>f?.value?.$each??[]);return we({$id:k.value,path:a,cachePath:a,customMessages:i,rules:u??{},stateValue:o,index:n,options:c,storage:s,externalErrors:d,schemaErrors:m,initialState:p(g.value??[],n),originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})||null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(k.value,t.toString())})}else I.value=[]}function z(){N=v(n,()=>{P?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?L():R(),B()},{deep:te?1:!0,flush:`pre`}),B()}function B(){P=v(n,()=>{w.$autoDirty.value&&!w.$silent.value&&F.value.$touch(!1,!0)},{flush:`post`})}function V(){z(),C=t(),w=C.run(()=>{let r=e({get:()=>n.value,set(e){N?.(),P?.(),n.value=e,z()}}),i=e(()=>F.value.$dirty&&(!I.value.length||I.value.every(e=>e.$dirty))),o=e(()=>F.value.$anyDirty||I.value.some(e=>e.$anyDirty)),s=e(()=>F.value.$invalid||I.value.some(e=>e.$invalid)),l=e(()=>(h?F.value.$correct:O(F.value.$rules)?!0:F.value.$correct)&&(!I.value.length||I.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),f=e(()=>F.value.$error||I.value.some(e=>e.$error)),p=e(()=>!(s.value||v.value)),v=e(()=>F.value.$pending||I.value.some(e=>e.$pending)),C=e(()=>!!I.value.length&&I.value.every(e=>e.$edited)),w=e(()=>F.value.$anyEdited||I.value.some(e=>e.$anyEdited)),T=e(()=>({$self:F.value.$issues,$each:I.value.map(e=>e.$issues)})),E=e(()=>({$self:F.value.$errors,$each:I.value.map(e=>e.$errors)})),k=e(()=>({$self:F.value.$silentErrors,$each:I.value.map(e=>e.$silentErrors)})),A=e(()=>M.value.$rewardEarly==null?m(c.rewardEarly)==null?!1:m(c.rewardEarly)===!0:M.value.$rewardEarly),j=e(()=>A.value?!0:M.value.$silent==null?m(c.silent)==null?!1:m(c.silent)===!0:M.value.$silent),L=e(()=>M.value.$autoDirty==null?m(c.autoDirty)==null?!0:m(c.autoDirty)===!0:M.value.$autoDirty),R=e(()=>M.value.$immediateDirty==null?m(c.immediateDirty)==null?!1:m(c.immediateDirty)===!0:M.value.$immediateDirty),B=e(()=>M.value.$clearExternalErrorsOnChange==null?m(c.clearExternalErrorsOnChange)==null?!0:m(c.clearExternalErrorsOnChange)===!0:M.value.$clearExternalErrorsOnChange),V=e(()=>M.value.$clearExternalErrorsOnValidate==null?m(c.clearExternalErrorsOnValidate)==null?!1:m(c.clearExternalErrorsOnValidate)===!0:M.value.$clearExternalErrorsOnValidate),H=e(()=>{if(M.value.$isEdited!=null)return M.value.$isEdited;if(S?.isEdited!=null)return S.isEdited}),U=e(()=>x??c.id??`root`),W=e(()=>({$deepCompare:M.value.$deepCompare??!1,$debounce:M.value.$debounce??0,$lazy:M.value.$lazy??!1,$rewardEarly:A.value,$autoDirty:L.value,$silent:j.value,$clearExternalErrorsOnChange:B.value,$clearExternalErrorsOnValidate:V.value,$immediateDirty:R.value,$isEdited:H.value,$disabled:m(c.disabled)??!1}));function G(){b?.collections&&Object.entries(b?.collections).forEach(([e,c])=>{let m=t();K[e]=m.run(()=>{let e=d();return y(()=>{e.value=c(u({$dirty:i,$error:f,$path:a,$silentValue:r,$pending:v,$invalid:s,$correct:l,$errors:E,$silentErrors:k,$initialValue:g,$originalValue:_,$ready:p,$anyDirty:o,$name:U,$each:I,$self:F,$value:n,$edited:C,$anyEdited:w,$issues:T}))}),e}),D.push(m)})}let K={};return G(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:f,$pending:v,$errors:E,$silentErrors:k,$ready:p,$name:U,$shortcuts:K,$silentValue:r,$edited:C,$anyEdited:w,$rewardEarly:A,$silent:j,$autoDirty:L,$issues:T,$modifiers:W}}),E.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 H(){N?.(),F.value&&F.value.$unwatch(),I.value&&I.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),C.stop(),C=t(),T.stop(),T=t(!0),D.forEach(e=>e.stop()),D=[]}function U(e=!0,t=!1){F.value.$touch(e,t),I.value.forEach(n=>{n.$touch(e,t)})}function W(e,t){if(H(),!t)if(e?.toOriginalState)n.value=j(_),g.value=j(_);else if(e?.toInitialState)n.value=j(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=j(t),n.value=j(t)}else g.value=j(n.value);e?.clearExternalErrors&&Y(),e?.keepValidationState||(F.value.$reset(e,t),I.value.forEach(t=>{t.$reset(e,!0)})),t||L()}function G(){F.value.$abort(),I.value.forEach(e=>{e.$abort()})}async function K(e){e&&(n.value=e);let t=n.value;try{return G(),{valid:(await Promise.allSettled([F.value.$validate(e),...I.value.map(e=>e.$validate())])).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:t,errors:w.$errors.value,issues:w.$issues.value}}catch{return{valid:!1,data:t,errors:w.$errors.value,issues:w.$issues.value}}}function q(e){e&&(n.value=e);try{return[F.value.$validateSync(e),...I.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function J(e){l?.value&&(l.value=e)}function Y(){F.value.$clearExternalErrors(),I.value.forEach(e=>{e.$clearExternalErrors()})}function ne(e=!0){let t=I.value.map(t=>{if(fe(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>O(e))&&(t=[]),t}let{$shortcuts:re,...ie}=w;return u({$self:F,...ie,...re,$path:a,$each:I,$value:n,$initialValue:g,$originalValue:_,$validate:K,$validateSync:q,$unwatch:H,$watch:V,$touch:U,$reset:W,$abort:G,$extractDirtyFields:ne,$clearExternalErrors:Y,$setExternalErrors:J,"~modifiers":w.$modifiers,...Se(K)})}function Ee({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:s,schemaErrors:c,rootSchemaErrors:l,validationGroups:f,initialState:h,originalState:_,fieldName:b,...S}){let C=t(),w,T=[],E=null,D=null,k=null,A=null,M=d(void 0);async function N(t=!0){let o=Object.entries(n.value).filter(([e])=>e!==`$self`),l=Object.fromEntries(o.reduce((t,[n,o])=>{if(!o)return t;let l=p(r.value??{},n),u=p(()=>o),d=p(s?.value??{},n),f=e(()=>c?.value?.[n]),m=p(h?.value??{},n);return t.push([n,De({state:l,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,schemaErrors:f,initialState:m,originalState:_?.[n],fieldName:n,...S})]),t},[])),u=Object.fromEntries(Object.entries(m(s)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=p(r.value??{},t),o=p(s?.value??{},t),l=e(()=>c?.value?.[t]),u=p(h?.value??{},t),d=i?`${i}.${t}`:t,f=a?`${a}.${t}`:t;return[t,De({state:n,rulesDef:e(()=>({})),path:d,cachePath:f,externalErrors:o,schemaErrors:l,initialState:u,originalState:_?.[t],fieldName:t,...S})]})),d=Object.fromEntries(Object.entries(m(c)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,l=p(r.value??{},t),u=p(s?.value??{},t),d=e(()=>c?.value?.[t]),f=p(h?.value??{},t);return[t,De({state:l,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,schemaErrors:d,initialState:f,originalState:_?.[t],fieldName:t,...S})]})),f=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=p(r.value??{},t),o=p(s?.value??{},t),l=e(()=>c?.value?.[t]),u=p(h?.value??{},t);return[t,De({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,schemaErrors:l,initialState:u,originalState:_?.[t],fieldName:t,...S})]}));F.value={...l,...u,...d,...f},t&&R()}function P(){n.value.$self&&(M.value=Ce({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:d(void 0),schemaErrors:d(void 0),initialState:p(h?.value??{},`$self`),originalState:_?.$self,fieldName:`$self`,...S}))}let F=S.storage.getFieldsEntry(a);N(),P();function I(){s&&(k=v(s,()=>{z(),N()},{deep:!0}))}function L(){A=v(r,()=>{z(),N(),w.$autoDirty.value&&!w.$silent.value&&U(!1,!0)},{flush:`post`})}function R(){o&&(E?.(),E=v(o,()=>{z(),N()},{deep:!0,flush:`pre`}),I()),l&&(D?.(),D=v(l,()=>{z(),N()},{deep:!0,flush:`post`})),L(),w=C.run(()=>{let a=e({get:()=>r.value,set(e){z(),r.value=e,N(),w.$autoDirty.value&&!w.$silent.value&&U(!1,!0)}}),o=e({get:()=>r.value,set(e){z(),r.value=e,N()}}),s=e(()=>{let e=F.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),c=e(()=>{let e=F.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),l=e(()=>{if(M.value?.$invalid)return!0;let e=F.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),p=e(()=>{let e=Object.entries(F.value).reduce((e,[t,n])=>((!pe(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!O(n.value.$self);if(e.length||t){let t=M.value?.$correct??!0,n=!1;return n=S.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>pe(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),v=e(()=>{if(M.value?.$error)return!0;let e=F.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),x=e(()=>m(S.options.rewardEarly)==null?!1:m(S.options.rewardEarly)),C=e(()=>m(S.options.silent)==null?!!x.value:m(S.options.silent)===!0),E=e(()=>m(S.options.autoDirty)==null?!0:m(S.options.autoDirty)===!0),D=e(()=>m(S.options.immediateDirty)==null?!1:m(S.options.immediateDirty)===!0),k=e(()=>m(S.options.lazy)==null?!1:m(S.options.lazy)===!0),A=e(()=>m(S.options.clearExternalErrorsOnChange)==null?!1:m(S.options.clearExternalErrorsOnChange)===!0),j=e(()=>m(S.options.clearExternalErrorsOnValidate)==null?!1:m(S.options.clearExternalErrorsOnValidate)===!0),P=e(()=>!(l.value||L.value)),I=d(!1),L=e(()=>{if(M.value?.$pending||I.value)return!0;let e=F.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),R=e(()=>{let e={...M.value&&{$self:M.value?.$issues??[]}};for(let t in F.value)e[t]=F.value[t]?.$issues;return e}),B=e(()=>{let e={...M.value&&{$self:M.value?.$errors??[]}};for(let t in F.value)e[t]=F.value[t]?.$errors;return e}),V=e(()=>{let e={...M.value&&{$self:M.value?.$silentErrors??[]}};for(let t in F.value)e[t]=F.value[t]?.$silentErrors;return e}),H=e(()=>{if(M.value?.$edited)return!0;if(!Object.keys(F.value).length)return!1;for(let e in F.value)if(!F.value[e]?.$edited)return!1;return!0}),W=e(()=>{if(M.value?.$anyEdited)return!0;for(let e in F.value)if(F.value[e]?.$anyEdited)return!0;return!1}),G=e(()=>b??S.options.id??`root`),K=e(()=>({autoDirty:E.value,lazy:k.value,rewardEarly:x.value,silent:C.value,clearExternalErrorsOnChange:A.value,clearExternalErrorsOnValidate:j.value,immediateDirty:D.value,id:m(S.options.id),disabled:m(S.options.disabled)}));function ee(){S.shortcuts?.nested&&Object.entries(S.shortcuts.nested).forEach(([e,n])=>{let a=t();J[e]=a.run(()=>{let e=d();return y(()=>{e.value=n(u({$dirty:s,$path:i,$value:r,$silentValue:o,$error:v,$originalValue:_,$pending:L,$invalid:l,$correct:p,$ready:P,$anyDirty:c,$name:G,$silentErrors:V,$initialValue:h,$errors:B,$fields:F,$edited:H,$anyEdited:W,$issues:R,$self:M,"~modifiers":g(S.options)}))}),e}),T.push(a)})}let q=e({get:()=>f?Object.fromEntries(Object.entries(f?.(F.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,ie(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,ae(t,e)]))}]:[])):{},set(){}}),J={};return ee(),{$dirty:s,$anyDirty:c,$invalid:l,$correct:p,$error:v,$pending:L,$issues:R,$errors:B,$silentErrors:V,$clearExternalErrorsOnValidate:j,$ready:P,$name:G,$shortcuts:J,$groups:q,$silentValue:o,$edited:H,$anyEdited:W,$localPending:I,$autoDirty:E,$silent:C,$value:a,$modifiers:K}})}function z(){if(E?.(),k?.(),A?.(),D?.(),T=[],w={},F.value)for(let e of Object.values(F.value))e?.$unwatch()}function B(e){s&&(s.value=e)}function V(){s&&!O(s.value)&&(s.value={})}function H(e,t){if(k?.(),z(),!t)if(e?.toOriginalState)r.value=j({..._}),h.value=j({..._});else if(e?.toInitialState)r.value=j({...h.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,h.value=j(t),r.value=j(t)}else h.value=j(r.value);if(!e?.keepValidationState){for(let t of Object.values(F.value))t?.$reset(e,!0);M.value?.$reset(e,!0)}e?.clearExternalErrors===!1&&V(),I(),t||N()}function U(e=!0,t=!1){for(let n of Object.values(F.value))n?.$touch(e,t);M.value?.$touch(e,t)}function W(e){return e.filter(([e,t])=>x(t)&&!de(t)?!(t&&typeof t==`object`&&`_null`in t)&&!O(t):Array.isArray(t)?t.length:!0)}function G(e=!0){let t=Object.entries(F.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=W(t)),Object.fromEntries(t)}function K(){for(let e of Object.values(F.value))e.$abort();M.value?.$abort()}async function ee(e){try{if(e&&(r.value=e),S.schemaMode)return S.onValidate?(U(!1),w.$localPending.value=!0,S.onValidate()):{valid:!1,data:r.value,errors:w.$errors.value,issues:w.$issues.value};{let e=r.value;K(),w.$clearExternalErrorsOnValidate.value&&V();let t=[...Object.values(F.value).map(e=>e.$validate()),...M.value?[M.value?.$validate()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:w.$errors.value,issues:w.$issues.value}}}catch{return{valid:!1,data:r.value,errors:w.$errors.value,issues:w.$issues.value}}finally{w.$localPending.value=!1}}function q(e){try{return e&&(r.value=e),w.$clearExternalErrorsOnValidate.value&&V(),[...Object.values(F.value).map(e=>e.$validateSync()),...M.value?[M.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}let{$shortcuts:J,$localPending:te,...Y}=w,X=u({...Y,...J,$path:i,$initialValue:h,$originalValue:_,$self:M,$externalErrors:s,$fields:F,$reset:H,$touch:U,$validate:ee,$unwatch:z,$watch:R,$setExternalErrors:B,$clearExternalErrors:V,$extractDirtyFields:G,$abort:K,$validateSync:q,...o?{"~modifiers":w.$modifiers}:{},...Se(ee)});return Object.defineProperty(X,Symbol.for(`regle:instance`),{value:!0}),y(()=>{for(let e of Object.keys(X).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete X[e];for(let e of Object.values(F.value))e?.$name&&Object.assign(X,{[e.$name]:e})}),X}function De({rulesDef:e,...n}){if(ce(e,n.state))return Te({rulesDef:e,...n});if(se(n.state,e)){if(K(n.state))return Ee({rulesDef:e,...n});{let r=t().run(()=>{let e=p(n.state.value?n.state:d({}));return v(()=>n.state.value,t=>{e.value=t},{deep:!0}),v(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return Ee({rulesDef:e,...a,state:r.fakeState})}}else if(le(e))return Ce({rulesDef:a(e.value)?e.value:e,...n})}function Oe({initialState:e,originalState:t,options:n,scopeRules:i,state:a,customRules:o,shortcuts:c,schemaErrors:u,schemaMode:f=!1,onValidate:p,overrides:h}){let g=he(),_=d(),y=d(),b,S,C;function T(){C=v(()=>m(n.disabled),async e=>{e?A():(k(),D())})}function E(e){S?.(),e&&(x(e)&&Object.keys(e).some(e=>e.includes(`.`))?y.value=w(e):Array.isArray(e)?y.value=e:y.value=e??{}),O()}function D(){b=v(()=>n.externalErrors?.value,E,{deep:!0})}function O(){S=v(()=>y.value,e=>{b?.(),n.externalErrors?.value&&(n.externalErrors.value=e),E(e),D()},{deep:!0})}function k(){se(a,i)?_.value=Ee({rootRules:i,rulesDef:i,state:a,customMessages:o?.(),storage:g,options:n,externalErrors:y,validationGroups:n.validationGroups,initialState:e,originalState:t,shortcuts:c,fieldName:void 0,path:``,cachePath:``,schemaErrors:u,rootSchemaErrors:u,schemaMode:f,onValidate:p,overrides:h}):le(i)&&(_.value=Ce({rulesDef:i,state:a,customMessages:o?.(),storage:g,options:n,externalErrors:y,initialState:e,originalState:t,shortcuts:c,fieldName:void 0,path:``,cachePath:``,schemaMode:f,schemaErrors:u,onValidate:p,overrides:h}))}E(n.externalErrors?.value),k(),m(n.disabled)?s().then(()=>{_.value?.$unwatch()}):D(),T();function A(){_.value?.$unwatch(),S?.(),b?.()}return r()&&l(()=>{A(),C?.()}),_}function ke({state:t,rulesFactory:n,options:r,globalOptions:o,customRules:s,shortcuts:c,overrides:l}){let u=a(n)?n:typeof n==`function`?void 0:e(()=>n),p=i(Z,void 0)??{},m={...p.modifiers,...o},g=()=>({...p.rules?.(),...s?.()}),_={...p.shortcuts,...c},v={...p.overrides,...l},b={...m,...r},S,C=f(u??{});typeof n==`function`&&(S=y(()=>{C.value=n(t),h(C)}));let w=d(x(t.value)?{...j(t.value)}:j(t.value)),T=x(t.value)?{...j(t.value)}:j(t.value);return ne(()=>{S?.()}),Oe({scopeRules:C,state:t,options:b,initialState:w,originalState:T,customRules:g,shortcuts:_,overrides:v})}function Ae(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s,c){let l=a(t)?t:d(t),u=e(()=>m(c?.disabled)??!1);return{r$:L(ke({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o}),u)}}return s}const je=Ae();function Me(){function e(e,t){return t}return e}const Ne=Me();function Pe(e,t){return S(m(e).$errors,String(t))}function Fe(e,t){return S(m(e).$issues,String(t))}function Ie(e){let t={};if(Object.entries(e).some(([e,t])=>$(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&x(r)&&`$each`in r&&r.$each&&x(r.$each)?t[n]=[Ie(r.$each)]:x(r)&&!O(r)&&!Object.entries(r).some(([e,t])=>$(t)||typeof t==`function`)?t[n]=Ie(r):t[n]=null}return t}function Le(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s){let c=a(t)?t:typeof t==`function`?void 0:e(()=>t),l=d(Ie(c?.value)),u=e(()=>m(s?.disabled)??!1);return L(ke({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o}),u)}return s}const Re=Le();function ze(e){if(D(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Be(this)}};return Object.defineProperty(n,`name`,{value:t.name}),Be(n)}return Be(e)}function Be(e){return!T(e,Q.REGLE_STATIC)&&Object.isExtensible(e)&&E(e,Q.REGLE_STATIC,!0),e}function Ve({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=Ae({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=Le({rules:e,modifiers:t,shortcuts:n,overrides:r});return i.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},a.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},{useRegle:i,inferRules:Me(),useRules:a}}function He(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?C(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?C(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?C(a.overrides,i):a.overrides??i,u=Ae({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:Me()}}function Ue(e){return e}function We(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)),l=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.$issues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$issues]))),h=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentIssues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentIssues]))),g=e(()=>r?Object.entries(t).map(([e,t])=>t.$errors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$errors]))),_=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentErrors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentErrors]))),v=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),b=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),x=e(()=>r?Object.values(t):t);function S(e){Object.values(t).forEach(t=>{t.$reset(e)})}function C(){Object.values(t).forEach(e=>{e.$touch()})}function w(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function T(e){Object.values(t).forEach(t=>{t.$setExternalErrors(e)})}function E(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}function D(e){try{return e&&(i.value=e),Object.values(t).every(t=>t.$validateSync(e))}catch{return!1}}async function O(e){try{e&&(i.value=e);let n=i.value;return{valid:(await Promise.allSettled(Object.values(t).map(e=>e.$validate()))).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:n,errors:g.value,issues:m.value}}catch{return{valid:!1,data:i.value,errors:g.value,issues:m.value}}}let k=u({...!r&&{$silentValue:a},$errors:g,$issues:m,$silentIssues:h,$silentErrors:_,$instances:x,$value:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:l,$error:d,$pending:p,$ready:f,$edited:v,$anyEdited:b,$reset:S,$touch:C,$validate:O,$validateSync:D,$extractDirtyFields:w,$clearExternalErrors:E,$setExternalErrors:T});return y(()=>{if(!r){for(let e of Object.keys(k).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete k[e];for(let[e,t]of Object.entries(x.value))Object.assign(k,{[e]:t})}}),k}function Ge(t,n){function r(r){let i=e(()=>m(r)),a=u({});c();let o=d(l(t.value)),s=u({r$:o});function c(){i.value&&(typeof i.value==`string`&&!t.value[i.value]?t.value[i.value]={}:Array.isArray(i.value)&&i.value.forEach(e=>{t.value[e]||(t.value[e]={})}))}v(i,c),v(t,e=>{o.value=l(e)},{deep:!0});function l(e){return i.value?typeof i.value==`string`?We(e[i.value]??{},!n.asRecord):(Object.keys(a).forEach(e=>{delete a[e]}),i.value.forEach(t=>{Object.entries(e[t]).forEach(([e,t])=>{Object.assign(a,{[e]:t})})}),We(a,!n.asRecord)):We(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Ke(t,r){let i=r??je;return{useScopedRegle:((r,a,o)=>{let{namespace:s,scopeKey:l,id:u,...f}=o??{};i.__config??={};let p=e(()=>u??l),h=e(()=>m(s)),g=d(`${Object.keys(t.value).length+1}-${X()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:y}=i(r,a,{...f,id:p.value});x(),ne(b),v(h,(e,t)=>{b(t),x()}),n()&&c(()=>{let e=n();typeof window<`u`&&e?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(e?.proxy?.$el?.parentElement)&&b()});function b(e){let n=e??h.value;n?t.value[n]&&delete t.value[n][_.value]:t.value[`~~global`][_.value]&&delete t.value[`~~global`][_.value]}function x(){h.value?(t.value[h.value]||(t.value[h.value]={}),t.value[h.value][_.value]=y):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][_.value]=y)}return{r$:y,dispose:b,register:x}})}}function qe(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):re(()=>d({"~~global":{}})))(),{useScopedRegle:n}=Ke(t,e?.customUseRegle),{useCollectScope:r}=Ge(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:Je,useScopedRegle:Ye}=qe(),Xe=Je,Ze=Ye;function Qe(t,n,r){let i=e(()=>m(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if($(t))return m(t._params?.[0])===i.value}})||r.find(e=>x(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function $e(e,t,n){return!!e&&t in e&&x(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function et(e,t,n,r){let i=a(e)?p(e.value,`$fields`):p(e,`$fields`),o=d();return v(i,async()=>{await s(),$e(i.value,t,n)?o.value=p(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function tt(e){return e}function nt(e,t){return n=>C({...e},t(n))}const rt={install(e,t){e.provide(oe,me),t&&e.provide(Z,t)}};export{R as InternalRuleType,rt as RegleVuePlugin,U as createRule,qe as createScopedUseRegle,Qe as createVariant,Ve as defineRegleConfig,Ue as defineRegleOptions,tt as defineRules,He as extendRegleConfig,ye as flatErrors,Pe as getErrors,Fe as getIssues,Ne as inferRules,G as isRegleInstance,ze as markStatic,We as mergeRegles,$e as narrowVariant,nt as refineRules,z as unwrapRuleParameters,Xe as useCollectScope,je as useRegle,Oe as useRootStorage,Re as useRules,Ze as useScopedRegle,et as variantToRef};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "1.21.0-beta.1",
3
+ "version": "1.21.0-beta.2",
4
4
  "description": "Headless form validation library for Vue",
5
5
  "keywords": [
6
6
  "regle",
@@ -50,7 +50,7 @@
50
50
  "dependencies": {
51
51
  "@standard-schema/spec": "1.1.0",
52
52
  "@vue/devtools-api": "7.7.9",
53
- "type-fest": "5.4.4"
53
+ "type-fest": "5.5.0"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@total-typescript/ts-reset": "0.6.1",
@@ -58,11 +58,11 @@
58
58
  "@typescript/native-preview": "7.0.0-dev.20260317.1",
59
59
  "@vue/devtools-kit": "7.7.9",
60
60
  "@vue/test-utils": "2.4.6",
61
- "tsdown": "0.20.3",
61
+ "tsdown": "0.21.4",
62
62
  "typescript": "5.9.3",
63
63
  "vitest": "4.1.0",
64
64
  "vue": "3.5.30",
65
- "vue-tsc": "3.2.5"
65
+ "vue-tsc": "3.2.6"
66
66
  },
67
67
  "peerDependencies": {
68
68
  "pinia": ">=2.2.5",