@regle/core 0.2.11 → 0.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1 +1,2 @@
1
- 'use strict';var vue=require('vue');var Ie=(r=>(r.Inline="__inline",r.Async="__async",r))(Ie||{});function Ke(e,t){return vue.computed(()=>e.value.some(r=>r[t]))}function et(e,t){return vue.computed(()=>e.value.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[]))}function H(e){return e.map(t=>t instanceof Function?t():vue.unref(t))}function tt(e){return e.map(t=>t instanceof Function||vue.isRef(t)?t:vue.toRef(()=>t))}function rt(e){let t=e.toString();return (t.includes("=>")?t.split("=>")[0]:t).slice(t.indexOf("(")+1,t.indexOf(")")).split(",").map(l=>l.trim()).filter(l=>l.includes("=")).length+e.length}function Pe(e,...t){let{message:r,validator:n,active:a,type:l,...c}=e,d=l==="__async"||n.constructor.name==="AsyncFunction";return {...{validator(b,...S){return e.validator(b,...H(S.length?S:t))},message(b,S){return typeof e.message=="function"?e.message(b,{...S,$params:H(S.$params?.length?S.$params:t)}):e.message},active(b,S){return typeof e.active=="function"?e.active(b,{...S,$params:H(S.$params?.length?S.$params:t)}):e.active??!0},exec(b){let S=e.validator(b,...H(t)),m;return S instanceof Promise?S.then(v=>(m=v,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:!1)):(m=S,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:!1)}},...c,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:d,_params:tt(t)}}function we(e){if(typeof e.validator=="function"){let r=Pe(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(rt(e.validator)>1){let a=function(...l){return Pe(e,...l)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._type=e.type,a._patched=!1,a._async=n,a}else return r}throw new Error("Validator must be a function")}function q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function nt(e){return q(e.value)}function ne(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>ne(n)))),r=="Map"&&(t=new Map([...e].map(n=>[ne(n[0]),ne(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Et(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=ne(e[n]);}return t}function Et(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function Oe(e,t,r){return e instanceof Function?e(t,r??0):e}function at(e,t){vue.isRef(e)?e.value=t:e=t;}function lt(e,t){vue.isRef(e)?e.value=[]:e=[],t.forEach((r,n)=>{let a=vue.isRef(e)?e.value[n]:e[n];a={},pe(a,t[n]);});}function pe(e,t){Object.entries({...vue.unref(e),...t}).forEach(([r,n])=>{let a=vue.isRef(e)?e.value:e,l=vue.isRef(t[r])?t[r]._value:t[r],c=vue.isRef(a[r])?a[r].value:a[r];Array.isArray(a[r])?(a[r]=[],Array.isArray(l)&&l.forEach((d,x)=>{a[r][x]={},pe(a[r][x],l[x]);})):q(l)?pe(c,l):vue.isRef(a[r])?a[r].value=l:a[r]=l;});}function z(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function he(e,t,r){let n,a=(...l)=>new Promise(c=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(c);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...l)=>new Promise(c=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(c);},0);}),a}function xt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let l=Number(r[a]),c=Number(n[a]);if(l>c)return 1;if(c>l)return -1;if(!isNaN(l)&&isNaN(c))return 1;if(isNaN(l)&&!isNaN(c))return -1}return 0}var be=xt(vue.version,"3.5.0")!==-1;function Ct(){return Math.floor(Math.random()*Date.now()).toString()}function Ae(){return typeof window>"u"?Ct():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Me(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),a=vue.shallowRef(new Map),l=vue.shallowRef(new Map);function c(p){let o=t.value.get(p);if(o)return o;{let u=vue.ref({});return t.value.set(p,u),u}}function d(p){let o=r.value.get(p);if(o)return o;{let u=vue.ref([]);return r.value.set(p,u),u}}function x(p,o,u){l.value.set(`${p}-${o}`,u);}function E(p,o){return l.value.get(`${p}-${o}`)}function b(p,o){p&&o!=null&&l.value.delete(`${p}-${o}`);}function S(p,o){n.value.set(p,o);}function m(p){return n.value.get(p)??!1}function v(p,o){e.value.set(p,o);}function I(p,o){let u=e.value.get(p);return u?f(o,u)?{valid:!0}:{valid:!1}:void 0}function f(p,o){let u=Object.keys(o),$=Object.keys(p);return $.length!==u.length||!$.every(j=>u.includes(j))?!1:$.every(j=>{let C=p[j],O=o[j];return !O||!C||typeof C=="function"||typeof O=="function"||typeof C=="number"||typeof C=="boolean"?!1:C._params?C._params?.every((P,M)=>{if(typeof O=="number"||typeof O=="boolean")return !0;{let y=H(O._params),w=H(C._params);return y?.[M]===w?.[M]}}):!0})}function N(p){let o=a.value.get(p);if(o)return o;{let u=vue.ref(!1),$=vue.ref(!0),G=vue.ref({}),j=vue.ref(!1);return a.value.set(p,{$pending:u,$valid:$,$metadata:G,$validating:j}),{$pending:u,$valid:$,$metadata:G,$validating:j}}}return vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),l.value.clear();}),{addRuleDeclEntry:v,setDirtyEntry:S,checkRuleDeclEntry:I,getDirtyState:m,trySetRuleStatusRef:N,getFieldsEntry:c,getCollectionsEntry:d,getArrayStatus:E,addArrayStatus:x,deleteArrayStatus:b,arrayStatusStorage:l}}function ot(e,t){return q(e.value)&&q(t.value)&&!Object.entries(t.value).some(r=>de(r))}function ut(e,t){return !!e.value&&"$each"in e.value||Array.isArray(t.value)}function st(e){return !!e.value&&q(e.value)}function de(e){return q(e)&&"_validator"in e}function ve(e){return typeof e.value!="function"}function Fe(e){return q(e)&&"$fields"in e}function je({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function ct({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:l,storage:c,$debounce:d}){let x=vue.effectScope(),E,b,S=vue.ref(!1),{$pending:m,$valid:v,$metadata:I,$validating:f}=c.trySetRuleStatusRef(`${l}.${n}`);function N(){E=x.run(()=>{let C=vue.computed(()=>({$invalid:!v.value,$params:w.value,...I.value})),O=vue.computed(()=>ve(r)?typeof r.value.active=="function"?r.value.active(a.value,C.value):!!r.value.active:!0),P=vue.computed(()=>{let U="",J=t?t[n]?.message:void 0;return J&&(typeof J=="function"?U=J(a.value,C.value):U=J),ve(r)&&(J&&!r.value._patched||(typeof r.value.message=="function"?U=r.value.message(a.value,C.value):U=r.value.message)),z(U)&&(U="Error",console.warn(`No error message defined for ${l}.${n}`)),U}),M=vue.computed(()=>ve(r)&&r.value.type?r.value.type:n),y=vue.computed(()=>ve(r)?r.value.validator:r.value),w=vue.computed(()=>typeof r.value=="function"?[]:H(r.value._params??[])),K=vue.computed(()=>`${l}.${M.value}`);return {$active:O,$message:P,$type:M,$validator:y,$params:w,$path:K}}),b=vue.watch(E.$params,$,{deep:!0});}N();function p(){v.value=!0,e.value&&(m.value=!0);}async function o(){let C=E.$validator.value,O=C(a.value,...E.$params.value),P=!1,M=a.value;try{p();let y;if(O instanceof Promise?y=await O:y=O,a.value!==M)return !0;if(typeof y=="boolean")P=y;else {let{$valid:w,...K}=y;P=w,I.value=K;}}catch{P=!1;}finally{m.value=!1;}return P}let u=he(o,d??200);async function $(){try{f.value=!0;let C=!1;if(de(r.value)&&r.value._async)C=await u();else {let O=E.$validator.value,P=O(a.value,...E.$params.value);if(P 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(P!=null)if(typeof P=="boolean")C=P;else {let{$valid:M,...y}=P;C=M,I.value=y;}}return v.value=C,C}catch{return !1}finally{f.value=!1;}}function G(){v.value=!0,I.value={},m.value=!1,f.value=!1,N();}function j(){b(),x.stop(),x=vue.effectScope();}return vue.reactive({...E,$pending:m,$valid:v,$metadata:I,_haveAsync:S,$validating:f,$validate:$,$unwatch:j,$watch:N,$reset:G})}function Ee({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:l,options:c,externalErrors:d,onUnwatch:x,$isArray:E,initialState:b,shortcuts:S}){let m=vue.effectScope(),v,I=[],f=vue.ref(!1),N=vue.ref(!1),p,o,u,$,G=()=>{};function j(){let T=t.value,B=l.checkRuleDeclEntry(n,T);w.value=Object.fromEntries(Object.entries(T).filter(([Y])=>Y.startsWith("$"))),y.value=Object.fromEntries(Object.entries(t.value).filter(([Y])=>!Y.startsWith("$")).map(([Y,L])=>{if(L){let fe=vue.toRef(()=>L);return [Y,ct({$dirty:f,customMessages:r,rule:fe,ruleKey:Y,state:e,path:n,storage:l,$debounce:w.value.$debounce})]}return []}).filter(Y=>!!Y.length)),P(),C(),B?.valid!=null&&(f.value=l.getDirtyState(n),f.value&&G()),l.addRuleDeclEntry(n,T);}function C(){G=v.$debounce.value?he(M,v.$debounce.value??v.haveAnyAsyncRule?100:0):M;}function O(){y.value&&Object.entries(y.value).forEach(([T,B])=>{B.$unwatch();}),u(),f.value&&l.setDirtyEntry(n,f.value),p?.(),o?.(),m.stop(),m=vue.effectScope(),I.forEach(T=>T.stop()),I=[],x?.(),$?.();}function P(){y.value&&Object.entries(y.value).forEach(([T,B])=>{B.$watch();}),v=m.run(()=>{let T=vue.computed(()=>f.value),B=vue.computed(()=>w.value.$debounce),Y=vue.computed(()=>w.value.$lazy!=null?w.value.$lazy:vue.unref(c.lazy)),L=vue.computed(()=>w.value.$rewardEarly!=null?w.value.$rewardEarly:vue.unref(c.rewardEarly)),fe=vue.computed(()=>w.value.$clearExternalErrorsOnChange!=null?w.value.$clearExternalErrorsOnChange:vue.unref(c.clearExternalErrorsOnChange)),gt=vue.computed(()=>w.value.$autoDirty!=null?w.value.$autoDirty:vue.unref(c.autoDirty)),He=vue.computed(()=>Object.entries(y.value).some(([re,Q])=>Q.$validating)),xe=vue.computed(()=>Re.value&&!Se.value&&f.value),qe=vue.computed(()=>xe.value?je({field:{$dirty:f.value,$externalErrors:d?.value,$rules:y.value}}):[]),Le=vue.computed(()=>je({field:{$dirty:f.value,$externalErrors:d?.value,$rules:y.value},silent:!0})),ze=vue.computed(()=>!(Re.value||Se.value)),Se=vue.computed(()=>N.value||!L.value?Object.entries(y.value).some(([re,Q])=>Q.$pending):!1),Re=vue.computed(()=>d?.value?.length?!0:z(y.value)?!1:!L.value||L.value&&N.value?Object.entries(y.value).some(([re,Q])=>!Q.$valid):!1),Je=vue.computed(()=>a),Ce=vue.computed(()=>z(y.value)?!1:f.value&&!z(e.value)&&!He.value?d?.value?.length?!1:L.value?Object.entries(y.value).every(([re,Q])=>Q.$valid):!Re.value:!1),mt=vue.computed(()=>Object.entries(y.value).some(([re,Q])=>Q._haveAsync));function $t(){S?.fields&&Object.entries(S.fields).forEach(([re,Q])=>{let Qe=vue.effectScope();Ye[re]=Qe.run(()=>{let Xe=vue.ref();return vue.watchEffect(()=>{Xe.value=Q({$dirty:f.value,$externalErrors:d?.value??[],$value:e,$rules:y.value,$error:xe.value,$pending:Se.value,$invalid:Re.value,$valid:Ce.value,$errors:qe.value,$ready:ze.value,$silentErrors:Le.value,$anyDirty:T.value,$name:Je.value});}),Xe}),I.push(Qe);});}let Ye={};return $t(),vue.watch(Ce,re=>{re&&(N.value=!1);}),{$error:xe,$pending:Se,$invalid:Re,$valid:Ce,$debounce:B,$lazy:Y,$errors:qe,$ready:ze,$silentErrors:Le,$rewardEarly:L,$autoDirty:gt,$clearExternalErrorsOnChange:fe,$anyDirty:T,$name:Je,haveAnyAsyncRule:mt,$shortcuts:Ye,$validating:He}}),p=vue.watch(e,()=>{v.$autoDirty.value&&(f.value||(f.value=!0)),t.value instanceof Function&&j(),G(),v.$rewardEarly.value!==!0&&v.$clearExternalErrorsOnChange.value&&g();},{deep:E?!0:be?1:!0}),u=vue.watch(f,()=>{l.setDirtyEntry(n,f.value);}),o=vue.watch(v.$valid,T=>{v.$rewardEarly.value&&T&&(N.value=!1);}),$=vue.watch(v.haveAnyAsyncRule,C);}function M(){Object.values(y.value).forEach(T=>{T.$validate();});}let y=vue.ref(),w=vue.ref();j();function K(){g(),f.value=!1,Object.entries(y.value).forEach(([T,B])=>{B.$reset();}),!v.$lazy.value&&v.$autoDirty.value&&Object.values(y.value).forEach(T=>T.$validate());}function U(T=!0){f.value||(f.value=!0,T&&G());}async function J(){try{let T=e.value;if(N.value=!0,!f.value)f.value=!0;else if(v.$autoDirty.value&&f.value&&!v.$pending.value)return {result:!v.$error.value,data:T};return z(y.value)?{result:!0,data:T}:{result:(await Promise.allSettled(Object.entries(y.value).map(([L,fe])=>fe.$validate()))).every(L=>L.status==="fulfilled"?L.value===!0:!1),data:T}}catch{return {result:!1,data:e.value}}}function s(){O(),e.value=at(e,b),K();}function i(T=!0){return f.value?e.value:null}function g(){d?.value?.length&&(d.value=[]);}!v.$lazy.value&&!f.value&&v.$autoDirty.value&&G();let{$anyDirty:h,$error:V,$errors:R,$invalid:A,$name:F,$pending:k,$ready:te,$silentErrors:ce,$valid:le,$shortcuts:D,$validating:_}=v;return vue.reactive({$dirty:f,$error:V,$errors:R,$valid:le,$invalid:A,$pending:k,$silentErrors:ce,$anyDirty:h,$ready:te,$name:F,$externalErrors:d,$value:e,$rules:y,...D,$reset:K,$touch:U,$validate:J,$unwatch:O,$watch:P,$resetAll:s,$extractDirtyFields:i,$clearExternalErrors:g})}function ft({$id:e,path:t,index:r,options:n,storage:a,stateValue:l,customMessages:c,rules:d,externalErrors:x,initialState:E,shortcuts:b,fieldName:S}){let m=d.$key?d.$key:Ae(),v=`${t}.${String(m)}`;typeof l.value=="object"&&l.value!=null&&(l.value.$id?v=`${t}.${l.value.$id}`:Object.defineProperties(l.value,{$id:{value:m,enumerable:!1,configurable:!1,writable:!1}}));let I=$e({state:l,rulesDef:vue.toRef(()=>d),customMessages:c,path:v,storage:a,options:n,externalErrors:vue.toRef(x?.value??[],r),initialState:E?.[r],shortcuts:b,fieldName:S});if(I){let f=l.value?.$id;I.$id=f??String(m),a.addArrayStatus(e,I.$id,I);}return I}function Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:c,initialState:d,shortcuts:x,fieldName:E}){let b=vue.effectScope(),S,m=vue.effectScope(),v,I=[];if(!Array.isArray(e.value)&&!t.value.$each)return null;let f=vue.ref(),N=vue.ref(e.value),p,o=vue.ref({}),u=a.getCollectionsEntry(n);v=m.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(i=>typeof i!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(i=>de(i)):!1)})),$(),j();function $(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(f.value=Ae(),Object.defineProperties(e.value,{$id:{value:f.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(f.value=e.value.$id)),!v.isPrimitiveArray.value&&(N.value=o.value.$value,Array.isArray(e.value)?u.value=e.value.map((s,i)=>{let g=Oe(t.value.$each,vue.toRef(()=>s),i),h=ft({$id:f.value,path:n,rules:g??{},stateValue:vue.toRef(()=>s),index:i,options:l,storage:a,externalErrors:vue.toRef(c?.value??{},"$each"),initialState:d?.[i],shortcuts:x,fieldName:E});return h||null}).filter(s=>!!s):u.value=[],o.value=Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:vue.toRef(c?.value??{},"$errors"),$isArray:!0,initialState:d,shortcuts:x,fieldName:E}));}function G(){if(Array.isArray(e.value)){let s=ne(u.value);u.value=e.value.map((i,g)=>{let h=vue.toRef(()=>i);if(i.$id&&u.value.find(V=>V.$id===i.$id)){let V=a.getArrayStatus(f.value,i.$id);return V?(V.$value=h,V):null}else {let V=Oe(t.value.$each,h,g);if(V){let R=ft({$id:f.value,path:n,rules:V,stateValue:h,index:g,options:l,storage:a,externalErrors:vue.toRef(c?.value??{},"$each"),initialState:d?.[g],shortcuts:x,fieldName:E});return R||null}}}).filter(i=>!!i),s.filter(i=>!e.value.find(g=>i.$id===g.$id)).forEach((i,g)=>{a.deleteArrayStatus(f.value,g.toString());});}else u.value=[];}function j(){p=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?$():G();},{deep:be?1:!0,flush:"pre"}),S=b.run(()=>{let s=vue.computed(()=>o.value.$dirty&&u.value.every(D=>D.$dirty)),i=vue.computed(()=>o.value.$anyDirty||u.value.some(D=>D.$dirty)),g=vue.computed(()=>o.value.$invalid||u.value.some(D=>D.$invalid)),h=vue.computed(()=>(z(o.value.$rules)?!0:o.value.$valid)&&u.value.every(D=>D.$valid)),V=vue.computed(()=>o.value.$error||u.value.some(D=>D.$error)),R=vue.computed(()=>!(g.value||A.value)),A=vue.computed(()=>o.value.$pending||u.value.some(D=>D.$pending)),F=vue.computed(()=>({$errors:o.value.$errors,$each:u.value.map(D=>D.$errors)})),k=vue.computed(()=>({$errors:o.value.$silentErrors,$each:u.value.map(D=>D.$silentErrors)})),te=vue.computed(()=>E);function ce(){x?.collections&&Object.entries(x?.collections).forEach(([D,_])=>{let T=vue.effectScope();le[D]=T.run(()=>{let B=vue.ref();return vue.watchEffect(()=>{B.value=_({$dirty:s.value,$error:V.value,$pending:A.value,$invalid:g.value,$valid:h.value,$errors:F.value,$ready:R.value,$silentErrors:k.value,$anyDirty:i.value,$name:te.value,$each:u.value,$field:o.value,$value:e});}),B}),I.push(T);});}let le={};return ce(),{$dirty:s,$anyDirty:i,$invalid:g,$valid:h,$error:V,$pending:A,$errors:F,$silentErrors:k,$ready:R,$name:te,$shortcuts:le}}),v.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`),p());}function C(){p&&p(),o.value&&o.value.$unwatch(),u.value&&u.value.forEach(s=>{"$dirty"in s&&s.$unwatch();}),b.stop(),b=vue.effectScope(),m.stop(),m=vue.effectScope(!0),I.forEach(s=>s.stop()),I=[];}function O(s=!0){o.value.$touch(s),u.value.forEach(i=>{i.$touch(s);});}function P(){o.value.$reset(),u.value.forEach(s=>{s.$reset();});}async function M(){let s=e.value;try{return {result:(await Promise.allSettled([o.value.$validate(),...u.value.map(h=>h.$validate())])).every(h=>h.status==="fulfilled"?h.value.result===!0:!1),data:s}}catch{return {result:!1,data:s}}}function y(){o.value.$clearExternalErrors(),u.value.forEach(s=>{s.$clearExternalErrors();});}function w(s=!0){let i=u.value.map(g=>{if(Fe(g))return g.$extractDirtyFields(s)});return s&&(i=i.filter(g=>q(g)?!z(g):!!g)),i}function K(){C(),lt(e,d),P();}let{$shortcuts:U,...J}=S;return vue.reactive({$field:o,...J,...U,$each:u,$value:e,$validate:M,$unwatch:C,$watch:j,$touch:O,$reset:P,$resetAll:K,$extractDirtyFields:w,$clearExternalErrors:y})}function Ge({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:l,options:c,externalErrors:d,validationGroups:x,initialState:E,shortcuts:b,fieldName:S}){let m,v,I=[],f=null,N=null,p=null;function u(s=!0){$.value=null,vue.triggerRef($);let i=Object.fromEntries(Object.entries(e.value).map(([R,A])=>{if(A){let F=vue.toRef(t.value,R),k=vue.toRef(()=>A),te=vue.toRef(d?.value,R);return [R,$e({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:c,externalErrors:te,initialState:E?.[R],shortcuts:b,fieldName:R})]}return []}).filter(R=>!!R.length&&R[1]!=null)),g=Object.fromEntries(Object.entries(vue.unref(d)??{}).filter(([R])=>!(R in e.value)).map(([R,A])=>{if(A){let F=vue.toRef(t.value,R),k=vue.toRef(()=>({}));return [R,$e({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:c,externalErrors:vue.toRef(d?.value??{},R),initialState:E?.[R],shortcuts:b,fieldName:R})]}return []})),h=Object.fromEntries(Object.entries(t.value).filter(([R])=>!(R in e.value)&&!(R in(g.value??{}))).map(([R,A])=>{let F=vue.toRef(t.value,R),k=vue.toRef(()=>({}));return [R,$e({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:c,externalErrors:vue.toRef(d?.value??{},R),initialState:E?.[R],shortcuts:b,fieldName:R})]})),V=Object.fromEntries(Object.entries(x?.(i)??{}).map(([R,A])=>A.length?[R,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(F=>[F,Ke(vue.toRef(()=>A),F)])),...Object.fromEntries(["$errors","$silentErrors"].map(F=>[F,et(vue.toRef(()=>A),F)]))}]:[]));$.value={...i,...g,...h,...V},s&&P();}let $=l.getFieldsEntry(n);u();function G(){N?.(),Object.values($.value).forEach(s=>{s.$reset();}),O();}function j(s=!0){Object.values($.value).forEach(i=>{i.$touch(s);});}async function C(){try{let s=t.value;return {result:(await Promise.allSettled(Object.values($.value).map(h=>h.$validate()))).every(h=>h.status==="fulfilled"?h.value.result===!0:!1),data:s}}catch{return {result:!1,data:t.value}}}function O(){d?.value&&(N=vue.watch(d,()=>{M(),u();},{deep:!0}));}function P(){a&&(f=vue.watch(a,()=>{M(),u();},{deep:!0,flush:"post"}),O()),p=vue.watch(t,()=>{M(),u(),j();}),m=vue.effectScope(),v=m.run(()=>{let s=vue.computed(()=>!!Object.entries($.value).length&&Object.entries($.value).every(([D,_])=>_?.$dirty)),i=vue.computed(()=>Object.entries($.value).some(([D,_])=>_?.$dirty)),g=vue.computed(()=>Object.entries($.value).some(([D,_])=>_?.$invalid)),h=vue.computed(()=>Object.entries($.value).every(([D,_])=>_?.$valid)),V=vue.computed(()=>s.value&&!A.value&&g.value),R=vue.computed(()=>vue.unref(c.autoDirty)?i.value&&!(g.value||A.value):!(g.value||A.value)),A=vue.computed(()=>Object.entries($.value).some(([D,_])=>_?.$pending)),F=vue.computed(()=>Object.fromEntries(Object.entries($.value).map(([D,_])=>[D,_?.$errors]))),k=vue.computed(()=>Object.fromEntries(Object.entries($.value).map(([D,_])=>[D,_?.$silentErrors]))),te=vue.computed(()=>S);function ce(){b?.nested&&Object.entries(b.nested).forEach(([D,_])=>{let T=vue.effectScope();le[D]=T.run(()=>{let B=vue.ref();return vue.watchEffect(()=>{B.value=_({$dirty:s.value,$value:t,$error:V.value,$pending:A.value,$invalid:g.value,$valid:h.value,$ready:R.value,$anyDirty:i.value,$name:te.value,$silentErrors:k.value,$errors:F.value,$fields:$.value});}),B}),I.push(T);});}let le={};return ce(),{$dirty:s,$anyDirty:i,$invalid:g,$valid:h,$error:V,$pending:A,$errors:F,$silentErrors:k,$ready:R,$name:te,$shortcuts:le}});}function M(){$.value&&Object.entries($.value).forEach(([s,i])=>{i.$unwatch();}),f?.(),N?.(),p?.(),m.stop(),m=vue.effectScope(),I.forEach(s=>s.stop()),I=[];}function y(){Object.entries($.value).forEach(([s,i])=>{i.$clearExternalErrors();});}function w(){M(),pe(t,E??{}),u(!1),G(),P();}function K(s=!0){let i=Object.entries($.value).map(([g,h])=>[g,h.$extractDirtyFields(s)]);return s&&(i=i.filter(([g,h])=>q(h)?!z(h):Array.isArray(h)?h.length:!!h)),Object.fromEntries(i)}let{$shortcuts:U,...J}=v;return vue.reactive({...J,...U,$fields:$,$value:t,$resetAll:w,$reset:G,$touch:j,$validate:C,$unwatch:M,$watch:P,$clearExternalErrors:y,$extractDirtyFields:K})}function $e({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:c,index:d,initialState:x,shortcuts:E,onUnwatch:b,fieldName:S}){return ut(t,e)?Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:d,externalErrors:c,initialState:x,fieldName:S,shortcuts:E}):ot(e,t)&&nt(e)?Ge({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:l,index:d,initialState:x,shortcuts:E,fieldName:S,externalErrors:c}):st(t)?Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:d,externalErrors:c,onUnwatch:b,shortcuts:E,initialState:x,fieldName:S}):null}function Be({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:l}){let c=Me();return vue.reactive(Ge({rootRules:r,scopeRules:r,state:n,customMessages:a?.(),storage:c,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:l,fieldName:"root"}))}function We(e,t,r){let n={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange??!0};function a(l,c,d){let x=vue.isRef(c)?c:vue.computed(typeof c=="function"?c:()=>c),E={...n,...d},b=vue.isRef(l)?l:vue.ref(l),S=ne(vue.toRaw(b.value));return {r$:Be({scopeRules:x,state:b,options:E,initialState:S,customRules:e,shortcuts:r})}}return a}var vt=We();function Ue(){function e(t,r){return r}return e}var ke=Ue();function yt({rules:e,modifiers:t,shortcuts:r}){let n=We(e,t,r),a=Ue();return {useRegle:n,inferRules:a}}exports.InternalRuleType=Ie;exports.createRule=we;exports.defineRegleConfig=yt;exports.inferRules=ke;exports.unwrapRuleParameters=H;exports.useRegle=vt;
1
+ 'use strict';var vue=require('vue');var De=(r=>(r.Inline="__inline",r.Async="__async",r))(De||{});function ke(e,t){return e.some(r=>r[t])}function He(e,t){return e.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[])}function L(e){return e.map(t=>t instanceof Function?t():vue.unref(t))}function Le(e){return e.map(t=>t instanceof Function||vue.isRef(t)?t:vue.toRef(()=>t))}function qe(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(s=>s.trim()).filter(s=>s.length>0).length:0}function xe(e,...t){let{message:r,validator:n,active:a,type:l,...s}=e,v=l==="__async"||n.constructor.name==="AsyncFunction";return {...{validator(T,...S){return e.validator(T,...L(S.length?S:t))},message(T,S){return typeof e.message=="function"?e.message(T,{...S,$params:L(S.$params?.length?S.$params:t)}):e.message},active(T,S){return typeof e.active=="function"?e.active(T,{...S,$params:L(S.$params?.length?S.$params:t)}):e.active??!0},exec(T){let S=e.validator(T,...L(t)),h;return S instanceof Promise?S.then(y=>(h=y,typeof h=="object"&&"$valid"in h?h.$valid:typeof h=="boolean"?h:!1)):(h=S,typeof h=="object"&&"$valid"in h?h.$valid:typeof h=="boolean"?h:!1)}},...s,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:v,_params:Le(t)}}function Ce(e){if(typeof e.validator=="function"){let r=xe(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(qe(e.validator)>1){let a=function(...l){return xe(e,...l)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._type=e.type,a._patched=!1,a._async=n,a}else return r}throw new Error("Validator must be a function")}function q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ze(e){return q(e.value)}function te(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>te(n)))),r=="Map"&&(t=new Map([...e].map(n=>[te(n[0]),te(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,vt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=te(e[n]);}return t}function vt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function Ie(e,t,r){return e instanceof Function?e(t,r??0):e}function Je(e,t){vue.isRef(e)?e.value=t:e=t;}function Ye(e,t){vue.isRef(e)?e.value=[]:e=[],t.forEach((r,n)=>{let a=vue.isRef(e)?e.value[n]:e[n];a={},ce(a,t[n]);});}function ce(e,t){Object.entries({...vue.unref(e),...t}).forEach(([r,n])=>{let a=vue.isRef(e)?e.value:e,l=vue.isRef(t[r])?t[r]._value:t[r],s=vue.isRef(a[r])?a[r].value:a[r];Array.isArray(a[r])?(a[r]=[],Array.isArray(l)&&l.forEach((v,D)=>{a[r][D]={},ce(a[r][D],l[D]);})):q(l)?ce(s,l):vue.isRef(a[r])?a[r].value=l:a[r]=l;});}function J(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function $e(e,t,r){let n,a=(...l)=>new Promise(s=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(s);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...l)=>new Promise(s=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(s);},0);}),a}function mt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let l=Number(r[a]),s=Number(n[a]);if(l>s)return 1;if(s>l)return -1;if(!isNaN(l)&&isNaN(s))return 1;if(isNaN(l)&&!isNaN(s))return -1}return 0}var Se=mt(vue.version,"3.5.0")!==-1;function gt(){return Math.floor(Math.random()*Date.now()).toString()}function Pe(){return typeof window>"u"?gt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function we(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),a=vue.shallowRef(new Map),l=vue.shallowRef(new Map);function s(d){let o=t.value.get(d);if(o)return o;{let u=vue.ref({});return t.value.set(d,u),u}}function v(d){let o=r.value.get(d);if(o)return o;{let u=vue.ref([]);return r.value.set(d,u),u}}function D(d,o,u){l.value.set(`${d}-${o}`,u);}function E(d,o){return l.value.get(`${d}-${o}`)}function T(d,o){d&&o!=null&&l.value.delete(`${d}-${o}`);}function S(d,o){n.value.set(d,o);}function h(d){return n.value.get(d)??!1}function y(d,o){e.value.set(d,o);}function C(d,o){let u=e.value.get(d);return u?R(o,u)?{valid:!0}:{valid:!1}:void 0}function R(d,o){let u=Object.keys(o),$=Object.keys(d);return $.length!==u.length||!$.every(j=>u.includes(j))?!1:$.every(j=>{let x=d[j],A=o[j];return !A||!x||typeof x=="function"||typeof A=="function"||typeof x=="number"||typeof x=="boolean"?!1:x._params?x._params?.every((P,M)=>{if(typeof A=="number"||typeof A=="boolean")return !0;{let m=L(A._params),O=L(x._params);return m?.[M]===O?.[M]}}):!0})}function G(d){let o=a.value.get(d);if(o)return o;{let u=vue.ref(!1),$=vue.ref(!0),N=vue.ref({}),j=vue.ref(!1);return a.value.set(d,{$pending:u,$valid:$,$metadata:N,$validating:j}),{$pending:u,$valid:$,$metadata:N,$validating:j}}}return vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),l.value.clear();}),{addRuleDeclEntry:y,setDirtyEntry:S,checkRuleDeclEntry:C,getDirtyState:h,trySetRuleStatusRef:G,getFieldsEntry:s,getCollectionsEntry:v,getArrayStatus:E,addArrayStatus:D,deleteArrayStatus:T,arrayStatusStorage:l}}function Qe(e,t){return q(e.value)&&q(t.value)&&!Object.entries(t.value).some(r=>fe(r))}function Xe(e,t){return !!e.value&&"$each"in e.value||Array.isArray(t.value)}function Ze(e){return !!e.value&&q(e.value)}function fe(e){return q(e)&&"_validator"in e}function Re(e){return typeof e.value!="function"}function Ke(e){return q(e)&&"$fields"in e}function Oe({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function tt({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:l,storage:s,$debounce:v}){let D=vue.effectScope(),E,T,S=vue.ref(!1),{$pending:h,$valid:y,$metadata:C,$validating:R}=s.trySetRuleStatusRef(`${l}.${n}`);function G(){E=D.run(()=>{let x=vue.computed(()=>({$invalid:!y.value,$params:O.value,...C.value})),A=vue.computed(()=>Re(r)?typeof r.value.active=="function"?r.value.active(a.value,x.value):!!r.value.active:!0),P=vue.computed(()=>{let H="",Y=t?t[n]?.message:void 0;return Y&&(typeof Y=="function"?H=Y(a.value,x.value):H=Y),Re(r)&&(Y&&!r.value._patched||(typeof r.value.message=="function"?H=r.value.message(a.value,x.value):H=r.value.message)),J(H)&&(H="Error",console.warn(`No error message defined for ${l}.${n}`)),H}),M=vue.computed(()=>Re(r)&&r.value.type?r.value.type:n),m=vue.computed(()=>Re(r)?r.value.validator:r.value),O=vue.computed(()=>typeof r.value=="function"?[]:L(r.value._params??[])),X=vue.computed(()=>`${l}.${M.value}`);return {$active:A,$message:P,$type:M,$validator:m,$params:O,$path:X}}),T=vue.watch(E.$params,$,{deep:!0});}G();function d(){y.value=!0,e.value&&(h.value=!0);}async function o(){let x=E.$validator.value,A=x(a.value,...E.$params.value),P=!1,M=a.value;try{d();let m;if(A instanceof Promise?m=await A:m=A,a.value!==M)return !0;if(typeof m=="boolean")P=m;else {let{$valid:O,...X}=m;P=O,C.value=X;}}catch{P=!1;}finally{h.value=!1;}return P}let u=$e(o,v??200);async function $(){try{R.value=!0;let x=!1;if(fe(r.value)&&r.value._async)x=await u();else {let A=E.$validator.value,P=A(a.value,...E.$params.value);if(P 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(P!=null)if(typeof P=="boolean")x=P;else {let{$valid:M,...m}=P;x=M,C.value=m;}}return y.value=x,x}catch{return !1}finally{R.value=!1;}}function N(){y.value=!0,C.value={},h.value=!1,R.value=!1,G();}function j(){T(),D.stop(),D=vue.effectScope();}return vue.reactive({...E,$pending:h,$valid:y,$metadata:C,_haveAsync:S,$validating:R,$validate:$,$unwatch:j,$watch:G,$reset:N})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:l,options:s,externalErrors:v,onUnwatch:D,$isArray:E,initialState:T,shortcuts:S}){let h=vue.effectScope(),y,C=[],R=vue.ref(!1),G=vue.ref(!1),d,o,u,$,N=()=>{};function j(){let p=t.value,V=l.checkRuleDeclEntry(n,p);O.value=Object.fromEntries(Object.entries(p).filter(([F])=>F.startsWith("$"))),m.value=Object.fromEntries(Object.entries(t.value).filter(([F])=>!F.startsWith("$")).map(([F,B])=>{if(B){let K=vue.toRef(()=>B);return [F,tt({$dirty:R,customMessages:r,rule:K,ruleKey:F,state:e,path:n,storage:l,$debounce:O.value.$debounce})]}return []}).filter(F=>!!F.length)),P(),x(),V?.valid!=null&&(R.value=l.getDirtyState(n),R.value&&N()),l.addRuleDeclEntry(n,p);}function x(){N=y.$debounce.value?$e(M,y.$debounce.value??y.haveAnyAsyncRule?100:0):M;}function A(){m.value&&Object.entries(m.value).forEach(([p,V])=>{V.$unwatch();}),u(),R.value&&l.setDirtyEntry(n,R.value),d?.(),o?.(),h.stop(),h=vue.effectScope(),C.forEach(p=>p.stop()),C=[],D?.(),$?.();}function P(){m.value&&Object.entries(m.value).forEach(([p,V])=>{V.$watch();}),y=h.run(()=>{let p=vue.computed(()=>R.value),V=vue.computed(()=>O.value.$debounce),F=vue.computed(()=>O.value.$lazy!=null?O.value.$lazy:vue.unref(s.lazy)),B=vue.computed(()=>O.value.$rewardEarly!=null?O.value.$rewardEarly:vue.unref(s.rewardEarly)),K=vue.computed(()=>O.value.$clearExternalErrorsOnChange!=null?O.value.$clearExternalErrorsOnChange:vue.unref(s.clearExternalErrorsOnChange)),oe=vue.computed(()=>O.value.$autoDirty!=null?O.value.$autoDirty:vue.unref(s.autoDirty)),w=vue.computed(()=>Object.entries(m.value).some(([Z,ee])=>ee.$validating)),_=vue.computed(()=>ge.value&&!me.value&&R.value),I=vue.computed(()=>_.value?Oe({field:{$dirty:R.value,$externalErrors:v?.value,$rules:m.value}}):[]),k=vue.computed(()=>Oe({field:{$dirty:R.value,$externalErrors:v?.value,$rules:m.value},silent:!0})),se=vue.computed(()=>!(ge.value||me.value)),me=vue.computed(()=>G.value||!B.value?Object.entries(m.value).some(([Z,ee])=>ee.$pending):!1),ge=vue.computed(()=>v?.value?.length?!0:J(m.value)?!1:!B.value||B.value&&G.value?Object.entries(m.value).some(([Z,ee])=>!ee.$valid):!1),Ne=vue.computed(()=>a),Ee=vue.computed(()=>v?.value?.length||J(m.value)?!1:R.value&&!J(e.value)&&!w.value?Object.values(m.value).every(Z=>Z.$valid&&Z.$active):!1),st=vue.computed(()=>Object.entries(m.value).some(([Z,ee])=>ee._haveAsync));function ct(){S?.fields&&Object.entries(S.fields).forEach(([Z,ee])=>{let We=vue.effectScope();Be[Z]=We.run(()=>{let Ue=vue.ref();return vue.watchEffect(()=>{Ue.value=ee({$dirty:R.value,$externalErrors:v?.value??[],$value:e,$rules:m.value,$error:_.value,$pending:me.value,$invalid:ge.value,$valid:Ee.value,$errors:I.value,$ready:se.value,$silentErrors:k.value,$anyDirty:p.value,$name:Ne.value});}),Ue}),C.push(We);});}let Be={};return ct(),vue.watch(Ee,Z=>{Z&&(G.value=!1);}),{$error:_,$pending:me,$invalid:ge,$valid:Ee,$debounce:V,$lazy:F,$errors:I,$ready:se,$silentErrors:k,$rewardEarly:B,$autoDirty:oe,$clearExternalErrorsOnChange:K,$anyDirty:p,$name:Ne,haveAnyAsyncRule:st,$shortcuts:Be,$validating:w}}),d=vue.watch(e,()=>{y.$autoDirty.value&&(R.value||(R.value=!0)),t.value instanceof Function&&j(),N(),y.$rewardEarly.value!==!0&&y.$clearExternalErrorsOnChange.value&&g();},{deep:E?!0:Se?1:!0}),u=vue.watch(R,()=>{l.setDirtyEntry(n,R.value);}),o=vue.watch(y.$valid,p=>{y.$rewardEarly.value&&p&&(G.value=!1);}),$=vue.watch(y.haveAnyAsyncRule,x);}function M(){Object.values(m.value).forEach(p=>{p.$validate();});}let m=vue.ref(),O=vue.ref();j();function X(){g(),R.value=!1,Object.entries(m.value).forEach(([p,V])=>{V.$reset();}),!y.$lazy.value&&y.$autoDirty.value&&Object.values(m.value).forEach(p=>p.$validate());}function H(p=!0){R.value||(R.value=!0,p&&N());}async function Y(){try{let p=e.value;if(G.value=!0,!R.value)R.value=!0;else if(y.$autoDirty.value&&R.value&&!y.$pending.value)return {result:!y.$error.value,data:p};return J(m.value)?{result:!0,data:p}:{result:(await Promise.allSettled(Object.entries(m.value).map(([B,K])=>K.$validate()))).every(B=>B.status==="fulfilled"?B.value===!0:!1),data:p}}catch{return {result:!1,data:e.value}}}function i(){A(),e.value=Je(e,T),X();}function c(p=!0){return R.value?e.value:null}function g(){v?.value?.length&&(v.value=[]);}!y.$lazy.value&&!R.value&&y.$autoDirty.value&&N();let{$shortcuts:b,$validating:f,...W}=y;return vue.reactive({$dirty:R,...W,$externalErrors:v,$value:e,$rules:m,...b,$reset:X,$touch:H,$validate:Y,$unwatch:A,$watch:P,$resetAll:i,$extractDirtyFields:c,$clearExternalErrors:g})}function rt({$id:e,path:t,index:r,options:n,storage:a,stateValue:l,customMessages:s,rules:v,externalErrors:D,initialState:E,shortcuts:T,fieldName:S}){let h=v.$key?v.$key:Pe(),y=`${t}.${String(h)}`;typeof l.value=="object"&&l.value!=null&&(l.value.$id?y=`${t}.${l.value.$id}`:Object.defineProperties(l.value,{$id:{value:h,enumerable:!1,configurable:!1,writable:!1}}));let C=ye({state:l,rulesDef:vue.toRef(()=>v),customMessages:s,path:y,storage:a,options:n,externalErrors:vue.toRef(D?.value??[],r),initialState:E?.[r],shortcuts:T,fieldName:S});if(C){let R=l.value?.$id;C.$id=R??String(h),a.addArrayStatus(e,C.$id,C);}return C}function nt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:s,initialState:v,shortcuts:D,fieldName:E}){let T=vue.effectScope(),S,h=vue.effectScope(),y,C=[];if(!Array.isArray(e.value)&&!t.value.$each)return null;let R=vue.ref(),G=vue.ref(e.value),d,o=vue.ref({}),u=a.getCollectionsEntry(n);y=h.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>fe(c)):!1)})),$(),j();function $(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(R.value=Pe(),Object.defineProperties(e.value,{$id:{value:R.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(R.value=e.value.$id)),!y.isPrimitiveArray.value&&(G.value=o.value.$value,Array.isArray(e.value)?u.value=e.value.map((i,c)=>{let g=Ie(t.value.$each,vue.toRef(()=>i),c),b=rt({$id:R.value,path:n,rules:g??{},stateValue:vue.toRef(()=>i),index:c,options:l,storage:a,externalErrors:vue.toRef(s?.value??{},"$each"),initialState:v?.[c],shortcuts:D,fieldName:E});return b||null}).filter(i=>!!i):u.value=[],o.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:vue.toRef(s?.value??{},"$errors"),$isArray:!0,initialState:v,shortcuts:D,fieldName:E}));}function N(){if(Array.isArray(e.value)){let i=te(u.value);u.value=e.value.map((c,g)=>{let b=vue.toRef(()=>c);if(c.$id&&u.value.find(f=>f.$id===c.$id)){let f=a.getArrayStatus(R.value,c.$id);return f?(f.$value=b,f):null}else {let f=Ie(t.value.$each,b,g);if(f){let W=rt({$id:R.value,path:n,rules:f,stateValue:b,index:g,options:l,storage:a,externalErrors:vue.toRef(s?.value??{},"$each"),initialState:v?.[g],shortcuts:D,fieldName:E});return W||null}}}).filter(c=>!!c),i.filter(c=>!e.value.find(g=>c.$id===g.$id)).forEach((c,g)=>{a.deleteArrayStatus(R.value,g.toString());});}else u.value=[];}function j(){d=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?$():N();},{deep:Se?1:!0,flush:"pre"}),S=T.run(()=>{let i=vue.computed(()=>o.value.$dirty&&u.value.every(w=>w.$dirty)),c=vue.computed(()=>o.value.$anyDirty||u.value.some(w=>w.$dirty)),g=vue.computed(()=>o.value.$invalid||u.value.some(w=>w.$invalid)),b=vue.computed(()=>(J(o.value.$rules)?!0:o.value.$valid)&&u.value.every(w=>w.$valid)),f=vue.computed(()=>o.value.$error||u.value.some(w=>w.$error)),W=vue.computed(()=>!(g.value||p.value)),p=vue.computed(()=>o.value.$pending||u.value.some(w=>w.$pending)),V=vue.computed(()=>({$errors:o.value.$errors,$each:u.value.map(w=>w.$errors)})),F=vue.computed(()=>({$errors:o.value.$silentErrors,$each:u.value.map(w=>w.$silentErrors)})),B=vue.computed(()=>E);function K(){D?.collections&&Object.entries(D?.collections).forEach(([w,_])=>{let I=vue.effectScope();oe[w]=I.run(()=>{let k=vue.ref();return vue.watchEffect(()=>{k.value=_({$dirty:i.value,$error:f.value,$pending:p.value,$invalid:g.value,$valid:b.value,$errors:V.value,$ready:W.value,$silentErrors:F.value,$anyDirty:c.value,$name:B.value,$each:u.value,$field:o.value,$value:e});}),k}),C.push(I);});}let oe={};return K(),{$dirty:i,$anyDirty:c,$invalid:g,$valid:b,$error:f,$pending:p,$errors:V,$silentErrors:F,$ready:W,$name:B,$shortcuts:oe}}),y.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`),d());}function x(){d&&d(),o.value&&o.value.$unwatch(),u.value&&u.value.forEach(i=>{"$dirty"in i&&i.$unwatch();}),T.stop(),T=vue.effectScope(),h.stop(),h=vue.effectScope(!0),C.forEach(i=>i.stop()),C=[];}function A(i=!0){o.value.$touch(i),u.value.forEach(c=>{c.$touch(i);});}function P(){o.value.$reset(),u.value.forEach(i=>{i.$reset();});}async function M(){let i=e.value;try{return {result:(await Promise.allSettled([o.value.$validate(),...u.value.map(b=>b.$validate())])).every(b=>b.status==="fulfilled"?b.value.result===!0:!1),data:i}}catch{return {result:!1,data:i}}}function m(){o.value.$clearExternalErrors(),u.value.forEach(i=>{i.$clearExternalErrors();});}function O(i=!0){let c=u.value.map(g=>{if(Ke(g))return g.$extractDirtyFields(i)});return i&&(c=c.filter(g=>q(g)?!J(g):!!g)),c}function X(){x(),Ye(e,v),P();}let{$shortcuts:H,...Y}=S;return vue.reactive({$field:o,...Y,...H,$each:u,$value:e,$validate:M,$unwatch:x,$watch:j,$touch:A,$reset:P,$resetAll:X,$extractDirtyFields:O,$clearExternalErrors:m})}function Fe({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:l,options:s,externalErrors:v,validationGroups:D,initialState:E,shortcuts:T,fieldName:S}){let h=vue.effectScope(),y,C=[],R=null,G=null,d=null;async function u(i=!0){let c=Object.fromEntries(Object.entries(e.value).map(([f,W])=>{if(W){let p=vue.toRef(t.value,f);vue.triggerRef(p);let V=vue.toRef(()=>W),F=vue.toRef(v?.value,f);return [f,ye({state:p,rulesDef:V,customMessages:r,path:n?`${n}.${f}`:f,storage:l,options:s,externalErrors:F,initialState:E?.[f],shortcuts:T,fieldName:f})]}return []}).filter(f=>!!f.length&&f[1]!=null)),g=Object.fromEntries(Object.entries(vue.unref(v)??{}).filter(([f])=>!(f in e.value)).map(([f,W])=>{if(W){let p=vue.toRef(t.value,f);return [f,ye({state:p,rulesDef:vue.computed(()=>({})),customMessages:r,path:n?`${n}.${f}`:f,storage:l,options:s,externalErrors:vue.toRef(v?.value??{},f),initialState:E?.[f],shortcuts:T,fieldName:f})]}return []})),b=Object.fromEntries(Object.entries(t.value).filter(([f])=>!(f in e.value)&&!(f in(g.value??{}))).map(([f,W])=>{let p=vue.toRef(t.value,f);return [f,ye({state:p,rulesDef:vue.computed(()=>({})),customMessages:r,path:n?`${n}.${f}`:f,storage:l,options:s,externalErrors:vue.toRef(v?.value??{},f),initialState:E?.[f],shortcuts:T,fieldName:f})]}));$.value={...c,...g,...b},i&&P();}let $=l.getFieldsEntry(n);u();function N(){G?.(),Object.values($.value).forEach(i=>{i.$reset();}),A();}function j(i=!0){Object.values($.value).forEach(c=>{c.$touch(i);});}async function x(){try{let i=t.value;return {result:(await Promise.allSettled(Object.values($.value).map(b=>b.$validate()))).every(b=>b.status==="fulfilled"?b.value.result===!0:!1),data:i}}catch{return {result:!1,data:t.value}}}function A(){v?.value&&(G=vue.watch(v,()=>{M(),u();},{deep:!0}));}function P(){a&&(R=vue.watch(a,()=>{M(),u();},{deep:!0,flush:"post"}),A()),d=vue.watch(t,()=>{M(),u(),j();},{flush:"sync"}),y=h.run(()=>{let i=vue.computed(()=>!!Object.entries($.value).length&&Object.entries($.value).every(([_,I])=>I?.$dirty)),c=vue.computed(()=>Object.entries($.value).some(([_,I])=>I?.$dirty)),g=vue.computed(()=>Object.entries($.value).some(([_,I])=>I?.$invalid)),b=vue.computed(()=>Object.entries($.value).every(([_,I])=>I?.$valid)),f=vue.computed(()=>i.value&&!p.value&&g.value),W=vue.computed(()=>vue.unref(s.autoDirty)?c.value&&!(g.value||p.value):!(g.value||p.value)),p=vue.computed(()=>Object.entries($.value).some(([_,I])=>I?.$pending)),V=vue.computed(()=>Object.fromEntries(Object.entries($.value).map(([_,I])=>[_,I?.$errors]))),F=vue.computed(()=>Object.fromEntries(Object.entries($.value).map(([_,I])=>[_,I?.$silentErrors]))),B=vue.computed(()=>S);function K(){T?.nested&&Object.entries(T.nested).forEach(([_,I])=>{let k=vue.effectScope();w[_]=k.run(()=>{let se=vue.ref();return vue.watchEffect(()=>{se.value=I({$dirty:i.value,$value:t,$error:f.value,$pending:p.value,$invalid:g.value,$valid:b.value,$ready:W.value,$anyDirty:c.value,$name:B.value,$silentErrors:F.value,$errors:V.value,$fields:$.value});}),se}),C.push(k);});}let oe=vue.computed(()=>D?Object.fromEntries(Object.entries(D?.($.value)??{}).map(([_,I])=>I.length?[_,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(k=>[k,ke(I,k)])),...Object.fromEntries(["$errors","$silentErrors"].map(k=>[k,He(I,k)]))}]:[])):{}),w={};return K(),{$dirty:i,$anyDirty:c,$invalid:g,$valid:b,$error:f,$pending:p,$errors:V,$silentErrors:F,$ready:W,$name:B,$shortcuts:w,$groups:oe}});}function M(){R?.(),G?.(),d?.(),C.forEach(i=>i.stop()),C=[],$.value&&Object.entries($.value).forEach(([i,c])=>{c.$unwatch();});}function m(){Object.entries($.value).forEach(([i,c])=>{c.$clearExternalErrors();});}function O(){M(),ce(t,E??{}),u(!1),N(),P();}function X(i=!0){let c=Object.entries($.value).map(([g,b])=>[g,b.$extractDirtyFields(i)]);return i&&(c=c.filter(([g,b])=>q(b)?!J(b):Array.isArray(b)?b.length:!!b)),Object.fromEntries(c)}let{$shortcuts:H,...Y}=y;return vue.reactive({...Y,...H,$fields:$,$value:t,$resetAll:O,$reset:N,$touch:j,$validate:x,$unwatch:M,$watch:P,$clearExternalErrors:m,$extractDirtyFields:X})}function ye({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:s,index:v,initialState:D,shortcuts:E,onUnwatch:T,fieldName:S}){return Xe(t,e)?nt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:v,externalErrors:s,initialState:D,fieldName:S,shortcuts:E}):Qe(e,t)&&ze(e)?Fe({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:l,index:v,initialState:D,shortcuts:E,fieldName:S,externalErrors:s}):Ze(t)?be({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:v,externalErrors:s,onUnwatch:T,shortcuts:E,initialState:D,fieldName:S}):null}function je({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:l}){let s=we();return vue.reactive(Fe({rootRules:r,scopeRules:r,state:n,customMessages:a?.(),storage:s,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:l,fieldName:"root"}))}function Ve(e,t,r){let n={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange??!0};function a(l,s,v){let D=vue.isRef(s)?s:vue.computed(typeof s=="function"?s:()=>s),E={...n,...v},T=vue.isRef(l)?l:vue.ref(l),S=te(vue.toRaw(T.value));return {r$:je({scopeRules:D,state:T,options:E,initialState:S,customRules:e,shortcuts:r})}}return a}var ut=Ve();function _e(){function e(t,r){return r}return e}var Ge=_e();function it({rules:e,modifiers:t,shortcuts:r}){let n=Ve(e,t,r),a=_e();return {useRegle:n,inferRules:a}}
2
+ exports.InternalRuleType=De;exports.createRule=Ce;exports.defineRegleConfig=it;exports.inferRules=Ge;exports.unwrapRuleParameters=L;exports.useRegle=ut;
package/dist/index.d.cts CHANGED
@@ -291,10 +291,10 @@ type FieldRegleBehaviourOptions = AddDollarToOptions<RegleBehaviourOptions> & {
291
291
  type ShortcutCommonFn<T extends Record<string, any>> = {
292
292
  [x: string]: (element: OmitByType<T, Function>) => unknown;
293
293
  };
294
- type RegleShortcutDefinition<TCustomRules extends Record<string, any> = Partial<DefaultValidators>> = {
294
+ type RegleShortcutDefinition<TCustomRules extends Record<string, any> = {}> = {
295
295
  fields?: ShortcutCommonFn<RegleFieldStatus<any, Partial<TCustomRules> & Partial<DefaultValidators>>>;
296
296
  nested?: ShortcutCommonFn<RegleStatus<Record<string, any>, ReglePartialRuleTree<any, Partial<TCustomRules> & Partial<DefaultValidators>>>>;
297
- collections?: ShortcutCommonFn<RegleCollectionStatus>;
297
+ collections?: ShortcutCommonFn<RegleCollectionStatus<any[], Partial<TCustomRules> & Partial<DefaultValidators>>>;
298
298
  };
299
299
  type AddDollarToOptions<T extends Record<string, any>> = {
300
300
  [K in keyof T as `$${string & K}`]: T[K];
@@ -730,7 +730,7 @@ declare function createRule<TValue extends any, TParams extends any[], TReturn e
730
730
  */
731
731
  declare function unwrapRuleParameters<TParams extends any[]>(params: ParamDecl[]): TParams;
732
732
 
733
- declare function defineRegleConfig<TCustomRules extends Partial<AllRulesDeclarations>, TShortcuts extends RegleShortcutDefinition<TCustomRules>>({ rules, modifiers, shortcuts, }: {
733
+ declare function defineRegleConfig<TShortcuts extends RegleShortcutDefinition<TCustomRules>, TCustomRules extends Partial<AllRulesDeclarations> = EmptyObject>({ rules, modifiers, shortcuts, }: {
734
734
  rules?: () => TCustomRules;
735
735
  modifiers?: RegleBehaviourOptions;
736
736
  shortcuts?: TShortcuts;
package/dist/index.d.ts CHANGED
@@ -291,10 +291,10 @@ type FieldRegleBehaviourOptions = AddDollarToOptions<RegleBehaviourOptions> & {
291
291
  type ShortcutCommonFn<T extends Record<string, any>> = {
292
292
  [x: string]: (element: OmitByType<T, Function>) => unknown;
293
293
  };
294
- type RegleShortcutDefinition<TCustomRules extends Record<string, any> = Partial<DefaultValidators>> = {
294
+ type RegleShortcutDefinition<TCustomRules extends Record<string, any> = {}> = {
295
295
  fields?: ShortcutCommonFn<RegleFieldStatus<any, Partial<TCustomRules> & Partial<DefaultValidators>>>;
296
296
  nested?: ShortcutCommonFn<RegleStatus<Record<string, any>, ReglePartialRuleTree<any, Partial<TCustomRules> & Partial<DefaultValidators>>>>;
297
- collections?: ShortcutCommonFn<RegleCollectionStatus>;
297
+ collections?: ShortcutCommonFn<RegleCollectionStatus<any[], Partial<TCustomRules> & Partial<DefaultValidators>>>;
298
298
  };
299
299
  type AddDollarToOptions<T extends Record<string, any>> = {
300
300
  [K in keyof T as `$${string & K}`]: T[K];
@@ -730,7 +730,7 @@ declare function createRule<TValue extends any, TParams extends any[], TReturn e
730
730
  */
731
731
  declare function unwrapRuleParameters<TParams extends any[]>(params: ParamDecl[]): TParams;
732
732
 
733
- declare function defineRegleConfig<TCustomRules extends Partial<AllRulesDeclarations>, TShortcuts extends RegleShortcutDefinition<TCustomRules>>({ rules, modifiers, shortcuts, }: {
733
+ declare function defineRegleConfig<TShortcuts extends RegleShortcutDefinition<TCustomRules>, TCustomRules extends Partial<AllRulesDeclarations> = EmptyObject>({ rules, modifiers, shortcuts, }: {
734
734
  rules?: () => TCustomRules;
735
735
  modifiers?: RegleBehaviourOptions;
736
736
  shortcuts?: TShortcuts;
package/dist/index.js CHANGED
@@ -1 +1,2 @@
1
- import {unref,version,isRef,toRef,computed,ref,toRaw,reactive,shallowRef,onScopeDispose,triggerRef,watch,effectScope,watchEffect}from'vue';var Ie=(r=>(r.Inline="__inline",r.Async="__async",r))(Ie||{});function Ke(e,t){return computed(()=>e.value.some(r=>r[t]))}function et(e,t){return computed(()=>e.value.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[]))}function H(e){return e.map(t=>t instanceof Function?t():unref(t))}function tt(e){return e.map(t=>t instanceof Function||isRef(t)?t:toRef(()=>t))}function rt(e){let t=e.toString();return (t.includes("=>")?t.split("=>")[0]:t).slice(t.indexOf("(")+1,t.indexOf(")")).split(",").map(l=>l.trim()).filter(l=>l.includes("=")).length+e.length}function Pe(e,...t){let{message:r,validator:n,active:a,type:l,...c}=e,d=l==="__async"||n.constructor.name==="AsyncFunction";return {...{validator(b,...S){return e.validator(b,...H(S.length?S:t))},message(b,S){return typeof e.message=="function"?e.message(b,{...S,$params:H(S.$params?.length?S.$params:t)}):e.message},active(b,S){return typeof e.active=="function"?e.active(b,{...S,$params:H(S.$params?.length?S.$params:t)}):e.active??!0},exec(b){let S=e.validator(b,...H(t)),m;return S instanceof Promise?S.then(v=>(m=v,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:!1)):(m=S,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:!1)}},...c,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:d,_params:tt(t)}}function we(e){if(typeof e.validator=="function"){let r=Pe(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(rt(e.validator)>1){let a=function(...l){return Pe(e,...l)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._type=e.type,a._patched=!1,a._async=n,a}else return r}throw new Error("Validator must be a function")}function q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function nt(e){return q(e.value)}function ne(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>ne(n)))),r=="Map"&&(t=new Map([...e].map(n=>[ne(n[0]),ne(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Et(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=ne(e[n]);}return t}function Et(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function Oe(e,t,r){return e instanceof Function?e(t,r??0):e}function at(e,t){isRef(e)?e.value=t:e=t;}function lt(e,t){isRef(e)?e.value=[]:e=[],t.forEach((r,n)=>{let a=isRef(e)?e.value[n]:e[n];a={},pe(a,t[n]);});}function pe(e,t){Object.entries({...unref(e),...t}).forEach(([r,n])=>{let a=isRef(e)?e.value:e,l=isRef(t[r])?t[r]._value:t[r],c=isRef(a[r])?a[r].value:a[r];Array.isArray(a[r])?(a[r]=[],Array.isArray(l)&&l.forEach((d,x)=>{a[r][x]={},pe(a[r][x],l[x]);})):q(l)?pe(c,l):isRef(a[r])?a[r].value=l:a[r]=l;});}function z(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function he(e,t,r){let n,a=(...l)=>new Promise(c=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(c);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...l)=>new Promise(c=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(c);},0);}),a}function xt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let l=Number(r[a]),c=Number(n[a]);if(l>c)return 1;if(c>l)return -1;if(!isNaN(l)&&isNaN(c))return 1;if(isNaN(l)&&!isNaN(c))return -1}return 0}var be=xt(version,"3.5.0")!==-1;function Ct(){return Math.floor(Math.random()*Date.now()).toString()}function Ae(){return typeof window>"u"?Ct():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Me(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),l=shallowRef(new Map);function c(p){let o=t.value.get(p);if(o)return o;{let u=ref({});return t.value.set(p,u),u}}function d(p){let o=r.value.get(p);if(o)return o;{let u=ref([]);return r.value.set(p,u),u}}function x(p,o,u){l.value.set(`${p}-${o}`,u);}function E(p,o){return l.value.get(`${p}-${o}`)}function b(p,o){p&&o!=null&&l.value.delete(`${p}-${o}`);}function S(p,o){n.value.set(p,o);}function m(p){return n.value.get(p)??!1}function v(p,o){e.value.set(p,o);}function I(p,o){let u=e.value.get(p);return u?f(o,u)?{valid:!0}:{valid:!1}:void 0}function f(p,o){let u=Object.keys(o),$=Object.keys(p);return $.length!==u.length||!$.every(j=>u.includes(j))?!1:$.every(j=>{let C=p[j],O=o[j];return !O||!C||typeof C=="function"||typeof O=="function"||typeof C=="number"||typeof C=="boolean"?!1:C._params?C._params?.every((P,M)=>{if(typeof O=="number"||typeof O=="boolean")return !0;{let y=H(O._params),w=H(C._params);return y?.[M]===w?.[M]}}):!0})}function N(p){let o=a.value.get(p);if(o)return o;{let u=ref(!1),$=ref(!0),G=ref({}),j=ref(!1);return a.value.set(p,{$pending:u,$valid:$,$metadata:G,$validating:j}),{$pending:u,$valid:$,$metadata:G,$validating:j}}}return onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),l.value.clear();}),{addRuleDeclEntry:v,setDirtyEntry:S,checkRuleDeclEntry:I,getDirtyState:m,trySetRuleStatusRef:N,getFieldsEntry:c,getCollectionsEntry:d,getArrayStatus:E,addArrayStatus:x,deleteArrayStatus:b,arrayStatusStorage:l}}function ot(e,t){return q(e.value)&&q(t.value)&&!Object.entries(t.value).some(r=>de(r))}function ut(e,t){return !!e.value&&"$each"in e.value||Array.isArray(t.value)}function st(e){return !!e.value&&q(e.value)}function de(e){return q(e)&&"_validator"in e}function ve(e){return typeof e.value!="function"}function Fe(e){return q(e)&&"$fields"in e}function je({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function ct({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:l,storage:c,$debounce:d}){let x=effectScope(),E,b,S=ref(!1),{$pending:m,$valid:v,$metadata:I,$validating:f}=c.trySetRuleStatusRef(`${l}.${n}`);function N(){E=x.run(()=>{let C=computed(()=>({$invalid:!v.value,$params:w.value,...I.value})),O=computed(()=>ve(r)?typeof r.value.active=="function"?r.value.active(a.value,C.value):!!r.value.active:!0),P=computed(()=>{let U="",J=t?t[n]?.message:void 0;return J&&(typeof J=="function"?U=J(a.value,C.value):U=J),ve(r)&&(J&&!r.value._patched||(typeof r.value.message=="function"?U=r.value.message(a.value,C.value):U=r.value.message)),z(U)&&(U="Error",console.warn(`No error message defined for ${l}.${n}`)),U}),M=computed(()=>ve(r)&&r.value.type?r.value.type:n),y=computed(()=>ve(r)?r.value.validator:r.value),w=computed(()=>typeof r.value=="function"?[]:H(r.value._params??[])),K=computed(()=>`${l}.${M.value}`);return {$active:O,$message:P,$type:M,$validator:y,$params:w,$path:K}}),b=watch(E.$params,$,{deep:!0});}N();function p(){v.value=!0,e.value&&(m.value=!0);}async function o(){let C=E.$validator.value,O=C(a.value,...E.$params.value),P=!1,M=a.value;try{p();let y;if(O instanceof Promise?y=await O:y=O,a.value!==M)return !0;if(typeof y=="boolean")P=y;else {let{$valid:w,...K}=y;P=w,I.value=K;}}catch{P=!1;}finally{m.value=!1;}return P}let u=he(o,d??200);async function $(){try{f.value=!0;let C=!1;if(de(r.value)&&r.value._async)C=await u();else {let O=E.$validator.value,P=O(a.value,...E.$params.value);if(P 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(P!=null)if(typeof P=="boolean")C=P;else {let{$valid:M,...y}=P;C=M,I.value=y;}}return v.value=C,C}catch{return !1}finally{f.value=!1;}}function G(){v.value=!0,I.value={},m.value=!1,f.value=!1,N();}function j(){b(),x.stop(),x=effectScope();}return reactive({...E,$pending:m,$valid:v,$metadata:I,_haveAsync:S,$validating:f,$validate:$,$unwatch:j,$watch:N,$reset:G})}function Ee({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:l,options:c,externalErrors:d,onUnwatch:x,$isArray:E,initialState:b,shortcuts:S}){let m=effectScope(),v,I=[],f=ref(!1),N=ref(!1),p,o,u,$,G=()=>{};function j(){let T=t.value,B=l.checkRuleDeclEntry(n,T);w.value=Object.fromEntries(Object.entries(T).filter(([Y])=>Y.startsWith("$"))),y.value=Object.fromEntries(Object.entries(t.value).filter(([Y])=>!Y.startsWith("$")).map(([Y,L])=>{if(L){let fe=toRef(()=>L);return [Y,ct({$dirty:f,customMessages:r,rule:fe,ruleKey:Y,state:e,path:n,storage:l,$debounce:w.value.$debounce})]}return []}).filter(Y=>!!Y.length)),P(),C(),B?.valid!=null&&(f.value=l.getDirtyState(n),f.value&&G()),l.addRuleDeclEntry(n,T);}function C(){G=v.$debounce.value?he(M,v.$debounce.value??v.haveAnyAsyncRule?100:0):M;}function O(){y.value&&Object.entries(y.value).forEach(([T,B])=>{B.$unwatch();}),u(),f.value&&l.setDirtyEntry(n,f.value),p?.(),o?.(),m.stop(),m=effectScope(),I.forEach(T=>T.stop()),I=[],x?.(),$?.();}function P(){y.value&&Object.entries(y.value).forEach(([T,B])=>{B.$watch();}),v=m.run(()=>{let T=computed(()=>f.value),B=computed(()=>w.value.$debounce),Y=computed(()=>w.value.$lazy!=null?w.value.$lazy:unref(c.lazy)),L=computed(()=>w.value.$rewardEarly!=null?w.value.$rewardEarly:unref(c.rewardEarly)),fe=computed(()=>w.value.$clearExternalErrorsOnChange!=null?w.value.$clearExternalErrorsOnChange:unref(c.clearExternalErrorsOnChange)),gt=computed(()=>w.value.$autoDirty!=null?w.value.$autoDirty:unref(c.autoDirty)),He=computed(()=>Object.entries(y.value).some(([re,Q])=>Q.$validating)),xe=computed(()=>Re.value&&!Se.value&&f.value),qe=computed(()=>xe.value?je({field:{$dirty:f.value,$externalErrors:d?.value,$rules:y.value}}):[]),Le=computed(()=>je({field:{$dirty:f.value,$externalErrors:d?.value,$rules:y.value},silent:!0})),ze=computed(()=>!(Re.value||Se.value)),Se=computed(()=>N.value||!L.value?Object.entries(y.value).some(([re,Q])=>Q.$pending):!1),Re=computed(()=>d?.value?.length?!0:z(y.value)?!1:!L.value||L.value&&N.value?Object.entries(y.value).some(([re,Q])=>!Q.$valid):!1),Je=computed(()=>a),Ce=computed(()=>z(y.value)?!1:f.value&&!z(e.value)&&!He.value?d?.value?.length?!1:L.value?Object.entries(y.value).every(([re,Q])=>Q.$valid):!Re.value:!1),mt=computed(()=>Object.entries(y.value).some(([re,Q])=>Q._haveAsync));function $t(){S?.fields&&Object.entries(S.fields).forEach(([re,Q])=>{let Qe=effectScope();Ye[re]=Qe.run(()=>{let Xe=ref();return watchEffect(()=>{Xe.value=Q({$dirty:f.value,$externalErrors:d?.value??[],$value:e,$rules:y.value,$error:xe.value,$pending:Se.value,$invalid:Re.value,$valid:Ce.value,$errors:qe.value,$ready:ze.value,$silentErrors:Le.value,$anyDirty:T.value,$name:Je.value});}),Xe}),I.push(Qe);});}let Ye={};return $t(),watch(Ce,re=>{re&&(N.value=!1);}),{$error:xe,$pending:Se,$invalid:Re,$valid:Ce,$debounce:B,$lazy:Y,$errors:qe,$ready:ze,$silentErrors:Le,$rewardEarly:L,$autoDirty:gt,$clearExternalErrorsOnChange:fe,$anyDirty:T,$name:Je,haveAnyAsyncRule:mt,$shortcuts:Ye,$validating:He}}),p=watch(e,()=>{v.$autoDirty.value&&(f.value||(f.value=!0)),t.value instanceof Function&&j(),G(),v.$rewardEarly.value!==!0&&v.$clearExternalErrorsOnChange.value&&g();},{deep:E?!0:be?1:!0}),u=watch(f,()=>{l.setDirtyEntry(n,f.value);}),o=watch(v.$valid,T=>{v.$rewardEarly.value&&T&&(N.value=!1);}),$=watch(v.haveAnyAsyncRule,C);}function M(){Object.values(y.value).forEach(T=>{T.$validate();});}let y=ref(),w=ref();j();function K(){g(),f.value=!1,Object.entries(y.value).forEach(([T,B])=>{B.$reset();}),!v.$lazy.value&&v.$autoDirty.value&&Object.values(y.value).forEach(T=>T.$validate());}function U(T=!0){f.value||(f.value=!0,T&&G());}async function J(){try{let T=e.value;if(N.value=!0,!f.value)f.value=!0;else if(v.$autoDirty.value&&f.value&&!v.$pending.value)return {result:!v.$error.value,data:T};return z(y.value)?{result:!0,data:T}:{result:(await Promise.allSettled(Object.entries(y.value).map(([L,fe])=>fe.$validate()))).every(L=>L.status==="fulfilled"?L.value===!0:!1),data:T}}catch{return {result:!1,data:e.value}}}function s(){O(),e.value=at(e,b),K();}function i(T=!0){return f.value?e.value:null}function g(){d?.value?.length&&(d.value=[]);}!v.$lazy.value&&!f.value&&v.$autoDirty.value&&G();let{$anyDirty:h,$error:V,$errors:R,$invalid:A,$name:F,$pending:k,$ready:te,$silentErrors:ce,$valid:le,$shortcuts:D,$validating:_}=v;return reactive({$dirty:f,$error:V,$errors:R,$valid:le,$invalid:A,$pending:k,$silentErrors:ce,$anyDirty:h,$ready:te,$name:F,$externalErrors:d,$value:e,$rules:y,...D,$reset:K,$touch:U,$validate:J,$unwatch:O,$watch:P,$resetAll:s,$extractDirtyFields:i,$clearExternalErrors:g})}function ft({$id:e,path:t,index:r,options:n,storage:a,stateValue:l,customMessages:c,rules:d,externalErrors:x,initialState:E,shortcuts:b,fieldName:S}){let m=d.$key?d.$key:Ae(),v=`${t}.${String(m)}`;typeof l.value=="object"&&l.value!=null&&(l.value.$id?v=`${t}.${l.value.$id}`:Object.defineProperties(l.value,{$id:{value:m,enumerable:!1,configurable:!1,writable:!1}}));let I=$e({state:l,rulesDef:toRef(()=>d),customMessages:c,path:v,storage:a,options:n,externalErrors:toRef(x?.value??[],r),initialState:E?.[r],shortcuts:b,fieldName:S});if(I){let f=l.value?.$id;I.$id=f??String(m),a.addArrayStatus(e,I.$id,I);}return I}function Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:c,initialState:d,shortcuts:x,fieldName:E}){let b=effectScope(),S,m=effectScope(),v,I=[];if(!Array.isArray(e.value)&&!t.value.$each)return null;let f=ref(),N=ref(e.value),p,o=ref({}),u=a.getCollectionsEntry(n);v=m.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(i=>typeof i!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(i=>de(i)):!1)})),$(),j();function $(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(f.value=Ae(),Object.defineProperties(e.value,{$id:{value:f.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(f.value=e.value.$id)),!v.isPrimitiveArray.value&&(N.value=o.value.$value,Array.isArray(e.value)?u.value=e.value.map((s,i)=>{let g=Oe(t.value.$each,toRef(()=>s),i),h=ft({$id:f.value,path:n,rules:g??{},stateValue:toRef(()=>s),index:i,options:l,storage:a,externalErrors:toRef(c?.value??{},"$each"),initialState:d?.[i],shortcuts:x,fieldName:E});return h||null}).filter(s=>!!s):u.value=[],o.value=Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:toRef(c?.value??{},"$errors"),$isArray:!0,initialState:d,shortcuts:x,fieldName:E}));}function G(){if(Array.isArray(e.value)){let s=ne(u.value);u.value=e.value.map((i,g)=>{let h=toRef(()=>i);if(i.$id&&u.value.find(V=>V.$id===i.$id)){let V=a.getArrayStatus(f.value,i.$id);return V?(V.$value=h,V):null}else {let V=Oe(t.value.$each,h,g);if(V){let R=ft({$id:f.value,path:n,rules:V,stateValue:h,index:g,options:l,storage:a,externalErrors:toRef(c?.value??{},"$each"),initialState:d?.[g],shortcuts:x,fieldName:E});return R||null}}}).filter(i=>!!i),s.filter(i=>!e.value.find(g=>i.$id===g.$id)).forEach((i,g)=>{a.deleteArrayStatus(f.value,g.toString());});}else u.value=[];}function j(){p=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?$():G();},{deep:be?1:!0,flush:"pre"}),S=b.run(()=>{let s=computed(()=>o.value.$dirty&&u.value.every(D=>D.$dirty)),i=computed(()=>o.value.$anyDirty||u.value.some(D=>D.$dirty)),g=computed(()=>o.value.$invalid||u.value.some(D=>D.$invalid)),h=computed(()=>(z(o.value.$rules)?!0:o.value.$valid)&&u.value.every(D=>D.$valid)),V=computed(()=>o.value.$error||u.value.some(D=>D.$error)),R=computed(()=>!(g.value||A.value)),A=computed(()=>o.value.$pending||u.value.some(D=>D.$pending)),F=computed(()=>({$errors:o.value.$errors,$each:u.value.map(D=>D.$errors)})),k=computed(()=>({$errors:o.value.$silentErrors,$each:u.value.map(D=>D.$silentErrors)})),te=computed(()=>E);function ce(){x?.collections&&Object.entries(x?.collections).forEach(([D,_])=>{let T=effectScope();le[D]=T.run(()=>{let B=ref();return watchEffect(()=>{B.value=_({$dirty:s.value,$error:V.value,$pending:A.value,$invalid:g.value,$valid:h.value,$errors:F.value,$ready:R.value,$silentErrors:k.value,$anyDirty:i.value,$name:te.value,$each:u.value,$field:o.value,$value:e});}),B}),I.push(T);});}let le={};return ce(),{$dirty:s,$anyDirty:i,$invalid:g,$valid:h,$error:V,$pending:A,$errors:F,$silentErrors:k,$ready:R,$name:te,$shortcuts:le}}),v.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`),p());}function C(){p&&p(),o.value&&o.value.$unwatch(),u.value&&u.value.forEach(s=>{"$dirty"in s&&s.$unwatch();}),b.stop(),b=effectScope(),m.stop(),m=effectScope(!0),I.forEach(s=>s.stop()),I=[];}function O(s=!0){o.value.$touch(s),u.value.forEach(i=>{i.$touch(s);});}function P(){o.value.$reset(),u.value.forEach(s=>{s.$reset();});}async function M(){let s=e.value;try{return {result:(await Promise.allSettled([o.value.$validate(),...u.value.map(h=>h.$validate())])).every(h=>h.status==="fulfilled"?h.value.result===!0:!1),data:s}}catch{return {result:!1,data:s}}}function y(){o.value.$clearExternalErrors(),u.value.forEach(s=>{s.$clearExternalErrors();});}function w(s=!0){let i=u.value.map(g=>{if(Fe(g))return g.$extractDirtyFields(s)});return s&&(i=i.filter(g=>q(g)?!z(g):!!g)),i}function K(){C(),lt(e,d),P();}let{$shortcuts:U,...J}=S;return reactive({$field:o,...J,...U,$each:u,$value:e,$validate:M,$unwatch:C,$watch:j,$touch:O,$reset:P,$resetAll:K,$extractDirtyFields:w,$clearExternalErrors:y})}function Ge({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:l,options:c,externalErrors:d,validationGroups:x,initialState:E,shortcuts:b,fieldName:S}){let m,v,I=[],f=null,N=null,p=null;function u(s=!0){$.value=null,triggerRef($);let i=Object.fromEntries(Object.entries(e.value).map(([R,A])=>{if(A){let F=toRef(t.value,R),k=toRef(()=>A),te=toRef(d?.value,R);return [R,$e({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:c,externalErrors:te,initialState:E?.[R],shortcuts:b,fieldName:R})]}return []}).filter(R=>!!R.length&&R[1]!=null)),g=Object.fromEntries(Object.entries(unref(d)??{}).filter(([R])=>!(R in e.value)).map(([R,A])=>{if(A){let F=toRef(t.value,R),k=toRef(()=>({}));return [R,$e({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:c,externalErrors:toRef(d?.value??{},R),initialState:E?.[R],shortcuts:b,fieldName:R})]}return []})),h=Object.fromEntries(Object.entries(t.value).filter(([R])=>!(R in e.value)&&!(R in(g.value??{}))).map(([R,A])=>{let F=toRef(t.value,R),k=toRef(()=>({}));return [R,$e({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:c,externalErrors:toRef(d?.value??{},R),initialState:E?.[R],shortcuts:b,fieldName:R})]})),V=Object.fromEntries(Object.entries(x?.(i)??{}).map(([R,A])=>A.length?[R,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(F=>[F,Ke(toRef(()=>A),F)])),...Object.fromEntries(["$errors","$silentErrors"].map(F=>[F,et(toRef(()=>A),F)]))}]:[]));$.value={...i,...g,...h,...V},s&&P();}let $=l.getFieldsEntry(n);u();function G(){N?.(),Object.values($.value).forEach(s=>{s.$reset();}),O();}function j(s=!0){Object.values($.value).forEach(i=>{i.$touch(s);});}async function C(){try{let s=t.value;return {result:(await Promise.allSettled(Object.values($.value).map(h=>h.$validate()))).every(h=>h.status==="fulfilled"?h.value.result===!0:!1),data:s}}catch{return {result:!1,data:t.value}}}function O(){d?.value&&(N=watch(d,()=>{M(),u();},{deep:!0}));}function P(){a&&(f=watch(a,()=>{M(),u();},{deep:!0,flush:"post"}),O()),p=watch(t,()=>{M(),u(),j();}),m=effectScope(),v=m.run(()=>{let s=computed(()=>!!Object.entries($.value).length&&Object.entries($.value).every(([D,_])=>_?.$dirty)),i=computed(()=>Object.entries($.value).some(([D,_])=>_?.$dirty)),g=computed(()=>Object.entries($.value).some(([D,_])=>_?.$invalid)),h=computed(()=>Object.entries($.value).every(([D,_])=>_?.$valid)),V=computed(()=>s.value&&!A.value&&g.value),R=computed(()=>unref(c.autoDirty)?i.value&&!(g.value||A.value):!(g.value||A.value)),A=computed(()=>Object.entries($.value).some(([D,_])=>_?.$pending)),F=computed(()=>Object.fromEntries(Object.entries($.value).map(([D,_])=>[D,_?.$errors]))),k=computed(()=>Object.fromEntries(Object.entries($.value).map(([D,_])=>[D,_?.$silentErrors]))),te=computed(()=>S);function ce(){b?.nested&&Object.entries(b.nested).forEach(([D,_])=>{let T=effectScope();le[D]=T.run(()=>{let B=ref();return watchEffect(()=>{B.value=_({$dirty:s.value,$value:t,$error:V.value,$pending:A.value,$invalid:g.value,$valid:h.value,$ready:R.value,$anyDirty:i.value,$name:te.value,$silentErrors:k.value,$errors:F.value,$fields:$.value});}),B}),I.push(T);});}let le={};return ce(),{$dirty:s,$anyDirty:i,$invalid:g,$valid:h,$error:V,$pending:A,$errors:F,$silentErrors:k,$ready:R,$name:te,$shortcuts:le}});}function M(){$.value&&Object.entries($.value).forEach(([s,i])=>{i.$unwatch();}),f?.(),N?.(),p?.(),m.stop(),m=effectScope(),I.forEach(s=>s.stop()),I=[];}function y(){Object.entries($.value).forEach(([s,i])=>{i.$clearExternalErrors();});}function w(){M(),pe(t,E??{}),u(!1),G(),P();}function K(s=!0){let i=Object.entries($.value).map(([g,h])=>[g,h.$extractDirtyFields(s)]);return s&&(i=i.filter(([g,h])=>q(h)?!z(h):Array.isArray(h)?h.length:!!h)),Object.fromEntries(i)}let{$shortcuts:U,...J}=v;return reactive({...J,...U,$fields:$,$value:t,$resetAll:w,$reset:G,$touch:j,$validate:C,$unwatch:M,$watch:P,$clearExternalErrors:y,$extractDirtyFields:K})}function $e({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:c,index:d,initialState:x,shortcuts:E,onUnwatch:b,fieldName:S}){return ut(t,e)?Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:d,externalErrors:c,initialState:x,fieldName:S,shortcuts:E}):ot(e,t)&&nt(e)?Ge({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:l,index:d,initialState:x,shortcuts:E,fieldName:S,externalErrors:c}):st(t)?Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:d,externalErrors:c,onUnwatch:b,shortcuts:E,initialState:x,fieldName:S}):null}function Be({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:l}){let c=Me();return reactive(Ge({rootRules:r,scopeRules:r,state:n,customMessages:a?.(),storage:c,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:l,fieldName:"root"}))}function We(e,t,r){let n={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange??!0};function a(l,c,d){let x=isRef(c)?c:computed(typeof c=="function"?c:()=>c),E={...n,...d},b=isRef(l)?l:ref(l),S=ne(toRaw(b.value));return {r$:Be({scopeRules:x,state:b,options:E,initialState:S,customRules:e,shortcuts:r})}}return a}var vt=We();function Ue(){function e(t,r){return r}return e}var ke=Ue();function yt({rules:e,modifiers:t,shortcuts:r}){let n=We(e,t,r),a=Ue();return {useRegle:n,inferRules:a}}export{Ie as InternalRuleType,we as createRule,yt as defineRegleConfig,ke as inferRules,H as unwrapRuleParameters,vt as useRegle};
1
+ import {unref,version,isRef,toRef,computed,ref,toRaw,reactive,shallowRef,onScopeDispose,effectScope,triggerRef,watch,watchEffect}from'vue';var De=(r=>(r.Inline="__inline",r.Async="__async",r))(De||{});function ke(e,t){return e.some(r=>r[t])}function He(e,t){return e.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[])}function L(e){return e.map(t=>t instanceof Function?t():unref(t))}function Le(e){return e.map(t=>t instanceof Function||isRef(t)?t:toRef(()=>t))}function qe(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(s=>s.trim()).filter(s=>s.length>0).length:0}function xe(e,...t){let{message:r,validator:n,active:a,type:l,...s}=e,v=l==="__async"||n.constructor.name==="AsyncFunction";return {...{validator(T,...S){return e.validator(T,...L(S.length?S:t))},message(T,S){return typeof e.message=="function"?e.message(T,{...S,$params:L(S.$params?.length?S.$params:t)}):e.message},active(T,S){return typeof e.active=="function"?e.active(T,{...S,$params:L(S.$params?.length?S.$params:t)}):e.active??!0},exec(T){let S=e.validator(T,...L(t)),h;return S instanceof Promise?S.then(y=>(h=y,typeof h=="object"&&"$valid"in h?h.$valid:typeof h=="boolean"?h:!1)):(h=S,typeof h=="object"&&"$valid"in h?h.$valid:typeof h=="boolean"?h:!1)}},...s,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:v,_params:Le(t)}}function Ce(e){if(typeof e.validator=="function"){let r=xe(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(qe(e.validator)>1){let a=function(...l){return xe(e,...l)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._type=e.type,a._patched=!1,a._async=n,a}else return r}throw new Error("Validator must be a function")}function q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ze(e){return q(e.value)}function te(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>te(n)))),r=="Map"&&(t=new Map([...e].map(n=>[te(n[0]),te(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,vt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=te(e[n]);}return t}function vt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function Ie(e,t,r){return e instanceof Function?e(t,r??0):e}function Je(e,t){isRef(e)?e.value=t:e=t;}function Ye(e,t){isRef(e)?e.value=[]:e=[],t.forEach((r,n)=>{let a=isRef(e)?e.value[n]:e[n];a={},ce(a,t[n]);});}function ce(e,t){Object.entries({...unref(e),...t}).forEach(([r,n])=>{let a=isRef(e)?e.value:e,l=isRef(t[r])?t[r]._value:t[r],s=isRef(a[r])?a[r].value:a[r];Array.isArray(a[r])?(a[r]=[],Array.isArray(l)&&l.forEach((v,D)=>{a[r][D]={},ce(a[r][D],l[D]);})):q(l)?ce(s,l):isRef(a[r])?a[r].value=l:a[r]=l;});}function J(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function $e(e,t,r){let n,a=(...l)=>new Promise(s=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(s);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...l)=>new Promise(s=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(s);},0);}),a}function mt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let l=Number(r[a]),s=Number(n[a]);if(l>s)return 1;if(s>l)return -1;if(!isNaN(l)&&isNaN(s))return 1;if(isNaN(l)&&!isNaN(s))return -1}return 0}var Se=mt(version,"3.5.0")!==-1;function gt(){return Math.floor(Math.random()*Date.now()).toString()}function Pe(){return typeof window>"u"?gt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function we(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),l=shallowRef(new Map);function s(d){let o=t.value.get(d);if(o)return o;{let u=ref({});return t.value.set(d,u),u}}function v(d){let o=r.value.get(d);if(o)return o;{let u=ref([]);return r.value.set(d,u),u}}function D(d,o,u){l.value.set(`${d}-${o}`,u);}function E(d,o){return l.value.get(`${d}-${o}`)}function T(d,o){d&&o!=null&&l.value.delete(`${d}-${o}`);}function S(d,o){n.value.set(d,o);}function h(d){return n.value.get(d)??!1}function y(d,o){e.value.set(d,o);}function C(d,o){let u=e.value.get(d);return u?R(o,u)?{valid:!0}:{valid:!1}:void 0}function R(d,o){let u=Object.keys(o),$=Object.keys(d);return $.length!==u.length||!$.every(j=>u.includes(j))?!1:$.every(j=>{let x=d[j],A=o[j];return !A||!x||typeof x=="function"||typeof A=="function"||typeof x=="number"||typeof x=="boolean"?!1:x._params?x._params?.every((P,M)=>{if(typeof A=="number"||typeof A=="boolean")return !0;{let m=L(A._params),O=L(x._params);return m?.[M]===O?.[M]}}):!0})}function G(d){let o=a.value.get(d);if(o)return o;{let u=ref(!1),$=ref(!0),N=ref({}),j=ref(!1);return a.value.set(d,{$pending:u,$valid:$,$metadata:N,$validating:j}),{$pending:u,$valid:$,$metadata:N,$validating:j}}}return onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),l.value.clear();}),{addRuleDeclEntry:y,setDirtyEntry:S,checkRuleDeclEntry:C,getDirtyState:h,trySetRuleStatusRef:G,getFieldsEntry:s,getCollectionsEntry:v,getArrayStatus:E,addArrayStatus:D,deleteArrayStatus:T,arrayStatusStorage:l}}function Qe(e,t){return q(e.value)&&q(t.value)&&!Object.entries(t.value).some(r=>fe(r))}function Xe(e,t){return !!e.value&&"$each"in e.value||Array.isArray(t.value)}function Ze(e){return !!e.value&&q(e.value)}function fe(e){return q(e)&&"_validator"in e}function Re(e){return typeof e.value!="function"}function Ke(e){return q(e)&&"$fields"in e}function Oe({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function tt({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:l,storage:s,$debounce:v}){let D=effectScope(),E,T,S=ref(!1),{$pending:h,$valid:y,$metadata:C,$validating:R}=s.trySetRuleStatusRef(`${l}.${n}`);function G(){E=D.run(()=>{let x=computed(()=>({$invalid:!y.value,$params:O.value,...C.value})),A=computed(()=>Re(r)?typeof r.value.active=="function"?r.value.active(a.value,x.value):!!r.value.active:!0),P=computed(()=>{let H="",Y=t?t[n]?.message:void 0;return Y&&(typeof Y=="function"?H=Y(a.value,x.value):H=Y),Re(r)&&(Y&&!r.value._patched||(typeof r.value.message=="function"?H=r.value.message(a.value,x.value):H=r.value.message)),J(H)&&(H="Error",console.warn(`No error message defined for ${l}.${n}`)),H}),M=computed(()=>Re(r)&&r.value.type?r.value.type:n),m=computed(()=>Re(r)?r.value.validator:r.value),O=computed(()=>typeof r.value=="function"?[]:L(r.value._params??[])),X=computed(()=>`${l}.${M.value}`);return {$active:A,$message:P,$type:M,$validator:m,$params:O,$path:X}}),T=watch(E.$params,$,{deep:!0});}G();function d(){y.value=!0,e.value&&(h.value=!0);}async function o(){let x=E.$validator.value,A=x(a.value,...E.$params.value),P=!1,M=a.value;try{d();let m;if(A instanceof Promise?m=await A:m=A,a.value!==M)return !0;if(typeof m=="boolean")P=m;else {let{$valid:O,...X}=m;P=O,C.value=X;}}catch{P=!1;}finally{h.value=!1;}return P}let u=$e(o,v??200);async function $(){try{R.value=!0;let x=!1;if(fe(r.value)&&r.value._async)x=await u();else {let A=E.$validator.value,P=A(a.value,...E.$params.value);if(P 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(P!=null)if(typeof P=="boolean")x=P;else {let{$valid:M,...m}=P;x=M,C.value=m;}}return y.value=x,x}catch{return !1}finally{R.value=!1;}}function N(){y.value=!0,C.value={},h.value=!1,R.value=!1,G();}function j(){T(),D.stop(),D=effectScope();}return reactive({...E,$pending:h,$valid:y,$metadata:C,_haveAsync:S,$validating:R,$validate:$,$unwatch:j,$watch:G,$reset:N})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:l,options:s,externalErrors:v,onUnwatch:D,$isArray:E,initialState:T,shortcuts:S}){let h=effectScope(),y,C=[],R=ref(!1),G=ref(!1),d,o,u,$,N=()=>{};function j(){let p=t.value,V=l.checkRuleDeclEntry(n,p);O.value=Object.fromEntries(Object.entries(p).filter(([F])=>F.startsWith("$"))),m.value=Object.fromEntries(Object.entries(t.value).filter(([F])=>!F.startsWith("$")).map(([F,B])=>{if(B){let K=toRef(()=>B);return [F,tt({$dirty:R,customMessages:r,rule:K,ruleKey:F,state:e,path:n,storage:l,$debounce:O.value.$debounce})]}return []}).filter(F=>!!F.length)),P(),x(),V?.valid!=null&&(R.value=l.getDirtyState(n),R.value&&N()),l.addRuleDeclEntry(n,p);}function x(){N=y.$debounce.value?$e(M,y.$debounce.value??y.haveAnyAsyncRule?100:0):M;}function A(){m.value&&Object.entries(m.value).forEach(([p,V])=>{V.$unwatch();}),u(),R.value&&l.setDirtyEntry(n,R.value),d?.(),o?.(),h.stop(),h=effectScope(),C.forEach(p=>p.stop()),C=[],D?.(),$?.();}function P(){m.value&&Object.entries(m.value).forEach(([p,V])=>{V.$watch();}),y=h.run(()=>{let p=computed(()=>R.value),V=computed(()=>O.value.$debounce),F=computed(()=>O.value.$lazy!=null?O.value.$lazy:unref(s.lazy)),B=computed(()=>O.value.$rewardEarly!=null?O.value.$rewardEarly:unref(s.rewardEarly)),K=computed(()=>O.value.$clearExternalErrorsOnChange!=null?O.value.$clearExternalErrorsOnChange:unref(s.clearExternalErrorsOnChange)),oe=computed(()=>O.value.$autoDirty!=null?O.value.$autoDirty:unref(s.autoDirty)),w=computed(()=>Object.entries(m.value).some(([Z,ee])=>ee.$validating)),_=computed(()=>ge.value&&!me.value&&R.value),I=computed(()=>_.value?Oe({field:{$dirty:R.value,$externalErrors:v?.value,$rules:m.value}}):[]),k=computed(()=>Oe({field:{$dirty:R.value,$externalErrors:v?.value,$rules:m.value},silent:!0})),se=computed(()=>!(ge.value||me.value)),me=computed(()=>G.value||!B.value?Object.entries(m.value).some(([Z,ee])=>ee.$pending):!1),ge=computed(()=>v?.value?.length?!0:J(m.value)?!1:!B.value||B.value&&G.value?Object.entries(m.value).some(([Z,ee])=>!ee.$valid):!1),Ne=computed(()=>a),Ee=computed(()=>v?.value?.length||J(m.value)?!1:R.value&&!J(e.value)&&!w.value?Object.values(m.value).every(Z=>Z.$valid&&Z.$active):!1),st=computed(()=>Object.entries(m.value).some(([Z,ee])=>ee._haveAsync));function ct(){S?.fields&&Object.entries(S.fields).forEach(([Z,ee])=>{let We=effectScope();Be[Z]=We.run(()=>{let Ue=ref();return watchEffect(()=>{Ue.value=ee({$dirty:R.value,$externalErrors:v?.value??[],$value:e,$rules:m.value,$error:_.value,$pending:me.value,$invalid:ge.value,$valid:Ee.value,$errors:I.value,$ready:se.value,$silentErrors:k.value,$anyDirty:p.value,$name:Ne.value});}),Ue}),C.push(We);});}let Be={};return ct(),watch(Ee,Z=>{Z&&(G.value=!1);}),{$error:_,$pending:me,$invalid:ge,$valid:Ee,$debounce:V,$lazy:F,$errors:I,$ready:se,$silentErrors:k,$rewardEarly:B,$autoDirty:oe,$clearExternalErrorsOnChange:K,$anyDirty:p,$name:Ne,haveAnyAsyncRule:st,$shortcuts:Be,$validating:w}}),d=watch(e,()=>{y.$autoDirty.value&&(R.value||(R.value=!0)),t.value instanceof Function&&j(),N(),y.$rewardEarly.value!==!0&&y.$clearExternalErrorsOnChange.value&&g();},{deep:E?!0:Se?1:!0}),u=watch(R,()=>{l.setDirtyEntry(n,R.value);}),o=watch(y.$valid,p=>{y.$rewardEarly.value&&p&&(G.value=!1);}),$=watch(y.haveAnyAsyncRule,x);}function M(){Object.values(m.value).forEach(p=>{p.$validate();});}let m=ref(),O=ref();j();function X(){g(),R.value=!1,Object.entries(m.value).forEach(([p,V])=>{V.$reset();}),!y.$lazy.value&&y.$autoDirty.value&&Object.values(m.value).forEach(p=>p.$validate());}function H(p=!0){R.value||(R.value=!0,p&&N());}async function Y(){try{let p=e.value;if(G.value=!0,!R.value)R.value=!0;else if(y.$autoDirty.value&&R.value&&!y.$pending.value)return {result:!y.$error.value,data:p};return J(m.value)?{result:!0,data:p}:{result:(await Promise.allSettled(Object.entries(m.value).map(([B,K])=>K.$validate()))).every(B=>B.status==="fulfilled"?B.value===!0:!1),data:p}}catch{return {result:!1,data:e.value}}}function i(){A(),e.value=Je(e,T),X();}function c(p=!0){return R.value?e.value:null}function g(){v?.value?.length&&(v.value=[]);}!y.$lazy.value&&!R.value&&y.$autoDirty.value&&N();let{$shortcuts:b,$validating:f,...W}=y;return reactive({$dirty:R,...W,$externalErrors:v,$value:e,$rules:m,...b,$reset:X,$touch:H,$validate:Y,$unwatch:A,$watch:P,$resetAll:i,$extractDirtyFields:c,$clearExternalErrors:g})}function rt({$id:e,path:t,index:r,options:n,storage:a,stateValue:l,customMessages:s,rules:v,externalErrors:D,initialState:E,shortcuts:T,fieldName:S}){let h=v.$key?v.$key:Pe(),y=`${t}.${String(h)}`;typeof l.value=="object"&&l.value!=null&&(l.value.$id?y=`${t}.${l.value.$id}`:Object.defineProperties(l.value,{$id:{value:h,enumerable:!1,configurable:!1,writable:!1}}));let C=ye({state:l,rulesDef:toRef(()=>v),customMessages:s,path:y,storage:a,options:n,externalErrors:toRef(D?.value??[],r),initialState:E?.[r],shortcuts:T,fieldName:S});if(C){let R=l.value?.$id;C.$id=R??String(h),a.addArrayStatus(e,C.$id,C);}return C}function nt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:s,initialState:v,shortcuts:D,fieldName:E}){let T=effectScope(),S,h=effectScope(),y,C=[];if(!Array.isArray(e.value)&&!t.value.$each)return null;let R=ref(),G=ref(e.value),d,o=ref({}),u=a.getCollectionsEntry(n);y=h.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>fe(c)):!1)})),$(),j();function $(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(R.value=Pe(),Object.defineProperties(e.value,{$id:{value:R.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(R.value=e.value.$id)),!y.isPrimitiveArray.value&&(G.value=o.value.$value,Array.isArray(e.value)?u.value=e.value.map((i,c)=>{let g=Ie(t.value.$each,toRef(()=>i),c),b=rt({$id:R.value,path:n,rules:g??{},stateValue:toRef(()=>i),index:c,options:l,storage:a,externalErrors:toRef(s?.value??{},"$each"),initialState:v?.[c],shortcuts:D,fieldName:E});return b||null}).filter(i=>!!i):u.value=[],o.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:toRef(s?.value??{},"$errors"),$isArray:!0,initialState:v,shortcuts:D,fieldName:E}));}function N(){if(Array.isArray(e.value)){let i=te(u.value);u.value=e.value.map((c,g)=>{let b=toRef(()=>c);if(c.$id&&u.value.find(f=>f.$id===c.$id)){let f=a.getArrayStatus(R.value,c.$id);return f?(f.$value=b,f):null}else {let f=Ie(t.value.$each,b,g);if(f){let W=rt({$id:R.value,path:n,rules:f,stateValue:b,index:g,options:l,storage:a,externalErrors:toRef(s?.value??{},"$each"),initialState:v?.[g],shortcuts:D,fieldName:E});return W||null}}}).filter(c=>!!c),i.filter(c=>!e.value.find(g=>c.$id===g.$id)).forEach((c,g)=>{a.deleteArrayStatus(R.value,g.toString());});}else u.value=[];}function j(){d=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?$():N();},{deep:Se?1:!0,flush:"pre"}),S=T.run(()=>{let i=computed(()=>o.value.$dirty&&u.value.every(w=>w.$dirty)),c=computed(()=>o.value.$anyDirty||u.value.some(w=>w.$dirty)),g=computed(()=>o.value.$invalid||u.value.some(w=>w.$invalid)),b=computed(()=>(J(o.value.$rules)?!0:o.value.$valid)&&u.value.every(w=>w.$valid)),f=computed(()=>o.value.$error||u.value.some(w=>w.$error)),W=computed(()=>!(g.value||p.value)),p=computed(()=>o.value.$pending||u.value.some(w=>w.$pending)),V=computed(()=>({$errors:o.value.$errors,$each:u.value.map(w=>w.$errors)})),F=computed(()=>({$errors:o.value.$silentErrors,$each:u.value.map(w=>w.$silentErrors)})),B=computed(()=>E);function K(){D?.collections&&Object.entries(D?.collections).forEach(([w,_])=>{let I=effectScope();oe[w]=I.run(()=>{let k=ref();return watchEffect(()=>{k.value=_({$dirty:i.value,$error:f.value,$pending:p.value,$invalid:g.value,$valid:b.value,$errors:V.value,$ready:W.value,$silentErrors:F.value,$anyDirty:c.value,$name:B.value,$each:u.value,$field:o.value,$value:e});}),k}),C.push(I);});}let oe={};return K(),{$dirty:i,$anyDirty:c,$invalid:g,$valid:b,$error:f,$pending:p,$errors:V,$silentErrors:F,$ready:W,$name:B,$shortcuts:oe}}),y.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`),d());}function x(){d&&d(),o.value&&o.value.$unwatch(),u.value&&u.value.forEach(i=>{"$dirty"in i&&i.$unwatch();}),T.stop(),T=effectScope(),h.stop(),h=effectScope(!0),C.forEach(i=>i.stop()),C=[];}function A(i=!0){o.value.$touch(i),u.value.forEach(c=>{c.$touch(i);});}function P(){o.value.$reset(),u.value.forEach(i=>{i.$reset();});}async function M(){let i=e.value;try{return {result:(await Promise.allSettled([o.value.$validate(),...u.value.map(b=>b.$validate())])).every(b=>b.status==="fulfilled"?b.value.result===!0:!1),data:i}}catch{return {result:!1,data:i}}}function m(){o.value.$clearExternalErrors(),u.value.forEach(i=>{i.$clearExternalErrors();});}function O(i=!0){let c=u.value.map(g=>{if(Ke(g))return g.$extractDirtyFields(i)});return i&&(c=c.filter(g=>q(g)?!J(g):!!g)),c}function X(){x(),Ye(e,v),P();}let{$shortcuts:H,...Y}=S;return reactive({$field:o,...Y,...H,$each:u,$value:e,$validate:M,$unwatch:x,$watch:j,$touch:A,$reset:P,$resetAll:X,$extractDirtyFields:O,$clearExternalErrors:m})}function Fe({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:l,options:s,externalErrors:v,validationGroups:D,initialState:E,shortcuts:T,fieldName:S}){let h=effectScope(),y,C=[],R=null,G=null,d=null;async function u(i=!0){let c=Object.fromEntries(Object.entries(e.value).map(([f,W])=>{if(W){let p=toRef(t.value,f);triggerRef(p);let V=toRef(()=>W),F=toRef(v?.value,f);return [f,ye({state:p,rulesDef:V,customMessages:r,path:n?`${n}.${f}`:f,storage:l,options:s,externalErrors:F,initialState:E?.[f],shortcuts:T,fieldName:f})]}return []}).filter(f=>!!f.length&&f[1]!=null)),g=Object.fromEntries(Object.entries(unref(v)??{}).filter(([f])=>!(f in e.value)).map(([f,W])=>{if(W){let p=toRef(t.value,f);return [f,ye({state:p,rulesDef:computed(()=>({})),customMessages:r,path:n?`${n}.${f}`:f,storage:l,options:s,externalErrors:toRef(v?.value??{},f),initialState:E?.[f],shortcuts:T,fieldName:f})]}return []})),b=Object.fromEntries(Object.entries(t.value).filter(([f])=>!(f in e.value)&&!(f in(g.value??{}))).map(([f,W])=>{let p=toRef(t.value,f);return [f,ye({state:p,rulesDef:computed(()=>({})),customMessages:r,path:n?`${n}.${f}`:f,storage:l,options:s,externalErrors:toRef(v?.value??{},f),initialState:E?.[f],shortcuts:T,fieldName:f})]}));$.value={...c,...g,...b},i&&P();}let $=l.getFieldsEntry(n);u();function N(){G?.(),Object.values($.value).forEach(i=>{i.$reset();}),A();}function j(i=!0){Object.values($.value).forEach(c=>{c.$touch(i);});}async function x(){try{let i=t.value;return {result:(await Promise.allSettled(Object.values($.value).map(b=>b.$validate()))).every(b=>b.status==="fulfilled"?b.value.result===!0:!1),data:i}}catch{return {result:!1,data:t.value}}}function A(){v?.value&&(G=watch(v,()=>{M(),u();},{deep:!0}));}function P(){a&&(R=watch(a,()=>{M(),u();},{deep:!0,flush:"post"}),A()),d=watch(t,()=>{M(),u(),j();},{flush:"sync"}),y=h.run(()=>{let i=computed(()=>!!Object.entries($.value).length&&Object.entries($.value).every(([_,I])=>I?.$dirty)),c=computed(()=>Object.entries($.value).some(([_,I])=>I?.$dirty)),g=computed(()=>Object.entries($.value).some(([_,I])=>I?.$invalid)),b=computed(()=>Object.entries($.value).every(([_,I])=>I?.$valid)),f=computed(()=>i.value&&!p.value&&g.value),W=computed(()=>unref(s.autoDirty)?c.value&&!(g.value||p.value):!(g.value||p.value)),p=computed(()=>Object.entries($.value).some(([_,I])=>I?.$pending)),V=computed(()=>Object.fromEntries(Object.entries($.value).map(([_,I])=>[_,I?.$errors]))),F=computed(()=>Object.fromEntries(Object.entries($.value).map(([_,I])=>[_,I?.$silentErrors]))),B=computed(()=>S);function K(){T?.nested&&Object.entries(T.nested).forEach(([_,I])=>{let k=effectScope();w[_]=k.run(()=>{let se=ref();return watchEffect(()=>{se.value=I({$dirty:i.value,$value:t,$error:f.value,$pending:p.value,$invalid:g.value,$valid:b.value,$ready:W.value,$anyDirty:c.value,$name:B.value,$silentErrors:F.value,$errors:V.value,$fields:$.value});}),se}),C.push(k);});}let oe=computed(()=>D?Object.fromEntries(Object.entries(D?.($.value)??{}).map(([_,I])=>I.length?[_,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(k=>[k,ke(I,k)])),...Object.fromEntries(["$errors","$silentErrors"].map(k=>[k,He(I,k)]))}]:[])):{}),w={};return K(),{$dirty:i,$anyDirty:c,$invalid:g,$valid:b,$error:f,$pending:p,$errors:V,$silentErrors:F,$ready:W,$name:B,$shortcuts:w,$groups:oe}});}function M(){R?.(),G?.(),d?.(),C.forEach(i=>i.stop()),C=[],$.value&&Object.entries($.value).forEach(([i,c])=>{c.$unwatch();});}function m(){Object.entries($.value).forEach(([i,c])=>{c.$clearExternalErrors();});}function O(){M(),ce(t,E??{}),u(!1),N(),P();}function X(i=!0){let c=Object.entries($.value).map(([g,b])=>[g,b.$extractDirtyFields(i)]);return i&&(c=c.filter(([g,b])=>q(b)?!J(b):Array.isArray(b)?b.length:!!b)),Object.fromEntries(c)}let{$shortcuts:H,...Y}=y;return reactive({...Y,...H,$fields:$,$value:t,$resetAll:O,$reset:N,$touch:j,$validate:x,$unwatch:M,$watch:P,$clearExternalErrors:m,$extractDirtyFields:X})}function ye({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:s,index:v,initialState:D,shortcuts:E,onUnwatch:T,fieldName:S}){return Xe(t,e)?nt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:v,externalErrors:s,initialState:D,fieldName:S,shortcuts:E}):Qe(e,t)&&ze(e)?Fe({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:l,index:v,initialState:D,shortcuts:E,fieldName:S,externalErrors:s}):Ze(t)?be({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:v,externalErrors:s,onUnwatch:T,shortcuts:E,initialState:D,fieldName:S}):null}function je({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:l}){let s=we();return reactive(Fe({rootRules:r,scopeRules:r,state:n,customMessages:a?.(),storage:s,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:l,fieldName:"root"}))}function Ve(e,t,r){let n={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange??!0};function a(l,s,v){let D=isRef(s)?s:computed(typeof s=="function"?s:()=>s),E={...n,...v},T=isRef(l)?l:ref(l),S=te(toRaw(T.value));return {r$:je({scopeRules:D,state:T,options:E,initialState:S,customRules:e,shortcuts:r})}}return a}var ut=Ve();function _e(){function e(t,r){return r}return e}var Ge=_e();function it({rules:e,modifiers:t,shortcuts:r}){let n=Ve(e,t,r),a=_e();return {useRegle:n,inferRules:a}}
2
+ export{De as InternalRuleType,Ce as createRule,it as defineRegleConfig,Ge as inferRules,L as unwrapRuleParameters,ut as useRegle};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "0.2.11",
3
+ "version": "0.2.13",
4
4
  "description": "Typescript-first model-based form validation library for Vue 3",
5
5
  "peerDependencies": {
6
6
  "vue": "^3.1.0"
@@ -14,15 +14,15 @@
14
14
  "bumpp": "9.8.1",
15
15
  "changelogithub": "0.13.11",
16
16
  "cross-env": "7.0.3",
17
+ "type-fest": "4.28.0",
18
+ "vitest": "2.1.5",
17
19
  "eslint": "9.15.0",
18
20
  "eslint-config-prettier": "9.1.0",
19
21
  "eslint-plugin-vue": "9.31.0",
20
22
  "prettier": "3.3.3",
21
23
  "tsup": "8.3.5",
22
- "type-fest": "4.28.0",
23
24
  "typescript": "5.6.3",
24
- "vitest": "2.1.5",
25
- "vue": "3.5.13",
25
+ "vue": "3.5.11",
26
26
  "vue-eslint-parser": "9.4.3",
27
27
  "vue-tsc": "2.1.10"
28
28
  },