@regle/core 0.4.9 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,4 +11,24 @@ It's heavily inspired by Vuelidate.
11
11
 
12
12
  # 📚 Documentation
13
13
 
14
- [![Documentation](https://raw.githubusercontent.com/victorgarciaesgi/regle/refs/heads/main/.github/images/redirectDoc.svg)](https://regle.vercel.app/)
14
+ [![Documentation](https://raw.githubusercontent.com/victorgarciaesgi/regle/refs/heads/main/.github/images/redirectDoc.svg)](https://regle.vercel.app/)
15
+
16
+ ## 📚 Documentation
17
+
18
+ [![Documentation](https://raw.githubusercontent.com/victorgarciaesgi/regle/refs/heads/main/.github/images/redirectDoc.svg)](https://regle.vercel.app/)
19
+
20
+ ## ðŸŽŪ Play with it
21
+
22
+ | Simple demo | Advanced Demo |
23
+ | ------------- | ------------- |
24
+ | [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/~/github.com/victorgarciaesgi/regle-examples/tree/main/examples/simple-example?file=examples/simple-example/src/App.vue&configPath=examples/simple-example) | [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/~/github.com/victorgarciaesgi/regle-examples/tree/main/examples/advanced-example?file=examples/advanced-example/src/App.vue&configPath=examples/advanced-example) |
25
+
26
+ ## 🧰 Features
27
+ - ✅ Typescript first
28
+ - ðŸĪ– 100% type inference
29
+ - 📖 Model based validation
30
+ - 🊗 Extensible
31
+ - ðŸĶļ‍♂ïļ [Zod](https://zod.dev/) support
32
+ - ðŸĪ– [Valibot](https://valibot.dev/) support
33
+ - ðŸŠķ Light(~7kb gzip) and 0 dependencies
34
+ - 🛒 Collection validation
@@ -798,6 +798,14 @@ function createReactiveFieldStatus({
798
798
  return ruleResult.$validating;
799
799
  });
800
800
  });
801
+ const $silentValue = vue.computed({
802
+ get: () => state.value,
803
+ set(value) {
804
+ $unwatchState();
805
+ state.value = value;
806
+ define$watchState();
807
+ }
808
+ });
801
809
  const $error = vue.computed(() => {
802
810
  return $invalid.value && !$pending.value && $dirty.value;
803
811
  });
@@ -883,6 +891,7 @@ function createReactiveFieldStatus({
883
891
  $dirty,
884
892
  $externalErrors: externalErrors?.value ?? [],
885
893
  $value: state,
894
+ $silentValue,
886
895
  $rules,
887
896
  $error,
888
897
  $pending,
@@ -930,9 +939,22 @@ function createReactiveFieldStatus({
930
939
  $tooltips,
931
940
  $dirty,
932
941
  triggerPunishment,
933
- processShortcuts
942
+ processShortcuts,
943
+ $silentValue
934
944
  };
935
945
  });
946
+ define$watchState();
947
+ $unwatchDirty = vue.watch(scopeState.$dirty, () => {
948
+ storage.setDirtyEntry(path, scopeState.$dirty.value);
949
+ });
950
+ $unwatchValid = vue.watch(scopeState.$valid, (valid) => {
951
+ if (scopeState.$rewardEarly.value && valid) {
952
+ scopeState.triggerPunishment.value = false;
953
+ }
954
+ });
955
+ $unwatchAsync = vue.watch(scopeState.$haveAnyAsyncRule, define$commit);
956
+ }
957
+ function define$watchState() {
936
958
  $unwatchState = vue.watch(
937
959
  state,
938
960
  () => {
@@ -953,15 +975,6 @@ function createReactiveFieldStatus({
953
975
  },
954
976
  { deep: $isArray ? true : isVueSuperiorOrEqualTo3dotFive ? 1 : true }
955
977
  );
956
- $unwatchDirty = vue.watch(scopeState.$dirty, () => {
957
- storage.setDirtyEntry(path, scopeState.$dirty.value);
958
- });
959
- $unwatchValid = vue.watch(scopeState.$valid, (valid) => {
960
- if (scopeState.$rewardEarly.value && valid) {
961
- scopeState.triggerPunishment.value = false;
962
- }
963
- });
964
- $unwatchAsync = vue.watch(scopeState.$haveAnyAsyncRule, define$commit);
965
978
  }
966
979
  function $commitHandler() {
967
980
  Object.values($rules.value).forEach((rule) => {
@@ -1277,7 +1290,7 @@ function createReactiveCollectionStatus({
1277
1290
  $eachStatus.value = [];
1278
1291
  }
1279
1292
  }
1280
- function $watch() {
1293
+ function define$watchState() {
1281
1294
  $unwatchState = vue.watch(
1282
1295
  state,
1283
1296
  () => {
@@ -1289,8 +1302,19 @@ function createReactiveCollectionStatus({
1289
1302
  },
1290
1303
  { deep: isVueSuperiorOrEqualTo3dotFive ? 1 : true, flush: "pre" }
1291
1304
  );
1305
+ }
1306
+ function $watch() {
1307
+ define$watchState();
1292
1308
  scope = vue.effectScope();
1293
1309
  scopeState = scope.run(() => {
1310
+ const $silentValue = vue.computed({
1311
+ get: () => state.value,
1312
+ set(value) {
1313
+ $unwatchState();
1314
+ state.value = value;
1315
+ define$watchState();
1316
+ }
1317
+ });
1294
1318
  const $dirty = vue.computed(() => {
1295
1319
  return $fieldStatus.value.$dirty && $eachStatus.value.every((statusOrField) => {
1296
1320
  return statusOrField.$dirty;
@@ -1348,6 +1372,7 @@ function createReactiveCollectionStatus({
1348
1372
  vue.reactive({
1349
1373
  $dirty,
1350
1374
  $error,
1375
+ $silentValue,
1351
1376
  $pending,
1352
1377
  $invalid,
1353
1378
  $valid,
@@ -1381,7 +1406,8 @@ function createReactiveCollectionStatus({
1381
1406
  $silentErrors,
1382
1407
  $ready,
1383
1408
  $name,
1384
- $shortcuts: $shortcuts2
1409
+ $shortcuts: $shortcuts2,
1410
+ $silentValue
1385
1411
  };
1386
1412
  });
1387
1413
  if (immediateScopeState.isPrimitiveArray.value) {
@@ -1600,8 +1626,20 @@ function createReactiveNestedStatus({
1600
1626
  );
1601
1627
  }
1602
1628
  }
1629
+ function define$watchState() {
1630
+ $unwatchState = vue.watch(
1631
+ state,
1632
+ () => {
1633
+ $unwatch();
1634
+ createReactiveFieldsStatus();
1635
+ $touch(true, true);
1636
+ },
1637
+ { flush: "sync" }
1638
+ );
1639
+ }
1603
1640
  function $watch() {
1604
1641
  if (rootRules) {
1642
+ $unwatchRules?.();
1605
1643
  $unwatchRules = vue.watch(
1606
1644
  rootRules,
1607
1645
  () => {
@@ -1612,17 +1650,17 @@ function createReactiveNestedStatus({
1612
1650
  );
1613
1651
  define$WatchExternalErrors();
1614
1652
  }
1615
- $unwatchState = vue.watch(
1616
- state,
1617
- () => {
1618
- $unwatch();
1619
- createReactiveFieldsStatus();
1620
- $touch(true, true);
1621
- },
1622
- { flush: "sync" }
1623
- );
1653
+ define$watchState();
1624
1654
  scope = vue.effectScope();
1625
1655
  scopeState = scope.run(() => {
1656
+ const $silentValue = vue.computed({
1657
+ get: () => state.value,
1658
+ set(value) {
1659
+ $unwatch();
1660
+ state.value = value;
1661
+ createReactiveFieldsStatus();
1662
+ }
1663
+ });
1626
1664
  const $dirty = vue.computed({
1627
1665
  get: () => {
1628
1666
  return !!Object.entries($fields.value).length && Object.entries($fields.value).every(([key, statusOrField]) => {
@@ -1723,6 +1761,7 @@ function createReactiveNestedStatus({
1723
1761
  vue.reactive({
1724
1762
  $dirty,
1725
1763
  $value: state,
1764
+ $silentValue,
1726
1765
  $error,
1727
1766
  $pending,
1728
1767
  $invalid,
@@ -1789,7 +1828,8 @@ function createReactiveNestedStatus({
1789
1828
  $ready,
1790
1829
  $name,
1791
1830
  $shortcuts: $shortcuts2,
1792
- $groups
1831
+ $groups,
1832
+ $silentValue
1793
1833
  };
1794
1834
  });
1795
1835
  }
@@ -642,6 +642,7 @@ type InferRegleStatusType<TRule extends RegleCollectionRuleDecl | RegleRuleDecl
642
642
  */
643
643
  type RegleFieldStatus<TState extends any = any, TRules extends RegleFormPropertyType<any, Partial<AllRulesDeclarations>> = Record<string, any>, TShortcuts extends RegleShortcutDefinition = never> = Omit<RegleCommonStatus<TState>, '$value'> & {
644
644
  $value: Maybe<UnwrapNestedRefs<TState>>;
645
+ $silentValue: Maybe<UnwrapNestedRefs<TState>>;
645
646
  readonly $errors: string[];
646
647
  readonly $silentErrors: string[];
647
648
  readonly $externalErrors: string[];
@@ -668,6 +669,7 @@ interface RegleCommonStatus<TValue = any> {
668
669
  readonly $name: string;
669
670
  $id?: string;
670
671
  $value: UnwrapNestedRefs<TValue>;
672
+ $silentValue: UnwrapNestedRefs<TValue>;
671
673
  $touch(runCommit?: boolean, withConditions?: boolean): void;
672
674
  $reset(): void;
673
675
  $resetAll: () => void;
@@ -700,6 +702,7 @@ type RegleRuleStatus<TValue = any, TParams extends any[] = any[], TMetadata exte
700
702
  */
701
703
  type RegleCollectionStatus<TState extends any[] = any[], TRules extends ReglePartialRuleTree<ArrayElement<TState>> = Record<string, any>, TFieldRule extends RegleCollectionRuleDecl<any, any> = never, TShortcuts extends RegleShortcutDefinition = {}> = Omit<RegleCommonStatus<TState>, '$value'> & {
702
704
  $value: Maybe<TState>;
705
+ $silentValue: Maybe<TState>;
703
706
  readonly $each: Array<InferRegleStatusType<NonNullable<TRules>, NonNullable<TState>, number, TShortcuts>>;
704
707
  readonly $field: RegleFieldStatus<TState, TFieldRule, TShortcuts>;
705
708
  readonly $errors: RegleCollectionErrors<TState>;
@@ -642,6 +642,7 @@ type InferRegleStatusType<TRule extends RegleCollectionRuleDecl | RegleRuleDecl
642
642
  */
643
643
  type RegleFieldStatus<TState extends any = any, TRules extends RegleFormPropertyType<any, Partial<AllRulesDeclarations>> = Record<string, any>, TShortcuts extends RegleShortcutDefinition = never> = Omit<RegleCommonStatus<TState>, '$value'> & {
644
644
  $value: Maybe<UnwrapNestedRefs<TState>>;
645
+ $silentValue: Maybe<UnwrapNestedRefs<TState>>;
645
646
  readonly $errors: string[];
646
647
  readonly $silentErrors: string[];
647
648
  readonly $externalErrors: string[];
@@ -668,6 +669,7 @@ interface RegleCommonStatus<TValue = any> {
668
669
  readonly $name: string;
669
670
  $id?: string;
670
671
  $value: UnwrapNestedRefs<TValue>;
672
+ $silentValue: UnwrapNestedRefs<TValue>;
671
673
  $touch(runCommit?: boolean, withConditions?: boolean): void;
672
674
  $reset(): void;
673
675
  $resetAll: () => void;
@@ -700,6 +702,7 @@ type RegleRuleStatus<TValue = any, TParams extends any[] = any[], TMetadata exte
700
702
  */
701
703
  type RegleCollectionStatus<TState extends any[] = any[], TRules extends ReglePartialRuleTree<ArrayElement<TState>> = Record<string, any>, TFieldRule extends RegleCollectionRuleDecl<any, any> = never, TShortcuts extends RegleShortcutDefinition = {}> = Omit<RegleCommonStatus<TState>, '$value'> & {
702
704
  $value: Maybe<TState>;
705
+ $silentValue: Maybe<TState>;
703
706
  readonly $each: Array<InferRegleStatusType<NonNullable<TRules>, NonNullable<TState>, number, TShortcuts>>;
704
707
  readonly $field: RegleFieldStatus<TState, TFieldRule, TShortcuts>;
705
708
  readonly $errors: RegleCollectionErrors<TState>;
@@ -1,2 +1,2 @@
1
- 'use strict';var vue=require('vue');var Ee=(t=>(t.Inline="__inline",t.Async="__async",t))(Ee||{});function Qe(e,r){return e.some(t=>t[r])}function Xe(e,r){return e.reduce((t,n)=>{let l=n[r]||[];return t.concat(l)},[])}function W(e){try{return e.map(r=>vue.toValue(r))}catch{return []}}function Ze(e){return e.map(r=>r instanceof Function?vue.computed(r):vue.isRef(r)?r:vue.toRef(()=>r))}function Ke(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(m=>m.trim()).filter(m=>m.length>0).length:0}function De(e,...r){let{validator:t,type:n}=e,l=n==="__async"||t.constructor.name==="AsyncFunction";return {...{validator(d,...h){return e.validator(d,...W(h.length?h:r))},message(d){return typeof e.message=="function"?e.message({...d,$params:W(d?.$params?.length?d.$params:r)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:W(d?.$params?.length?d.$params:r)}):e.active??!0},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:W(d?.$params?.length?d.$params:r)}):e.tooltip??[]},exec(d){let h=e.validator(d,...W(r)),g;return h instanceof Promise?h.then(C=>(g=C,typeof g=="object"&&"$valid"in g?g.$valid:typeof g=="boolean"?g:!1)):(g=h,typeof g=="object"&&"$valid"in g?g.$valid:typeof g=="boolean"?g:!1)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:l,_params:Ze(r)}}function xe(e){if(typeof e.validator=="function"){let t=De(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(Ke(e.validator)>1){let l=function(...p){return De(e,...p)};return l.validator=t.validator,l.message=t.message,l.active=t.active,l.tooltip=t.tooltip,l.type=t.type,l.exec=t.exec,l._validator=t.validator,l._message=t.message,l._active=t.active,l._tooltip=t.tooltip,l._type=e.type,l._message_pacthed=!1,l._tooltip_pacthed=!1,l._async=n,l}else return t}throw new Error("Validator must be a function")}function X(e){return e instanceof Date||e instanceof File?!1:typeof e=="object"&&e!==null&&!Array.isArray(e)}function et(e){return e.value instanceof Date||e.value instanceof File?!1:X(e.value)}function U(e){let r=e,t={}.toString.call(e).slice(8,-1);if(t=="Set"&&(r=new Set([...e].map(n=>U(n)))),t=="Map"&&(r=new Map([...e].map(n=>[U(n[0]),U(n[1])]))),t=="Date"&&(r=new Date(e.getTime())),t=="RegExp"&&(r=RegExp(e.source,Et(e))),t=="Array"||t=="Object"){r=Array.isArray(e)?[]:{};for(let n in e)r[n]=U(e[n]);}return r}function Et(e){if(typeof e.source.flags=="string")return e.source.flags;{let r=[];return e.global&&r.push("g"),e.ignoreCase&&r.push("i"),e.multiline&&r.push("m"),e.sticky&&r.push("y"),e.unicode&&r.push("u"),r.join("")}}function Ce(e,r,t){let n=vue.effectScope(),l;return e instanceof Function?l=n.run(()=>e(r,t??0)):l=e,{scope:n,unwrapped:l}}function ye(e,r,t){let n,l=(...p)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...p])).then(m);},r);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}function xt(e,r){let t=String(e).split("."),n=String(r).split(".");for(let l=0;l<Math.min(t.length,n.length);l++){let p=Number(t[l]),m=Number(n[l]);if(p>m)return 1;if(m>p)return -1;if(!isNaN(p)&&isNaN(m))return 1;if(isNaN(p)&&!isNaN(m))return -1}return 0}var ve=xt(vue.version,"3.5.0")!==-1;function Ct(){return Math.floor(Math.random()*Date.now()).toString()}function ge(){return typeof window>"u"?Ct():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Ie(){let e=vue.shallowRef(new Map),r=vue.shallowRef(new Map),t=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),p=vue.shallowRef(new Map);function m(o){let c=r.value.get(o);if(c)return c;{let f=vue.ref({});return r.value.set(o,f),f}}function d(o){let c=t.value.get(o);if(c)return c;{let f=vue.ref([]);return t.value.set(o,f),f}}function h(o,c,f){p.value.set(`${o}-${c}`,f);}function g(o,c){return p.value.get(`${o}-${c}`)}function C(o,c){o&&c!=null&&p.value.delete(`${o}-${c}`);}function F(o,c){n.value.set(o,c);}function O(o){return n.value.get(o)??!1}function a(o,c){e.value.set(o,c);}function x(o,c){let f=e.value.get(o);return f?P(c,f)?{valid:!0}:{valid:!1}:void 0}function P(o,c){let f=Object.keys(c),M=Object.keys(o);return M.length!==f.length||!M.every(w=>f.includes(w))?!1:M.every(w=>{let _=o[w],E=c[w];return !E||!_||typeof _=="function"||typeof E=="function"||typeof _=="number"||typeof _=="boolean"?!1:_._params?_._params?.every((v,b)=>{if(typeof E=="number"||typeof E=="boolean")return !0;{let k=W(E._params),V=W(_._params);return k?.[b]===V?.[b]}}):!0})}function j(o){let c=l.value.get(o);if(c)return c;{let f=vue.ref(!1),M=vue.ref(!0),N=vue.ref({}),w=vue.ref(!1);return l.value.set(o,{$pending:f,$valid:M,$metadata:N,$validating:w}),{$pending:f,$valid:M,$metadata:N,$validating:w}}}return vue.onScopeDispose(()=>{e.value.clear(),r.value.clear(),t.value.clear(),n.value.clear(),l.value.clear(),p.value.clear();}),{addRuleDeclEntry:a,setDirtyEntry:F,checkRuleDeclEntry:x,getDirtyState:O,trySetRuleStatusRef:j,getFieldsEntry:m,getCollectionsEntry:d,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:C,arrayStatusStorage:p}}function L(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function tt(e,r){return X(e.value)&&X(r.value)&&!Object.entries(r.value).some(t=>ue(t))}function rt(e,r){return !!e.value&&"$each"in e.value||Array.isArray(r.value)}function nt(e){return !!e.value&&X(e.value)}function ue(e){return X(e)&&"_validator"in e}function ce(e){return typeof e.value!="function"}function at(e){return X(e)&&"$fields"in e}function Pe({field:e,silent:r=!1}){return Object.entries(e.$rules??{}).map(([t,n])=>r||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(t=>!!t).reduce((t,n)=>typeof n=="string"?t?.concat([n]):t?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function lt({field:e}){return Object.entries(e.$rules??{}).map(([r,t])=>t.$tooltip).filter(r=>!!r).reduce((r,t)=>typeof t=="string"?r?.concat([t]):r?.concat(t),[])}function ot({fieldProperties:e,customMessages:r,rule:t,ruleKey:n,state:l,path:p,storage:m,$debounce:d,modifiers:h}){let g=vue.effectScope(),C={},F,O=vue.ref(!1),{$pending:a,$valid:x,$metadata:P,$validating:j}=m.trySetRuleStatusRef(`${p}.${n}`);function o(){g=vue.effectScope(),C=g.run(()=>{let E=vue.computed(()=>({$value:l.value,$error:e.$error.value,$dirty:e.$dirty.value,$pending:e.$pending.value,$valid:e.$valid.value,$invalid:e.$invalid.value,$rule:{$valid:x.value,$invalid:!x.value,$pending:a.value},$params:I.value,...P.value})),v=vue.computed(()=>ce(t)?typeof t.value.active=="function"?t.value.active(E.value):!!t.value.active:!0);function b(i){let $="",u=r?r[n]?.[i]:void 0;if(u&&(typeof u=="function"?$=u(E.value):$=u),ce(t)){let S=`_${i}_patched`;u&&!t.value[S]||(typeof t.value[i]=="function"?$=t.value[i](E.value):$=t.value[i]??"");}return $}let k=vue.computed(()=>{let i=b("message");return L(i)&&(i="This field is not valid"),i}),V=vue.computed(()=>b("tooltip")),Y=vue.computed(()=>ce(t)&&t.value.type?t.value.type:n),D=vue.computed(()=>ce(t)?t.value.validator:t.value),I=vue.computed(()=>typeof t.value=="function"?[]:W(t.value._params??[])),s=vue.computed(()=>`${p}.${Y.value}`);return {$active:v,$message:k,$type:Y,$validator:D,$params:I,$path:s,$tooltip:V}}),F=vue.watch(C?.$params,()=>{(h.$autoDirty.value||h.$rewardEarly.value&&e.$error.value)&&N();});}o();function c(){x.value=!0,e.$dirty.value&&(a.value=!0);}async function f(){let E=!1;try{let v=C.$validator.value,b=v(l.value,...C.$params.value),k=l.value;c();let V;if(b instanceof Promise?V=await b:V=b,l.value!==k)return !0;if(typeof V=="boolean")E=V;else {let{$valid:Y,...D}=V;E=Y,P.value=D;}}catch{E=!1;}finally{a.value=!1;}return E}let M=ye(f,d??200);async function N(){try{j.value=!0;let E=!1;if(ue(t.value)&&t.value._async)E=await M();else {let v=C.$validator.value,b=v(l.value,...C.$params.value);if(b instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(b!=null)if(typeof b=="boolean")E=b;else {let{$valid:k,...V}=b;E=k,P.value=V;}}return x.value=E,E}catch{return !1}finally{j.value=!1;}}function w(){x.value=!0,P.value={},a.value=!1,j.value=!1,o();}function _(){F(),g.stop(),g=vue.effectScope();}return vue.reactive({...C,$pending:a,$valid:x,$metadata:P,$haveAsync:O,$validating:j,$validate:N,$unwatch:_,$watch:o,$reset:w})}function Se({state:e,rulesDef:r,customMessages:t,path:n,fieldName:l,storage:p,options:m,externalErrors:d,onUnwatch:h,$isArray:g,initialState:C,shortcuts:F}){let O=vue.effectScope(),a,x=[],P,j,o,c,f=()=>{};function M(){let y=r.value,T=p.checkRuleDeclEntry(n,y);b.value=Object.fromEntries(Object.entries(y).filter(([R])=>R.startsWith("$"))),_(),v.value=Object.fromEntries(Object.entries(r.value).filter(([R])=>!R.startsWith("$")).map(([R,A])=>{if(A){let z=vue.toRef(()=>A);return [R,ot({fieldProperties:{$dirty:a.$dirty,$error:a.$error,$invalid:a.$invalid,$pending:a.$pending,$valid:a.$valid},modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:t,rule:z,ruleKey:R,state:e,path:n,storage:p,$debounce:b.value.$debounce})]}return []}).filter(R=>!!R.length)),a.processShortcuts(),N(),T?.valid!=null&&(a.$dirty.value=p.getDirtyState(n),a.$dirty.value&&f()),p.addRuleDeclEntry(n,y);}function N(){f=a.$debounce.value?ye(E,a.$debounce.value??a.$haveAnyAsyncRule?100:0):E;}function w(){v.value&&Object.entries(v.value).forEach(([y,T])=>{T.$unwatch();}),o(),a.$dirty.value&&p.setDirtyEntry(n,a.$dirty.value),P?.(),j?.(),O.stop(),O=vue.effectScope(),x.forEach(y=>y.stop()),x=[],h?.(),c?.();}function _(){v.value&&Object.entries(v.value).forEach(([y,T])=>{T.$watch();}),a=O.run(()=>{let y=vue.ref(!1),T=vue.ref(!1),R=vue.computed(()=>y.value),A=vue.computed(()=>b.value.$debounce),z=vue.computed(()=>b.value.$lazy!=null?b.value.$lazy:vue.unref(m.lazy)),te=vue.computed(()=>ke.value===!0?!1:b.value.$rewardEarly!=null?b.value.$rewardEarly:vue.unref(m.rewardEarly)),yt=vue.computed(()=>b.value.$clearExternalErrorsOnChange!=null?b.value.$clearExternalErrorsOnChange:vue.unref(m.clearExternalErrorsOnChange)),ke=vue.computed(()=>b.value.$autoDirty!=null?b.value.$autoDirty:vue.unref(m.autoDirty)),We=vue.computed(()=>Object.entries(v.value).some(([Q,Z])=>Z.$validating)),be=vue.computed(()=>me.value&&!de.value&&y.value),Ue=vue.computed(()=>be.value?Pe({field:{$dirty:y.value,$externalErrors:d?.value,$rules:v.value}}):[]),Be=vue.computed(()=>lt({field:{$rules:v.value}})),He=vue.computed(()=>Pe({field:{$dirty:y.value,$externalErrors:d?.value,$rules:v.value},silent:!0})),Le=vue.computed(()=>!(me.value||de.value)),de=vue.computed(()=>T.value||!te.value?Object.entries(v.value).some(([Q,Z])=>Z.$pending):!1),me=vue.computed(()=>d?.value?.length?!0:L(v.value)?!1:!te.value||te.value&&T.value?Object.entries(v.value).some(([Q,Z])=>!Z.$valid):!1),qe=vue.computed(()=>l),Te=vue.computed(()=>d?.value?.length||L(v.value)?!1:y.value&&!L(e.value)&&!We.value?Object.values(v.value).every(Q=>Q.$valid&&Q.$active):!1),vt=vue.computed(()=>Object.entries(v.value).some(([Q,Z])=>Z.$haveAsync));function gt(){F?.fields&&Object.entries(F.fields).forEach(([Q,Z])=>{let Je=vue.effectScope();ze[Q]=Je.run(()=>{let Ye=vue.ref();return vue.watchEffect(()=>{Ye.value=Z(vue.reactive({$dirty:y,$externalErrors:d?.value??[],$value:e,$rules:v,$error:be,$pending:de,$invalid:me,$valid:Te,$errors:Ue,$ready:Le,$silentErrors:He,$anyDirty:R,$tooltips:Be,$name:qe}));}),Ye}),x.push(Je);});}let ze={};return vue.watch(Te,Q=>{Q&&(T.value=!1);}),{$error:be,$pending:de,$invalid:me,$valid:Te,$debounce:A,$lazy:z,$errors:Ue,$ready:Le,$silentErrors:He,$rewardEarly:te,$autoDirty:ke,$clearExternalErrorsOnChange:yt,$anyDirty:R,$name:qe,$haveAnyAsyncRule:vt,$shortcuts:ze,$validating:We,$tooltips:Be,$dirty:y,triggerPunishment:T,processShortcuts:gt}}),P=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=!0)),r.value instanceof Function&&M(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&f(),a.$rewardEarly.value!==!0&&a.$clearExternalErrorsOnChange.value&&s();},{deep:g?!0:ve?1:!0}),o=vue.watch(a.$dirty,()=>{p.setDirtyEntry(n,a.$dirty.value);}),j=vue.watch(a.$valid,y=>{a.$rewardEarly.value&&y&&(a.triggerPunishment.value=!1);}),c=vue.watch(a.$haveAnyAsyncRule,N);}function E(){Object.values(v.value).forEach(y=>{y.$validate();});}let v=vue.ref({}),b=vue.ref({});M();function k(){s(),a.$dirty.value=!1,p.setDirtyEntry(n,!1),Object.entries(v.value).forEach(([y,T])=>{T.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(v.value).forEach(y=>y.$validate());}function V(y=!0,T=!1){a.$dirty.value||(a.$dirty.value=!0),T&&y?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&f():y&&f();}async function Y(){try{let y=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:y};return L(v.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(v.value).map(([A,z])=>z.$validate()))).every(A=>A.status==="fulfilled"?A.value===!0:!1),data:y}}catch{return {result:!1,data:e.value}}}function D(){w(),e.value=U(C),k();}function I(y=!0){return a.$dirty.value?e.value:y?{_null:!0}:null}function s(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&f();let{$shortcuts:i,$validating:$,$autoDirty:u,$rewardEarly:S,$clearExternalErrorsOnChange:q,$haveAnyAsyncRule:H,$debounce:K,$lazy:ie,...ne}=a;return vue.reactive({...ne,$externalErrors:d,$value:e,$rules:v,...i,$reset:k,$touch:V,$validate:Y,$unwatch:w,$watch:_,$resetAll:D,$extractDirtyFields:I,$clearExternalErrors:s})}function Ae({$id:e,path:r,index:t,options:n,storage:l,stateValue:p,customMessages:m,rules:d,externalErrors:h,initialState:g,shortcuts:C,fieldName:F}){let O=d.$key?d.$key:ge(),a=`${r}.${String(O)}`;typeof p.value=="object"&&p.value!=null&&(p.value.$id?a=`${r}.${p.value.$id}`:Object.defineProperties(p.value,{$id:{value:O,enumerable:!1,configurable:!1,writable:!1}}));let x=pe({state:p,rulesDef:vue.toRef(()=>d),customMessages:m,path:a,storage:l,options:n,externalErrors:vue.toRef(h?.value??[],t),initialState:g?.[t],shortcuts:C,fieldName:F});if(x){let P=p.value?.$id;x.$id=P??String(O),l.addArrayStatus(e,x.$id,x);}return x}function ct({state:e,rulesDef:r,customMessages:t,path:n,storage:l,options:p,externalErrors:m,initialState:d,shortcuts:h,fieldName:g}){let C=vue.effectScope(),F,O=vue.effectScope(),a,x=[];if(!Array.isArray(e.value)&&!r.value.$each)return null;let P=vue.ref(),j=vue.ref(e.value),o,c=vue.ref({}),f=l.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(i=>typeof i!="object"):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(i=>ue(i)):!1)})),M(),w();function M(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(P.value=ge(),Object.defineProperties(e.value,{$id:{value:P.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(P.value=e.value.$id)),!a.isPrimitiveArray.value&&(j.value=c.value.$value,Array.isArray(e.value)?f.value=e.value.map((s,i)=>{let{scope:$,unwrapped:u}=Ce(r.value.$each,vue.toRef(()=>s),i);$&&x.push($);let S=Ae({$id:P.value,path:n,customMessages:t,rules:u??{},stateValue:vue.toRef(()=>s),index:i,options:p,storage:l,externalErrors:vue.toRef(m?.value??{},"$each"),initialState:d?.[i],shortcuts:h,fieldName:g});return S||null}).filter(s=>!!s):f.value=[],c.value=Se({state:e,rulesDef:r,customMessages:t,path:n,storage:l,options:p,externalErrors:vue.toRef(m?.value??{},"$self"),$isArray:!0,initialState:d,shortcuts:h,fieldName:g}));}function N(){if(Array.isArray(e.value)){let s=U(f.value);f.value=e.value.map((i,$)=>{let u=vue.toRef(()=>i);if(i.$id&&f.value.find(S=>S.$id===i.$id)){let S=l.getArrayStatus(P.value,i.$id);return S?(S.$value=u,S):null}else {let{scope:S,unwrapped:q}=Ce(r.value.$each,u,$);if(S&&x.push(S),q){let H=Ae({$id:P.value,path:n,customMessages:t,rules:q,stateValue:u,index:$,options:p,storage:l,externalErrors:vue.toRef(m?.value??{},"$each"),initialState:d?.[$],shortcuts:h,fieldName:g});return H||null}}}).filter(i=>!!i),s.filter(i=>!e.value.find($=>i.$id===$.$id)).forEach((i,$)=>{l.deleteArrayStatus(P.value,$.toString());});}else f.value=[];}function w(){o=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?M():N();},{deep:ve?1:!0,flush:"pre"}),C=vue.effectScope(),F=C.run(()=>{let s=vue.computed(()=>c.value.$dirty&&f.value.every(R=>R.$dirty)),i=vue.computed(()=>c.value.$anyDirty||f.value.some(R=>R.$dirty)),$=vue.computed(()=>c.value.$invalid||f.value.some(R=>R.$invalid)),u=vue.computed(()=>(L(c.value.$rules)?!0:c.value.$valid)&&f.value.every(R=>R.$valid)),S=vue.computed(()=>c.value.$error||f.value.some(R=>R.$error)),q=vue.computed(()=>!($.value||H.value)),H=vue.computed(()=>c.value.$pending||f.value.some(R=>R.$pending)),K=vue.computed(()=>({$self:c.value.$errors,$each:f.value.map(R=>R.$errors)})),ie=vue.computed(()=>({$self:c.value.$silentErrors,$each:f.value.map(R=>R.$silentErrors)})),ne=vue.computed(()=>g);function y(){h?.collections&&Object.entries(h?.collections).forEach(([R,A])=>{let z=vue.effectScope();T[R]=z.run(()=>{let te=vue.ref();return vue.watchEffect(()=>{te.value=A(vue.reactive({$dirty:s,$error:S,$pending:H,$invalid:$,$valid:u,$errors:K,$ready:q,$silentErrors:ie,$anyDirty:i,$name:ne,$each:f,$field:c,$value:e}));}),te}),x.push(z);});}let T={};return y(),{$dirty:s,$anyDirty:i,$invalid:$,$valid:u,$error:S,$pending:H,$errors:K,$silentErrors:ie,$ready:q,$name:ne,$shortcuts:T}}),a.isPrimitiveArray.value&&(console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`),o());}function _(){o&&o(),c.value&&c.value.$unwatch(),f.value&&f.value.forEach(s=>{"$dirty"in s&&s.$unwatch();}),C.stop(),C=vue.effectScope(),O.stop(),O=vue.effectScope(!0),x.forEach(s=>s.stop()),x=[];}function E(s=!0,i=!1){c.value.$touch(s,i),f.value.forEach($=>{$.$touch(s,i);});}function v(){c.value.$reset(),f.value.forEach(s=>{s.$reset();});}async function b(){let s=e.value;try{return {result:(await Promise.allSettled([c.value.$validate(),...f.value.map(u=>u.$validate())])).every(u=>u.status==="fulfilled"?u.value.result===!0:!1),data:s}}catch{return {result:!1,data:s}}}function k(){c.value.$clearExternalErrors(),f.value.forEach(s=>{s.$clearExternalErrors();});}function V(s=!0){let i=f.value.map($=>{if(at($))return $.$extractDirtyFields(s)});return s&&i.every($=>L($))&&(i=[]),i}function Y(){_(),e.value=U(d),v();}let{$shortcuts:D,...I}=F;return vue.reactive({$field:c,...I,...D,$each:f,$value:e,$validate:b,$unwatch:_,$watch:w,$touch:E,$reset:v,$resetAll:Y,$extractDirtyFields:V,$clearExternalErrors:k})}function je({rulesDef:e,state:r,path:t="",rootRules:n,externalErrors:l,validationGroups:p,initialState:m,fieldName:d,...h}){let g=vue.effectScope(),C,F=[],O=null,a=null,x=null;async function j(D=!0){let I=Object.entries(e.value),s=Object.fromEntries(I.filter(([u,S])=>!!S).map(([u,S])=>{if(S){let q=vue.toRef(r.value,u),H=vue.toRef(()=>S),K=vue.toRef(l?.value??{},u);return [u,pe({state:q,rulesDef:H,path:t?`${t}.${u}`:u,externalErrors:K,initialState:m?.[u],fieldName:u,...h})]}return []})),i=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([u,S])=>!(u in e.value)&&!!S).map(([u])=>{let S=vue.toRef(r.value,u);return [u,pe({state:S,rulesDef:vue.computed(()=>({})),path:t?`${t}.${u}`:u,externalErrors:vue.toRef(l?.value??{},u),initialState:m?.[u],fieldName:u,...h})]})),$=Object.fromEntries(Object.entries(r.value).filter(([u])=>!(u in e.value)&&!(u in(i.value??{}))).map(([u])=>{let S=vue.toRef(r.value,u);return [u,pe({state:S,rulesDef:vue.computed(()=>({})),path:t?`${t}.${u}`:u,externalErrors:vue.toRef(l?.value??{},u),initialState:m?.[u],fieldName:u,...h})]}));o.value={...s,...i,...$},D&&N();}let o=h.storage.getFieldsEntry(t);j();function c(){a?.(),Object.values(o.value).forEach(D=>{D.$reset();}),M();}function f(D=!0,I=!1){Object.values(o.value).forEach(s=>{s.$touch(D,I);});}function M(){l?.value&&(a=vue.watch(l,()=>{w(),j();},{deep:!0}));}function N(){n&&(O=vue.watch(n,()=>{w(),j();},{deep:!0,flush:"post"}),M()),x=vue.watch(r,()=>{w(),j(),f(!0,!0);},{flush:"sync"}),g=vue.effectScope(),C=g.run(()=>{let D=vue.computed({get:()=>!!Object.entries(o.value).length&&Object.entries(o.value).every(([T,R])=>R?.$dirty),set(){}}),I=vue.computed({get:()=>Object.entries(o.value).some(([T,R])=>R?.$dirty),set(){}}),s=vue.computed({get:()=>Object.entries(o.value).some(([T,R])=>R?.$invalid),set(){}}),i=vue.computed({get:()=>Object.entries(o.value).every(([T,R])=>R?.$valid),set(){}}),$=vue.computed({get:()=>I.value&&!S.value&&s.value,set(){}}),u=vue.computed({get:()=>vue.unref(h.options.autoDirty)?I.value&&!(s.value||S.value):!(s.value||S.value),set(){}}),S=vue.computed({get:()=>Object.entries(o.value).some(([T,R])=>R?.$pending),set(){}}),q=vue.computed({get:()=>Object.fromEntries(Object.entries(o.value).map(([T,R])=>[T,R?.$errors])),set(){}}),H=vue.computed({get:()=>Object.fromEntries(Object.entries(o.value).map(([T,R])=>[T,R?.$silentErrors])),set(){}}),K=vue.computed({get:()=>d,set(){}});function ie(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([T,R])=>{let A=vue.effectScope();y[T]=A.run(()=>{let z=vue.ref();return vue.watchEffect(()=>{z.value=R(vue.reactive({$dirty:D,$value:r,$error:$,$pending:S,$invalid:s,$valid:i,$ready:u,$anyDirty:I,$name:K,$silentErrors:H,$errors:q,$fields:o}));}),z}),F.push(A);});}let ne=vue.computed({get:()=>p?Object.fromEntries(Object.entries(p?.(o.value)??{}).map(([T,R])=>R.length?[T,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(A=>[A,Qe(R,A)])),...Object.fromEntries(["$errors","$silentErrors"].map(A=>[A,Xe(R,A)]))}]:[])):{},set(){}}),y={};return ie(),{$dirty:D,$anyDirty:I,$invalid:s,$valid:i,$error:$,$pending:S,$errors:q,$silentErrors:H,$ready:u,$name:K,$shortcuts:y,$groups:ne}});}function w(){O?.(),a?.(),x?.(),F.forEach(D=>D.stop()),F=[],g.stop(),o.value&&Object.entries(o.value).forEach(([D,I])=>{I.$unwatch();});}function _(){Object.entries(o.value).forEach(([D,I])=>{I.$clearExternalErrors();});}async function E(){w(),r.value=U({...m??{}}),c(),j();}function v(D){return D.filter(([I,s])=>X(s)?!(s&&typeof s=="object"&&"_null"in s)&&!L(s):Array.isArray(s)?s.length:!0)}function b(D=!0){let I=Object.entries(o.value).map(([s,i])=>[s,i.$extractDirtyFields(D)]);return D&&(I=v(I)),Object.fromEntries(I)}async function k(){try{let D=r.value;return {result:(await Promise.allSettled(Object.values(o.value).map(i=>i.$validate()))).every(i=>i.status==="fulfilled"?i.value.result===!0:!1),data:D}}catch{return {result:!1,data:r.value}}}let{$shortcuts:V,...Y}=C;return vue.reactive({...Y,...V,$fields:o,$value:r,$resetAll:E,$reset:c,$touch:f,$validate:k,$unwatch:w,$watch:N,$clearExternalErrors:_,$extractDirtyFields:b})}function pe({rulesDef:e,externalErrors:r,...t}){return rt(e,t.state)?ct({rulesDef:e,externalErrors:r,...t}):tt(t.state,e)&&et(t.state)?je({rulesDef:e,externalErrors:r,...t}):nt(e)?Se({rulesDef:e,externalErrors:r,...t}):null}function _e({initialState:e,options:r,scopeRules:t,state:n,customRules:l,shortcuts:p}){let m=Ie(),d=vue.ref();return d.value=je({rootRules:t,rulesDef:t,state:n,customMessages:l?.(),storage:m,options:r,externalErrors:r.externalErrors,validationGroups:r.validationGroups,initialState:e,shortcuts:p,fieldName:"root",path:""}),vue.onScopeDispose(()=>{d.value?.$unwatch();}),vue.reactive({regle:d})}function Ve(e,r,t){let n={autoDirty:r?.autoDirty??!0,lazy:r?.lazy??!1,rewardEarly:r?.rewardEarly??!1,clearExternalErrorsOnChange:r?.clearExternalErrorsOnChange??!0};function l(p,m,d){let h=vue.isRef(m)?m:vue.computed(typeof m=="function"?m:()=>m),g={...n,...d},C=vue.isRef(p)?p:vue.ref(p),F={...U(C.value)};return {r$:_e({scopeRules:h,state:C,options:g,initialState:F,customRules:e,shortcuts:t}).regle}}return l}var dt=Ve();function Ge(){function e(r,t){return t}return e}var Ne=Ge();function mt({rules:e,modifiers:r,shortcuts:t}){let n=Ve(e,r,t),l=Ge();return {useRegle:n,inferRules:l}}
2
- exports.InternalRuleType=Ee;exports.createRule=xe;exports.defineRegleConfig=mt;exports.inferRules=Ne;exports.unwrapRuleParameters=W;exports.useRegle=dt;
1
+ 'use strict';var vue=require('vue');var xe=(t=>(t.Inline="__inline",t.Async="__async",t))(xe||{});function Ke(e,r){return e.some(t=>t[r])}function et(e,r){return e.reduce((t,n)=>{let l=n[r]||[];return t.concat(l)},[])}function B(e){try{return e.map(r=>vue.toValue(r))}catch{return []}}function tt(e){return e.map(r=>r instanceof Function?vue.computed(r):vue.isRef(r)?r:vue.toRef(()=>r))}function rt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(y=>y.trim()).filter(y=>y.length>0).length:0}function Ce(e,...r){let{validator:t,type:n}=e,l=n==="__async"||t.constructor.name==="AsyncFunction";return {...{validator(d,...S){return e.validator(d,...B(S.length?S:r))},message(d){return typeof e.message=="function"?e.message({...d,$params:B(d?.$params?.length?d.$params:r)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:B(d?.$params?.length?d.$params:r)}):e.active??!0},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:B(d?.$params?.length?d.$params:r)}):e.tooltip??[]},exec(d){let S=e.validator(d,...B(r)),$;return S instanceof Promise?S.then(x=>($=x,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)):($=S,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:l,_params:tt(r)}}function Ie(e){if(typeof e.validator=="function"){let t=Ce(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(rt(e.validator)>1){let l=function(...R){return Ce(e,...R)};return l.validator=t.validator,l.message=t.message,l.active=t.active,l.tooltip=t.tooltip,l.type=t.type,l.exec=t.exec,l._validator=t.validator,l._message=t.message,l._active=t.active,l._tooltip=t.tooltip,l._type=e.type,l._message_pacthed=!1,l._tooltip_pacthed=!1,l._async=n,l}else return t}throw new Error("Validator must be a function")}function Z(e){return e instanceof Date||e instanceof File?!1:typeof e=="object"&&e!==null&&!Array.isArray(e)}function nt(e){return e.value instanceof Date||e.value instanceof File?!1:Z(e.value)}function L(e){let r=e,t={}.toString.call(e).slice(8,-1);if(t=="Set"&&(r=new Set([...e].map(n=>L(n)))),t=="Map"&&(r=new Map([...e].map(n=>[L(n[0]),L(n[1])]))),t=="Date"&&(r=new Date(e.getTime())),t=="RegExp"&&(r=RegExp(e.source,xt(e))),t=="Array"||t=="Object"){r=Array.isArray(e)?[]:{};for(let n in e)r[n]=L(e[n]);}return r}function xt(e){if(typeof e.source.flags=="string")return e.source.flags;{let r=[];return e.global&&r.push("g"),e.ignoreCase&&r.push("i"),e.multiline&&r.push("m"),e.sticky&&r.push("y"),e.unicode&&r.push("u"),r.join("")}}function Pe(e,r,t){let n=vue.effectScope(),l;return e instanceof Function?l=n.run(()=>e(r,t??0)):l=e,{scope:n,unwrapped:l}}function $e(e,r,t){let n,l=(...R)=>new Promise(y=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...R])).then(y);},r);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}function It(e,r){let t=String(e).split("."),n=String(r).split(".");for(let l=0;l<Math.min(t.length,n.length);l++){let R=Number(t[l]),y=Number(n[l]);if(R>y)return 1;if(y>R)return -1;if(!isNaN(R)&&isNaN(y))return 1;if(isNaN(R)&&!isNaN(y))return -1}return 0}var ge=It(vue.version,"3.5.0")!==-1;function Pt(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?Pt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function we(){let e=vue.shallowRef(new Map),r=vue.shallowRef(new Map),t=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),R=vue.shallowRef(new Map);function y(u){let s=r.value.get(u);if(s)return s;{let c=vue.ref({});return r.value.set(u,c),c}}function d(u){let s=t.value.get(u);if(s)return s;{let c=vue.ref([]);return t.value.set(u,c),c}}function S(u,s,c){R.value.set(`${u}-${s}`,c);}function $(u,s){return R.value.get(`${u}-${s}`)}function x(u,s){u&&s!=null&&R.value.delete(`${u}-${s}`);}function F(u,s){n.value.set(u,s);}function O(u){return n.value.get(u)??!1}function a(u,s){e.value.set(u,s);}function E(u,s){let c=e.value.get(u);return c?C(s,c)?{valid:!0}:{valid:!1}:void 0}function C(u,s){let c=Object.keys(s),j=Object.keys(u);return j.length!==c.length||!j.every(_=>c.includes(_))?!1:j.every(_=>{let P=u[_],b=s[_];return !b||!P||typeof P=="function"||typeof b=="function"||typeof P=="number"||typeof P=="boolean"?!1:P._params?P._params?.every((W,m)=>{if(typeof b=="number"||typeof b=="boolean")return !0;{let I=B(b._params),V=B(P._params);return I?.[m]===V?.[m]}}):!0})}function M(u){let s=l.value.get(u);if(s)return s;{let c=vue.ref(!1),j=vue.ref(!0),k=vue.ref({}),_=vue.ref(!1);return l.value.set(u,{$pending:c,$valid:j,$metadata:k,$validating:_}),{$pending:c,$valid:j,$metadata:k,$validating:_}}}return vue.onScopeDispose(()=>{e.value.clear(),r.value.clear(),t.value.clear(),n.value.clear(),l.value.clear(),R.value.clear();}),{addRuleDeclEntry:a,setDirtyEntry:F,checkRuleDeclEntry:E,getDirtyState:O,trySetRuleStatusRef:M,getFieldsEntry:y,getCollectionsEntry:d,getArrayStatus:$,addArrayStatus:S,deleteArrayStatus:x,arrayStatusStorage:R}}function z(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function at(e,r){return Z(e.value)&&Z(r.value)&&!Object.entries(r.value).some(t=>ce(t))}function lt(e,r){return !!e.value&&"$each"in e.value||Array.isArray(r.value)}function ot(e){return !!e.value&&Z(e.value)}function ce(e){return Z(e)&&"_validator"in e}function fe(e){return typeof e.value!="function"}function ut(e){return Z(e)&&"$fields"in e}function Oe({field:e,silent:r=!1}){return Object.entries(e.$rules??{}).map(([t,n])=>r||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(t=>!!t).reduce((t,n)=>typeof n=="string"?t?.concat([n]):t?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function it({field:e}){return Object.entries(e.$rules??{}).map(([r,t])=>t.$tooltip).filter(r=>!!r).reduce((r,t)=>typeof t=="string"?r?.concat([t]):r?.concat(t),[])}function st({fieldProperties:e,customMessages:r,rule:t,ruleKey:n,state:l,path:R,storage:y,$debounce:d,modifiers:S}){let $=vue.effectScope(),x={},F,O=vue.ref(!1),{$pending:a,$valid:E,$metadata:C,$validating:M}=y.trySetRuleStatusRef(`${R}.${n}`);function u(){$=vue.effectScope(),x=$.run(()=>{let b=vue.computed(()=>({$value:l.value,$error:e.$error.value,$dirty:e.$dirty.value,$pending:e.$pending.value,$valid:e.$valid.value,$invalid:e.$invalid.value,$rule:{$valid:E.value,$invalid:!E.value,$pending:a.value},$params:D.value,...C.value})),W=vue.computed(()=>fe(t)?typeof t.value.active=="function"?t.value.active(b.value):!!t.value.active:!0);function m(o){let i="",g=r?r[n]?.[o]:void 0;if(g&&(typeof g=="function"?i=g(b.value):i=g),fe(t)){let f=`_${o}_patched`;g&&!t.value[f]||(typeof t.value[o]=="function"?i=t.value[o](b.value):i=t.value[o]??"");}return i}let I=vue.computed(()=>{let o=m("message");return z(o)&&(o="This field is not valid"),o}),V=vue.computed(()=>m("tooltip")),Q=vue.computed(()=>fe(t)&&t.value.type?t.value.type:n),K=vue.computed(()=>fe(t)?t.value.validator:t.value),D=vue.computed(()=>typeof t.value=="function"?[]:B(t.value._params??[])),w=vue.computed(()=>`${R}.${Q.value}`);return {$active:W,$message:I,$type:Q,$validator:K,$params:D,$path:w,$tooltip:V}}),F=vue.watch(x?.$params,()=>{(S.$autoDirty.value||S.$rewardEarly.value&&e.$error.value)&&k();});}u();function s(){E.value=!0,e.$dirty.value&&(a.value=!0);}async function c(){let b=!1;try{let W=x.$validator.value,m=W(l.value,...x.$params.value),I=l.value;s();let V;if(m instanceof Promise?V=await m:V=m,l.value!==I)return !0;if(typeof V=="boolean")b=V;else {let{$valid:Q,...K}=V;b=Q,C.value=K;}}catch{b=!1;}finally{a.value=!1;}return b}let j=$e(c,d??200);async function k(){try{M.value=!0;let b=!1;if(ce(t.value)&&t.value._async)b=await j();else {let W=x.$validator.value,m=W(l.value,...x.$params.value);if(m instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(m!=null)if(typeof m=="boolean")b=m;else {let{$valid:I,...V}=m;b=I,C.value=V;}}return E.value=b,b}catch{return !1}finally{M.value=!1;}}function _(){E.value=!0,C.value={},a.value=!1,M.value=!1,u();}function P(){F(),$.stop(),$=vue.effectScope();}return vue.reactive({...x,$pending:a,$valid:E,$metadata:C,$haveAsync:O,$validating:M,$validate:k,$unwatch:P,$watch:u,$reset:_})}function be({state:e,rulesDef:r,customMessages:t,path:n,fieldName:l,storage:R,options:y,externalErrors:d,onUnwatch:S,$isArray:$,initialState:x,shortcuts:F}){let O=vue.effectScope(),a,E=[],C,M,u,s,c=()=>{};function j(){let v=r.value,A=R.checkRuleDeclEntry(n,v);I.value=Object.fromEntries(Object.entries(v).filter(([h])=>h.startsWith("$"))),P(),m.value=Object.fromEntries(Object.entries(r.value).filter(([h])=>!h.startsWith("$")).map(([h,p])=>{if(p){let N=vue.toRef(()=>p);return [h,st({fieldProperties:{$dirty:a.$dirty,$error:a.$error,$invalid:a.$invalid,$pending:a.$pending,$valid:a.$valid},modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:t,rule:N,ruleKey:h,state:e,path:n,storage:R,$debounce:I.value.$debounce})]}return []}).filter(h=>!!h.length)),a.processShortcuts(),k(),A?.valid!=null&&(a.$dirty.value=R.getDirtyState(n),a.$dirty.value&&c()),R.addRuleDeclEntry(n,v);}function k(){c=a.$debounce.value?$e(W,a.$debounce.value??a.$haveAnyAsyncRule?100:0):W;}function _(){m.value&&Object.entries(m.value).forEach(([v,A])=>{A.$unwatch();}),u(),a.$dirty.value&&R.setDirtyEntry(n,a.$dirty.value),C?.(),M?.(),O.stop(),O=vue.effectScope(),E.forEach(v=>v.stop()),E=[],S?.(),s?.();}function P(){m.value&&Object.entries(m.value).forEach(([v,A])=>{A.$watch();}),a=O.run(()=>{let v=vue.ref(!1),A=vue.ref(!1),h=vue.computed(()=>v.value),p=vue.computed(()=>I.value.$debounce),N=vue.computed(()=>I.value.$lazy!=null?I.value.$lazy:vue.unref(y.lazy)),X=vue.computed(()=>Ue.value===!0?!1:I.value.$rewardEarly!=null?I.value.$rewardEarly:vue.unref(y.rewardEarly)),me=vue.computed(()=>I.value.$clearExternalErrorsOnChange!=null?I.value.$clearExternalErrorsOnChange:vue.unref(y.clearExternalErrorsOnChange)),Ue=vue.computed(()=>I.value.$autoDirty!=null?I.value.$autoDirty:vue.unref(y.autoDirty)),Be=vue.computed(()=>Object.entries(m.value).some(([q,te])=>te.$validating)),He=vue.computed({get:()=>e.value,set(q){C(),e.value=q,b();}}),Ee=vue.computed(()=>ve.value&&!ye.value&&v.value),Le=vue.computed(()=>Ee.value?Oe({field:{$dirty:v.value,$externalErrors:d?.value,$rules:m.value}}):[]),qe=vue.computed(()=>it({field:{$rules:m.value}})),ze=vue.computed(()=>Oe({field:{$dirty:v.value,$externalErrors:d?.value,$rules:m.value},silent:!0})),Je=vue.computed(()=>!(ve.value||ye.value)),ye=vue.computed(()=>A.value||!X.value?Object.entries(m.value).some(([q,te])=>te.$pending):!1),ve=vue.computed(()=>d?.value?.length?!0:z(m.value)?!1:!X.value||X.value&&A.value?Object.entries(m.value).some(([q,te])=>!te.$valid):!1),Ye=vue.computed(()=>l),De=vue.computed(()=>d?.value?.length||z(m.value)?!1:v.value&&!z(e.value)&&!Be.value?Object.values(m.value).every(q=>q.$valid&&q.$active):!1),gt=vue.computed(()=>Object.entries(m.value).some(([q,te])=>te.$haveAsync));function St(){F?.fields&&Object.entries(F.fields).forEach(([q,te])=>{let Xe=vue.effectScope();Qe[q]=Xe.run(()=>{let Ze=vue.ref();return vue.watchEffect(()=>{Ze.value=te(vue.reactive({$dirty:v,$externalErrors:d?.value??[],$value:e,$silentValue:He,$rules:m,$error:Ee,$pending:ye,$invalid:ve,$valid:De,$errors:Le,$ready:Je,$silentErrors:ze,$anyDirty:h,$tooltips:qe,$name:Ye}));}),Ze}),E.push(Xe);});}let Qe={};return vue.watch(De,q=>{q&&(A.value=!1);}),{$error:Ee,$pending:ye,$invalid:ve,$valid:De,$debounce:p,$lazy:N,$errors:Le,$ready:Je,$silentErrors:ze,$rewardEarly:X,$autoDirty:Ue,$clearExternalErrorsOnChange:me,$anyDirty:h,$name:Ye,$haveAnyAsyncRule:gt,$shortcuts:Qe,$validating:Be,$tooltips:qe,$dirty:v,triggerPunishment:A,processShortcuts:St,$silentValue:He}}),b(),u=vue.watch(a.$dirty,()=>{R.setDirtyEntry(n,a.$dirty.value);}),M=vue.watch(a.$valid,v=>{a.$rewardEarly.value&&v&&(a.triggerPunishment.value=!1);}),s=vue.watch(a.$haveAnyAsyncRule,k);}function b(){C=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=!0)),r.value instanceof Function&&j(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&c(),a.$rewardEarly.value!==!0&&a.$clearExternalErrorsOnChange.value&&o();},{deep:$?!0:ge?1:!0});}function W(){Object.values(m.value).forEach(v=>{v.$validate();});}let m=vue.ref({}),I=vue.ref({});j();function V(){o(),a.$dirty.value=!1,R.setDirtyEntry(n,!1),Object.entries(m.value).forEach(([v,A])=>{A.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(m.value).forEach(v=>v.$validate());}function Q(v=!0,A=!1){a.$dirty.value||(a.$dirty.value=!0),A&&v?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&c():v&&c();}async function K(){try{let v=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:v};return z(m.value)?{result:!0,data:v}:{result:(await Promise.allSettled(Object.entries(m.value).map(([p,N])=>N.$validate()))).every(p=>p.status==="fulfilled"?p.value===!0:!1),data:v}}catch{return {result:!1,data:e.value}}}function D(){_(),e.value=L(x),V();}function w(v=!0){return a.$dirty.value?e.value:v?{_null:!0}:null}function o(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&c();let{$shortcuts:i,$validating:g,$autoDirty:f,$rewardEarly:T,$clearExternalErrorsOnChange:U,$haveAnyAsyncRule:Y,$debounce:ee,$lazy:ae,...le}=a;return vue.reactive({...le,$externalErrors:d,$value:e,$rules:m,...i,$reset:V,$touch:Q,$validate:K,$unwatch:_,$watch:P,$resetAll:D,$extractDirtyFields:w,$clearExternalErrors:o})}function Me({$id:e,path:r,index:t,options:n,storage:l,stateValue:R,customMessages:y,rules:d,externalErrors:S,initialState:$,shortcuts:x,fieldName:F}){let O=d.$key?d.$key:Se(),a=`${r}.${String(O)}`;typeof R.value=="object"&&R.value!=null&&(R.value.$id?a=`${r}.${R.value.$id}`:Object.defineProperties(R.value,{$id:{value:O,enumerable:!1,configurable:!1,writable:!1}}));let E=de({state:R,rulesDef:vue.toRef(()=>d),customMessages:y,path:a,storage:l,options:n,externalErrors:vue.toRef(S?.value??[],t),initialState:$?.[t],shortcuts:x,fieldName:F});if(E){let C=R.value?.$id;E.$id=C??String(O),l.addArrayStatus(e,E.$id,E);}return E}function pt({state:e,rulesDef:r,customMessages:t,path:n,storage:l,options:R,externalErrors:y,initialState:d,shortcuts:S,fieldName:$}){let x=vue.effectScope(),F,O=vue.effectScope(),a,E=[];if(!Array.isArray(e.value)&&!r.value.$each)return null;let C=vue.ref(),M=vue.ref(e.value),u,s=vue.ref({}),c=l.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(i=>typeof i!="object"):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(i=>ce(i)):!1)})),j(),P();function j(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(C.value=Se(),Object.defineProperties(e.value,{$id:{value:C.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(C.value=e.value.$id)),!a.isPrimitiveArray.value&&(M.value=s.value.$value,Array.isArray(e.value)?c.value=e.value.map((o,i)=>{let{scope:g,unwrapped:f}=Pe(r.value.$each,vue.toRef(()=>o),i);g&&E.push(g);let T=Me({$id:C.value,path:n,customMessages:t,rules:f??{},stateValue:vue.toRef(()=>o),index:i,options:R,storage:l,externalErrors:vue.toRef(y?.value??{},"$each"),initialState:d?.[i],shortcuts:S,fieldName:$});return T||null}).filter(o=>!!o):c.value=[],s.value=be({state:e,rulesDef:r,customMessages:t,path:n,storage:l,options:R,externalErrors:vue.toRef(y?.value??{},"$self"),$isArray:!0,initialState:d,shortcuts:S,fieldName:$}));}function k(){if(Array.isArray(e.value)){let o=L(c.value);c.value=e.value.map((i,g)=>{let f=vue.toRef(()=>i);if(i.$id&&c.value.find(T=>T.$id===i.$id)){let T=l.getArrayStatus(C.value,i.$id);return T?(T.$value=f,T):null}else {let{scope:T,unwrapped:U}=Pe(r.value.$each,f,g);if(T&&E.push(T),U){let Y=Me({$id:C.value,path:n,customMessages:t,rules:U,stateValue:f,index:g,options:R,storage:l,externalErrors:vue.toRef(y?.value??{},"$each"),initialState:d?.[g],shortcuts:S,fieldName:$});return Y||null}}}).filter(i=>!!i),o.filter(i=>!e.value.find(g=>i.$id===g.$id)).forEach((i,g)=>{l.deleteArrayStatus(C.value,g.toString());});}else c.value=[];}function _(){u=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?j():k();},{deep:ge?1:!0,flush:"pre"});}function P(){_(),x=vue.effectScope(),F=x.run(()=>{let o=vue.computed({get:()=>e.value,set(p){u(),e.value=p,_();}}),i=vue.computed(()=>s.value.$dirty&&c.value.every(p=>p.$dirty)),g=vue.computed(()=>s.value.$anyDirty||c.value.some(p=>p.$dirty)),f=vue.computed(()=>s.value.$invalid||c.value.some(p=>p.$invalid)),T=vue.computed(()=>(z(s.value.$rules)?!0:s.value.$valid)&&c.value.every(p=>p.$valid)),U=vue.computed(()=>s.value.$error||c.value.some(p=>p.$error)),Y=vue.computed(()=>!(f.value||ee.value)),ee=vue.computed(()=>s.value.$pending||c.value.some(p=>p.$pending)),ae=vue.computed(()=>({$self:s.value.$errors,$each:c.value.map(p=>p.$errors)})),le=vue.computed(()=>({$self:s.value.$silentErrors,$each:c.value.map(p=>p.$silentErrors)})),v=vue.computed(()=>$);function A(){S?.collections&&Object.entries(S?.collections).forEach(([p,N])=>{let X=vue.effectScope();h[p]=X.run(()=>{let me=vue.ref();return vue.watchEffect(()=>{me.value=N(vue.reactive({$dirty:i,$error:U,$silentValue:o,$pending:ee,$invalid:f,$valid:T,$errors:ae,$ready:Y,$silentErrors:le,$anyDirty:g,$name:v,$each:c,$field:s,$value:e}));}),me}),E.push(X);});}let h={};return A(),{$dirty:i,$anyDirty:g,$invalid:f,$valid:T,$error:U,$pending:ee,$errors:ae,$silentErrors:le,$ready:Y,$name:v,$shortcuts:h,$silentValue:o}}),a.isPrimitiveArray.value&&(console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`),u());}function b(){u&&u(),s.value&&s.value.$unwatch(),c.value&&c.value.forEach(o=>{"$dirty"in o&&o.$unwatch();}),x.stop(),x=vue.effectScope(),O.stop(),O=vue.effectScope(!0),E.forEach(o=>o.stop()),E=[];}function W(o=!0,i=!1){s.value.$touch(o,i),c.value.forEach(g=>{g.$touch(o,i);});}function m(){s.value.$reset(),c.value.forEach(o=>{o.$reset();});}async function I(){let o=e.value;try{return {result:(await Promise.allSettled([s.value.$validate(),...c.value.map(f=>f.$validate())])).every(f=>f.status==="fulfilled"?f.value.result===!0:!1),data:o}}catch{return {result:!1,data:o}}}function V(){s.value.$clearExternalErrors(),c.value.forEach(o=>{o.$clearExternalErrors();});}function Q(o=!0){let i=c.value.map(g=>{if(ut(g))return g.$extractDirtyFields(o)});return o&&i.every(g=>z(g))&&(i=[]),i}function K(){b(),e.value=L(d),m();}let{$shortcuts:D,...w}=F;return vue.reactive({$field:s,...w,...D,$each:c,$value:e,$validate:I,$unwatch:b,$watch:P,$touch:W,$reset:m,$resetAll:K,$extractDirtyFields:Q,$clearExternalErrors:V})}function Ve({rulesDef:e,state:r,path:t="",rootRules:n,externalErrors:l,validationGroups:R,initialState:y,fieldName:d,...S}){let $=vue.effectScope(),x,F=[],O=null,a=null,E=null;async function M(D=!0){let w=Object.entries(e.value),o=Object.fromEntries(w.filter(([f,T])=>!!T).map(([f,T])=>{if(T){let U=vue.toRef(r.value,f),Y=vue.toRef(()=>T),ee=vue.toRef(l?.value??{},f);return [f,de({state:U,rulesDef:Y,path:t?`${t}.${f}`:f,externalErrors:ee,initialState:y?.[f],fieldName:f,...S})]}return []})),i=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([f,T])=>!(f in e.value)&&!!T).map(([f])=>{let T=vue.toRef(r.value,f);return [f,de({state:T,rulesDef:vue.computed(()=>({})),path:t?`${t}.${f}`:f,externalErrors:vue.toRef(l?.value??{},f),initialState:y?.[f],fieldName:f,...S})]})),g=Object.fromEntries(Object.entries(r.value).filter(([f])=>!(f in e.value)&&!(f in(i.value??{}))).map(([f])=>{let T=vue.toRef(r.value,f);return [f,de({state:T,rulesDef:vue.computed(()=>({})),path:t?`${t}.${f}`:f,externalErrors:vue.toRef(l?.value??{},f),initialState:y?.[f],fieldName:f,...S})]}));u.value={...o,...i,...g},D&&_();}let u=S.storage.getFieldsEntry(t);M();function s(){a?.(),Object.values(u.value).forEach(D=>{D.$reset();}),j();}function c(D=!0,w=!1){Object.values(u.value).forEach(o=>{o.$touch(D,w);});}function j(){l?.value&&(a=vue.watch(l,()=>{P(),M();},{deep:!0}));}function k(){E=vue.watch(r,()=>{P(),M(),c(!0,!0);},{flush:"sync"});}function _(){n&&(O?.(),O=vue.watch(n,()=>{P(),M();},{deep:!0,flush:"post"}),j()),k(),$=vue.effectScope(),x=$.run(()=>{let D=vue.computed({get:()=>r.value,set(h){P(),r.value=h,M();}}),w=vue.computed({get:()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([h,p])=>p?.$dirty),set(){}}),o=vue.computed({get:()=>Object.entries(u.value).some(([h,p])=>p?.$dirty),set(){}}),i=vue.computed({get:()=>Object.entries(u.value).some(([h,p])=>p?.$invalid),set(){}}),g=vue.computed({get:()=>Object.entries(u.value).every(([h,p])=>p?.$valid),set(){}}),f=vue.computed({get:()=>o.value&&!U.value&&i.value,set(){}}),T=vue.computed({get:()=>vue.unref(S.options.autoDirty)?o.value&&!(i.value||U.value):!(i.value||U.value),set(){}}),U=vue.computed({get:()=>Object.entries(u.value).some(([h,p])=>p?.$pending),set(){}}),Y=vue.computed({get:()=>Object.fromEntries(Object.entries(u.value).map(([h,p])=>[h,p?.$errors])),set(){}}),ee=vue.computed({get:()=>Object.fromEntries(Object.entries(u.value).map(([h,p])=>[h,p?.$silentErrors])),set(){}}),ae=vue.computed({get:()=>d,set(){}});function le(){S.shortcuts?.nested&&Object.entries(S.shortcuts.nested).forEach(([h,p])=>{let N=vue.effectScope();A[h]=N.run(()=>{let X=vue.ref();return vue.watchEffect(()=>{X.value=p(vue.reactive({$dirty:w,$value:r,$silentValue:D,$error:f,$pending:U,$invalid:i,$valid:g,$ready:T,$anyDirty:o,$name:ae,$silentErrors:ee,$errors:Y,$fields:u}));}),X}),F.push(N);});}let v=vue.computed({get:()=>R?Object.fromEntries(Object.entries(R?.(u.value)??{}).map(([h,p])=>p.length?[h,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(N=>[N,Ke(p,N)])),...Object.fromEntries(["$errors","$silentErrors"].map(N=>[N,et(p,N)]))}]:[])):{},set(){}}),A={};return le(),{$dirty:w,$anyDirty:o,$invalid:i,$valid:g,$error:f,$pending:U,$errors:Y,$silentErrors:ee,$ready:T,$name:ae,$shortcuts:A,$groups:v,$silentValue:D}});}function P(){O?.(),a?.(),E?.(),F.forEach(D=>D.stop()),F=[],$.stop(),u.value&&Object.entries(u.value).forEach(([D,w])=>{w.$unwatch();});}function b(){Object.entries(u.value).forEach(([D,w])=>{w.$clearExternalErrors();});}async function W(){P(),r.value=L({...y??{}}),s(),M();}function m(D){return D.filter(([w,o])=>Z(o)?!(o&&typeof o=="object"&&"_null"in o)&&!z(o):Array.isArray(o)?o.length:!0)}function I(D=!0){let w=Object.entries(u.value).map(([o,i])=>[o,i.$extractDirtyFields(D)]);return D&&(w=m(w)),Object.fromEntries(w)}async function V(){try{let D=r.value;return {result:(await Promise.allSettled(Object.values(u.value).map(i=>i.$validate()))).every(i=>i.status==="fulfilled"?i.value.result===!0:!1),data:D}}catch{return {result:!1,data:r.value}}}let{$shortcuts:Q,...K}=x;return vue.reactive({...K,...Q,$fields:u,$value:r,$resetAll:W,$reset:s,$touch:c,$validate:V,$unwatch:P,$watch:_,$clearExternalErrors:b,$extractDirtyFields:I})}function de({rulesDef:e,externalErrors:r,...t}){return lt(e,t.state)?pt({rulesDef:e,externalErrors:r,...t}):at(t.state,e)&&nt(t.state)?Ve({rulesDef:e,externalErrors:r,...t}):ot(e)?be({rulesDef:e,externalErrors:r,...t}):null}function Ge({initialState:e,options:r,scopeRules:t,state:n,customRules:l,shortcuts:R}){let y=we(),d=vue.ref();return d.value=Ve({rootRules:t,rulesDef:t,state:n,customMessages:l?.(),storage:y,options:r,externalErrors:r.externalErrors,validationGroups:r.validationGroups,initialState:e,shortcuts:R,fieldName:"root",path:""}),vue.onScopeDispose(()=>{d.value?.$unwatch();}),vue.reactive({regle:d})}function Ne(e,r,t){let n={autoDirty:r?.autoDirty??!0,lazy:r?.lazy??!1,rewardEarly:r?.rewardEarly??!1,clearExternalErrorsOnChange:r?.clearExternalErrorsOnChange??!0};function l(R,y,d){let S=vue.isRef(y)?y:vue.computed(typeof y=="function"?y:()=>y),$={...n,...d},x=vue.isRef(R)?R:vue.ref(R),F={...L(x.value)};return {r$:Ge({scopeRules:S,state:x,options:$,initialState:F,customRules:e,shortcuts:t}).regle}}return l}var vt=Ne();function ke(){function e(r,t){return t}return e}var We=ke();function $t({rules:e,modifiers:r,shortcuts:t}){let n=Ne(e,r,t),l=ke();return {useRegle:n,inferRules:l}}
2
+ exports.InternalRuleType=xe;exports.createRule=Ie;exports.defineRegleConfig=$t;exports.inferRules=We;exports.unwrapRuleParameters=B;exports.useRegle=vt;
@@ -1,2 +1,2 @@
1
- import {toValue,version,computed,isRef,toRef,ref,onScopeDispose,reactive,shallowRef,effectScope,unref,watch,watchEffect}from'vue';var Ee=(t=>(t.Inline="__inline",t.Async="__async",t))(Ee||{});function Qe(e,r){return e.some(t=>t[r])}function Xe(e,r){return e.reduce((t,n)=>{let l=n[r]||[];return t.concat(l)},[])}function W(e){try{return e.map(r=>toValue(r))}catch{return []}}function Ze(e){return e.map(r=>r instanceof Function?computed(r):isRef(r)?r:toRef(()=>r))}function Ke(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(m=>m.trim()).filter(m=>m.length>0).length:0}function De(e,...r){let{validator:t,type:n}=e,l=n==="__async"||t.constructor.name==="AsyncFunction";return {...{validator(d,...h){return e.validator(d,...W(h.length?h:r))},message(d){return typeof e.message=="function"?e.message({...d,$params:W(d?.$params?.length?d.$params:r)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:W(d?.$params?.length?d.$params:r)}):e.active??!0},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:W(d?.$params?.length?d.$params:r)}):e.tooltip??[]},exec(d){let h=e.validator(d,...W(r)),g;return h instanceof Promise?h.then(C=>(g=C,typeof g=="object"&&"$valid"in g?g.$valid:typeof g=="boolean"?g:!1)):(g=h,typeof g=="object"&&"$valid"in g?g.$valid:typeof g=="boolean"?g:!1)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:l,_params:Ze(r)}}function xe(e){if(typeof e.validator=="function"){let t=De(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(Ke(e.validator)>1){let l=function(...p){return De(e,...p)};return l.validator=t.validator,l.message=t.message,l.active=t.active,l.tooltip=t.tooltip,l.type=t.type,l.exec=t.exec,l._validator=t.validator,l._message=t.message,l._active=t.active,l._tooltip=t.tooltip,l._type=e.type,l._message_pacthed=!1,l._tooltip_pacthed=!1,l._async=n,l}else return t}throw new Error("Validator must be a function")}function X(e){return e instanceof Date||e instanceof File?!1:typeof e=="object"&&e!==null&&!Array.isArray(e)}function et(e){return e.value instanceof Date||e.value instanceof File?!1:X(e.value)}function U(e){let r=e,t={}.toString.call(e).slice(8,-1);if(t=="Set"&&(r=new Set([...e].map(n=>U(n)))),t=="Map"&&(r=new Map([...e].map(n=>[U(n[0]),U(n[1])]))),t=="Date"&&(r=new Date(e.getTime())),t=="RegExp"&&(r=RegExp(e.source,Et(e))),t=="Array"||t=="Object"){r=Array.isArray(e)?[]:{};for(let n in e)r[n]=U(e[n]);}return r}function Et(e){if(typeof e.source.flags=="string")return e.source.flags;{let r=[];return e.global&&r.push("g"),e.ignoreCase&&r.push("i"),e.multiline&&r.push("m"),e.sticky&&r.push("y"),e.unicode&&r.push("u"),r.join("")}}function Ce(e,r,t){let n=effectScope(),l;return e instanceof Function?l=n.run(()=>e(r,t??0)):l=e,{scope:n,unwrapped:l}}function ye(e,r,t){let n,l=(...p)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...p])).then(m);},r);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}function xt(e,r){let t=String(e).split("."),n=String(r).split(".");for(let l=0;l<Math.min(t.length,n.length);l++){let p=Number(t[l]),m=Number(n[l]);if(p>m)return 1;if(m>p)return -1;if(!isNaN(p)&&isNaN(m))return 1;if(isNaN(p)&&!isNaN(m))return -1}return 0}var ve=xt(version,"3.5.0")!==-1;function Ct(){return Math.floor(Math.random()*Date.now()).toString()}function ge(){return typeof window>"u"?Ct():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Ie(){let e=shallowRef(new Map),r=shallowRef(new Map),t=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),p=shallowRef(new Map);function m(o){let c=r.value.get(o);if(c)return c;{let f=ref({});return r.value.set(o,f),f}}function d(o){let c=t.value.get(o);if(c)return c;{let f=ref([]);return t.value.set(o,f),f}}function h(o,c,f){p.value.set(`${o}-${c}`,f);}function g(o,c){return p.value.get(`${o}-${c}`)}function C(o,c){o&&c!=null&&p.value.delete(`${o}-${c}`);}function F(o,c){n.value.set(o,c);}function O(o){return n.value.get(o)??!1}function a(o,c){e.value.set(o,c);}function x(o,c){let f=e.value.get(o);return f?P(c,f)?{valid:!0}:{valid:!1}:void 0}function P(o,c){let f=Object.keys(c),M=Object.keys(o);return M.length!==f.length||!M.every(w=>f.includes(w))?!1:M.every(w=>{let _=o[w],E=c[w];return !E||!_||typeof _=="function"||typeof E=="function"||typeof _=="number"||typeof _=="boolean"?!1:_._params?_._params?.every((v,b)=>{if(typeof E=="number"||typeof E=="boolean")return !0;{let k=W(E._params),V=W(_._params);return k?.[b]===V?.[b]}}):!0})}function j(o){let c=l.value.get(o);if(c)return c;{let f=ref(!1),M=ref(!0),N=ref({}),w=ref(!1);return l.value.set(o,{$pending:f,$valid:M,$metadata:N,$validating:w}),{$pending:f,$valid:M,$metadata:N,$validating:w}}}return onScopeDispose(()=>{e.value.clear(),r.value.clear(),t.value.clear(),n.value.clear(),l.value.clear(),p.value.clear();}),{addRuleDeclEntry:a,setDirtyEntry:F,checkRuleDeclEntry:x,getDirtyState:O,trySetRuleStatusRef:j,getFieldsEntry:m,getCollectionsEntry:d,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:C,arrayStatusStorage:p}}function L(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function tt(e,r){return X(e.value)&&X(r.value)&&!Object.entries(r.value).some(t=>ue(t))}function rt(e,r){return !!e.value&&"$each"in e.value||Array.isArray(r.value)}function nt(e){return !!e.value&&X(e.value)}function ue(e){return X(e)&&"_validator"in e}function ce(e){return typeof e.value!="function"}function at(e){return X(e)&&"$fields"in e}function Pe({field:e,silent:r=!1}){return Object.entries(e.$rules??{}).map(([t,n])=>r||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(t=>!!t).reduce((t,n)=>typeof n=="string"?t?.concat([n]):t?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function lt({field:e}){return Object.entries(e.$rules??{}).map(([r,t])=>t.$tooltip).filter(r=>!!r).reduce((r,t)=>typeof t=="string"?r?.concat([t]):r?.concat(t),[])}function ot({fieldProperties:e,customMessages:r,rule:t,ruleKey:n,state:l,path:p,storage:m,$debounce:d,modifiers:h}){let g=effectScope(),C={},F,O=ref(!1),{$pending:a,$valid:x,$metadata:P,$validating:j}=m.trySetRuleStatusRef(`${p}.${n}`);function o(){g=effectScope(),C=g.run(()=>{let E=computed(()=>({$value:l.value,$error:e.$error.value,$dirty:e.$dirty.value,$pending:e.$pending.value,$valid:e.$valid.value,$invalid:e.$invalid.value,$rule:{$valid:x.value,$invalid:!x.value,$pending:a.value},$params:I.value,...P.value})),v=computed(()=>ce(t)?typeof t.value.active=="function"?t.value.active(E.value):!!t.value.active:!0);function b(i){let $="",u=r?r[n]?.[i]:void 0;if(u&&(typeof u=="function"?$=u(E.value):$=u),ce(t)){let S=`_${i}_patched`;u&&!t.value[S]||(typeof t.value[i]=="function"?$=t.value[i](E.value):$=t.value[i]??"");}return $}let k=computed(()=>{let i=b("message");return L(i)&&(i="This field is not valid"),i}),V=computed(()=>b("tooltip")),Y=computed(()=>ce(t)&&t.value.type?t.value.type:n),D=computed(()=>ce(t)?t.value.validator:t.value),I=computed(()=>typeof t.value=="function"?[]:W(t.value._params??[])),s=computed(()=>`${p}.${Y.value}`);return {$active:v,$message:k,$type:Y,$validator:D,$params:I,$path:s,$tooltip:V}}),F=watch(C?.$params,()=>{(h.$autoDirty.value||h.$rewardEarly.value&&e.$error.value)&&N();});}o();function c(){x.value=!0,e.$dirty.value&&(a.value=!0);}async function f(){let E=!1;try{let v=C.$validator.value,b=v(l.value,...C.$params.value),k=l.value;c();let V;if(b instanceof Promise?V=await b:V=b,l.value!==k)return !0;if(typeof V=="boolean")E=V;else {let{$valid:Y,...D}=V;E=Y,P.value=D;}}catch{E=!1;}finally{a.value=!1;}return E}let M=ye(f,d??200);async function N(){try{j.value=!0;let E=!1;if(ue(t.value)&&t.value._async)E=await M();else {let v=C.$validator.value,b=v(l.value,...C.$params.value);if(b instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(b!=null)if(typeof b=="boolean")E=b;else {let{$valid:k,...V}=b;E=k,P.value=V;}}return x.value=E,E}catch{return !1}finally{j.value=!1;}}function w(){x.value=!0,P.value={},a.value=!1,j.value=!1,o();}function _(){F(),g.stop(),g=effectScope();}return reactive({...C,$pending:a,$valid:x,$metadata:P,$haveAsync:O,$validating:j,$validate:N,$unwatch:_,$watch:o,$reset:w})}function Se({state:e,rulesDef:r,customMessages:t,path:n,fieldName:l,storage:p,options:m,externalErrors:d,onUnwatch:h,$isArray:g,initialState:C,shortcuts:F}){let O=effectScope(),a,x=[],P,j,o,c,f=()=>{};function M(){let y=r.value,T=p.checkRuleDeclEntry(n,y);b.value=Object.fromEntries(Object.entries(y).filter(([R])=>R.startsWith("$"))),_(),v.value=Object.fromEntries(Object.entries(r.value).filter(([R])=>!R.startsWith("$")).map(([R,A])=>{if(A){let z=toRef(()=>A);return [R,ot({fieldProperties:{$dirty:a.$dirty,$error:a.$error,$invalid:a.$invalid,$pending:a.$pending,$valid:a.$valid},modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:t,rule:z,ruleKey:R,state:e,path:n,storage:p,$debounce:b.value.$debounce})]}return []}).filter(R=>!!R.length)),a.processShortcuts(),N(),T?.valid!=null&&(a.$dirty.value=p.getDirtyState(n),a.$dirty.value&&f()),p.addRuleDeclEntry(n,y);}function N(){f=a.$debounce.value?ye(E,a.$debounce.value??a.$haveAnyAsyncRule?100:0):E;}function w(){v.value&&Object.entries(v.value).forEach(([y,T])=>{T.$unwatch();}),o(),a.$dirty.value&&p.setDirtyEntry(n,a.$dirty.value),P?.(),j?.(),O.stop(),O=effectScope(),x.forEach(y=>y.stop()),x=[],h?.(),c?.();}function _(){v.value&&Object.entries(v.value).forEach(([y,T])=>{T.$watch();}),a=O.run(()=>{let y=ref(!1),T=ref(!1),R=computed(()=>y.value),A=computed(()=>b.value.$debounce),z=computed(()=>b.value.$lazy!=null?b.value.$lazy:unref(m.lazy)),te=computed(()=>ke.value===!0?!1:b.value.$rewardEarly!=null?b.value.$rewardEarly:unref(m.rewardEarly)),yt=computed(()=>b.value.$clearExternalErrorsOnChange!=null?b.value.$clearExternalErrorsOnChange:unref(m.clearExternalErrorsOnChange)),ke=computed(()=>b.value.$autoDirty!=null?b.value.$autoDirty:unref(m.autoDirty)),We=computed(()=>Object.entries(v.value).some(([Q,Z])=>Z.$validating)),be=computed(()=>me.value&&!de.value&&y.value),Ue=computed(()=>be.value?Pe({field:{$dirty:y.value,$externalErrors:d?.value,$rules:v.value}}):[]),Be=computed(()=>lt({field:{$rules:v.value}})),He=computed(()=>Pe({field:{$dirty:y.value,$externalErrors:d?.value,$rules:v.value},silent:!0})),Le=computed(()=>!(me.value||de.value)),de=computed(()=>T.value||!te.value?Object.entries(v.value).some(([Q,Z])=>Z.$pending):!1),me=computed(()=>d?.value?.length?!0:L(v.value)?!1:!te.value||te.value&&T.value?Object.entries(v.value).some(([Q,Z])=>!Z.$valid):!1),qe=computed(()=>l),Te=computed(()=>d?.value?.length||L(v.value)?!1:y.value&&!L(e.value)&&!We.value?Object.values(v.value).every(Q=>Q.$valid&&Q.$active):!1),vt=computed(()=>Object.entries(v.value).some(([Q,Z])=>Z.$haveAsync));function gt(){F?.fields&&Object.entries(F.fields).forEach(([Q,Z])=>{let Je=effectScope();ze[Q]=Je.run(()=>{let Ye=ref();return watchEffect(()=>{Ye.value=Z(reactive({$dirty:y,$externalErrors:d?.value??[],$value:e,$rules:v,$error:be,$pending:de,$invalid:me,$valid:Te,$errors:Ue,$ready:Le,$silentErrors:He,$anyDirty:R,$tooltips:Be,$name:qe}));}),Ye}),x.push(Je);});}let ze={};return watch(Te,Q=>{Q&&(T.value=!1);}),{$error:be,$pending:de,$invalid:me,$valid:Te,$debounce:A,$lazy:z,$errors:Ue,$ready:Le,$silentErrors:He,$rewardEarly:te,$autoDirty:ke,$clearExternalErrorsOnChange:yt,$anyDirty:R,$name:qe,$haveAnyAsyncRule:vt,$shortcuts:ze,$validating:We,$tooltips:Be,$dirty:y,triggerPunishment:T,processShortcuts:gt}}),P=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=!0)),r.value instanceof Function&&M(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&f(),a.$rewardEarly.value!==!0&&a.$clearExternalErrorsOnChange.value&&s();},{deep:g?!0:ve?1:!0}),o=watch(a.$dirty,()=>{p.setDirtyEntry(n,a.$dirty.value);}),j=watch(a.$valid,y=>{a.$rewardEarly.value&&y&&(a.triggerPunishment.value=!1);}),c=watch(a.$haveAnyAsyncRule,N);}function E(){Object.values(v.value).forEach(y=>{y.$validate();});}let v=ref({}),b=ref({});M();function k(){s(),a.$dirty.value=!1,p.setDirtyEntry(n,!1),Object.entries(v.value).forEach(([y,T])=>{T.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(v.value).forEach(y=>y.$validate());}function V(y=!0,T=!1){a.$dirty.value||(a.$dirty.value=!0),T&&y?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&f():y&&f();}async function Y(){try{let y=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:y};return L(v.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(v.value).map(([A,z])=>z.$validate()))).every(A=>A.status==="fulfilled"?A.value===!0:!1),data:y}}catch{return {result:!1,data:e.value}}}function D(){w(),e.value=U(C),k();}function I(y=!0){return a.$dirty.value?e.value:y?{_null:!0}:null}function s(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&f();let{$shortcuts:i,$validating:$,$autoDirty:u,$rewardEarly:S,$clearExternalErrorsOnChange:q,$haveAnyAsyncRule:H,$debounce:K,$lazy:ie,...ne}=a;return reactive({...ne,$externalErrors:d,$value:e,$rules:v,...i,$reset:k,$touch:V,$validate:Y,$unwatch:w,$watch:_,$resetAll:D,$extractDirtyFields:I,$clearExternalErrors:s})}function Ae({$id:e,path:r,index:t,options:n,storage:l,stateValue:p,customMessages:m,rules:d,externalErrors:h,initialState:g,shortcuts:C,fieldName:F}){let O=d.$key?d.$key:ge(),a=`${r}.${String(O)}`;typeof p.value=="object"&&p.value!=null&&(p.value.$id?a=`${r}.${p.value.$id}`:Object.defineProperties(p.value,{$id:{value:O,enumerable:!1,configurable:!1,writable:!1}}));let x=pe({state:p,rulesDef:toRef(()=>d),customMessages:m,path:a,storage:l,options:n,externalErrors:toRef(h?.value??[],t),initialState:g?.[t],shortcuts:C,fieldName:F});if(x){let P=p.value?.$id;x.$id=P??String(O),l.addArrayStatus(e,x.$id,x);}return x}function ct({state:e,rulesDef:r,customMessages:t,path:n,storage:l,options:p,externalErrors:m,initialState:d,shortcuts:h,fieldName:g}){let C=effectScope(),F,O=effectScope(),a,x=[];if(!Array.isArray(e.value)&&!r.value.$each)return null;let P=ref(),j=ref(e.value),o,c=ref({}),f=l.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(i=>typeof i!="object"):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(i=>ue(i)):!1)})),M(),w();function M(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(P.value=ge(),Object.defineProperties(e.value,{$id:{value:P.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(P.value=e.value.$id)),!a.isPrimitiveArray.value&&(j.value=c.value.$value,Array.isArray(e.value)?f.value=e.value.map((s,i)=>{let{scope:$,unwrapped:u}=Ce(r.value.$each,toRef(()=>s),i);$&&x.push($);let S=Ae({$id:P.value,path:n,customMessages:t,rules:u??{},stateValue:toRef(()=>s),index:i,options:p,storage:l,externalErrors:toRef(m?.value??{},"$each"),initialState:d?.[i],shortcuts:h,fieldName:g});return S||null}).filter(s=>!!s):f.value=[],c.value=Se({state:e,rulesDef:r,customMessages:t,path:n,storage:l,options:p,externalErrors:toRef(m?.value??{},"$self"),$isArray:!0,initialState:d,shortcuts:h,fieldName:g}));}function N(){if(Array.isArray(e.value)){let s=U(f.value);f.value=e.value.map((i,$)=>{let u=toRef(()=>i);if(i.$id&&f.value.find(S=>S.$id===i.$id)){let S=l.getArrayStatus(P.value,i.$id);return S?(S.$value=u,S):null}else {let{scope:S,unwrapped:q}=Ce(r.value.$each,u,$);if(S&&x.push(S),q){let H=Ae({$id:P.value,path:n,customMessages:t,rules:q,stateValue:u,index:$,options:p,storage:l,externalErrors:toRef(m?.value??{},"$each"),initialState:d?.[$],shortcuts:h,fieldName:g});return H||null}}}).filter(i=>!!i),s.filter(i=>!e.value.find($=>i.$id===$.$id)).forEach((i,$)=>{l.deleteArrayStatus(P.value,$.toString());});}else f.value=[];}function w(){o=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?M():N();},{deep:ve?1:!0,flush:"pre"}),C=effectScope(),F=C.run(()=>{let s=computed(()=>c.value.$dirty&&f.value.every(R=>R.$dirty)),i=computed(()=>c.value.$anyDirty||f.value.some(R=>R.$dirty)),$=computed(()=>c.value.$invalid||f.value.some(R=>R.$invalid)),u=computed(()=>(L(c.value.$rules)?!0:c.value.$valid)&&f.value.every(R=>R.$valid)),S=computed(()=>c.value.$error||f.value.some(R=>R.$error)),q=computed(()=>!($.value||H.value)),H=computed(()=>c.value.$pending||f.value.some(R=>R.$pending)),K=computed(()=>({$self:c.value.$errors,$each:f.value.map(R=>R.$errors)})),ie=computed(()=>({$self:c.value.$silentErrors,$each:f.value.map(R=>R.$silentErrors)})),ne=computed(()=>g);function y(){h?.collections&&Object.entries(h?.collections).forEach(([R,A])=>{let z=effectScope();T[R]=z.run(()=>{let te=ref();return watchEffect(()=>{te.value=A(reactive({$dirty:s,$error:S,$pending:H,$invalid:$,$valid:u,$errors:K,$ready:q,$silentErrors:ie,$anyDirty:i,$name:ne,$each:f,$field:c,$value:e}));}),te}),x.push(z);});}let T={};return y(),{$dirty:s,$anyDirty:i,$invalid:$,$valid:u,$error:S,$pending:H,$errors:K,$silentErrors:ie,$ready:q,$name:ne,$shortcuts:T}}),a.isPrimitiveArray.value&&(console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`),o());}function _(){o&&o(),c.value&&c.value.$unwatch(),f.value&&f.value.forEach(s=>{"$dirty"in s&&s.$unwatch();}),C.stop(),C=effectScope(),O.stop(),O=effectScope(!0),x.forEach(s=>s.stop()),x=[];}function E(s=!0,i=!1){c.value.$touch(s,i),f.value.forEach($=>{$.$touch(s,i);});}function v(){c.value.$reset(),f.value.forEach(s=>{s.$reset();});}async function b(){let s=e.value;try{return {result:(await Promise.allSettled([c.value.$validate(),...f.value.map(u=>u.$validate())])).every(u=>u.status==="fulfilled"?u.value.result===!0:!1),data:s}}catch{return {result:!1,data:s}}}function k(){c.value.$clearExternalErrors(),f.value.forEach(s=>{s.$clearExternalErrors();});}function V(s=!0){let i=f.value.map($=>{if(at($))return $.$extractDirtyFields(s)});return s&&i.every($=>L($))&&(i=[]),i}function Y(){_(),e.value=U(d),v();}let{$shortcuts:D,...I}=F;return reactive({$field:c,...I,...D,$each:f,$value:e,$validate:b,$unwatch:_,$watch:w,$touch:E,$reset:v,$resetAll:Y,$extractDirtyFields:V,$clearExternalErrors:k})}function je({rulesDef:e,state:r,path:t="",rootRules:n,externalErrors:l,validationGroups:p,initialState:m,fieldName:d,...h}){let g=effectScope(),C,F=[],O=null,a=null,x=null;async function j(D=!0){let I=Object.entries(e.value),s=Object.fromEntries(I.filter(([u,S])=>!!S).map(([u,S])=>{if(S){let q=toRef(r.value,u),H=toRef(()=>S),K=toRef(l?.value??{},u);return [u,pe({state:q,rulesDef:H,path:t?`${t}.${u}`:u,externalErrors:K,initialState:m?.[u],fieldName:u,...h})]}return []})),i=Object.fromEntries(Object.entries(unref(l)??{}).filter(([u,S])=>!(u in e.value)&&!!S).map(([u])=>{let S=toRef(r.value,u);return [u,pe({state:S,rulesDef:computed(()=>({})),path:t?`${t}.${u}`:u,externalErrors:toRef(l?.value??{},u),initialState:m?.[u],fieldName:u,...h})]})),$=Object.fromEntries(Object.entries(r.value).filter(([u])=>!(u in e.value)&&!(u in(i.value??{}))).map(([u])=>{let S=toRef(r.value,u);return [u,pe({state:S,rulesDef:computed(()=>({})),path:t?`${t}.${u}`:u,externalErrors:toRef(l?.value??{},u),initialState:m?.[u],fieldName:u,...h})]}));o.value={...s,...i,...$},D&&N();}let o=h.storage.getFieldsEntry(t);j();function c(){a?.(),Object.values(o.value).forEach(D=>{D.$reset();}),M();}function f(D=!0,I=!1){Object.values(o.value).forEach(s=>{s.$touch(D,I);});}function M(){l?.value&&(a=watch(l,()=>{w(),j();},{deep:!0}));}function N(){n&&(O=watch(n,()=>{w(),j();},{deep:!0,flush:"post"}),M()),x=watch(r,()=>{w(),j(),f(!0,!0);},{flush:"sync"}),g=effectScope(),C=g.run(()=>{let D=computed({get:()=>!!Object.entries(o.value).length&&Object.entries(o.value).every(([T,R])=>R?.$dirty),set(){}}),I=computed({get:()=>Object.entries(o.value).some(([T,R])=>R?.$dirty),set(){}}),s=computed({get:()=>Object.entries(o.value).some(([T,R])=>R?.$invalid),set(){}}),i=computed({get:()=>Object.entries(o.value).every(([T,R])=>R?.$valid),set(){}}),$=computed({get:()=>I.value&&!S.value&&s.value,set(){}}),u=computed({get:()=>unref(h.options.autoDirty)?I.value&&!(s.value||S.value):!(s.value||S.value),set(){}}),S=computed({get:()=>Object.entries(o.value).some(([T,R])=>R?.$pending),set(){}}),q=computed({get:()=>Object.fromEntries(Object.entries(o.value).map(([T,R])=>[T,R?.$errors])),set(){}}),H=computed({get:()=>Object.fromEntries(Object.entries(o.value).map(([T,R])=>[T,R?.$silentErrors])),set(){}}),K=computed({get:()=>d,set(){}});function ie(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([T,R])=>{let A=effectScope();y[T]=A.run(()=>{let z=ref();return watchEffect(()=>{z.value=R(reactive({$dirty:D,$value:r,$error:$,$pending:S,$invalid:s,$valid:i,$ready:u,$anyDirty:I,$name:K,$silentErrors:H,$errors:q,$fields:o}));}),z}),F.push(A);});}let ne=computed({get:()=>p?Object.fromEntries(Object.entries(p?.(o.value)??{}).map(([T,R])=>R.length?[T,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(A=>[A,Qe(R,A)])),...Object.fromEntries(["$errors","$silentErrors"].map(A=>[A,Xe(R,A)]))}]:[])):{},set(){}}),y={};return ie(),{$dirty:D,$anyDirty:I,$invalid:s,$valid:i,$error:$,$pending:S,$errors:q,$silentErrors:H,$ready:u,$name:K,$shortcuts:y,$groups:ne}});}function w(){O?.(),a?.(),x?.(),F.forEach(D=>D.stop()),F=[],g.stop(),o.value&&Object.entries(o.value).forEach(([D,I])=>{I.$unwatch();});}function _(){Object.entries(o.value).forEach(([D,I])=>{I.$clearExternalErrors();});}async function E(){w(),r.value=U({...m??{}}),c(),j();}function v(D){return D.filter(([I,s])=>X(s)?!(s&&typeof s=="object"&&"_null"in s)&&!L(s):Array.isArray(s)?s.length:!0)}function b(D=!0){let I=Object.entries(o.value).map(([s,i])=>[s,i.$extractDirtyFields(D)]);return D&&(I=v(I)),Object.fromEntries(I)}async function k(){try{let D=r.value;return {result:(await Promise.allSettled(Object.values(o.value).map(i=>i.$validate()))).every(i=>i.status==="fulfilled"?i.value.result===!0:!1),data:D}}catch{return {result:!1,data:r.value}}}let{$shortcuts:V,...Y}=C;return reactive({...Y,...V,$fields:o,$value:r,$resetAll:E,$reset:c,$touch:f,$validate:k,$unwatch:w,$watch:N,$clearExternalErrors:_,$extractDirtyFields:b})}function pe({rulesDef:e,externalErrors:r,...t}){return rt(e,t.state)?ct({rulesDef:e,externalErrors:r,...t}):tt(t.state,e)&&et(t.state)?je({rulesDef:e,externalErrors:r,...t}):nt(e)?Se({rulesDef:e,externalErrors:r,...t}):null}function _e({initialState:e,options:r,scopeRules:t,state:n,customRules:l,shortcuts:p}){let m=Ie(),d=ref();return d.value=je({rootRules:t,rulesDef:t,state:n,customMessages:l?.(),storage:m,options:r,externalErrors:r.externalErrors,validationGroups:r.validationGroups,initialState:e,shortcuts:p,fieldName:"root",path:""}),onScopeDispose(()=>{d.value?.$unwatch();}),reactive({regle:d})}function Ve(e,r,t){let n={autoDirty:r?.autoDirty??!0,lazy:r?.lazy??!1,rewardEarly:r?.rewardEarly??!1,clearExternalErrorsOnChange:r?.clearExternalErrorsOnChange??!0};function l(p,m,d){let h=isRef(m)?m:computed(typeof m=="function"?m:()=>m),g={...n,...d},C=isRef(p)?p:ref(p),F={...U(C.value)};return {r$:_e({scopeRules:h,state:C,options:g,initialState:F,customRules:e,shortcuts:t}).regle}}return l}var dt=Ve();function Ge(){function e(r,t){return t}return e}var Ne=Ge();function mt({rules:e,modifiers:r,shortcuts:t}){let n=Ve(e,r,t),l=Ge();return {useRegle:n,inferRules:l}}
2
- export{Ee as InternalRuleType,xe as createRule,mt as defineRegleConfig,Ne as inferRules,W as unwrapRuleParameters,dt as useRegle};
1
+ import {toValue,version,computed,isRef,toRef,ref,onScopeDispose,reactive,shallowRef,effectScope,unref,watch,watchEffect}from'vue';var xe=(t=>(t.Inline="__inline",t.Async="__async",t))(xe||{});function Ke(e,r){return e.some(t=>t[r])}function et(e,r){return e.reduce((t,n)=>{let l=n[r]||[];return t.concat(l)},[])}function B(e){try{return e.map(r=>toValue(r))}catch{return []}}function tt(e){return e.map(r=>r instanceof Function?computed(r):isRef(r)?r:toRef(()=>r))}function rt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(y=>y.trim()).filter(y=>y.length>0).length:0}function Ce(e,...r){let{validator:t,type:n}=e,l=n==="__async"||t.constructor.name==="AsyncFunction";return {...{validator(d,...S){return e.validator(d,...B(S.length?S:r))},message(d){return typeof e.message=="function"?e.message({...d,$params:B(d?.$params?.length?d.$params:r)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:B(d?.$params?.length?d.$params:r)}):e.active??!0},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:B(d?.$params?.length?d.$params:r)}):e.tooltip??[]},exec(d){let S=e.validator(d,...B(r)),$;return S instanceof Promise?S.then(x=>($=x,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)):($=S,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:l,_params:tt(r)}}function Ie(e){if(typeof e.validator=="function"){let t=Ce(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(rt(e.validator)>1){let l=function(...R){return Ce(e,...R)};return l.validator=t.validator,l.message=t.message,l.active=t.active,l.tooltip=t.tooltip,l.type=t.type,l.exec=t.exec,l._validator=t.validator,l._message=t.message,l._active=t.active,l._tooltip=t.tooltip,l._type=e.type,l._message_pacthed=!1,l._tooltip_pacthed=!1,l._async=n,l}else return t}throw new Error("Validator must be a function")}function Z(e){return e instanceof Date||e instanceof File?!1:typeof e=="object"&&e!==null&&!Array.isArray(e)}function nt(e){return e.value instanceof Date||e.value instanceof File?!1:Z(e.value)}function L(e){let r=e,t={}.toString.call(e).slice(8,-1);if(t=="Set"&&(r=new Set([...e].map(n=>L(n)))),t=="Map"&&(r=new Map([...e].map(n=>[L(n[0]),L(n[1])]))),t=="Date"&&(r=new Date(e.getTime())),t=="RegExp"&&(r=RegExp(e.source,xt(e))),t=="Array"||t=="Object"){r=Array.isArray(e)?[]:{};for(let n in e)r[n]=L(e[n]);}return r}function xt(e){if(typeof e.source.flags=="string")return e.source.flags;{let r=[];return e.global&&r.push("g"),e.ignoreCase&&r.push("i"),e.multiline&&r.push("m"),e.sticky&&r.push("y"),e.unicode&&r.push("u"),r.join("")}}function Pe(e,r,t){let n=effectScope(),l;return e instanceof Function?l=n.run(()=>e(r,t??0)):l=e,{scope:n,unwrapped:l}}function $e(e,r,t){let n,l=(...R)=>new Promise(y=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...R])).then(y);},r);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}function It(e,r){let t=String(e).split("."),n=String(r).split(".");for(let l=0;l<Math.min(t.length,n.length);l++){let R=Number(t[l]),y=Number(n[l]);if(R>y)return 1;if(y>R)return -1;if(!isNaN(R)&&isNaN(y))return 1;if(isNaN(R)&&!isNaN(y))return -1}return 0}var ge=It(version,"3.5.0")!==-1;function Pt(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?Pt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function we(){let e=shallowRef(new Map),r=shallowRef(new Map),t=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),R=shallowRef(new Map);function y(u){let s=r.value.get(u);if(s)return s;{let c=ref({});return r.value.set(u,c),c}}function d(u){let s=t.value.get(u);if(s)return s;{let c=ref([]);return t.value.set(u,c),c}}function S(u,s,c){R.value.set(`${u}-${s}`,c);}function $(u,s){return R.value.get(`${u}-${s}`)}function x(u,s){u&&s!=null&&R.value.delete(`${u}-${s}`);}function F(u,s){n.value.set(u,s);}function O(u){return n.value.get(u)??!1}function a(u,s){e.value.set(u,s);}function E(u,s){let c=e.value.get(u);return c?C(s,c)?{valid:!0}:{valid:!1}:void 0}function C(u,s){let c=Object.keys(s),j=Object.keys(u);return j.length!==c.length||!j.every(_=>c.includes(_))?!1:j.every(_=>{let P=u[_],b=s[_];return !b||!P||typeof P=="function"||typeof b=="function"||typeof P=="number"||typeof P=="boolean"?!1:P._params?P._params?.every((W,m)=>{if(typeof b=="number"||typeof b=="boolean")return !0;{let I=B(b._params),V=B(P._params);return I?.[m]===V?.[m]}}):!0})}function M(u){let s=l.value.get(u);if(s)return s;{let c=ref(!1),j=ref(!0),k=ref({}),_=ref(!1);return l.value.set(u,{$pending:c,$valid:j,$metadata:k,$validating:_}),{$pending:c,$valid:j,$metadata:k,$validating:_}}}return onScopeDispose(()=>{e.value.clear(),r.value.clear(),t.value.clear(),n.value.clear(),l.value.clear(),R.value.clear();}),{addRuleDeclEntry:a,setDirtyEntry:F,checkRuleDeclEntry:E,getDirtyState:O,trySetRuleStatusRef:M,getFieldsEntry:y,getCollectionsEntry:d,getArrayStatus:$,addArrayStatus:S,deleteArrayStatus:x,arrayStatusStorage:R}}function z(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function at(e,r){return Z(e.value)&&Z(r.value)&&!Object.entries(r.value).some(t=>ce(t))}function lt(e,r){return !!e.value&&"$each"in e.value||Array.isArray(r.value)}function ot(e){return !!e.value&&Z(e.value)}function ce(e){return Z(e)&&"_validator"in e}function fe(e){return typeof e.value!="function"}function ut(e){return Z(e)&&"$fields"in e}function Oe({field:e,silent:r=!1}){return Object.entries(e.$rules??{}).map(([t,n])=>r||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(t=>!!t).reduce((t,n)=>typeof n=="string"?t?.concat([n]):t?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function it({field:e}){return Object.entries(e.$rules??{}).map(([r,t])=>t.$tooltip).filter(r=>!!r).reduce((r,t)=>typeof t=="string"?r?.concat([t]):r?.concat(t),[])}function st({fieldProperties:e,customMessages:r,rule:t,ruleKey:n,state:l,path:R,storage:y,$debounce:d,modifiers:S}){let $=effectScope(),x={},F,O=ref(!1),{$pending:a,$valid:E,$metadata:C,$validating:M}=y.trySetRuleStatusRef(`${R}.${n}`);function u(){$=effectScope(),x=$.run(()=>{let b=computed(()=>({$value:l.value,$error:e.$error.value,$dirty:e.$dirty.value,$pending:e.$pending.value,$valid:e.$valid.value,$invalid:e.$invalid.value,$rule:{$valid:E.value,$invalid:!E.value,$pending:a.value},$params:D.value,...C.value})),W=computed(()=>fe(t)?typeof t.value.active=="function"?t.value.active(b.value):!!t.value.active:!0);function m(o){let i="",g=r?r[n]?.[o]:void 0;if(g&&(typeof g=="function"?i=g(b.value):i=g),fe(t)){let f=`_${o}_patched`;g&&!t.value[f]||(typeof t.value[o]=="function"?i=t.value[o](b.value):i=t.value[o]??"");}return i}let I=computed(()=>{let o=m("message");return z(o)&&(o="This field is not valid"),o}),V=computed(()=>m("tooltip")),Q=computed(()=>fe(t)&&t.value.type?t.value.type:n),K=computed(()=>fe(t)?t.value.validator:t.value),D=computed(()=>typeof t.value=="function"?[]:B(t.value._params??[])),w=computed(()=>`${R}.${Q.value}`);return {$active:W,$message:I,$type:Q,$validator:K,$params:D,$path:w,$tooltip:V}}),F=watch(x?.$params,()=>{(S.$autoDirty.value||S.$rewardEarly.value&&e.$error.value)&&k();});}u();function s(){E.value=!0,e.$dirty.value&&(a.value=!0);}async function c(){let b=!1;try{let W=x.$validator.value,m=W(l.value,...x.$params.value),I=l.value;s();let V;if(m instanceof Promise?V=await m:V=m,l.value!==I)return !0;if(typeof V=="boolean")b=V;else {let{$valid:Q,...K}=V;b=Q,C.value=K;}}catch{b=!1;}finally{a.value=!1;}return b}let j=$e(c,d??200);async function k(){try{M.value=!0;let b=!1;if(ce(t.value)&&t.value._async)b=await j();else {let W=x.$validator.value,m=W(l.value,...x.$params.value);if(m instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(m!=null)if(typeof m=="boolean")b=m;else {let{$valid:I,...V}=m;b=I,C.value=V;}}return E.value=b,b}catch{return !1}finally{M.value=!1;}}function _(){E.value=!0,C.value={},a.value=!1,M.value=!1,u();}function P(){F(),$.stop(),$=effectScope();}return reactive({...x,$pending:a,$valid:E,$metadata:C,$haveAsync:O,$validating:M,$validate:k,$unwatch:P,$watch:u,$reset:_})}function be({state:e,rulesDef:r,customMessages:t,path:n,fieldName:l,storage:R,options:y,externalErrors:d,onUnwatch:S,$isArray:$,initialState:x,shortcuts:F}){let O=effectScope(),a,E=[],C,M,u,s,c=()=>{};function j(){let v=r.value,A=R.checkRuleDeclEntry(n,v);I.value=Object.fromEntries(Object.entries(v).filter(([h])=>h.startsWith("$"))),P(),m.value=Object.fromEntries(Object.entries(r.value).filter(([h])=>!h.startsWith("$")).map(([h,p])=>{if(p){let N=toRef(()=>p);return [h,st({fieldProperties:{$dirty:a.$dirty,$error:a.$error,$invalid:a.$invalid,$pending:a.$pending,$valid:a.$valid},modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:t,rule:N,ruleKey:h,state:e,path:n,storage:R,$debounce:I.value.$debounce})]}return []}).filter(h=>!!h.length)),a.processShortcuts(),k(),A?.valid!=null&&(a.$dirty.value=R.getDirtyState(n),a.$dirty.value&&c()),R.addRuleDeclEntry(n,v);}function k(){c=a.$debounce.value?$e(W,a.$debounce.value??a.$haveAnyAsyncRule?100:0):W;}function _(){m.value&&Object.entries(m.value).forEach(([v,A])=>{A.$unwatch();}),u(),a.$dirty.value&&R.setDirtyEntry(n,a.$dirty.value),C?.(),M?.(),O.stop(),O=effectScope(),E.forEach(v=>v.stop()),E=[],S?.(),s?.();}function P(){m.value&&Object.entries(m.value).forEach(([v,A])=>{A.$watch();}),a=O.run(()=>{let v=ref(!1),A=ref(!1),h=computed(()=>v.value),p=computed(()=>I.value.$debounce),N=computed(()=>I.value.$lazy!=null?I.value.$lazy:unref(y.lazy)),X=computed(()=>Ue.value===!0?!1:I.value.$rewardEarly!=null?I.value.$rewardEarly:unref(y.rewardEarly)),me=computed(()=>I.value.$clearExternalErrorsOnChange!=null?I.value.$clearExternalErrorsOnChange:unref(y.clearExternalErrorsOnChange)),Ue=computed(()=>I.value.$autoDirty!=null?I.value.$autoDirty:unref(y.autoDirty)),Be=computed(()=>Object.entries(m.value).some(([q,te])=>te.$validating)),He=computed({get:()=>e.value,set(q){C(),e.value=q,b();}}),Ee=computed(()=>ve.value&&!ye.value&&v.value),Le=computed(()=>Ee.value?Oe({field:{$dirty:v.value,$externalErrors:d?.value,$rules:m.value}}):[]),qe=computed(()=>it({field:{$rules:m.value}})),ze=computed(()=>Oe({field:{$dirty:v.value,$externalErrors:d?.value,$rules:m.value},silent:!0})),Je=computed(()=>!(ve.value||ye.value)),ye=computed(()=>A.value||!X.value?Object.entries(m.value).some(([q,te])=>te.$pending):!1),ve=computed(()=>d?.value?.length?!0:z(m.value)?!1:!X.value||X.value&&A.value?Object.entries(m.value).some(([q,te])=>!te.$valid):!1),Ye=computed(()=>l),De=computed(()=>d?.value?.length||z(m.value)?!1:v.value&&!z(e.value)&&!Be.value?Object.values(m.value).every(q=>q.$valid&&q.$active):!1),gt=computed(()=>Object.entries(m.value).some(([q,te])=>te.$haveAsync));function St(){F?.fields&&Object.entries(F.fields).forEach(([q,te])=>{let Xe=effectScope();Qe[q]=Xe.run(()=>{let Ze=ref();return watchEffect(()=>{Ze.value=te(reactive({$dirty:v,$externalErrors:d?.value??[],$value:e,$silentValue:He,$rules:m,$error:Ee,$pending:ye,$invalid:ve,$valid:De,$errors:Le,$ready:Je,$silentErrors:ze,$anyDirty:h,$tooltips:qe,$name:Ye}));}),Ze}),E.push(Xe);});}let Qe={};return watch(De,q=>{q&&(A.value=!1);}),{$error:Ee,$pending:ye,$invalid:ve,$valid:De,$debounce:p,$lazy:N,$errors:Le,$ready:Je,$silentErrors:ze,$rewardEarly:X,$autoDirty:Ue,$clearExternalErrorsOnChange:me,$anyDirty:h,$name:Ye,$haveAnyAsyncRule:gt,$shortcuts:Qe,$validating:Be,$tooltips:qe,$dirty:v,triggerPunishment:A,processShortcuts:St,$silentValue:He}}),b(),u=watch(a.$dirty,()=>{R.setDirtyEntry(n,a.$dirty.value);}),M=watch(a.$valid,v=>{a.$rewardEarly.value&&v&&(a.triggerPunishment.value=!1);}),s=watch(a.$haveAnyAsyncRule,k);}function b(){C=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=!0)),r.value instanceof Function&&j(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&c(),a.$rewardEarly.value!==!0&&a.$clearExternalErrorsOnChange.value&&o();},{deep:$?!0:ge?1:!0});}function W(){Object.values(m.value).forEach(v=>{v.$validate();});}let m=ref({}),I=ref({});j();function V(){o(),a.$dirty.value=!1,R.setDirtyEntry(n,!1),Object.entries(m.value).forEach(([v,A])=>{A.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(m.value).forEach(v=>v.$validate());}function Q(v=!0,A=!1){a.$dirty.value||(a.$dirty.value=!0),A&&v?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&c():v&&c();}async function K(){try{let v=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:v};return z(m.value)?{result:!0,data:v}:{result:(await Promise.allSettled(Object.entries(m.value).map(([p,N])=>N.$validate()))).every(p=>p.status==="fulfilled"?p.value===!0:!1),data:v}}catch{return {result:!1,data:e.value}}}function D(){_(),e.value=L(x),V();}function w(v=!0){return a.$dirty.value?e.value:v?{_null:!0}:null}function o(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&c();let{$shortcuts:i,$validating:g,$autoDirty:f,$rewardEarly:T,$clearExternalErrorsOnChange:U,$haveAnyAsyncRule:Y,$debounce:ee,$lazy:ae,...le}=a;return reactive({...le,$externalErrors:d,$value:e,$rules:m,...i,$reset:V,$touch:Q,$validate:K,$unwatch:_,$watch:P,$resetAll:D,$extractDirtyFields:w,$clearExternalErrors:o})}function Me({$id:e,path:r,index:t,options:n,storage:l,stateValue:R,customMessages:y,rules:d,externalErrors:S,initialState:$,shortcuts:x,fieldName:F}){let O=d.$key?d.$key:Se(),a=`${r}.${String(O)}`;typeof R.value=="object"&&R.value!=null&&(R.value.$id?a=`${r}.${R.value.$id}`:Object.defineProperties(R.value,{$id:{value:O,enumerable:!1,configurable:!1,writable:!1}}));let E=de({state:R,rulesDef:toRef(()=>d),customMessages:y,path:a,storage:l,options:n,externalErrors:toRef(S?.value??[],t),initialState:$?.[t],shortcuts:x,fieldName:F});if(E){let C=R.value?.$id;E.$id=C??String(O),l.addArrayStatus(e,E.$id,E);}return E}function pt({state:e,rulesDef:r,customMessages:t,path:n,storage:l,options:R,externalErrors:y,initialState:d,shortcuts:S,fieldName:$}){let x=effectScope(),F,O=effectScope(),a,E=[];if(!Array.isArray(e.value)&&!r.value.$each)return null;let C=ref(),M=ref(e.value),u,s=ref({}),c=l.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(i=>typeof i!="object"):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(i=>ce(i)):!1)})),j(),P();function j(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(C.value=Se(),Object.defineProperties(e.value,{$id:{value:C.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(C.value=e.value.$id)),!a.isPrimitiveArray.value&&(M.value=s.value.$value,Array.isArray(e.value)?c.value=e.value.map((o,i)=>{let{scope:g,unwrapped:f}=Pe(r.value.$each,toRef(()=>o),i);g&&E.push(g);let T=Me({$id:C.value,path:n,customMessages:t,rules:f??{},stateValue:toRef(()=>o),index:i,options:R,storage:l,externalErrors:toRef(y?.value??{},"$each"),initialState:d?.[i],shortcuts:S,fieldName:$});return T||null}).filter(o=>!!o):c.value=[],s.value=be({state:e,rulesDef:r,customMessages:t,path:n,storage:l,options:R,externalErrors:toRef(y?.value??{},"$self"),$isArray:!0,initialState:d,shortcuts:S,fieldName:$}));}function k(){if(Array.isArray(e.value)){let o=L(c.value);c.value=e.value.map((i,g)=>{let f=toRef(()=>i);if(i.$id&&c.value.find(T=>T.$id===i.$id)){let T=l.getArrayStatus(C.value,i.$id);return T?(T.$value=f,T):null}else {let{scope:T,unwrapped:U}=Pe(r.value.$each,f,g);if(T&&E.push(T),U){let Y=Me({$id:C.value,path:n,customMessages:t,rules:U,stateValue:f,index:g,options:R,storage:l,externalErrors:toRef(y?.value??{},"$each"),initialState:d?.[g],shortcuts:S,fieldName:$});return Y||null}}}).filter(i=>!!i),o.filter(i=>!e.value.find(g=>i.$id===g.$id)).forEach((i,g)=>{l.deleteArrayStatus(C.value,g.toString());});}else c.value=[];}function _(){u=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?j():k();},{deep:ge?1:!0,flush:"pre"});}function P(){_(),x=effectScope(),F=x.run(()=>{let o=computed({get:()=>e.value,set(p){u(),e.value=p,_();}}),i=computed(()=>s.value.$dirty&&c.value.every(p=>p.$dirty)),g=computed(()=>s.value.$anyDirty||c.value.some(p=>p.$dirty)),f=computed(()=>s.value.$invalid||c.value.some(p=>p.$invalid)),T=computed(()=>(z(s.value.$rules)?!0:s.value.$valid)&&c.value.every(p=>p.$valid)),U=computed(()=>s.value.$error||c.value.some(p=>p.$error)),Y=computed(()=>!(f.value||ee.value)),ee=computed(()=>s.value.$pending||c.value.some(p=>p.$pending)),ae=computed(()=>({$self:s.value.$errors,$each:c.value.map(p=>p.$errors)})),le=computed(()=>({$self:s.value.$silentErrors,$each:c.value.map(p=>p.$silentErrors)})),v=computed(()=>$);function A(){S?.collections&&Object.entries(S?.collections).forEach(([p,N])=>{let X=effectScope();h[p]=X.run(()=>{let me=ref();return watchEffect(()=>{me.value=N(reactive({$dirty:i,$error:U,$silentValue:o,$pending:ee,$invalid:f,$valid:T,$errors:ae,$ready:Y,$silentErrors:le,$anyDirty:g,$name:v,$each:c,$field:s,$value:e}));}),me}),E.push(X);});}let h={};return A(),{$dirty:i,$anyDirty:g,$invalid:f,$valid:T,$error:U,$pending:ee,$errors:ae,$silentErrors:le,$ready:Y,$name:v,$shortcuts:h,$silentValue:o}}),a.isPrimitiveArray.value&&(console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`),u());}function b(){u&&u(),s.value&&s.value.$unwatch(),c.value&&c.value.forEach(o=>{"$dirty"in o&&o.$unwatch();}),x.stop(),x=effectScope(),O.stop(),O=effectScope(!0),E.forEach(o=>o.stop()),E=[];}function W(o=!0,i=!1){s.value.$touch(o,i),c.value.forEach(g=>{g.$touch(o,i);});}function m(){s.value.$reset(),c.value.forEach(o=>{o.$reset();});}async function I(){let o=e.value;try{return {result:(await Promise.allSettled([s.value.$validate(),...c.value.map(f=>f.$validate())])).every(f=>f.status==="fulfilled"?f.value.result===!0:!1),data:o}}catch{return {result:!1,data:o}}}function V(){s.value.$clearExternalErrors(),c.value.forEach(o=>{o.$clearExternalErrors();});}function Q(o=!0){let i=c.value.map(g=>{if(ut(g))return g.$extractDirtyFields(o)});return o&&i.every(g=>z(g))&&(i=[]),i}function K(){b(),e.value=L(d),m();}let{$shortcuts:D,...w}=F;return reactive({$field:s,...w,...D,$each:c,$value:e,$validate:I,$unwatch:b,$watch:P,$touch:W,$reset:m,$resetAll:K,$extractDirtyFields:Q,$clearExternalErrors:V})}function Ve({rulesDef:e,state:r,path:t="",rootRules:n,externalErrors:l,validationGroups:R,initialState:y,fieldName:d,...S}){let $=effectScope(),x,F=[],O=null,a=null,E=null;async function M(D=!0){let w=Object.entries(e.value),o=Object.fromEntries(w.filter(([f,T])=>!!T).map(([f,T])=>{if(T){let U=toRef(r.value,f),Y=toRef(()=>T),ee=toRef(l?.value??{},f);return [f,de({state:U,rulesDef:Y,path:t?`${t}.${f}`:f,externalErrors:ee,initialState:y?.[f],fieldName:f,...S})]}return []})),i=Object.fromEntries(Object.entries(unref(l)??{}).filter(([f,T])=>!(f in e.value)&&!!T).map(([f])=>{let T=toRef(r.value,f);return [f,de({state:T,rulesDef:computed(()=>({})),path:t?`${t}.${f}`:f,externalErrors:toRef(l?.value??{},f),initialState:y?.[f],fieldName:f,...S})]})),g=Object.fromEntries(Object.entries(r.value).filter(([f])=>!(f in e.value)&&!(f in(i.value??{}))).map(([f])=>{let T=toRef(r.value,f);return [f,de({state:T,rulesDef:computed(()=>({})),path:t?`${t}.${f}`:f,externalErrors:toRef(l?.value??{},f),initialState:y?.[f],fieldName:f,...S})]}));u.value={...o,...i,...g},D&&_();}let u=S.storage.getFieldsEntry(t);M();function s(){a?.(),Object.values(u.value).forEach(D=>{D.$reset();}),j();}function c(D=!0,w=!1){Object.values(u.value).forEach(o=>{o.$touch(D,w);});}function j(){l?.value&&(a=watch(l,()=>{P(),M();},{deep:!0}));}function k(){E=watch(r,()=>{P(),M(),c(!0,!0);},{flush:"sync"});}function _(){n&&(O?.(),O=watch(n,()=>{P(),M();},{deep:!0,flush:"post"}),j()),k(),$=effectScope(),x=$.run(()=>{let D=computed({get:()=>r.value,set(h){P(),r.value=h,M();}}),w=computed({get:()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([h,p])=>p?.$dirty),set(){}}),o=computed({get:()=>Object.entries(u.value).some(([h,p])=>p?.$dirty),set(){}}),i=computed({get:()=>Object.entries(u.value).some(([h,p])=>p?.$invalid),set(){}}),g=computed({get:()=>Object.entries(u.value).every(([h,p])=>p?.$valid),set(){}}),f=computed({get:()=>o.value&&!U.value&&i.value,set(){}}),T=computed({get:()=>unref(S.options.autoDirty)?o.value&&!(i.value||U.value):!(i.value||U.value),set(){}}),U=computed({get:()=>Object.entries(u.value).some(([h,p])=>p?.$pending),set(){}}),Y=computed({get:()=>Object.fromEntries(Object.entries(u.value).map(([h,p])=>[h,p?.$errors])),set(){}}),ee=computed({get:()=>Object.fromEntries(Object.entries(u.value).map(([h,p])=>[h,p?.$silentErrors])),set(){}}),ae=computed({get:()=>d,set(){}});function le(){S.shortcuts?.nested&&Object.entries(S.shortcuts.nested).forEach(([h,p])=>{let N=effectScope();A[h]=N.run(()=>{let X=ref();return watchEffect(()=>{X.value=p(reactive({$dirty:w,$value:r,$silentValue:D,$error:f,$pending:U,$invalid:i,$valid:g,$ready:T,$anyDirty:o,$name:ae,$silentErrors:ee,$errors:Y,$fields:u}));}),X}),F.push(N);});}let v=computed({get:()=>R?Object.fromEntries(Object.entries(R?.(u.value)??{}).map(([h,p])=>p.length?[h,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(N=>[N,Ke(p,N)])),...Object.fromEntries(["$errors","$silentErrors"].map(N=>[N,et(p,N)]))}]:[])):{},set(){}}),A={};return le(),{$dirty:w,$anyDirty:o,$invalid:i,$valid:g,$error:f,$pending:U,$errors:Y,$silentErrors:ee,$ready:T,$name:ae,$shortcuts:A,$groups:v,$silentValue:D}});}function P(){O?.(),a?.(),E?.(),F.forEach(D=>D.stop()),F=[],$.stop(),u.value&&Object.entries(u.value).forEach(([D,w])=>{w.$unwatch();});}function b(){Object.entries(u.value).forEach(([D,w])=>{w.$clearExternalErrors();});}async function W(){P(),r.value=L({...y??{}}),s(),M();}function m(D){return D.filter(([w,o])=>Z(o)?!(o&&typeof o=="object"&&"_null"in o)&&!z(o):Array.isArray(o)?o.length:!0)}function I(D=!0){let w=Object.entries(u.value).map(([o,i])=>[o,i.$extractDirtyFields(D)]);return D&&(w=m(w)),Object.fromEntries(w)}async function V(){try{let D=r.value;return {result:(await Promise.allSettled(Object.values(u.value).map(i=>i.$validate()))).every(i=>i.status==="fulfilled"?i.value.result===!0:!1),data:D}}catch{return {result:!1,data:r.value}}}let{$shortcuts:Q,...K}=x;return reactive({...K,...Q,$fields:u,$value:r,$resetAll:W,$reset:s,$touch:c,$validate:V,$unwatch:P,$watch:_,$clearExternalErrors:b,$extractDirtyFields:I})}function de({rulesDef:e,externalErrors:r,...t}){return lt(e,t.state)?pt({rulesDef:e,externalErrors:r,...t}):at(t.state,e)&&nt(t.state)?Ve({rulesDef:e,externalErrors:r,...t}):ot(e)?be({rulesDef:e,externalErrors:r,...t}):null}function Ge({initialState:e,options:r,scopeRules:t,state:n,customRules:l,shortcuts:R}){let y=we(),d=ref();return d.value=Ve({rootRules:t,rulesDef:t,state:n,customMessages:l?.(),storage:y,options:r,externalErrors:r.externalErrors,validationGroups:r.validationGroups,initialState:e,shortcuts:R,fieldName:"root",path:""}),onScopeDispose(()=>{d.value?.$unwatch();}),reactive({regle:d})}function Ne(e,r,t){let n={autoDirty:r?.autoDirty??!0,lazy:r?.lazy??!1,rewardEarly:r?.rewardEarly??!1,clearExternalErrorsOnChange:r?.clearExternalErrorsOnChange??!0};function l(R,y,d){let S=isRef(y)?y:computed(typeof y=="function"?y:()=>y),$={...n,...d},x=isRef(R)?R:ref(R),F={...L(x.value)};return {r$:Ge({scopeRules:S,state:x,options:$,initialState:F,customRules:e,shortcuts:t}).regle}}return l}var vt=Ne();function ke(){function e(r,t){return t}return e}var We=ke();function $t({rules:e,modifiers:r,shortcuts:t}){let n=Ne(e,r,t),l=ke();return {useRegle:n,inferRules:l}}
2
+ export{xe as InternalRuleType,Ie as createRule,$t as defineRegleConfig,We as inferRules,B as unwrapRuleParameters,vt as useRegle};
@@ -796,6 +796,14 @@ function createReactiveFieldStatus({
796
796
  return ruleResult.$validating;
797
797
  });
798
798
  });
799
+ const $silentValue = computed({
800
+ get: () => state.value,
801
+ set(value) {
802
+ $unwatchState();
803
+ state.value = value;
804
+ define$watchState();
805
+ }
806
+ });
799
807
  const $error = computed(() => {
800
808
  return $invalid.value && !$pending.value && $dirty.value;
801
809
  });
@@ -881,6 +889,7 @@ function createReactiveFieldStatus({
881
889
  $dirty,
882
890
  $externalErrors: externalErrors?.value ?? [],
883
891
  $value: state,
892
+ $silentValue,
884
893
  $rules,
885
894
  $error,
886
895
  $pending,
@@ -928,9 +937,22 @@ function createReactiveFieldStatus({
928
937
  $tooltips,
929
938
  $dirty,
930
939
  triggerPunishment,
931
- processShortcuts
940
+ processShortcuts,
941
+ $silentValue
932
942
  };
933
943
  });
944
+ define$watchState();
945
+ $unwatchDirty = watch(scopeState.$dirty, () => {
946
+ storage.setDirtyEntry(path, scopeState.$dirty.value);
947
+ });
948
+ $unwatchValid = watch(scopeState.$valid, (valid) => {
949
+ if (scopeState.$rewardEarly.value && valid) {
950
+ scopeState.triggerPunishment.value = false;
951
+ }
952
+ });
953
+ $unwatchAsync = watch(scopeState.$haveAnyAsyncRule, define$commit);
954
+ }
955
+ function define$watchState() {
934
956
  $unwatchState = watch(
935
957
  state,
936
958
  () => {
@@ -951,15 +973,6 @@ function createReactiveFieldStatus({
951
973
  },
952
974
  { deep: $isArray ? true : isVueSuperiorOrEqualTo3dotFive ? 1 : true }
953
975
  );
954
- $unwatchDirty = watch(scopeState.$dirty, () => {
955
- storage.setDirtyEntry(path, scopeState.$dirty.value);
956
- });
957
- $unwatchValid = watch(scopeState.$valid, (valid) => {
958
- if (scopeState.$rewardEarly.value && valid) {
959
- scopeState.triggerPunishment.value = false;
960
- }
961
- });
962
- $unwatchAsync = watch(scopeState.$haveAnyAsyncRule, define$commit);
963
976
  }
964
977
  function $commitHandler() {
965
978
  Object.values($rules.value).forEach((rule) => {
@@ -1275,7 +1288,7 @@ function createReactiveCollectionStatus({
1275
1288
  $eachStatus.value = [];
1276
1289
  }
1277
1290
  }
1278
- function $watch() {
1291
+ function define$watchState() {
1279
1292
  $unwatchState = watch(
1280
1293
  state,
1281
1294
  () => {
@@ -1287,8 +1300,19 @@ function createReactiveCollectionStatus({
1287
1300
  },
1288
1301
  { deep: isVueSuperiorOrEqualTo3dotFive ? 1 : true, flush: "pre" }
1289
1302
  );
1303
+ }
1304
+ function $watch() {
1305
+ define$watchState();
1290
1306
  scope = effectScope();
1291
1307
  scopeState = scope.run(() => {
1308
+ const $silentValue = computed({
1309
+ get: () => state.value,
1310
+ set(value) {
1311
+ $unwatchState();
1312
+ state.value = value;
1313
+ define$watchState();
1314
+ }
1315
+ });
1292
1316
  const $dirty = computed(() => {
1293
1317
  return $fieldStatus.value.$dirty && $eachStatus.value.every((statusOrField) => {
1294
1318
  return statusOrField.$dirty;
@@ -1346,6 +1370,7 @@ function createReactiveCollectionStatus({
1346
1370
  reactive({
1347
1371
  $dirty,
1348
1372
  $error,
1373
+ $silentValue,
1349
1374
  $pending,
1350
1375
  $invalid,
1351
1376
  $valid,
@@ -1379,7 +1404,8 @@ function createReactiveCollectionStatus({
1379
1404
  $silentErrors,
1380
1405
  $ready,
1381
1406
  $name,
1382
- $shortcuts: $shortcuts2
1407
+ $shortcuts: $shortcuts2,
1408
+ $silentValue
1383
1409
  };
1384
1410
  });
1385
1411
  if (immediateScopeState.isPrimitiveArray.value) {
@@ -1598,8 +1624,20 @@ function createReactiveNestedStatus({
1598
1624
  );
1599
1625
  }
1600
1626
  }
1627
+ function define$watchState() {
1628
+ $unwatchState = watch(
1629
+ state,
1630
+ () => {
1631
+ $unwatch();
1632
+ createReactiveFieldsStatus();
1633
+ $touch(true, true);
1634
+ },
1635
+ { flush: "sync" }
1636
+ );
1637
+ }
1601
1638
  function $watch() {
1602
1639
  if (rootRules) {
1640
+ $unwatchRules?.();
1603
1641
  $unwatchRules = watch(
1604
1642
  rootRules,
1605
1643
  () => {
@@ -1610,17 +1648,17 @@ function createReactiveNestedStatus({
1610
1648
  );
1611
1649
  define$WatchExternalErrors();
1612
1650
  }
1613
- $unwatchState = watch(
1614
- state,
1615
- () => {
1616
- $unwatch();
1617
- createReactiveFieldsStatus();
1618
- $touch(true, true);
1619
- },
1620
- { flush: "sync" }
1621
- );
1651
+ define$watchState();
1622
1652
  scope = effectScope();
1623
1653
  scopeState = scope.run(() => {
1654
+ const $silentValue = computed({
1655
+ get: () => state.value,
1656
+ set(value) {
1657
+ $unwatch();
1658
+ state.value = value;
1659
+ createReactiveFieldsStatus();
1660
+ }
1661
+ });
1624
1662
  const $dirty = computed({
1625
1663
  get: () => {
1626
1664
  return !!Object.entries($fields.value).length && Object.entries($fields.value).every(([key, statusOrField]) => {
@@ -1721,6 +1759,7 @@ function createReactiveNestedStatus({
1721
1759
  reactive({
1722
1760
  $dirty,
1723
1761
  $value: state,
1762
+ $silentValue,
1724
1763
  $error,
1725
1764
  $pending,
1726
1765
  $invalid,
@@ -1787,7 +1826,8 @@ function createReactiveNestedStatus({
1787
1826
  $ready,
1788
1827
  $name,
1789
1828
  $shortcuts: $shortcuts2,
1790
- $groups
1829
+ $groups,
1830
+ $silentValue
1791
1831
  };
1792
1832
  });
1793
1833
  }
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "0.4.9",
3
+ "version": "0.5.0",
4
4
  "description": "Typescript-first model-based form validation library for Vue 3",
5
5
  "peerDependencies": {
6
6
  "vue": "^3.3.0"
7
7
  },
8
8
  "devDependencies": {
9
9
  "@total-typescript/ts-reset": "0.6.1",
10
- "@types/node": "22.9.3",
11
- "@typescript-eslint/eslint-plugin": "8.18.0",
12
- "@typescript-eslint/parser": "8.18.0",
10
+ "@types/node": "22.10.2",
11
+ "@typescript-eslint/eslint-plugin": "8.18.1",
12
+ "@typescript-eslint/parser": "8.18.1",
13
13
  "@vue/test-utils": "2.4.6",
14
- "bumpp": "9.9.0",
14
+ "bumpp": "9.9.2",
15
15
  "changelogithub": "0.13.11",
16
16
  "cross-env": "7.0.3",
17
17
  "eslint": "9.15.0",
@@ -19,7 +19,7 @@
19
19
  "eslint-plugin-vue": "9.31.0",
20
20
  "prettier": "3.3.3",
21
21
  "tsup": "8.3.5",
22
- "type-fest": "4.30.0",
22
+ "type-fest": "4.30.2",
23
23
  "typescript": "5.6.3",
24
24
  "vitest": "2.1.8",
25
25
  "vue": "3.5.13",