@regle/core 0.4.6-beta.1 → 0.4.6

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.
@@ -20,12 +20,21 @@ function mergeArrayGroupProperties(entries, property) {
20
20
  }, []);
21
21
  }
22
22
  function unwrapRuleParameters(params) {
23
- return params.map((param) => {
24
- if (param instanceof Function) {
25
- return param();
26
- }
27
- return vue.unref(param);
28
- });
23
+ try {
24
+ return params.map((param) => {
25
+ if (param instanceof Function) {
26
+ try {
27
+ const result = param();
28
+ return result;
29
+ } catch (e) {
30
+ return null;
31
+ }
32
+ }
33
+ return vue.unref(param);
34
+ });
35
+ } catch (e) {
36
+ return [];
37
+ }
29
38
  }
30
39
  function createReactiveParams(params) {
31
40
  return params.map((param) => {
@@ -561,11 +570,11 @@ function createReactiveRuleStatus({
561
570
  }
562
571
  }
563
572
  async function computeAsyncResult() {
564
- const validator = scopeState.$validator.value;
565
- const resultOrPromise = validator(state.value, ...scopeState.$params.value);
566
573
  let ruleResult = false;
567
- let cachedValue = state.value;
568
574
  try {
575
+ const validator = scopeState.$validator.value;
576
+ const resultOrPromise = validator(state.value, ...scopeState.$params.value);
577
+ let cachedValue = state.value;
569
578
  updatePendingState();
570
579
  let validatorResult;
571
580
  if (resultOrPromise instanceof Promise) {
@@ -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){return e.map(r=>r instanceof Function?r():vue.unref(r))}function Ze(e){return e.map(r=>r instanceof Function||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)),$;return h instanceof Promise?h.then(D=>($=D,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)):($=h,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: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 Q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function et(e){return Q(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,bt(e))),t=="Array"||t=="Object"){r=Array.isArray(e)?[]:{};for(let n in e)r[n]=U(e[n]);}return r}function bt(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){return e instanceof Function?e(r,t??0):e}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 Et(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=Et(vue.version,"3.5.0")!==-1;function Dt(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?Dt():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 $(o,c){return p.value.get(`${o}-${c}`)}function D(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),j=Object.keys(o);return j.length!==f.length||!j.every(w=>f.includes(w))?!1:j.every(w=>{let V=o[w],C=c[w];return !C||!V||typeof V=="function"||typeof C=="function"||typeof V=="number"||typeof V=="boolean"?!1:V._params?V._params?.every((v,S)=>{if(typeof C=="number"||typeof C=="boolean")return !0;{let k=W(C._params),M=W(V._params);return k?.[S]===M?.[S]}}):!0})}function _(o){let c=l.value.get(o);if(c)return c;{let f=vue.ref(!1),j=vue.ref(!0),N=vue.ref({}),w=vue.ref(!1);return l.value.set(o,{$pending:f,$valid:j,$metadata:N,$validating:w}),{$pending:f,$valid:j,$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:_,getFieldsEntry:m,getCollectionsEntry:d,getArrayStatus:$,addArrayStatus:h,deleteArrayStatus:D,arrayStatusStorage:p}}function H(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 Q(e.value)&&Q(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&&Q(e.value)}function ue(e){return Q(e)&&"_validator"in e}function ce(e){return typeof e.value!="function"}function at(e){return Q(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 $=vue.effectScope(),D={},F,O=vue.ref(!1),{$pending:a,$valid:x,$metadata:P,$validating:_}=m.trySetRuleStatusRef(`${p}.${n}`);function o(){$=vue.effectScope(),D=$.run(()=>{let C=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(C.value):!!t.value.active:!0);function S(s){let g="",u=r?r[n]?.[s]:void 0;if(u&&(typeof u=="function"?g=u(C.value):g=u),ce(t)){let b=`_${s}_patched`;u&&!t.value[b]||(typeof t.value[s]=="function"?g=t.value[s](C.value):g=t.value[s]??"");}return g}let k=vue.computed(()=>{let s=S("message");return H(s)&&(s="This field is not valid"),s}),M=vue.computed(()=>S("tooltip")),J=vue.computed(()=>ce(t)&&t.value.type?t.value.type:n),E=vue.computed(()=>ce(t)?t.value.validator:t.value),I=vue.computed(()=>typeof t.value=="function"?[]:W(t.value._params??[])),i=vue.computed(()=>`${p}.${J.value}`);return {$active:v,$message:k,$type:J,$validator:E,$params:I,$path:i,$tooltip:M}}),F=vue.watch(D?.$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 C=D.$validator.value,v=C(l.value,...D.$params.value),S=!1,k=l.value;try{c();let M;if(v instanceof Promise?M=await v:M=v,l.value!==k)return !0;if(typeof M=="boolean")S=M;else {let{$valid:J,...E}=M;S=J,P.value=E;}}catch{S=!1;}finally{a.value=!1;}return S}let j=ye(f,d??200);async function N(){try{_.value=!0;let C=!1;if(ue(t.value)&&t.value._async)C=await j();else {let v=D.$validator.value,S=v(l.value,...D.$params.value);if(S 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(S!=null)if(typeof S=="boolean")C=S;else {let{$valid:k,...M}=S;C=k,P.value=M;}}return x.value=C,C}catch{return !1}finally{_.value=!1;}}function w(){x.value=!0,P.value={},a.value=!1,_.value=!1,o();}function V(){F(),$.stop(),$=vue.effectScope();}return vue.reactive({...D,$pending:a,$valid:x,$metadata:P,$haveAsync:O,$validating:_,$validate:N,$unwatch:V,$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:$,initialState:D,shortcuts:F}){let O=vue.effectScope(),a,x=[],P,_,o,c,f=()=>{};function j(){let y=r.value,T=p.checkRuleDeclEntry(n,y);S.value=Object.fromEntries(Object.entries(y).filter(([R])=>R.startsWith("$"))),V(),v.value=Object.fromEntries(Object.entries(r.value).filter(([R])=>!R.startsWith("$")).map(([R,A])=>{if(A){let q=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:q,ruleKey:R,state:e,path:n,storage:p,$debounce:S.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(C,a.$debounce.value??a.$haveAnyAsyncRule?100:0):C;}function w(){v.value&&Object.entries(v.value).forEach(([y,T])=>{T.$unwatch();}),o(),a.$dirty.value&&p.setDirtyEntry(n,a.$dirty.value),P?.(),_?.(),O.stop(),O=vue.effectScope(),x.forEach(y=>y.stop()),x=[],h?.(),c?.();}function V(){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(()=>S.value.$debounce),q=vue.computed(()=>S.value.$lazy!=null?S.value.$lazy:vue.unref(m.lazy)),te=vue.computed(()=>ke.value===!0?!1:S.value.$rewardEarly!=null?S.value.$rewardEarly:vue.unref(m.rewardEarly)),yt=vue.computed(()=>S.value.$clearExternalErrorsOnChange!=null?S.value.$clearExternalErrorsOnChange:vue.unref(m.clearExternalErrorsOnChange)),ke=vue.computed(()=>S.value.$autoDirty!=null?S.value.$autoDirty:vue.unref(m.autoDirty)),We=vue.computed(()=>Object.entries(v.value).some(([Y,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(([Y,Z])=>Z.$pending):!1),me=vue.computed(()=>d?.value?.length?!0:H(v.value)?!1:!te.value||te.value&&T.value?Object.entries(v.value).some(([Y,Z])=>!Z.$valid):!1),qe=vue.computed(()=>l),Te=vue.computed(()=>d?.value?.length||H(v.value)?!1:y.value&&!H(e.value)&&!We.value?Object.values(v.value).every(Y=>Y.$valid&&Y.$active):!1),vt=vue.computed(()=>Object.entries(v.value).some(([Y,Z])=>Z.$haveAsync));function $t(){F?.fields&&Object.entries(F.fields).forEach(([Y,Z])=>{let Je=vue.effectScope();ze[Y]=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,Y=>{Y&&(T.value=!1);}),{$error:be,$pending:de,$invalid:me,$valid:Te,$debounce:A,$lazy:q,$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:$t}}),P=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)&&f(),a.$rewardEarly.value!==!0&&a.$clearExternalErrorsOnChange.value&&i();},{deep:$?!0:ve?1:!0}),o=vue.watch(a.$dirty,()=>{p.setDirtyEntry(n,a.$dirty.value);}),_=vue.watch(a.$valid,y=>{a.$rewardEarly.value&&y&&(a.triggerPunishment.value=!1);}),c=vue.watch(a.$haveAnyAsyncRule,N);}function C(){Object.values(v.value).forEach(y=>{y.$validate();});}let v=vue.ref({}),S=vue.ref({});j();function k(){i(),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 M(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 J(){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 H(v.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(v.value).map(([A,q])=>q.$validate()))).every(A=>A.status==="fulfilled"?A.value===!0:!1),data:y}}catch{return {result:!1,data:e.value}}}function E(){w(),e.value=U(D),k();}function I(y=!0){return a.$dirty.value?e.value:y?{_null:!0}:null}function i(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&f();let{$shortcuts:s,$validating:g,$autoDirty:u,$rewardEarly:b,$clearExternalErrorsOnChange:L,$haveAnyAsyncRule:X,$debounce:K,$lazy:se,...ne}=a;return vue.reactive({...ne,$externalErrors:d,$value:e,$rules:v,...s,$reset:k,$touch:M,$validate:J,$unwatch:w,$watch:V,$resetAll:E,$extractDirtyFields:I,$clearExternalErrors:i})}function Ae({$id:e,path:r,index:t,options:n,storage:l,stateValue:p,customMessages:m,rules:d,externalErrors:h,initialState:$,shortcuts:D,fieldName:F}){let O=d.$key?d.$key:$e(),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:$?.[t],shortcuts:D,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:$}){let D=vue.effectScope(),F,O=vue.effectScope(),a,x=[];if(!Array.isArray(e.value)&&!r.value.$each)return null;let P=vue.ref(),_=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(s=>typeof s!="object"):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(s=>ue(s)):!1)})),j(),w();function j(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(P.value=$e(),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&&(_.value=c.value.$value,Array.isArray(e.value)?f.value=e.value.map((i,s)=>{let g=Ce(r.value.$each,vue.toRef(()=>i),s),u=Ae({$id:P.value,path:n,customMessages:t,rules:g??{},stateValue:vue.toRef(()=>i),index:s,options:p,storage:l,externalErrors:vue.toRef(m?.value??{},"$each"),initialState:d?.[s],shortcuts:h,fieldName:$});return u||null}).filter(i=>!!i):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:$}));}function N(){if(Array.isArray(e.value)){let i=U(f.value);f.value=e.value.map((s,g)=>{let u=vue.toRef(()=>s);if(s.$id&&f.value.find(b=>b.$id===s.$id)){let b=l.getArrayStatus(P.value,s.$id);return b?(b.$value=u,b):null}else {let b=Ce(r.value.$each,u,g);if(b){let L=Ae({$id:P.value,path:n,customMessages:t,rules:b,stateValue:u,index:g,options:p,storage:l,externalErrors:vue.toRef(m?.value??{},"$each"),initialState:d?.[g],shortcuts:h,fieldName:$});return L||null}}}).filter(s=>!!s),i.filter(s=>!e.value.find(g=>s.$id===g.$id)).forEach((s,g)=>{l.deleteArrayStatus(P.value,g.toString());});}else f.value=[];}function w(){o=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?j():N();},{deep:ve?1:!0,flush:"pre"}),D=vue.effectScope(),F=D.run(()=>{let i=vue.computed(()=>c.value.$dirty&&f.value.every(R=>R.$dirty)),s=vue.computed(()=>c.value.$anyDirty||f.value.some(R=>R.$dirty)),g=vue.computed(()=>c.value.$invalid||f.value.some(R=>R.$invalid)),u=vue.computed(()=>(H(c.value.$rules)?!0:c.value.$valid)&&f.value.every(R=>R.$valid)),b=vue.computed(()=>c.value.$error||f.value.some(R=>R.$error)),L=vue.computed(()=>!(g.value||X.value)),X=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)})),se=vue.computed(()=>({$self:c.value.$silentErrors,$each:f.value.map(R=>R.$silentErrors)})),ne=vue.computed(()=>$);function y(){h?.collections&&Object.entries(h?.collections).forEach(([R,A])=>{let q=vue.effectScope();T[R]=q.run(()=>{let te=vue.ref();return vue.watchEffect(()=>{te.value=A(vue.reactive({$dirty:i,$error:b,$pending:X,$invalid:g,$valid:u,$errors:K,$ready:L,$silentErrors:se,$anyDirty:s,$name:ne,$each:f,$field:c,$value:e}));}),te}),x.push(q);});}let T={};return y(),{$dirty:i,$anyDirty:s,$invalid:g,$valid:u,$error:b,$pending:X,$errors:K,$silentErrors:se,$ready:L,$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 V(){o&&o(),c.value&&c.value.$unwatch(),f.value&&f.value.forEach(i=>{"$dirty"in i&&i.$unwatch();}),D.stop(),D=vue.effectScope(),O.stop(),O=vue.effectScope(!0),x.forEach(i=>i.stop()),x=[];}function C(i=!0,s=!1){c.value.$touch(i,s),f.value.forEach(g=>{g.$touch(i,s);});}function v(){c.value.$reset(),f.value.forEach(i=>{i.$reset();});}async function S(){let i=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:i}}catch{return {result:!1,data:i}}}function k(){c.value.$clearExternalErrors(),f.value.forEach(i=>{i.$clearExternalErrors();});}function M(i=!0){let s=f.value.map(g=>{if(at(g))return g.$extractDirtyFields(i)});return i&&s.every(g=>H(g))&&(s=[]),s}function J(){V(),e.value=U(d),v();}let{$shortcuts:E,...I}=F;return vue.reactive({$field:c,...I,...E,$each:f,$value:e,$validate:S,$unwatch:V,$watch:w,$touch:C,$reset:v,$resetAll:J,$extractDirtyFields:M,$clearExternalErrors:k})}function Me({rulesDef:e,state:r,path:t="",rootRules:n,externalErrors:l,validationGroups:p,initialState:m,fieldName:d,...h}){let $=vue.effectScope(),D,F=[],O=null,a=null,x=null;async function _(E=!0){let I=Object.entries(e.value),i=Object.fromEntries(I.filter(([u,b])=>!!b).map(([u,b])=>{if(b){let L=vue.toRef(r.value,u),X=vue.toRef(()=>b),K=vue.toRef(l?.value??{},u);return [u,pe({state:L,rulesDef:X,path:t?`${t}.${u}`:u,externalErrors:K,initialState:m?.[u],fieldName:u,...h})]}return []})),s=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([u,b])=>!(u in e.value)&&!!b).map(([u])=>{let b=vue.toRef(r.value,u);return [u,pe({state:b,rulesDef:vue.computed(()=>({})),path:t?`${t}.${u}`:u,externalErrors:vue.toRef(l?.value??{},u),initialState:m?.[u],fieldName:u,...h})]})),g=Object.fromEntries(Object.entries(r.value).filter(([u])=>!(u in e.value)&&!(u in(s.value??{}))).map(([u])=>{let b=vue.toRef(r.value,u);return [u,pe({state:b,rulesDef:vue.computed(()=>({})),path:t?`${t}.${u}`:u,externalErrors:vue.toRef(l?.value??{},u),initialState:m?.[u],fieldName:u,...h})]}));o.value={...i,...s,...g},E&&N();}let o=h.storage.getFieldsEntry(t);_();function c(){a?.(),Object.values(o.value).forEach(E=>{E.$reset();}),j();}function f(E=!0,I=!1){Object.values(o.value).forEach(i=>{i.$touch(E,I);});}function j(){l?.value&&(a=vue.watch(l,()=>{w(),_();},{deep:!0}));}function N(){n&&(O=vue.watch(n,()=>{w(),_();},{deep:!0,flush:"post"}),j()),x=vue.watch(r,()=>{w(),_(),f(!0,!0);},{flush:"sync"}),$=vue.effectScope(),D=$.run(()=>{let E=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(){}}),i=vue.computed({get:()=>Object.entries(o.value).some(([T,R])=>R?.$invalid),set(){}}),s=vue.computed({get:()=>Object.entries(o.value).every(([T,R])=>R?.$valid),set(){}}),g=vue.computed({get:()=>I.value&&!b.value&&i.value,set(){}}),u=vue.computed({get:()=>vue.unref(h.options.autoDirty)?I.value&&!(i.value||b.value):!(i.value||b.value),set(){}}),b=vue.computed({get:()=>Object.entries(o.value).some(([T,R])=>R?.$pending),set(){}}),L=vue.computed({get:()=>Object.fromEntries(Object.entries(o.value).map(([T,R])=>[T,R?.$errors])),set(){}}),X=vue.computed({get:()=>Object.fromEntries(Object.entries(o.value).map(([T,R])=>[T,R?.$silentErrors])),set(){}}),K=vue.computed({get:()=>d,set(){}});function se(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([T,R])=>{let A=vue.effectScope();y[T]=A.run(()=>{let q=vue.ref();return vue.watchEffect(()=>{q.value=R(vue.reactive({$dirty:E,$value:r,$error:g,$pending:b,$invalid:i,$valid:s,$ready:u,$anyDirty:I,$name:K,$silentErrors:X,$errors:L,$fields:o}));}),q}),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 se(),{$dirty:E,$anyDirty:I,$invalid:i,$valid:s,$error:g,$pending:b,$errors:L,$silentErrors:X,$ready:u,$name:K,$shortcuts:y,$groups:ne}});}function w(){O?.(),a?.(),x?.(),F.forEach(E=>E.stop()),F=[],$.stop(),o.value&&Object.entries(o.value).forEach(([E,I])=>{I.$unwatch();});}function V(){Object.entries(o.value).forEach(([E,I])=>{I.$clearExternalErrors();});}async function C(){w(),r.value=U({...m??{}}),c(),_();}function v(E){return E.filter(([I,i])=>Q(i)?!(i&&typeof i=="object"&&"_null"in i)&&!H(i):Array.isArray(i)?i.length:!0)}function S(E=!0){let I=Object.entries(o.value).map(([i,s])=>[i,s.$extractDirtyFields(E)]);return E&&(I=v(I)),Object.fromEntries(I)}async function k(){try{let E=r.value;return {result:(await Promise.allSettled(Object.values(o.value).map(s=>s.$validate()))).every(s=>s.status==="fulfilled"?s.value.result===!0:!1),data:E}}catch{return {result:!1,data:r.value}}}let{$shortcuts:M,...J}=D;return vue.reactive({...J,...M,$fields:o,$value:r,$resetAll:C,$reset:c,$touch:f,$validate:k,$unwatch:w,$watch:N,$clearExternalErrors:V,$extractDirtyFields:S})}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)?Me({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=Me({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),$={...n,...d},D=vue.isRef(p)?p:vue.ref(p),F={...U(D.value)};return {r$:_e({scopeRules:h,state:D,options:$,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}}
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=>{if(r instanceof Function)try{return r()}catch{return null}return vue.unref(r)})}catch{return []}}function Ze(e){return e.map(r=>r instanceof Function||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,...S){return e.validator(d,...W(S.length?S: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 S=e.validator(d,...W(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: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 Q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function et(e){return Q(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,bt(e))),t=="Array"||t=="Object"){r=Array.isArray(e)?[]:{};for(let n in e)r[n]=U(e[n]);}return r}function bt(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){return e instanceof Function?e(r,t??0):e}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 Et(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=Et(vue.version,"3.5.0")!==-1;function Dt(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?Dt():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 S(o,c,f){p.value.set(`${o}-${c}`,f);}function $(o,c){return p.value.get(`${o}-${c}`)}function x(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 C(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),j=Object.keys(o);return j.length!==f.length||!j.every(w=>f.includes(w))?!1:j.every(w=>{let _=o[w],E=c[w];return !E||!_||typeof _=="function"||typeof E=="function"||typeof _=="number"||typeof _=="boolean"?!1:_._params?_._params?.every((v,h)=>{if(typeof E=="number"||typeof E=="boolean")return !0;{let k=W(E._params),V=W(_._params);return k?.[h]===V?.[h]}}):!0})}function M(o){let c=l.value.get(o);if(c)return c;{let f=vue.ref(!1),j=vue.ref(!0),N=vue.ref({}),w=vue.ref(!1);return l.value.set(o,{$pending:f,$valid:j,$metadata:N,$validating:w}),{$pending:f,$valid:j,$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:C,getDirtyState:O,trySetRuleStatusRef:M,getFieldsEntry:m,getCollectionsEntry:d,getArrayStatus:$,addArrayStatus:S,deleteArrayStatus:x,arrayStatusStorage:p}}function H(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 Q(e.value)&&Q(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&&Q(e.value)}function ue(e){return Q(e)&&"_validator"in e}function ce(e){return typeof e.value!="function"}function at(e){return Q(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:S}){let $=vue.effectScope(),x={},F,O=vue.ref(!1),{$pending:a,$valid:C,$metadata:P,$validating:M}=m.trySetRuleStatusRef(`${p}.${n}`);function o(){$=vue.effectScope(),x=$.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:C.value,$invalid:!C.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 h(i){let g="",u=r?r[n]?.[i]:void 0;if(u&&(typeof u=="function"?g=u(E.value):g=u),ce(t)){let b=`_${i}_patched`;u&&!t.value[b]||(typeof t.value[i]=="function"?g=t.value[i](E.value):g=t.value[i]??"");}return g}let k=vue.computed(()=>{let i=h("message");return H(i)&&(i="This field is not valid"),i}),V=vue.computed(()=>h("tooltip")),J=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}.${J.value}`);return {$active:v,$message:k,$type:J,$validator:D,$params:I,$path:s,$tooltip:V}}),F=vue.watch(x?.$params,()=>{(S.$autoDirty.value||S.$rewardEarly.value&&e.$error.value)&&N();});}o();function c(){C.value=!0,e.$dirty.value&&(a.value=!0);}async function f(){let E=!1;try{let v=x.$validator.value,h=v(l.value,...x.$params.value),k=l.value;c();let V;if(h instanceof Promise?V=await h:V=h,l.value!==k)return !0;if(typeof V=="boolean")E=V;else {let{$valid:J,...D}=V;E=J,P.value=D;}}catch{E=!1;}finally{a.value=!1;}return E}let j=ye(f,d??200);async function N(){try{M.value=!0;let E=!1;if(ue(t.value)&&t.value._async)E=await j();else {let v=x.$validator.value,h=v(l.value,...x.$params.value);if(h 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(h!=null)if(typeof h=="boolean")E=h;else {let{$valid:k,...V}=h;E=k,P.value=V;}}return C.value=E,E}catch{return !1}finally{M.value=!1;}}function w(){C.value=!0,P.value={},a.value=!1,M.value=!1,o();}function _(){F(),$.stop(),$=vue.effectScope();}return vue.reactive({...x,$pending:a,$valid:C,$metadata:P,$haveAsync:O,$validating:M,$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:S,$isArray:$,initialState:x,shortcuts:F}){let O=vue.effectScope(),a,C=[],P,M,o,c,f=()=>{};function j(){let y=r.value,T=p.checkRuleDeclEntry(n,y);h.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 q=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:q,ruleKey:R,state:e,path:n,storage:p,$debounce:h.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?.(),M?.(),O.stop(),O=vue.effectScope(),C.forEach(y=>y.stop()),C=[],S?.(),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(()=>h.value.$debounce),q=vue.computed(()=>h.value.$lazy!=null?h.value.$lazy:vue.unref(m.lazy)),te=vue.computed(()=>ke.value===!0?!1:h.value.$rewardEarly!=null?h.value.$rewardEarly:vue.unref(m.rewardEarly)),yt=vue.computed(()=>h.value.$clearExternalErrorsOnChange!=null?h.value.$clearExternalErrorsOnChange:vue.unref(m.clearExternalErrorsOnChange)),ke=vue.computed(()=>h.value.$autoDirty!=null?h.value.$autoDirty:vue.unref(m.autoDirty)),We=vue.computed(()=>Object.entries(v.value).some(([Y,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(([Y,Z])=>Z.$pending):!1),me=vue.computed(()=>d?.value?.length?!0:H(v.value)?!1:!te.value||te.value&&T.value?Object.entries(v.value).some(([Y,Z])=>!Z.$valid):!1),qe=vue.computed(()=>l),Te=vue.computed(()=>d?.value?.length||H(v.value)?!1:y.value&&!H(e.value)&&!We.value?Object.values(v.value).every(Y=>Y.$valid&&Y.$active):!1),vt=vue.computed(()=>Object.entries(v.value).some(([Y,Z])=>Z.$haveAsync));function $t(){F?.fields&&Object.entries(F.fields).forEach(([Y,Z])=>{let Je=vue.effectScope();ze[Y]=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}),C.push(Je);});}let ze={};return vue.watch(Te,Y=>{Y&&(T.value=!1);}),{$error:be,$pending:de,$invalid:me,$valid:Te,$debounce:A,$lazy:q,$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:$t}}),P=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)&&f(),a.$rewardEarly.value!==!0&&a.$clearExternalErrorsOnChange.value&&s();},{deep:$?!0:ve?1:!0}),o=vue.watch(a.$dirty,()=>{p.setDirtyEntry(n,a.$dirty.value);}),M=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({}),h=vue.ref({});j();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 J(){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 H(v.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(v.value).map(([A,q])=>q.$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(x),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:g,$autoDirty:u,$rewardEarly:b,$clearExternalErrorsOnChange:L,$haveAnyAsyncRule:X,$debounce:K,$lazy:ie,...ne}=a;return vue.reactive({...ne,$externalErrors:d,$value:e,$rules:v,...i,$reset:k,$touch:V,$validate:J,$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:S,initialState:$,shortcuts:x,fieldName:F}){let O=d.$key?d.$key:$e(),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 C=pe({state:p,rulesDef:vue.toRef(()=>d),customMessages:m,path:a,storage:l,options:n,externalErrors:vue.toRef(S?.value??[],t),initialState:$?.[t],shortcuts:x,fieldName:F});if(C){let P=p.value?.$id;C.$id=P??String(O),l.addArrayStatus(e,C.$id,C);}return C}function ct({state:e,rulesDef:r,customMessages:t,path:n,storage:l,options:p,externalErrors:m,initialState:d,shortcuts:S,fieldName:$}){let x=vue.effectScope(),F,O=vue.effectScope(),a,C=[];if(!Array.isArray(e.value)&&!r.value.$each)return null;let P=vue.ref(),M=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)})),j(),w();function j(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(P.value=$e(),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&&(M.value=c.value.$value,Array.isArray(e.value)?f.value=e.value.map((s,i)=>{let g=Ce(r.value.$each,vue.toRef(()=>s),i),u=Ae({$id:P.value,path:n,customMessages:t,rules:g??{},stateValue:vue.toRef(()=>s),index:i,options:p,storage:l,externalErrors:vue.toRef(m?.value??{},"$each"),initialState:d?.[i],shortcuts:S,fieldName:$});return u||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:S,fieldName:$}));}function N(){if(Array.isArray(e.value)){let s=U(f.value);f.value=e.value.map((i,g)=>{let u=vue.toRef(()=>i);if(i.$id&&f.value.find(b=>b.$id===i.$id)){let b=l.getArrayStatus(P.value,i.$id);return b?(b.$value=u,b):null}else {let b=Ce(r.value.$each,u,g);if(b){let L=Ae({$id:P.value,path:n,customMessages:t,rules:b,stateValue:u,index:g,options:p,storage:l,externalErrors:vue.toRef(m?.value??{},"$each"),initialState:d?.[g],shortcuts:S,fieldName:$});return L||null}}}).filter(i=>!!i),s.filter(i=>!e.value.find(g=>i.$id===g.$id)).forEach((i,g)=>{l.deleteArrayStatus(P.value,g.toString());});}else f.value=[];}function w(){o=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?j():N();},{deep:ve?1:!0,flush:"pre"}),x=vue.effectScope(),F=x.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)),g=vue.computed(()=>c.value.$invalid||f.value.some(R=>R.$invalid)),u=vue.computed(()=>(H(c.value.$rules)?!0:c.value.$valid)&&f.value.every(R=>R.$valid)),b=vue.computed(()=>c.value.$error||f.value.some(R=>R.$error)),L=vue.computed(()=>!(g.value||X.value)),X=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(()=>$);function y(){S?.collections&&Object.entries(S?.collections).forEach(([R,A])=>{let q=vue.effectScope();T[R]=q.run(()=>{let te=vue.ref();return vue.watchEffect(()=>{te.value=A(vue.reactive({$dirty:s,$error:b,$pending:X,$invalid:g,$valid:u,$errors:K,$ready:L,$silentErrors:ie,$anyDirty:i,$name:ne,$each:f,$field:c,$value:e}));}),te}),C.push(q);});}let T={};return y(),{$dirty:s,$anyDirty:i,$invalid:g,$valid:u,$error:b,$pending:X,$errors:K,$silentErrors:ie,$ready:L,$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();}),x.stop(),x=vue.effectScope(),O.stop(),O=vue.effectScope(!0),C.forEach(s=>s.stop()),C=[];}function E(s=!0,i=!1){c.value.$touch(s,i),f.value.forEach(g=>{g.$touch(s,i);});}function v(){c.value.$reset(),f.value.forEach(s=>{s.$reset();});}async function h(){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(g=>{if(at(g))return g.$extractDirtyFields(s)});return s&&i.every(g=>H(g))&&(i=[]),i}function J(){_(),e.value=U(d),v();}let{$shortcuts:D,...I}=F;return vue.reactive({$field:c,...I,...D,$each:f,$value:e,$validate:h,$unwatch:_,$watch:w,$touch:E,$reset:v,$resetAll:J,$extractDirtyFields:V,$clearExternalErrors:k})}function Me({rulesDef:e,state:r,path:t="",rootRules:n,externalErrors:l,validationGroups:p,initialState:m,fieldName:d,...S}){let $=vue.effectScope(),x,F=[],O=null,a=null,C=null;async function M(D=!0){let I=Object.entries(e.value),s=Object.fromEntries(I.filter(([u,b])=>!!b).map(([u,b])=>{if(b){let L=vue.toRef(r.value,u),X=vue.toRef(()=>b),K=vue.toRef(l?.value??{},u);return [u,pe({state:L,rulesDef:X,path:t?`${t}.${u}`:u,externalErrors:K,initialState:m?.[u],fieldName:u,...S})]}return []})),i=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([u,b])=>!(u in e.value)&&!!b).map(([u])=>{let b=vue.toRef(r.value,u);return [u,pe({state:b,rulesDef:vue.computed(()=>({})),path:t?`${t}.${u}`:u,externalErrors:vue.toRef(l?.value??{},u),initialState:m?.[u],fieldName:u,...S})]})),g=Object.fromEntries(Object.entries(r.value).filter(([u])=>!(u in e.value)&&!(u in(i.value??{}))).map(([u])=>{let b=vue.toRef(r.value,u);return [u,pe({state:b,rulesDef:vue.computed(()=>({})),path:t?`${t}.${u}`:u,externalErrors:vue.toRef(l?.value??{},u),initialState:m?.[u],fieldName:u,...S})]}));o.value={...s,...i,...g},D&&N();}let o=S.storage.getFieldsEntry(t);M();function c(){a?.(),Object.values(o.value).forEach(D=>{D.$reset();}),j();}function f(D=!0,I=!1){Object.values(o.value).forEach(s=>{s.$touch(D,I);});}function j(){l?.value&&(a=vue.watch(l,()=>{w(),M();},{deep:!0}));}function N(){n&&(O=vue.watch(n,()=>{w(),M();},{deep:!0,flush:"post"}),j()),C=vue.watch(r,()=>{w(),M(),f(!0,!0);},{flush:"sync"}),$=vue.effectScope(),x=$.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(){}}),g=vue.computed({get:()=>I.value&&!b.value&&s.value,set(){}}),u=vue.computed({get:()=>vue.unref(S.options.autoDirty)?I.value&&!(s.value||b.value):!(s.value||b.value),set(){}}),b=vue.computed({get:()=>Object.entries(o.value).some(([T,R])=>R?.$pending),set(){}}),L=vue.computed({get:()=>Object.fromEntries(Object.entries(o.value).map(([T,R])=>[T,R?.$errors])),set(){}}),X=vue.computed({get:()=>Object.fromEntries(Object.entries(o.value).map(([T,R])=>[T,R?.$silentErrors])),set(){}}),K=vue.computed({get:()=>d,set(){}});function ie(){S.shortcuts?.nested&&Object.entries(S.shortcuts.nested).forEach(([T,R])=>{let A=vue.effectScope();y[T]=A.run(()=>{let q=vue.ref();return vue.watchEffect(()=>{q.value=R(vue.reactive({$dirty:D,$value:r,$error:g,$pending:b,$invalid:s,$valid:i,$ready:u,$anyDirty:I,$name:K,$silentErrors:X,$errors:L,$fields:o}));}),q}),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:g,$pending:b,$errors:L,$silentErrors:X,$ready:u,$name:K,$shortcuts:y,$groups:ne}});}function w(){O?.(),a?.(),C?.(),F.forEach(D=>D.stop()),F=[],$.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(),M();}function v(D){return D.filter(([I,s])=>Q(s)?!(s&&typeof s=="object"&&"_null"in s)&&!H(s):Array.isArray(s)?s.length:!0)}function h(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,...J}=x;return vue.reactive({...J,...V,$fields:o,$value:r,$resetAll:E,$reset:c,$touch:f,$validate:k,$unwatch:w,$watch:N,$clearExternalErrors:_,$extractDirtyFields:h})}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)?Me({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=Me({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 S=vue.isRef(m)?m:vue.computed(typeof m=="function"?m:()=>m),$={...n,...d},x=vue.isRef(p)?p:vue.ref(p),F={...U(x.value)};return {r$:_e({scopeRules:S,state:x,options:$,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
2
  exports.InternalRuleType=Ee;exports.createRule=xe;exports.defineRegleConfig=mt;exports.inferRules=Ne;exports.unwrapRuleParameters=W;exports.useRegle=dt;
@@ -1,2 +1,2 @@
1
- import {unref,version,isRef,toRef,computed,ref,onScopeDispose,reactive,shallowRef,effectScope,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){return e.map(r=>r instanceof Function?r():unref(r))}function Ze(e){return e.map(r=>r instanceof Function||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)),$;return h instanceof Promise?h.then(D=>($=D,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)):($=h,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: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 Q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function et(e){return Q(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,bt(e))),t=="Array"||t=="Object"){r=Array.isArray(e)?[]:{};for(let n in e)r[n]=U(e[n]);}return r}function bt(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){return e instanceof Function?e(r,t??0):e}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 Et(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=Et(version,"3.5.0")!==-1;function Dt(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?Dt():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 $(o,c){return p.value.get(`${o}-${c}`)}function D(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),j=Object.keys(o);return j.length!==f.length||!j.every(w=>f.includes(w))?!1:j.every(w=>{let V=o[w],C=c[w];return !C||!V||typeof V=="function"||typeof C=="function"||typeof V=="number"||typeof V=="boolean"?!1:V._params?V._params?.every((v,S)=>{if(typeof C=="number"||typeof C=="boolean")return !0;{let k=W(C._params),M=W(V._params);return k?.[S]===M?.[S]}}):!0})}function _(o){let c=l.value.get(o);if(c)return c;{let f=ref(!1),j=ref(!0),N=ref({}),w=ref(!1);return l.value.set(o,{$pending:f,$valid:j,$metadata:N,$validating:w}),{$pending:f,$valid:j,$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:_,getFieldsEntry:m,getCollectionsEntry:d,getArrayStatus:$,addArrayStatus:h,deleteArrayStatus:D,arrayStatusStorage:p}}function H(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 Q(e.value)&&Q(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&&Q(e.value)}function ue(e){return Q(e)&&"_validator"in e}function ce(e){return typeof e.value!="function"}function at(e){return Q(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 $=effectScope(),D={},F,O=ref(!1),{$pending:a,$valid:x,$metadata:P,$validating:_}=m.trySetRuleStatusRef(`${p}.${n}`);function o(){$=effectScope(),D=$.run(()=>{let C=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(C.value):!!t.value.active:!0);function S(s){let g="",u=r?r[n]?.[s]:void 0;if(u&&(typeof u=="function"?g=u(C.value):g=u),ce(t)){let b=`_${s}_patched`;u&&!t.value[b]||(typeof t.value[s]=="function"?g=t.value[s](C.value):g=t.value[s]??"");}return g}let k=computed(()=>{let s=S("message");return H(s)&&(s="This field is not valid"),s}),M=computed(()=>S("tooltip")),J=computed(()=>ce(t)&&t.value.type?t.value.type:n),E=computed(()=>ce(t)?t.value.validator:t.value),I=computed(()=>typeof t.value=="function"?[]:W(t.value._params??[])),i=computed(()=>`${p}.${J.value}`);return {$active:v,$message:k,$type:J,$validator:E,$params:I,$path:i,$tooltip:M}}),F=watch(D?.$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 C=D.$validator.value,v=C(l.value,...D.$params.value),S=!1,k=l.value;try{c();let M;if(v instanceof Promise?M=await v:M=v,l.value!==k)return !0;if(typeof M=="boolean")S=M;else {let{$valid:J,...E}=M;S=J,P.value=E;}}catch{S=!1;}finally{a.value=!1;}return S}let j=ye(f,d??200);async function N(){try{_.value=!0;let C=!1;if(ue(t.value)&&t.value._async)C=await j();else {let v=D.$validator.value,S=v(l.value,...D.$params.value);if(S 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(S!=null)if(typeof S=="boolean")C=S;else {let{$valid:k,...M}=S;C=k,P.value=M;}}return x.value=C,C}catch{return !1}finally{_.value=!1;}}function w(){x.value=!0,P.value={},a.value=!1,_.value=!1,o();}function V(){F(),$.stop(),$=effectScope();}return reactive({...D,$pending:a,$valid:x,$metadata:P,$haveAsync:O,$validating:_,$validate:N,$unwatch:V,$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:$,initialState:D,shortcuts:F}){let O=effectScope(),a,x=[],P,_,o,c,f=()=>{};function j(){let y=r.value,T=p.checkRuleDeclEntry(n,y);S.value=Object.fromEntries(Object.entries(y).filter(([R])=>R.startsWith("$"))),V(),v.value=Object.fromEntries(Object.entries(r.value).filter(([R])=>!R.startsWith("$")).map(([R,A])=>{if(A){let q=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:q,ruleKey:R,state:e,path:n,storage:p,$debounce:S.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(C,a.$debounce.value??a.$haveAnyAsyncRule?100:0):C;}function w(){v.value&&Object.entries(v.value).forEach(([y,T])=>{T.$unwatch();}),o(),a.$dirty.value&&p.setDirtyEntry(n,a.$dirty.value),P?.(),_?.(),O.stop(),O=effectScope(),x.forEach(y=>y.stop()),x=[],h?.(),c?.();}function V(){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(()=>S.value.$debounce),q=computed(()=>S.value.$lazy!=null?S.value.$lazy:unref(m.lazy)),te=computed(()=>ke.value===!0?!1:S.value.$rewardEarly!=null?S.value.$rewardEarly:unref(m.rewardEarly)),yt=computed(()=>S.value.$clearExternalErrorsOnChange!=null?S.value.$clearExternalErrorsOnChange:unref(m.clearExternalErrorsOnChange)),ke=computed(()=>S.value.$autoDirty!=null?S.value.$autoDirty:unref(m.autoDirty)),We=computed(()=>Object.entries(v.value).some(([Y,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(([Y,Z])=>Z.$pending):!1),me=computed(()=>d?.value?.length?!0:H(v.value)?!1:!te.value||te.value&&T.value?Object.entries(v.value).some(([Y,Z])=>!Z.$valid):!1),qe=computed(()=>l),Te=computed(()=>d?.value?.length||H(v.value)?!1:y.value&&!H(e.value)&&!We.value?Object.values(v.value).every(Y=>Y.$valid&&Y.$active):!1),vt=computed(()=>Object.entries(v.value).some(([Y,Z])=>Z.$haveAsync));function $t(){F?.fields&&Object.entries(F.fields).forEach(([Y,Z])=>{let Je=effectScope();ze[Y]=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,Y=>{Y&&(T.value=!1);}),{$error:be,$pending:de,$invalid:me,$valid:Te,$debounce:A,$lazy:q,$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:$t}}),P=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)&&f(),a.$rewardEarly.value!==!0&&a.$clearExternalErrorsOnChange.value&&i();},{deep:$?!0:ve?1:!0}),o=watch(a.$dirty,()=>{p.setDirtyEntry(n,a.$dirty.value);}),_=watch(a.$valid,y=>{a.$rewardEarly.value&&y&&(a.triggerPunishment.value=!1);}),c=watch(a.$haveAnyAsyncRule,N);}function C(){Object.values(v.value).forEach(y=>{y.$validate();});}let v=ref({}),S=ref({});j();function k(){i(),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 M(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 J(){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 H(v.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(v.value).map(([A,q])=>q.$validate()))).every(A=>A.status==="fulfilled"?A.value===!0:!1),data:y}}catch{return {result:!1,data:e.value}}}function E(){w(),e.value=U(D),k();}function I(y=!0){return a.$dirty.value?e.value:y?{_null:!0}:null}function i(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&f();let{$shortcuts:s,$validating:g,$autoDirty:u,$rewardEarly:b,$clearExternalErrorsOnChange:L,$haveAnyAsyncRule:X,$debounce:K,$lazy:se,...ne}=a;return reactive({...ne,$externalErrors:d,$value:e,$rules:v,...s,$reset:k,$touch:M,$validate:J,$unwatch:w,$watch:V,$resetAll:E,$extractDirtyFields:I,$clearExternalErrors:i})}function Ae({$id:e,path:r,index:t,options:n,storage:l,stateValue:p,customMessages:m,rules:d,externalErrors:h,initialState:$,shortcuts:D,fieldName:F}){let O=d.$key?d.$key:$e(),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:$?.[t],shortcuts:D,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:$}){let D=effectScope(),F,O=effectScope(),a,x=[];if(!Array.isArray(e.value)&&!r.value.$each)return null;let P=ref(),_=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(s=>typeof s!="object"):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(s=>ue(s)):!1)})),j(),w();function j(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(P.value=$e(),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&&(_.value=c.value.$value,Array.isArray(e.value)?f.value=e.value.map((i,s)=>{let g=Ce(r.value.$each,toRef(()=>i),s),u=Ae({$id:P.value,path:n,customMessages:t,rules:g??{},stateValue:toRef(()=>i),index:s,options:p,storage:l,externalErrors:toRef(m?.value??{},"$each"),initialState:d?.[s],shortcuts:h,fieldName:$});return u||null}).filter(i=>!!i):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:$}));}function N(){if(Array.isArray(e.value)){let i=U(f.value);f.value=e.value.map((s,g)=>{let u=toRef(()=>s);if(s.$id&&f.value.find(b=>b.$id===s.$id)){let b=l.getArrayStatus(P.value,s.$id);return b?(b.$value=u,b):null}else {let b=Ce(r.value.$each,u,g);if(b){let L=Ae({$id:P.value,path:n,customMessages:t,rules:b,stateValue:u,index:g,options:p,storage:l,externalErrors:toRef(m?.value??{},"$each"),initialState:d?.[g],shortcuts:h,fieldName:$});return L||null}}}).filter(s=>!!s),i.filter(s=>!e.value.find(g=>s.$id===g.$id)).forEach((s,g)=>{l.deleteArrayStatus(P.value,g.toString());});}else f.value=[];}function w(){o=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?j():N();},{deep:ve?1:!0,flush:"pre"}),D=effectScope(),F=D.run(()=>{let i=computed(()=>c.value.$dirty&&f.value.every(R=>R.$dirty)),s=computed(()=>c.value.$anyDirty||f.value.some(R=>R.$dirty)),g=computed(()=>c.value.$invalid||f.value.some(R=>R.$invalid)),u=computed(()=>(H(c.value.$rules)?!0:c.value.$valid)&&f.value.every(R=>R.$valid)),b=computed(()=>c.value.$error||f.value.some(R=>R.$error)),L=computed(()=>!(g.value||X.value)),X=computed(()=>c.value.$pending||f.value.some(R=>R.$pending)),K=computed(()=>({$self:c.value.$errors,$each:f.value.map(R=>R.$errors)})),se=computed(()=>({$self:c.value.$silentErrors,$each:f.value.map(R=>R.$silentErrors)})),ne=computed(()=>$);function y(){h?.collections&&Object.entries(h?.collections).forEach(([R,A])=>{let q=effectScope();T[R]=q.run(()=>{let te=ref();return watchEffect(()=>{te.value=A(reactive({$dirty:i,$error:b,$pending:X,$invalid:g,$valid:u,$errors:K,$ready:L,$silentErrors:se,$anyDirty:s,$name:ne,$each:f,$field:c,$value:e}));}),te}),x.push(q);});}let T={};return y(),{$dirty:i,$anyDirty:s,$invalid:g,$valid:u,$error:b,$pending:X,$errors:K,$silentErrors:se,$ready:L,$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 V(){o&&o(),c.value&&c.value.$unwatch(),f.value&&f.value.forEach(i=>{"$dirty"in i&&i.$unwatch();}),D.stop(),D=effectScope(),O.stop(),O=effectScope(!0),x.forEach(i=>i.stop()),x=[];}function C(i=!0,s=!1){c.value.$touch(i,s),f.value.forEach(g=>{g.$touch(i,s);});}function v(){c.value.$reset(),f.value.forEach(i=>{i.$reset();});}async function S(){let i=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:i}}catch{return {result:!1,data:i}}}function k(){c.value.$clearExternalErrors(),f.value.forEach(i=>{i.$clearExternalErrors();});}function M(i=!0){let s=f.value.map(g=>{if(at(g))return g.$extractDirtyFields(i)});return i&&s.every(g=>H(g))&&(s=[]),s}function J(){V(),e.value=U(d),v();}let{$shortcuts:E,...I}=F;return reactive({$field:c,...I,...E,$each:f,$value:e,$validate:S,$unwatch:V,$watch:w,$touch:C,$reset:v,$resetAll:J,$extractDirtyFields:M,$clearExternalErrors:k})}function Me({rulesDef:e,state:r,path:t="",rootRules:n,externalErrors:l,validationGroups:p,initialState:m,fieldName:d,...h}){let $=effectScope(),D,F=[],O=null,a=null,x=null;async function _(E=!0){let I=Object.entries(e.value),i=Object.fromEntries(I.filter(([u,b])=>!!b).map(([u,b])=>{if(b){let L=toRef(r.value,u),X=toRef(()=>b),K=toRef(l?.value??{},u);return [u,pe({state:L,rulesDef:X,path:t?`${t}.${u}`:u,externalErrors:K,initialState:m?.[u],fieldName:u,...h})]}return []})),s=Object.fromEntries(Object.entries(unref(l)??{}).filter(([u,b])=>!(u in e.value)&&!!b).map(([u])=>{let b=toRef(r.value,u);return [u,pe({state:b,rulesDef:computed(()=>({})),path:t?`${t}.${u}`:u,externalErrors:toRef(l?.value??{},u),initialState:m?.[u],fieldName:u,...h})]})),g=Object.fromEntries(Object.entries(r.value).filter(([u])=>!(u in e.value)&&!(u in(s.value??{}))).map(([u])=>{let b=toRef(r.value,u);return [u,pe({state:b,rulesDef:computed(()=>({})),path:t?`${t}.${u}`:u,externalErrors:toRef(l?.value??{},u),initialState:m?.[u],fieldName:u,...h})]}));o.value={...i,...s,...g},E&&N();}let o=h.storage.getFieldsEntry(t);_();function c(){a?.(),Object.values(o.value).forEach(E=>{E.$reset();}),j();}function f(E=!0,I=!1){Object.values(o.value).forEach(i=>{i.$touch(E,I);});}function j(){l?.value&&(a=watch(l,()=>{w(),_();},{deep:!0}));}function N(){n&&(O=watch(n,()=>{w(),_();},{deep:!0,flush:"post"}),j()),x=watch(r,()=>{w(),_(),f(!0,!0);},{flush:"sync"}),$=effectScope(),D=$.run(()=>{let E=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(){}}),i=computed({get:()=>Object.entries(o.value).some(([T,R])=>R?.$invalid),set(){}}),s=computed({get:()=>Object.entries(o.value).every(([T,R])=>R?.$valid),set(){}}),g=computed({get:()=>I.value&&!b.value&&i.value,set(){}}),u=computed({get:()=>unref(h.options.autoDirty)?I.value&&!(i.value||b.value):!(i.value||b.value),set(){}}),b=computed({get:()=>Object.entries(o.value).some(([T,R])=>R?.$pending),set(){}}),L=computed({get:()=>Object.fromEntries(Object.entries(o.value).map(([T,R])=>[T,R?.$errors])),set(){}}),X=computed({get:()=>Object.fromEntries(Object.entries(o.value).map(([T,R])=>[T,R?.$silentErrors])),set(){}}),K=computed({get:()=>d,set(){}});function se(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([T,R])=>{let A=effectScope();y[T]=A.run(()=>{let q=ref();return watchEffect(()=>{q.value=R(reactive({$dirty:E,$value:r,$error:g,$pending:b,$invalid:i,$valid:s,$ready:u,$anyDirty:I,$name:K,$silentErrors:X,$errors:L,$fields:o}));}),q}),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 se(),{$dirty:E,$anyDirty:I,$invalid:i,$valid:s,$error:g,$pending:b,$errors:L,$silentErrors:X,$ready:u,$name:K,$shortcuts:y,$groups:ne}});}function w(){O?.(),a?.(),x?.(),F.forEach(E=>E.stop()),F=[],$.stop(),o.value&&Object.entries(o.value).forEach(([E,I])=>{I.$unwatch();});}function V(){Object.entries(o.value).forEach(([E,I])=>{I.$clearExternalErrors();});}async function C(){w(),r.value=U({...m??{}}),c(),_();}function v(E){return E.filter(([I,i])=>Q(i)?!(i&&typeof i=="object"&&"_null"in i)&&!H(i):Array.isArray(i)?i.length:!0)}function S(E=!0){let I=Object.entries(o.value).map(([i,s])=>[i,s.$extractDirtyFields(E)]);return E&&(I=v(I)),Object.fromEntries(I)}async function k(){try{let E=r.value;return {result:(await Promise.allSettled(Object.values(o.value).map(s=>s.$validate()))).every(s=>s.status==="fulfilled"?s.value.result===!0:!1),data:E}}catch{return {result:!1,data:r.value}}}let{$shortcuts:M,...J}=D;return reactive({...J,...M,$fields:o,$value:r,$resetAll:C,$reset:c,$touch:f,$validate:k,$unwatch:w,$watch:N,$clearExternalErrors:V,$extractDirtyFields:S})}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)?Me({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=Me({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),$={...n,...d},D=isRef(p)?p:ref(p),F={...U(D.value)};return {r$:_e({scopeRules:h,state:D,options:$,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}}
1
+ import {unref,version,isRef,toRef,computed,ref,onScopeDispose,reactive,shallowRef,effectScope,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=>{if(r instanceof Function)try{return r()}catch{return null}return unref(r)})}catch{return []}}function Ze(e){return e.map(r=>r instanceof Function||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,...S){return e.validator(d,...W(S.length?S: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 S=e.validator(d,...W(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: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 Q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function et(e){return Q(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,bt(e))),t=="Array"||t=="Object"){r=Array.isArray(e)?[]:{};for(let n in e)r[n]=U(e[n]);}return r}function bt(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){return e instanceof Function?e(r,t??0):e}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 Et(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=Et(version,"3.5.0")!==-1;function Dt(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?Dt():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 S(o,c,f){p.value.set(`${o}-${c}`,f);}function $(o,c){return p.value.get(`${o}-${c}`)}function x(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 C(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),j=Object.keys(o);return j.length!==f.length||!j.every(w=>f.includes(w))?!1:j.every(w=>{let _=o[w],E=c[w];return !E||!_||typeof _=="function"||typeof E=="function"||typeof _=="number"||typeof _=="boolean"?!1:_._params?_._params?.every((v,h)=>{if(typeof E=="number"||typeof E=="boolean")return !0;{let k=W(E._params),V=W(_._params);return k?.[h]===V?.[h]}}):!0})}function M(o){let c=l.value.get(o);if(c)return c;{let f=ref(!1),j=ref(!0),N=ref({}),w=ref(!1);return l.value.set(o,{$pending:f,$valid:j,$metadata:N,$validating:w}),{$pending:f,$valid:j,$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:C,getDirtyState:O,trySetRuleStatusRef:M,getFieldsEntry:m,getCollectionsEntry:d,getArrayStatus:$,addArrayStatus:S,deleteArrayStatus:x,arrayStatusStorage:p}}function H(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 Q(e.value)&&Q(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&&Q(e.value)}function ue(e){return Q(e)&&"_validator"in e}function ce(e){return typeof e.value!="function"}function at(e){return Q(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:S}){let $=effectScope(),x={},F,O=ref(!1),{$pending:a,$valid:C,$metadata:P,$validating:M}=m.trySetRuleStatusRef(`${p}.${n}`);function o(){$=effectScope(),x=$.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:C.value,$invalid:!C.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 h(i){let g="",u=r?r[n]?.[i]:void 0;if(u&&(typeof u=="function"?g=u(E.value):g=u),ce(t)){let b=`_${i}_patched`;u&&!t.value[b]||(typeof t.value[i]=="function"?g=t.value[i](E.value):g=t.value[i]??"");}return g}let k=computed(()=>{let i=h("message");return H(i)&&(i="This field is not valid"),i}),V=computed(()=>h("tooltip")),J=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}.${J.value}`);return {$active:v,$message:k,$type:J,$validator:D,$params:I,$path:s,$tooltip:V}}),F=watch(x?.$params,()=>{(S.$autoDirty.value||S.$rewardEarly.value&&e.$error.value)&&N();});}o();function c(){C.value=!0,e.$dirty.value&&(a.value=!0);}async function f(){let E=!1;try{let v=x.$validator.value,h=v(l.value,...x.$params.value),k=l.value;c();let V;if(h instanceof Promise?V=await h:V=h,l.value!==k)return !0;if(typeof V=="boolean")E=V;else {let{$valid:J,...D}=V;E=J,P.value=D;}}catch{E=!1;}finally{a.value=!1;}return E}let j=ye(f,d??200);async function N(){try{M.value=!0;let E=!1;if(ue(t.value)&&t.value._async)E=await j();else {let v=x.$validator.value,h=v(l.value,...x.$params.value);if(h 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(h!=null)if(typeof h=="boolean")E=h;else {let{$valid:k,...V}=h;E=k,P.value=V;}}return C.value=E,E}catch{return !1}finally{M.value=!1;}}function w(){C.value=!0,P.value={},a.value=!1,M.value=!1,o();}function _(){F(),$.stop(),$=effectScope();}return reactive({...x,$pending:a,$valid:C,$metadata:P,$haveAsync:O,$validating:M,$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:S,$isArray:$,initialState:x,shortcuts:F}){let O=effectScope(),a,C=[],P,M,o,c,f=()=>{};function j(){let y=r.value,T=p.checkRuleDeclEntry(n,y);h.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 q=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:q,ruleKey:R,state:e,path:n,storage:p,$debounce:h.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?.(),M?.(),O.stop(),O=effectScope(),C.forEach(y=>y.stop()),C=[],S?.(),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(()=>h.value.$debounce),q=computed(()=>h.value.$lazy!=null?h.value.$lazy:unref(m.lazy)),te=computed(()=>ke.value===!0?!1:h.value.$rewardEarly!=null?h.value.$rewardEarly:unref(m.rewardEarly)),yt=computed(()=>h.value.$clearExternalErrorsOnChange!=null?h.value.$clearExternalErrorsOnChange:unref(m.clearExternalErrorsOnChange)),ke=computed(()=>h.value.$autoDirty!=null?h.value.$autoDirty:unref(m.autoDirty)),We=computed(()=>Object.entries(v.value).some(([Y,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(([Y,Z])=>Z.$pending):!1),me=computed(()=>d?.value?.length?!0:H(v.value)?!1:!te.value||te.value&&T.value?Object.entries(v.value).some(([Y,Z])=>!Z.$valid):!1),qe=computed(()=>l),Te=computed(()=>d?.value?.length||H(v.value)?!1:y.value&&!H(e.value)&&!We.value?Object.values(v.value).every(Y=>Y.$valid&&Y.$active):!1),vt=computed(()=>Object.entries(v.value).some(([Y,Z])=>Z.$haveAsync));function $t(){F?.fields&&Object.entries(F.fields).forEach(([Y,Z])=>{let Je=effectScope();ze[Y]=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}),C.push(Je);});}let ze={};return watch(Te,Y=>{Y&&(T.value=!1);}),{$error:be,$pending:de,$invalid:me,$valid:Te,$debounce:A,$lazy:q,$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:$t}}),P=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)&&f(),a.$rewardEarly.value!==!0&&a.$clearExternalErrorsOnChange.value&&s();},{deep:$?!0:ve?1:!0}),o=watch(a.$dirty,()=>{p.setDirtyEntry(n,a.$dirty.value);}),M=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({}),h=ref({});j();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 J(){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 H(v.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(v.value).map(([A,q])=>q.$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(x),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:g,$autoDirty:u,$rewardEarly:b,$clearExternalErrorsOnChange:L,$haveAnyAsyncRule:X,$debounce:K,$lazy:ie,...ne}=a;return reactive({...ne,$externalErrors:d,$value:e,$rules:v,...i,$reset:k,$touch:V,$validate:J,$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:S,initialState:$,shortcuts:x,fieldName:F}){let O=d.$key?d.$key:$e(),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 C=pe({state:p,rulesDef:toRef(()=>d),customMessages:m,path:a,storage:l,options:n,externalErrors:toRef(S?.value??[],t),initialState:$?.[t],shortcuts:x,fieldName:F});if(C){let P=p.value?.$id;C.$id=P??String(O),l.addArrayStatus(e,C.$id,C);}return C}function ct({state:e,rulesDef:r,customMessages:t,path:n,storage:l,options:p,externalErrors:m,initialState:d,shortcuts:S,fieldName:$}){let x=effectScope(),F,O=effectScope(),a,C=[];if(!Array.isArray(e.value)&&!r.value.$each)return null;let P=ref(),M=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)})),j(),w();function j(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(P.value=$e(),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&&(M.value=c.value.$value,Array.isArray(e.value)?f.value=e.value.map((s,i)=>{let g=Ce(r.value.$each,toRef(()=>s),i),u=Ae({$id:P.value,path:n,customMessages:t,rules:g??{},stateValue:toRef(()=>s),index:i,options:p,storage:l,externalErrors:toRef(m?.value??{},"$each"),initialState:d?.[i],shortcuts:S,fieldName:$});return u||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:S,fieldName:$}));}function N(){if(Array.isArray(e.value)){let s=U(f.value);f.value=e.value.map((i,g)=>{let u=toRef(()=>i);if(i.$id&&f.value.find(b=>b.$id===i.$id)){let b=l.getArrayStatus(P.value,i.$id);return b?(b.$value=u,b):null}else {let b=Ce(r.value.$each,u,g);if(b){let L=Ae({$id:P.value,path:n,customMessages:t,rules:b,stateValue:u,index:g,options:p,storage:l,externalErrors:toRef(m?.value??{},"$each"),initialState:d?.[g],shortcuts:S,fieldName:$});return L||null}}}).filter(i=>!!i),s.filter(i=>!e.value.find(g=>i.$id===g.$id)).forEach((i,g)=>{l.deleteArrayStatus(P.value,g.toString());});}else f.value=[];}function w(){o=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?j():N();},{deep:ve?1:!0,flush:"pre"}),x=effectScope(),F=x.run(()=>{let s=computed(()=>c.value.$dirty&&f.value.every(R=>R.$dirty)),i=computed(()=>c.value.$anyDirty||f.value.some(R=>R.$dirty)),g=computed(()=>c.value.$invalid||f.value.some(R=>R.$invalid)),u=computed(()=>(H(c.value.$rules)?!0:c.value.$valid)&&f.value.every(R=>R.$valid)),b=computed(()=>c.value.$error||f.value.some(R=>R.$error)),L=computed(()=>!(g.value||X.value)),X=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(()=>$);function y(){S?.collections&&Object.entries(S?.collections).forEach(([R,A])=>{let q=effectScope();T[R]=q.run(()=>{let te=ref();return watchEffect(()=>{te.value=A(reactive({$dirty:s,$error:b,$pending:X,$invalid:g,$valid:u,$errors:K,$ready:L,$silentErrors:ie,$anyDirty:i,$name:ne,$each:f,$field:c,$value:e}));}),te}),C.push(q);});}let T={};return y(),{$dirty:s,$anyDirty:i,$invalid:g,$valid:u,$error:b,$pending:X,$errors:K,$silentErrors:ie,$ready:L,$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();}),x.stop(),x=effectScope(),O.stop(),O=effectScope(!0),C.forEach(s=>s.stop()),C=[];}function E(s=!0,i=!1){c.value.$touch(s,i),f.value.forEach(g=>{g.$touch(s,i);});}function v(){c.value.$reset(),f.value.forEach(s=>{s.$reset();});}async function h(){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(g=>{if(at(g))return g.$extractDirtyFields(s)});return s&&i.every(g=>H(g))&&(i=[]),i}function J(){_(),e.value=U(d),v();}let{$shortcuts:D,...I}=F;return reactive({$field:c,...I,...D,$each:f,$value:e,$validate:h,$unwatch:_,$watch:w,$touch:E,$reset:v,$resetAll:J,$extractDirtyFields:V,$clearExternalErrors:k})}function Me({rulesDef:e,state:r,path:t="",rootRules:n,externalErrors:l,validationGroups:p,initialState:m,fieldName:d,...S}){let $=effectScope(),x,F=[],O=null,a=null,C=null;async function M(D=!0){let I=Object.entries(e.value),s=Object.fromEntries(I.filter(([u,b])=>!!b).map(([u,b])=>{if(b){let L=toRef(r.value,u),X=toRef(()=>b),K=toRef(l?.value??{},u);return [u,pe({state:L,rulesDef:X,path:t?`${t}.${u}`:u,externalErrors:K,initialState:m?.[u],fieldName:u,...S})]}return []})),i=Object.fromEntries(Object.entries(unref(l)??{}).filter(([u,b])=>!(u in e.value)&&!!b).map(([u])=>{let b=toRef(r.value,u);return [u,pe({state:b,rulesDef:computed(()=>({})),path:t?`${t}.${u}`:u,externalErrors:toRef(l?.value??{},u),initialState:m?.[u],fieldName:u,...S})]})),g=Object.fromEntries(Object.entries(r.value).filter(([u])=>!(u in e.value)&&!(u in(i.value??{}))).map(([u])=>{let b=toRef(r.value,u);return [u,pe({state:b,rulesDef:computed(()=>({})),path:t?`${t}.${u}`:u,externalErrors:toRef(l?.value??{},u),initialState:m?.[u],fieldName:u,...S})]}));o.value={...s,...i,...g},D&&N();}let o=S.storage.getFieldsEntry(t);M();function c(){a?.(),Object.values(o.value).forEach(D=>{D.$reset();}),j();}function f(D=!0,I=!1){Object.values(o.value).forEach(s=>{s.$touch(D,I);});}function j(){l?.value&&(a=watch(l,()=>{w(),M();},{deep:!0}));}function N(){n&&(O=watch(n,()=>{w(),M();},{deep:!0,flush:"post"}),j()),C=watch(r,()=>{w(),M(),f(!0,!0);},{flush:"sync"}),$=effectScope(),x=$.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(){}}),g=computed({get:()=>I.value&&!b.value&&s.value,set(){}}),u=computed({get:()=>unref(S.options.autoDirty)?I.value&&!(s.value||b.value):!(s.value||b.value),set(){}}),b=computed({get:()=>Object.entries(o.value).some(([T,R])=>R?.$pending),set(){}}),L=computed({get:()=>Object.fromEntries(Object.entries(o.value).map(([T,R])=>[T,R?.$errors])),set(){}}),X=computed({get:()=>Object.fromEntries(Object.entries(o.value).map(([T,R])=>[T,R?.$silentErrors])),set(){}}),K=computed({get:()=>d,set(){}});function ie(){S.shortcuts?.nested&&Object.entries(S.shortcuts.nested).forEach(([T,R])=>{let A=effectScope();y[T]=A.run(()=>{let q=ref();return watchEffect(()=>{q.value=R(reactive({$dirty:D,$value:r,$error:g,$pending:b,$invalid:s,$valid:i,$ready:u,$anyDirty:I,$name:K,$silentErrors:X,$errors:L,$fields:o}));}),q}),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:g,$pending:b,$errors:L,$silentErrors:X,$ready:u,$name:K,$shortcuts:y,$groups:ne}});}function w(){O?.(),a?.(),C?.(),F.forEach(D=>D.stop()),F=[],$.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(),M();}function v(D){return D.filter(([I,s])=>Q(s)?!(s&&typeof s=="object"&&"_null"in s)&&!H(s):Array.isArray(s)?s.length:!0)}function h(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,...J}=x;return reactive({...J,...V,$fields:o,$value:r,$resetAll:E,$reset:c,$touch:f,$validate:k,$unwatch:w,$watch:N,$clearExternalErrors:_,$extractDirtyFields:h})}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)?Me({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=Me({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 S=isRef(m)?m:computed(typeof m=="function"?m:()=>m),$={...n,...d},x=isRef(p)?p:ref(p),F={...U(x.value)};return {r$:_e({scopeRules:S,state:x,options:$,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
2
  export{Ee as InternalRuleType,xe as createRule,mt as defineRegleConfig,Ne as inferRules,W as unwrapRuleParameters,dt as useRegle};
@@ -18,12 +18,21 @@ function mergeArrayGroupProperties(entries, property) {
18
18
  }, []);
19
19
  }
20
20
  function unwrapRuleParameters(params) {
21
- return params.map((param) => {
22
- if (param instanceof Function) {
23
- return param();
24
- }
25
- return unref(param);
26
- });
21
+ try {
22
+ return params.map((param) => {
23
+ if (param instanceof Function) {
24
+ try {
25
+ const result = param();
26
+ return result;
27
+ } catch (e) {
28
+ return null;
29
+ }
30
+ }
31
+ return unref(param);
32
+ });
33
+ } catch (e) {
34
+ return [];
35
+ }
27
36
  }
28
37
  function createReactiveParams(params) {
29
38
  return params.map((param) => {
@@ -559,11 +568,11 @@ function createReactiveRuleStatus({
559
568
  }
560
569
  }
561
570
  async function computeAsyncResult() {
562
- const validator = scopeState.$validator.value;
563
- const resultOrPromise = validator(state.value, ...scopeState.$params.value);
564
571
  let ruleResult = false;
565
- let cachedValue = state.value;
566
572
  try {
573
+ const validator = scopeState.$validator.value;
574
+ const resultOrPromise = validator(state.value, ...scopeState.$params.value);
575
+ let cachedValue = state.value;
567
576
  updatePendingState();
568
577
  let validatorResult;
569
578
  if (resultOrPromise instanceof Promise) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "0.4.6-beta.1",
3
+ "version": "0.4.6",
4
4
  "description": "Typescript-first model-based form validation library for Vue 3",
5
5
  "peerDependencies": {
6
6
  "vue": "^3.3.0"