@regle/core 0.1.9 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +41 -29
- package/dist/index.d.ts +41 -29
- package/dist/index.js +1 -1
- package/package.json +9 -9
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var vue=require('vue');function F(e){return e.map(t=>t instanceof Function?t():vue.unref(t))}function Ce(e){return e.map(t=>t instanceof Function||vue.isRef(t)?t:vue.toRef(()=>t))}function Ie(e){let t=e.toString();return (t.includes("=>")?t.split("=>")[0]:t).slice(t.indexOf("(")+1,t.indexOf(")")).split(",").map(o=>o.trim()).filter(o=>o.includes("=")).length+e.length}function se(e,...t){let{message:r,validator:n,active:a,...o}=e,m=n.constructor.name==="AsyncFunction";return {...{validator(y,...i){return e.validator(y,...F(i.length?i:t))},message(y,i){return typeof e.message=="function"?e.message(y,{...i,$params:F(i.$params?.length?i.$params:t)}):e.message},active(y,i){return typeof e.active=="function"?e.active(y,{...i,$params:F(i.$params?.length?i.$params:t)}):e.active??!0},exec(y){let i=e.validator(y,...F(t)),l;return i instanceof Promise?i.then(T=>(l=T,typeof l=="object"&&"$valid"in l?l.$valid:typeof l=="boolean"?l:!1)):(l=i,typeof l=="object"&&"$valid"in l?l.$valid:typeof l=="boolean"?l:!1)}},...o,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:m,_params:Ce(t)}}function ie(e){if(typeof e.validator=="function"){let r=se(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(Ie(e.validator)>1){let a=function(...o){return se(e,...o)};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 k(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Pe(e){return k(e.value)}function G(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>G(n)))),r=="Map"&&(t=new Map([...e].map(n=>[G(n[0]),G(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]=G(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 ue(e,t,r){return e instanceof Function?e(t,r??0):e}function te(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?e.length===0:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function Q(e,t,r){let n,a=(...o)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(m);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...o)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(m);},0);}),a}function rt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),m=Number(n[a]);if(o>m)return 1;if(m>o)return -1;if(!isNaN(o)&&isNaN(m))return 1;if(isNaN(o)&&!isNaN(m))return -1}return 0}var H=rt(vue.version,"3.5.0")!==-1;function nt(){return Math.floor(Math.random()*Date.now()).toString()}function ce(){return typeof window>"u"?nt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function fe(){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),o=vue.shallowRef(new Map);function m(p){let R=t.value.get(p);if(R)return R;{let d=vue.ref({});return t.value.set(p,d),d}}function I(p){let R=r.value.get(p);if(R)return R;{let d=vue.ref([]);return r.value.set(p,d),d}}function P(p,R,d){o.value.set(`${p}-${R}`,d);}function y(p,R){return o.value.get(`${p}-${R}`)}function i(p,R){p&&R!=null&&o.value.delete(`${p}-${R}`);}function l(p,R){n.value.set(p,R);}function T(p){return n.value.get(p)??!1}function h(p,R){e.value.set(p,R);}function E(p,R){let d=e.value.get(p);return d?u(R,d)?{valid:!0}:{valid:!1}:void 0}function u(p,R){let d=Object.keys(R),w=Object.keys(p);return w.length!==d.length||!w.every(g=>d.includes(g))?!1:w.every(g=>{let c=p[g],s=R[g];return !s||!c||typeof c=="function"||typeof s=="function"||typeof c=="number"||typeof c=="boolean"?!1:c._params?c._params?.every((f,C)=>{if(typeof s=="number"||typeof s=="boolean")return !0;{let v=F(s._params),S=F(c._params);return v?.[C]===S?.[C]}}):!0})}function M(p){let R=a.value.get(p);if(R)return R;{let d=vue.ref(!1),w=vue.ref(!0),x=vue.ref({}),g=vue.ref(!1);return a.value.set(p,{$pending:d,$valid:w,$metadata:x,$validating:g}),{$pending:d,$valid:w,$metadata:x,$validating:g}}}return vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:h,setDirtyEntry:l,checkRuleDeclEntry:E,getDirtyState:T,trySetRuleStatusRef:M,getFieldsEntry:m,getCollectionsEntry:I,getArrayStatus:y,addArrayStatus:P,deleteArrayStatus:i,arrayStatusStorage:o}}function we(e,t){return k(e.value)&&k(t.value)&&!Object.entries(t.value).some(r=>Re(r))}function Oe(e){return !!e.value&&"$each"in e.value}function Ae(e){return !!e.value&&k(e.value)}function Re(e){return k(e)&&"_validator"in e}function X(e){return typeof e.value!="function"}function pe(e){return k(e)&&"$fields"in e}function de(e){return !!e&&"$each"in e}function me(e){return !!e&&"$rules"in e}function ge(e){return "$each"in e||"$errors"in e}function N({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$externalErrors??[])}function Me(e,t=!1){return pe(e)?ye(e.$fields):de(e)?{$errors:e.$field.$rules?N({field:e.$field,silent:t}):[],$each:e.$each.map(r=>Me(r,t))}:me(e)?e.$error?N({field:e,silent:t}):e.$externalErrors??[]:[]}function ot(e,t=!1){return e.map(r=>Me(r,t))}function ye(e,t=!1){return Object.fromEntries(Object.entries(e).map(([r,n])=>pe(n)?[r,ye(n.$fields,t)]:de(n)?[r,{$errors:N({field:n.$field,silent:t}),$each:ot(n.$each,t)}]:me(n)?n.$error?[r,N({field:n,silent:t})]:[r,n.$externalErrors??[]]:[r,[]]))}function Fe(e){return vue.computed(()=>ye(e.$fields))}var Ve=(r=>(r.Inline="__inline",r.Async="__async",r))(Ve||{});function _e(e,t){return vue.computed(()=>e.value.some(r=>r[t]))}function ke(e,t){return vue.computed(()=>e.value.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[]))}function Be({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:o,storage:m,$debounce:I}){let P=vue.effectScope(),y,i,{$pending:l,$valid:T,$metadata:h,$validating:E}=m.trySetRuleStatusRef(`${o}.${n}`);function u(){y=P.run(()=>{let x=vue.computed(()=>({$invalid:!T.value,$params:C.value,...h.value})),g=vue.computed(()=>X(r)?typeof r.value.active=="function"?r.value.active(a.value,x.value):r.value.active:!0),c=vue.computed(()=>{let S="",D=t?t[n]?.message:void 0;return D&&(typeof D=="function"?S=D(a.value,x.value):S=D),X(r)&&(D&&!r.value._patched||(typeof r.value.message=="function"?S=r.value.message(a.value,x.value):S=r.value.message)),te(S)&&(S="Error",console.warn(`No error message defined for ${o}.${n}`)),S}),s=vue.computed(()=>X(r)&&r.value.type?r.value.type:n),f=vue.computed(()=>X(r)?r.value.validator:r.value),C=vue.computed(()=>typeof r.value=="function"?[]:F(r.value._params??[])),v=vue.computed(()=>`${o}.${s.value}`);return {$active:g,$message:c,$type:s,$validator:f,$params:C,$path:v}}),i=vue.watch(y.$params,R,{deep:!0});}u();async function M(x){let g=!1;try{T.value=!0,e.value&&(l.value=!0);let c=await x;if(typeof c=="boolean")g=c;else {let{$valid:s,...f}=c;g=s,h.value=f;}}catch{g=!1;}finally{l.value=!1;}return g}let p=Q(M,I??100);async function R(){E.value=!0;let x=y.$validator.value,g=!1,c=x(a.value,...y.$params.value);if(c instanceof Promise)g=await p(c);else if(c!=null)if(typeof c=="boolean")g=c;else {let{$valid:s,...f}=c;g=s,h.value=f;}return T.value=g,E.value=!1,g}function d(){T.value=!0,h.value={},l.value=!1,E.value=!1,u();}function w(){i(),P.stop(),P=vue.effectScope();}return vue.reactive({...y,$pending:l,$valid:T,$metadata:h,$validate:R,$unwatch:w,$watch:u,$reset:d})}function re({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:m,index:I,onUnwatch:P}){let y=vue.effectScope(),i,l=vue.ref(!1),T=vue.ref(!1),h=vue.ref([]),E,u,M,p,R=()=>{};function d(){h.value=m.value??[];}d();function w(){let $=t.value,b=a.checkRuleDeclEntry(n,$);f.value=Object.fromEntries(Object.entries($).filter(([A])=>A.startsWith("$"))),s.value=Object.fromEntries(Object.entries(t.value).filter(([A])=>!A.startsWith("$")).map(([A,_])=>{if(_){let le=vue.toRef(()=>_);return [A,Be({$dirty:l,customMessages:r,rule:le,ruleKey:A,state:e,path:n,storage:a,$debounce:f.value.$debounce})]}return []}).filter(A=>!!A.length)),g(),R=i.$debounce.value?Q(c,i.$debounce.value??0):c,b?.valid!=null&&(l.value=a.getDirtyState(n),l.value&&R()),a.addRuleDeclEntry(n,$);}function x(){s.value&&Object.entries(s.value).forEach(([$,b])=>{b.$unwatch();}),p(),l.value&&a.setDirtyEntry(n,l.value),E(),u(),M(),y.stop(),y=vue.effectScope(),P?.();}function g(){s.value&&Object.entries(s.value).forEach(([$,b])=>{b.$watch();}),i=y.run(()=>{let $=vue.computed(()=>l.value),b=vue.computed(()=>f.value.$debounce),A=vue.computed(()=>f.value.$lazy!=null?f.value.$lazy:vue.unref(o.lazy)),_=vue.computed(()=>f.value.$rewardEarly!=null?f.value.$rewardEarly:vue.unref(o.rewardEarly)),le=vue.computed(()=>f.value.$autoDirty!=null?f.value.$autoDirty:vue.unref(o.autoDirty)),Je=vue.computed(()=>oe.value&&!he.value&&l.value),Qe=vue.computed(()=>N({field:{$dirty:l.value,$externalErrors:h.value,$rules:s.value}})),Xe=vue.computed(()=>N({field:{$dirty:l.value,$externalErrors:h.value,$rules:s.value},silent:!0})),he=vue.computed(()=>T.value||!_.value?Object.entries(s.value).some(([ee,J])=>J.$pending):!1),oe=vue.computed(()=>h.value?.length?!0:!_.value||_.value&&T.value?Object.entries(s.value).some(([ee,J])=>!J.$valid):!1),De=vue.computed(()=>l.value&&!te(e.value)?h.value?.length?!1:_.value?Object.entries(s.value).every(([ee,J])=>J.$valid):!oe.value:!1);return vue.watch(De,ee=>{ee&&(T.value=!1);}),{$error:Je,$pending:he,$invalid:oe,$valid:De,$debounce:b,$lazy:A,$errors:Qe,$silentErrors:Xe,$rewardEarly:_,$autoDirty:le,$anyDirty:$}}),M=vue.watch(m,d),E=vue.watch(e,()=>{i.$autoDirty.value&&(l.value||(l.value=!0)),t.value instanceof Function&&w(),R(),i.$rewardEarly.value;},{deep:H?1:!0}),p=vue.watch(l,()=>{a.setDirtyEntry(n,l.value);}),u=vue.watch(i.$valid,$=>{i.$rewardEarly.value&&$&&(T.value=!1);});}function c(){Object.entries(s.value).forEach(([$,b])=>{b.$validate();});}let s=vue.ref(),f=vue.ref();w();function C(){l.value=!1,h.value=[],Object.entries(s.value).forEach(([$,b])=>{b.$reset();}),i.$lazy.value||Object.entries(s.value).map(([$,b])=>b.$validate());}function v(){l.value||(l.value=!0,i.$rewardEarly.value,R());}let S=i.$debounce.value?Q(D,i.$debounce.value??0):D;async function D(){try{if(T.value=!0,i.$autoDirty.value&&l.value&&!i.$pending.value)return !i.$error.value;{let $=Object.entries(s.value).map(([A,_])=>_.$validate());return (await Promise.allSettled($)).every(A=>A.status==="fulfilled"?A.value:!1)}}catch{return !1}}function O(){h.value=[];}return i.$lazy.value||D(),vue.reactive({$dirty:l,...i,$externalErrors:h,$value:e,$rules:s,$reset:C,$touch:v,$validate:S,$unwatch:x,$watch:g,$clearExternalErrors:O})}function Ue({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:m,rules:I,externalErrors:P}){let y=I.$key?I.$key:ce(),i=`${t}.${String(y)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?i=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:y,enumerable:!1,configurable:!1,writable:!1}}));let l=vue.toRef(()=>P.value?.[r]),T=ae({state:o,rulesDef:vue.toRef(()=>I),customMessages:m,path:i,storage:a,options:n,externalErrors:l});if(T){let h=o.value?.$id;T.$id=h??String(y),a.addArrayStatus(e,T.$id,T);}return T}function We({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:m}){let I=vue.effectScope(),P,y=vue.effectScope(),i;if(Array.isArray(e.value)&&!t.value.$each)return null;let l=vue.ref(),T=vue.ref(e.value),h,E=vue.ref({}),u=a.getCollectionsEntry(n);i=y.run(()=>{let s=vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(v=>typeof v!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(v=>Re(v)):!1),f=vue.computed(()=>m.value?ge(m.value)?m.value.$errors??[]:[]:[]),C=vue.computed(()=>m.value?ge(m.value)?m.value.$each??[]:[]:[]);return {isPrimitiveArray:s,$externalErrorsField:f,$externalErrorsEach:C}}),M(),R();function M(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(l.value=ce(),Object.defineProperties(e.value,{$id:{value:l.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(l.value=e.value.$id)),!i.isPrimitiveArray.value&&(T.value=E.value.$value,Array.isArray(e.value)&&t.value.$each?u.value=e.value.map((s,f)=>{let C=ue(t.value.$each,vue.toRef(()=>s),f);if(C){let v=Ue({$id:l.value,path:n,rules:C,stateValue:vue.toRef(()=>s),index:f,options:o,storage:a,externalErrors:i.$externalErrorsEach});return v||null}}).filter(s=>!!s):u.value=[],E.value=re({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:i.$externalErrorsField}));}function p(){if(Array.isArray(e.value)){let s=G(u.value);u.value=e.value.map((f,C)=>{let v=vue.toRef(()=>f);if(f.$id&&u.value.find(S=>S.$id===f.$id)){let S=a.getArrayStatus(l.value,f.$id);return S?(S.$value=v,S):null}else {let S=ue(t.value.$each,v,C);if(S){let D=Ue({$id:l.value,path:n,rules:S,stateValue:v,index:C,options:o,storage:a,externalErrors:i.$externalErrorsEach});return D||null}}}).filter(f=>!!f),s.filter(f=>!e.value.find(C=>f.$id===C.$id)).forEach((f,C)=>{a.deleteArrayStatus(l.value,C.toString());});}else u.value=[];}function R(){h=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?M():p();},{deep:H?1:!0,flush:"pre"}),P=I.run(()=>{let s=vue.computed(()=>E.value.$dirty&&u.value.every(b=>b.$dirty)),f=vue.computed(()=>E.value.$anyDirty||u.value.some(b=>b.$dirty)),C=vue.computed(()=>E.value.$invalid||u.value.some(b=>b.$invalid)),v=vue.computed(()=>E.value.$valid&&u.value.every(b=>b.$valid)),S=vue.computed(()=>E.value.$error||u.value.some(b=>b.$error)),D=vue.computed(()=>E.value.$pending||u.value.some(b=>b.$pending)),O=vue.computed(()=>({$errors:E.value.$errors,$each:u.value.map(b=>b.$errors)})),$=vue.computed(()=>({$errors:E.value.$silentErrors,$each:u.value.map(b=>b.$silentErrors)}));return {$dirty:s,$anyDirty:f,$invalid:C,$valid:v,$error:S,$pending:D,$errors:O,$silentErrors:$}}),i.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`),h());}function d(){h&&h(),E.value&&E.value.$unwatch(),u.value&&u.value.forEach(s=>{"$dirty"in s&&s.$unwatch();}),I.stop(),I=vue.effectScope(),y.stop(),y=vue.effectScope(!0);}function w(){E.value.$touch(),u.value.forEach(s=>{s.$touch();});}function x(){E.value.$reset(),u.value.forEach(s=>{s.$reset();});}async function g(){try{return (await Promise.all([E.value.$validate(),...u.value.map(f=>f.$validate())])).every(f=>!!f)}catch{return !1}}function c(){}return vue.reactive({$field:E,...P,$each:u,$value:e,$validate:g,$unwatch:d,$watch:R,$touch:w,$reset:x,$clearExternalErrors:c})}function Se({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:o,options:m,externalErrors:I,validationGroups:P}){let y,i,l;function E(g=!0,c=!1){u.value=null,vue.triggerRef(u);let s=Object.fromEntries(Object.entries(e.value).map(([v,S])=>{if(S){let D=vue.toRef(t.value,v),O=vue.toRef(()=>S),$=vue.toRef(()=>I.value?.[v]);return [v,ae({state:D,rulesDef:O,customMessages:r,path:n?`${n}.${v}`:v,storage:o,options:m,externalErrors:$})]}return []}).filter(v=>!!v.length&&v[1]!=null)),f=Object.fromEntries(Object.entries(vue.unref(I)??{}).filter(([v])=>!(v in e.value)).map(([v,S])=>{if(S){let D=vue.toRef(()=>({})),O=vue.toRef(()=>S);return [v,ae({state:vue.ref(void 0),rulesDef:D,customMessages:r,path:n?`${n}.${v}`:v,storage:o,options:m,externalErrors:O})]}return []})),C=Object.fromEntries(Object.entries(P?.(s)??{}).map(([v,S])=>S.length?[v,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(D=>[D,_e(vue.toRef(()=>S),D)])),...Object.fromEntries(["$errors","$silentErrors"].map(D=>[D,ke(vue.toRef(()=>S),D)]))}]:[]));u.value={...s,...f,...C},g&&d();}let u=o.getFieldsEntry(n);E();function M(){E(!1),Object.entries(u.value).forEach(([g,c])=>{c.$reset();}),d();}function p(){Object.entries(u.value).forEach(([g,c])=>{c.$touch();});}async function R(){try{return (await Promise.allSettled(Object.entries(u.value).map(([c,s])=>s.$validate()))).every(c=>c.status==="fulfilled"?c.value:!1)}catch{return !1}}function d(){a&&(l=vue.watch(a,()=>{w(),E();},{deep:H?1:!0,flush:"post"})),y=vue.effectScope(),i=y.run(()=>{let g=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([O,$])=>$.$dirty)),c=vue.computed(()=>Object.entries(u.value).some(([O,$])=>$.$dirty)),s=vue.computed(()=>Object.entries(u.value).some(([O,$])=>$.$invalid)),f=vue.computed(()=>Object.entries(u.value).every(([O,$])=>$.$valid)),C=vue.computed(()=>Object.entries(u.value).some(([O,$])=>$.$error)),v=vue.computed(()=>Object.entries(u.value).some(([O,$])=>$.$pending)),S=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([O,$])=>[O,$.$errors]))),D=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([O,$])=>[O,$.$silentErrors])));return {$dirty:g,$anyDirty:c,$invalid:s,$valid:f,$error:C,$pending:v,$errors:S,$silentErrors:D}});}function w(){u.value&&Object.entries(u.value).forEach(([g,c])=>{c.$unwatch();}),l?.(),y.stop(),y=vue.effectScope();}function x(){Object.entries(u.value).forEach(([g,c])=>{c.$clearExternalErrors();});}return vue.reactive({...i,$fields:u,$value:t,$reset:M,$touch:p,$validate:R,$unwatch:w,$watch:d,$clearExternalErrors:x})}function ae({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:m,index:I,onUnwatch:P}){return Oe(t)?We({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:I,externalErrors:m}):we(e,t)&&Pe(e)?Se({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:o,index:I,externalErrors:m}):Ae(t)?re({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:I,externalErrors:m,onUnwatch:P}):null}function Ee(e,t,r,n){let a=fe(),o=vue.computed(()=>vue.unref(r.externalErrors)),m=vue.reactive(Se({rootRules:e,scopeRules:e,state:t,customMessages:n?.(),storage:a,options:r,externalErrors:o,validationGroups:r.validationGroups})),I=Fe(m);return {regle:m,errors:I}}function be(e,t){let r={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1};function n(a,o,m){let I=vue.isRef(o)?o:vue.computed(typeof o=="function"?o:()=>o),P={...r,...m},y=vue.isRef(a)?a:vue.ref(a),i=G(vue.toRaw(y.value)),{regle:l,errors:T}=Ee(I,y,P,e);function h(){l.$unwatch(),E(a,i),l.$reset();}function E(p,R){Object.entries(R).forEach(([d,w])=>{let x=vue.isRef(p)?p.value:p,g=vue.isRef(x[d])?x[d].value:x[d],c=vue.isRef(R[d])?R[d]._value:R[d];Array.isArray(c)&&Array.isArray(g)?(x[d]=[],c.forEach((s,f)=>{x[d][f]={},E(x[d][f],c[f]);})):k(c)?E(g,c):vue.isRef(x[d])?x[d].value=c:x[d]=c;});}let u=vue.computed(()=>!(l.$invalid||l.$pending));async function M(){return l.$touch(),await l.$validate()?y.value:!1}return {regle:l,r$:l,errors:T,resetAll:h,validateState:M,ready:u,state:y}}return n}var Le=be();function xe(){function e(t,r){return r}return e}var Te=xe();function ze({rules:e,modifiers:t}){let r=be(e,t),n=xe();return {useRegle:r,inferRules:n}}exports.InternalRuleType=Ve;exports.createRule=ie;exports.defineRegleConfig=ze;exports.inferRules=Te;exports.unwrapRuleParameters=F;exports.useRegle=Le;
|
|
1
|
+
'use strict';var vue=require('vue');var ce=(r=>(r.Inline="__inline",r.Async="__async",r))(ce||{});function Ae(e,t){return vue.computed(()=>e.value.some(r=>r[t]))}function Me(e,t){return vue.computed(()=>e.value.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[]))}function j(e){return e.map(t=>t instanceof Function?t():vue.unref(t))}function Fe(e){return e.map(t=>t instanceof Function||vue.isRef(t)?t:vue.toRef(()=>t))}function Ve(e){let t=e.toString();return (t.includes("=>")?t.split("=>")[0]:t).slice(t.indexOf("(")+1,t.indexOf(")")).split(",").map(o=>o.trim()).filter(o=>o.includes("=")).length+e.length}function fe(e,...t){let{message:r,validator:n,active:a,type:o,...m}=e,T=o==="__async"||n.constructor.name==="AsyncFunction";return {...{validator($,...s){return e.validator($,...j(s.length?s:t))},message($,s){return typeof e.message=="function"?e.message($,{...s,$params:j(s.$params?.length?s.$params:t)}):e.message},active($,s){return typeof e.active=="function"?e.active($,{...s,$params:j(s.$params?.length?s.$params:t)}):e.active??!0},exec($){let s=e.validator($,...j(t)),i;return s instanceof Promise?s.then(h=>(i=h,typeof i=="object"&&"$valid"in i?i.$valid:typeof i=="boolean"?i:!1)):(i=s,typeof i=="object"&&"$valid"in i?i.$valid:typeof i=="boolean"?i:!1)}},...m,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:T,_params:Fe(t)}}function Re(e){if(typeof e.validator=="function"){let r=fe(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(Ve(e.validator)>1){let a=function(...o){return fe(e,...o)};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 B(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function je(e){return B(e.value)}function U(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>U(n)))),r=="Map"&&(t=new Map([...e].map(n=>[U(n[0]),U(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,lt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=U(e[n]);}return t}function lt(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 pe(e,t,r){return e instanceof Function?e(t,r??0):e}function ae(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?e.length===0:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function K(e,t,r){let n,a=(...o)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(m);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...o)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(m);},0);}),a}function st(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),m=Number(n[a]);if(o>m)return 1;if(m>o)return -1;if(!isNaN(o)&&isNaN(m))return 1;if(isNaN(o)&&!isNaN(m))return -1}return 0}var J=st(vue.version,"3.5.0")!==-1;function it(){return Math.floor(Math.random()*Date.now()).toString()}function de(){return typeof window>"u"?it():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),o=vue.shallowRef(new Map);function m(p){let c=t.value.get(p);if(c)return c;{let x=vue.ref({});return t.value.set(p,x),x}}function T(p){let c=r.value.get(p);if(c)return c;{let x=vue.ref([]);return r.value.set(p,x),x}}function P(p,c,x){o.value.set(`${p}-${c}`,x);}function S(p,c){return o.value.get(`${p}-${c}`)}function $(p,c){p&&c!=null&&o.value.delete(`${p}-${c}`);}function s(p,c){n.value.set(p,c);}function i(p){return n.value.get(p)??!1}function h(p,c){e.value.set(p,c);}function y(p,c){let x=e.value.get(p);return x?u(c,x)?{valid:!0}:{valid:!1}:void 0}function u(p,c){let x=Object.keys(c),E=Object.keys(p);return E.length!==x.length||!E.every(v=>x.includes(v))?!1:E.every(v=>{let d=p[v],f=c[v];return !f||!d||typeof d=="function"||typeof f=="function"||typeof d=="number"||typeof d=="boolean"?!1:d._params?d._params?.every((R,b)=>{if(typeof f=="number"||typeof f=="boolean")return !0;{let l=j(f._params),g=j(d._params);return l?.[b]===g?.[b]}}):!0})}function O(p){let c=a.value.get(p);if(c)return c;{let x=vue.ref(!1),E=vue.ref(!0),A=vue.ref({}),v=vue.ref(!1);return a.value.set(p,{$pending:x,$valid:E,$metadata:A,$validating:v}),{$pending:x,$valid:E,$metadata:A,$validating:v}}}return vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:h,setDirtyEntry:s,checkRuleDeclEntry:y,getDirtyState:i,trySetRuleStatusRef:O,getFieldsEntry:m,getCollectionsEntry:T,getArrayStatus:S,addArrayStatus:P,deleteArrayStatus:$,arrayStatusStorage:o}}function _e(e,t){return B(e.value)&&B(t.value)&&!Object.entries(t.value).some(r=>ee(r))}function Ge(e){return !!e.value&&"$each"in e.value}function ke(e){return !!e.value&&B(e.value)}function ee(e){return B(e)&&"_validator"in e}function te(e){return typeof e.value!="function"}function ye(e){return B(e)&&"$fields"in e}function ge(e){return !!e&&"$each"in e}function ve(e){return !!e&&"$rules"in e}function $e(e){return "$each"in e||"$errors"in e}function H({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.$externalErrors??[])}function Be(e,t=!1){return ye(e)?Se(e.$fields):ge(e)?{$errors:e.$field.$rules?H({field:e.$field,silent:t}):[],$each:e.$each.map(r=>Be(r,t))}:ve(e)?e.$error?H({field:e,silent:t}):e.$externalErrors??[]:[]}function ft(e,t=!1){return e.map(r=>Be(r,t))}function Se(e,t=!1){return Object.fromEntries(Object.entries(e).map(([r,n])=>ye(n)?[r,Se(n.$fields,t)]:ge(n)?[r,{$errors:H({field:n.$field,silent:t}),$each:ft(n.$each,t)}]:ve(n)?n.$error?[r,H({field:n,silent:t})]:[r,n.$externalErrors??[]]:[r,[]]))}function Ne(e){return vue.computed(()=>Se(e.$fields))}function We({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:o,storage:m,$debounce:T}){let P=vue.effectScope(),S,$,s=vue.ref(!1),{$pending:i,$valid:h,$metadata:y,$validating:u}=m.trySetRuleStatusRef(`${o}.${n}`);function O(){S=P.run(()=>{let d=vue.computed(()=>({$invalid:!h.value,$params:g.value,...y.value})),f=vue.computed(()=>te(r)?typeof r.value.active=="function"?r.value.active(a.value,d.value):r.value.active:!0),R=vue.computed(()=>{let C="",D=t?t[n]?.message:void 0;return D&&(typeof D=="function"?C=D(a.value,d.value):C=D),te(r)&&(D&&!r.value._patched||(typeof r.value.message=="function"?C=r.value.message(a.value,d.value):C=r.value.message)),ae(C)&&(C="Error",console.warn(`No error message defined for ${o}.${n}`)),C}),b=vue.computed(()=>te(r)&&r.value.type?r.value.type:n),l=vue.computed(()=>te(r)?r.value.validator:r.value),g=vue.computed(()=>typeof r.value=="function"?[]:j(r.value._params??[])),I=vue.computed(()=>`${o}.${b.value}`);return {$active:f,$message:R,$type:b,$validator:l,$params:g,$path:I}}),$=vue.watch(S.$params,E,{deep:!0});}O();function p(){h.value=!0,e.value&&(i.value=!0);}async function c(){let d=S.$validator.value,f=d(a.value,...S.$params.value),R=!1,b=a.value;try{p();let l;if(f instanceof Promise?l=await f:l=f,a.value!==b)return !0;if(typeof l=="boolean")R=l;else {let{$valid:g,...I}=l;R=g,y.value=I;}}catch{R=!1;}finally{i.value=!1;}return R}let x=K(c,T??200);async function E(){u.value=!0;let d=!1;if(ee(r.value)&&r.value._async)d=await x();else {let f=S.$validator.value,R=f(a.value,...S.$params.value);if(R 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(R!=null)if(typeof R=="boolean")d=R;else {let{$valid:b,...l}=R;d=b,y.value=l;}}return h.value=d,u.value=!1,d}function A(){h.value=!0,y.value={},i.value=!1,u.value=!1,O();}function v(){$(),P.stop(),P=vue.effectScope();}return vue.reactive({...S,$pending:i,$valid:h,$metadata:y,_haveAsync:s,$validating:u,$validate:E,$unwatch:v,$watch:O,$reset:A})}function le({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:m,index:T,onUnwatch:P,$isArray:S}){let $=vue.effectScope(),s,i=vue.ref(!1),h=vue.ref(!1),y=vue.ref([]),u,O,p,c,x,E=()=>{};function A(){y.value=m.value??[];}A();function v(){let M=t.value,F=a.checkRuleDeclEntry(n,M);g.value=Object.fromEntries(Object.entries(M).filter(([V])=>V.startsWith("$"))),l.value=Object.fromEntries(Object.entries(t.value).filter(([V])=>!V.startsWith("$")).map(([V,k])=>{if(k){let ie=vue.toRef(()=>k);return [V,We({$dirty:i,customMessages:r,rule:ie,ruleKey:V,state:e,path:n,storage:a,$debounce:g.value.$debounce})]}return []}).filter(V=>!!V.length)),R(),d(),F?.valid!=null&&(i.value=a.getDirtyState(n),i.value&&E()),a.addRuleDeclEntry(n,M);}function d(){E=s.$debounce.value?K(b,s.$debounce.value??s.haveAnyAsyncRule?100:0):b;}function f(){l.value&&Object.entries(l.value).forEach(([M,F])=>{F.$unwatch();}),c(),i.value&&a.setDirtyEntry(n,i.value),u(),O(),p(),$.stop(),$=vue.effectScope(),P?.(),x?.();}function R(){l.value&&Object.entries(l.value).forEach(([M,F])=>{F.$watch();}),s=$.run(()=>{let M=vue.computed(()=>i.value),F=vue.computed(()=>g.value.$debounce),V=vue.computed(()=>g.value.$lazy!=null?g.value.$lazy:vue.unref(o.lazy)),k=vue.computed(()=>g.value.$rewardEarly!=null?g.value.$rewardEarly:vue.unref(o.rewardEarly)),ie=vue.computed(()=>g.value.$autoDirty!=null?g.value.$autoDirty:vue.unref(o.autoDirty)),Ze=vue.computed(()=>Object.entries(l.value).some(([z,N])=>N.$validating)),Ie=vue.computed(()=>ue.value&&!Pe.value&&i.value),Ke=vue.computed(()=>Ie.value?H({field:{$dirty:i.value,$externalErrors:y.value,$rules:l.value}}):[]),et=vue.computed(()=>H({field:{$dirty:i.value,$externalErrors:y.value,$rules:l.value},silent:!0})),Pe=vue.computed(()=>h.value||!k.value?Object.entries(l.value).some(([z,N])=>N.$pending):!1),ue=vue.computed(()=>y.value?.length?!0:!k.value||k.value&&h.value?Object.entries(l.value).some(([z,N])=>!N.$valid):!1),we=vue.computed(()=>i.value&&!ae(e.value)&&!Ze.value?y.value?.length?!1:k.value?Object.entries(l.value).every(([z,N])=>N.$valid):!ue.value:!1),tt=vue.computed(()=>Object.entries(l.value).some(([z,N])=>N._haveAsync));return vue.watch(we,z=>{z&&(h.value=!1);}),{$error:Ie,$pending:Pe,$invalid:ue,$valid:we,$debounce:F,$lazy:V,$errors:Ke,$silentErrors:et,$rewardEarly:k,$autoDirty:ie,$anyDirty:M,haveAnyAsyncRule:tt}}),p=vue.watch(m,A),u=vue.watch(e,()=>{s.$autoDirty.value&&(i.value||(i.value=!0)),t.value instanceof Function&&v(),E(),s.$rewardEarly.value;},{deep:S?!0:J?1:!0}),c=vue.watch(i,()=>{a.setDirtyEntry(n,i.value);}),O=vue.watch(s.$valid,M=>{s.$rewardEarly.value&&M&&(h.value=!1);}),x=vue.watch(s.haveAnyAsyncRule,d);}function b(){Object.entries(l.value).forEach(([M,F])=>{F.$validate();});}let l=vue.ref(),g=vue.ref();v();function I(){i.value=!1,y.value=[],Object.entries(l.value).forEach(([M,F])=>{F.$reset();}),s.$lazy.value||Object.entries(l.value).map(([M,F])=>F.$validate());}function C(){i.value||(i.value=!0,s.$rewardEarly.value,E());}let D=s.$debounce.value?K(w,s.$debounce.value??0):w;async function w(){try{if(h.value=!0,s.$autoDirty.value&&i.value&&!s.$pending.value)return !s.$error.value;{let M=Object.entries(l.value).map(([V,k])=>k.$validate());return (await Promise.allSettled(M)).every(V=>V.status==="fulfilled"?V.value:!1)}}catch{return !1}}function Xe(){y.value=[];}return s.$lazy.value||w(),vue.reactive({$dirty:i,...s,$externalErrors:y,$value:e,$rules:l,$reset:I,$touch:C,$validate:D,$unwatch:f,$watch:R,$clearExternalErrors:Xe})}function qe({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:m,rules:T,externalErrors:P}){let S=T.$key?T.$key:de(),$=`${t}.${String(S)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?$=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:S,enumerable:!1,configurable:!1,writable:!1}}));let s=vue.toRef(()=>P.value?.[r]),i=se({state:o,rulesDef:vue.toRef(()=>T),customMessages:m,path:$,storage:a,options:n,externalErrors:s});if(i){let h=o.value?.$id;i.$id=h??String(S),a.addArrayStatus(e,i.$id,i);}return i}function Le({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:m}){let T=vue.effectScope(),P,S=vue.effectScope(),$;if(Array.isArray(e.value)&&!t.value.$each)return null;let s=vue.ref(),i=vue.ref(e.value),h,y=vue.ref({}),u=a.getCollectionsEntry(n);$=S.run(()=>{let f=vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(l=>typeof l!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(l=>ee(l)):!1),R=vue.computed(()=>m.value?$e(m.value)?m.value.$errors??[]:[]:[]),b=vue.computed(()=>m.value?$e(m.value)?m.value.$each??[]:[]:[]);return {isPrimitiveArray:f,$externalErrorsField:R,$externalErrorsEach:b}}),O(),c();function O(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(s.value=de(),Object.defineProperties(e.value,{$id:{value:s.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(s.value=e.value.$id)),!$.isPrimitiveArray.value&&(i.value=y.value.$value,Array.isArray(e.value)&&t.value.$each?u.value=e.value.map((f,R)=>{let b=pe(t.value.$each,vue.toRef(()=>f),R);if(b){let l=qe({$id:s.value,path:n,rules:b,stateValue:vue.toRef(()=>f),index:R,options:o,storage:a,externalErrors:$.$externalErrorsEach});return l||null}}).filter(f=>!!f):u.value=[],y.value=le({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:$.$externalErrorsField,$isArray:!0}));}function p(){if(Array.isArray(e.value)){let f=U(u.value);u.value=e.value.map((R,b)=>{let l=vue.toRef(()=>R);if(R.$id&&u.value.find(g=>g.$id===R.$id)){let g=a.getArrayStatus(s.value,R.$id);return g?(g.$value=l,g):null}else {let g=pe(t.value.$each,l,b);if(g){let I=qe({$id:s.value,path:n,rules:g,stateValue:l,index:b,options:o,storage:a,externalErrors:$.$externalErrorsEach});return I||null}}}).filter(R=>!!R),f.filter(R=>!e.value.find(b=>R.$id===b.$id)).forEach((R,b)=>{a.deleteArrayStatus(s.value,b.toString());});}else u.value=[];}function c(){h=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?O():p();},{deep:J?1:!0,flush:"pre"}),P=T.run(()=>{let f=vue.computed(()=>y.value.$dirty&&u.value.every(w=>w.$dirty)),R=vue.computed(()=>y.value.$anyDirty||u.value.some(w=>w.$dirty)),b=vue.computed(()=>y.value.$invalid||u.value.some(w=>w.$invalid)),l=vue.computed(()=>y.value.$valid&&u.value.every(w=>w.$valid)),g=vue.computed(()=>y.value.$error||u.value.some(w=>w.$error)),I=vue.computed(()=>y.value.$pending||u.value.some(w=>w.$pending)),C=vue.computed(()=>({$errors:y.value.$errors,$each:u.value.map(w=>w.$errors)})),D=vue.computed(()=>({$errors:y.value.$silentErrors,$each:u.value.map(w=>w.$silentErrors)}));return {$dirty:f,$anyDirty:R,$invalid:b,$valid:l,$error:g,$pending:I,$errors:C,$silentErrors:D}}),$.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`),h());}function x(){h&&h(),y.value&&y.value.$unwatch(),u.value&&u.value.forEach(f=>{"$dirty"in f&&f.$unwatch();}),T.stop(),T=vue.effectScope(),S.stop(),S=vue.effectScope(!0);}function E(){y.value.$touch(),u.value.forEach(f=>{f.$touch();});}function A(){y.value.$reset(),u.value.forEach(f=>{f.$reset();});}async function v(){try{return (await Promise.all([y.value.$validate(),...u.value.map(R=>R.$validate())])).every(R=>!!R)}catch{return !1}}function d(){}return vue.reactive({$field:y,...P,$each:u,$value:e,$validate:v,$unwatch:x,$watch:c,$touch:E,$reset:A,$clearExternalErrors:d})}function he({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:o,options:m,externalErrors:T,validationGroups:P}){let S,$,s=null;function y(v=!0,d=!1){u.value=null,vue.triggerRef(u);let f=Object.fromEntries(Object.entries(e.value).map(([l,g])=>{if(g){let I=vue.toRef(t.value,l),C=vue.toRef(()=>g),D=vue.toRef(()=>T.value?.[l]);return [l,se({state:I,rulesDef:C,customMessages:r,path:n?`${n}.${l}`:l,storage:o,options:m,externalErrors:D})]}return []}).filter(l=>!!l.length&&l[1]!=null)),R=Object.fromEntries(Object.entries(vue.unref(T)??{}).filter(([l])=>!(l in e.value)).map(([l,g])=>{if(g){let I=vue.toRef(()=>({})),C=vue.toRef(()=>g);return [l,se({state:vue.ref(void 0),rulesDef:I,customMessages:r,path:n?`${n}.${l}`:l,storage:o,options:m,externalErrors:C})]}return []})),b=Object.fromEntries(Object.entries(P?.(f)??{}).map(([l,g])=>g.length?[l,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(I=>[I,Ae(vue.toRef(()=>g),I)])),...Object.fromEntries(["$errors","$silentErrors"].map(I=>[I,Me(vue.toRef(()=>g),I)]))}]:[]));u.value={...f,...R,...b},v&&x();}let u=o.getFieldsEntry(n);y();function O(){y(!1),Object.entries(u.value).forEach(([v,d])=>{d.$reset();}),x();}function p(){Object.entries(u.value).forEach(([v,d])=>{d.$touch();});}async function c(){try{return (await Promise.allSettled(Object.entries(u.value).map(([d,f])=>f.$validate()))).every(d=>d.status==="fulfilled"?d.value:!1)}catch{return !1}}function x(){a&&(s=vue.watch(a,()=>{E(),y();},{deep:J?1:!0,flush:"post"})),S=vue.effectScope(),$=S.run(()=>{let v=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([C,D])=>D.$dirty)),d=vue.computed(()=>Object.entries(u.value).some(([C,D])=>D.$dirty)),f=vue.computed(()=>Object.entries(u.value).some(([C,D])=>D.$invalid)),R=vue.computed(()=>Object.entries(u.value).every(([C,D])=>D.$valid)),b=vue.computed(()=>v.value&&!l.value&&f.value),l=vue.computed(()=>Object.entries(u.value).some(([C,D])=>D.$pending)),g=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([C,D])=>[C,D.$errors]))),I=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([C,D])=>[C,D.$silentErrors])));return {$dirty:v,$anyDirty:d,$invalid:f,$valid:R,$error:b,$pending:l,$errors:g,$silentErrors:I}});}function E(){u.value&&Object.entries(u.value).forEach(([v,d])=>{d.$unwatch();}),s?.(),S.stop(),S=vue.effectScope();}function A(){Object.entries(u.value).forEach(([v,d])=>{d.$clearExternalErrors();});}return vue.reactive({...$,$fields:u,$value:t,$reset:O,$touch:p,$validate:c,$unwatch:E,$watch:x,$clearExternalErrors:A})}function se({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:m,index:T,onUnwatch:P}){return Ge(t)?Le({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:T,externalErrors:m}):_e(e,t)&&je(e)?he({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:o,index:T,externalErrors:m}):ke(t)?le({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:T,externalErrors:m,onUnwatch:P}):null}function xe(e,t,r,n){let a=me(),o=vue.computed(()=>vue.unref(r.externalErrors)),m=vue.reactive(he({rootRules:e,scopeRules:e,state:t,customMessages:n?.(),storage:a,options:r,externalErrors:o,validationGroups:r.validationGroups})),T=Ne(m);return {regle:m,errors:T}}function Te(e,t){let r={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1};function n(a,o,m){let T=vue.isRef(o)?o:vue.computed(typeof o=="function"?o:()=>o),P={...r,...m},S=vue.isRef(a)?a:vue.ref(a),$=U(vue.toRaw(S.value)),{regle:s}=xe(T,S,P,e);function i(){s.$unwatch(),h(a,$),s.$reset();}function h(O,p){Object.entries(p).forEach(([c,x])=>{let E=vue.isRef(O)?O.value:O,A=vue.isRef(E[c])?E[c].value:E[c],v=vue.isRef(p[c])?p[c]._value:p[c];Array.isArray(v)&&Array.isArray(A)?(E[c]=[],v.forEach((d,f)=>{E[c][f]={},h(E[c][f],v[f]);})):B(v)?h(A,v):vue.isRef(E[c])?E[c].value=v:E[c]=v;});}let y=vue.computed(()=>!(s.$invalid||s.$pending));async function u(){return s.$touch(),await s.$validate()?S.value:!1}return {r$:s,resetAll:i,validateState:u,ready:y,state:S}}return n}var Ye=Te();function De(){function e(t,r){return r}return e}var Ce=De();function Qe({rules:e,modifiers:t}){let r=Te(e,t),n=De();return {useRegle:r,inferRules:n}}exports.InternalRuleType=ce;exports.createRule=Re;exports.defineRegleConfig=Qe;exports.inferRules=Ce;exports.unwrapRuleParameters=j;exports.useRegle=Ye;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MaybeRef, Ref, UnwrapRef, UnwrapNestedRefs, ComputedRef } from 'vue';
|
|
1
|
+
import { MaybeRef, Ref, UnwrapRef, UnwrapNestedRefs, MaybeRefOrGetter, ComputedRef } from 'vue';
|
|
2
2
|
|
|
3
3
|
type Prettify<T> = T extends infer R ? {
|
|
4
4
|
[K in keyof R]: R[K];
|
|
@@ -6,7 +6,7 @@ type Prettify<T> = T extends infer R ? {
|
|
|
6
6
|
type Maybe<T = any> = T | null | undefined;
|
|
7
7
|
type MaybeGetter<T, V = any, TAdd extends Record<string, any> = {}> = T | ((value: Ref<V>, index: number) => T & TAdd);
|
|
8
8
|
type Unwrap<T extends MaybeRef<Record<string, any>>> = T extends Ref ? UnwrapRef<T> : UnwrapNestedRefs<T>;
|
|
9
|
-
type ExtractFromGetter<T extends MaybeGetter<any, any, any>> = T extends
|
|
9
|
+
type ExtractFromGetter<T extends MaybeGetter<any, any, any>> = T extends ((value: Ref<any>, index: number) => infer U extends Record<string, any>) ? U : T;
|
|
10
10
|
type DeepMaybeRef<T extends Record<string, any>> = {
|
|
11
11
|
[K in keyof T]: MaybeRef<T[K]>;
|
|
12
12
|
};
|
|
@@ -157,13 +157,17 @@ type AddDollarToOptions<T extends Record<string, any>> = {
|
|
|
157
157
|
[K in keyof T as `$${string & K}`]: T[K];
|
|
158
158
|
};
|
|
159
159
|
|
|
160
|
+
type useRegleFn<TCustomRules extends Partial<AllRulesDeclarations>> = <TState extends Record<string, any>, TRules extends ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules> & TValid, TExternal extends RegleExternalErrorTree<Unwrap<TState>>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>, TValid = isDeepExact<NoInferLegacy<TRules>, ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules>> extends true ? {} : never>(state: MaybeRef<TState> | DeepReactiveState<TState>, rulesFactory: MaybeRefOrGetter<TRules>, options?: Partial<DeepMaybeRef<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<Unwrap<TState>, TRules, TExternal, TValidationGroups>) => Regle<Unwrap<TState>, TRules, TExternal, TValidationGroups>;
|
|
161
|
+
declare const useRegle: useRegleFn<Partial<AllRulesDeclarations>>;
|
|
162
|
+
|
|
163
|
+
interface inferRulesFn<TCustomRules extends Partial<AllRulesDeclarations>> {
|
|
164
|
+
<TState extends Record<string, any>, TRules extends ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules> & TValid, TValid = isDeepExact<NoInferLegacy<TRules>, ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules>> extends true ? {} : never>(state: MaybeRef<TState> | DeepReactiveState<TState>, rulesFactory: TRules): typeof rulesFactory;
|
|
165
|
+
<TState extends unknown, TRules extends RegleRuleDecl>(state: MaybeRef<TState>, rulesFactory: TRules): typeof rulesFactory;
|
|
166
|
+
}
|
|
167
|
+
declare const inferRules: inferRulesFn<Partial<AllRulesDeclarations>>;
|
|
168
|
+
|
|
160
169
|
interface Regle<TState extends Record<string, any> = EmptyObject, TRules extends ReglePartialValidationTree<TState, CustomRulesDeclarationTree> = EmptyObject, TExternal extends RegleExternalErrorTree<TState> = never, TValidationGroups extends Record<string, RegleValidationGroupEntry[]> = never> {
|
|
161
|
-
|
|
162
|
-
r$: RegleStatus<TState, TRules, TValidationGroups>;
|
|
163
|
-
/** Show active errors based on your behaviour options (lazy, autoDirty)
|
|
164
|
-
* It allow you to skip scouting the `regle` object
|
|
165
|
-
*/
|
|
166
|
-
errors: RegleErrorTree<TRules, TExternal>;
|
|
170
|
+
r$: RegleStatus<TState, TRules, TValidationGroups, TExternal>;
|
|
167
171
|
ready: ComputedRef<boolean>;
|
|
168
172
|
resetAll: () => void;
|
|
169
173
|
validateState: () => Promise<false | Prettify<DeepSafeFormState<TState, TRules>>>;
|
|
@@ -184,6 +188,10 @@ type DeepSafeFormState<TState extends Record<string, any>, TRules extends RegleP
|
|
|
184
188
|
[K in keyof TState as [SafeProperty<TState[K], TRules[K]>] extends [never] ? never : K]-?: SafeProperty<TState[K], TRules[K]>;
|
|
185
189
|
};
|
|
186
190
|
type SafeProperty<TState, TRule extends RegleFormPropertyType<any, any> | undefined = never> = TRule extends RegleCollectionRuleDefinition<any, any> ? TState extends Array<any> ? SafeProperty<TState[number], ExtractFromGetter<TRule['$each']>>[] : never : TRule extends ReglePartialValidationTree<any, any> ? TState extends Record<string, any> ? DeepSafeFormState<TState, TRule> : TRule extends RegleRuleDecl<any, any> ? unknown extends TRule['required'] ? never : TRule['required'] extends undefined ? never : TRule['required'] extends RegleRuleDefinition<any, infer Params, any, any, any> ? Params extends never[] ? TState : never : never : never : never;
|
|
191
|
+
type InferRegleRules<T extends useRegleFn<any>> = T extends useRegleFn<infer U> ? UnwrapRuleTree<Partial<U> & Partial<DefaultValidators>> : {};
|
|
192
|
+
type RegleRequiredRules<T extends Partial<AllRulesDeclarations> | useRegleFn<any>, TRules extends T extends useRegleFn<any> ? keyof InferRegleRules<T> : keyof T> = Omit<T extends useRegleFn<any> ? InferRegleRules<T> : T extends Partial<AllRulesDeclarations> ? UnwrapRuleTree<T> : {}, TRules> & {
|
|
193
|
+
[K in TRules]-?: T extends useRegleFn<any> ? K extends keyof InferRegleRules<T> ? NonNullable<InferRegleRules<T>[K]> : never : K extends keyof T ? NonNullable<T[K]> : never;
|
|
194
|
+
};
|
|
187
195
|
|
|
188
196
|
type ParamDecl<T = any> = MaybeRef<Maybe<T>> | (() => Maybe<T>);
|
|
189
197
|
type CreateFn<T extends any[]> = (...args: T) => any;
|
|
@@ -239,6 +247,12 @@ type RegleRuleMetadataExtended = {
|
|
|
239
247
|
$valid: boolean;
|
|
240
248
|
[x: string]: any;
|
|
241
249
|
};
|
|
250
|
+
type UnwrapRuleTree<T extends {
|
|
251
|
+
[x: string]: RegleRuleRaw<any> | undefined;
|
|
252
|
+
}> = {
|
|
253
|
+
[K in keyof T]: UnwrapRuleWithParams<T[K]>;
|
|
254
|
+
};
|
|
255
|
+
type UnwrapRuleWithParams<T extends RegleRuleRaw<any> | undefined> = T extends RegleRuleWithParamsDefinition<infer TValue, infer TParams, infer TAsync, infer TMetadata> ? RegleRuleDefinition<TValue, TParams, TAsync, TMetadata> : T;
|
|
242
256
|
/**
|
|
243
257
|
* Define a rule Metadata definition
|
|
244
258
|
*/
|
|
@@ -259,7 +273,7 @@ type PossibleRegleRuleMetadataConsumer = DefaultMetadataProperties & {
|
|
|
259
273
|
/**
|
|
260
274
|
* Generic types for a created RegleRule
|
|
261
275
|
*/
|
|
262
|
-
type RegleRuleRaw<TValue extends any = any, TParams extends any[] = [], TAsync extends boolean =
|
|
276
|
+
type RegleRuleRaw<TValue extends any = any, TParams extends any[] = [], TAsync extends boolean = boolean, TMetaData extends RegleRuleMetadataDefinition = boolean> = RegleRuleDefinition<TValue, TParams, TAsync, TMetaData> | RegleRuleWithParamsDefinition<TValue, TParams, TAsync, TMetaData>;
|
|
263
277
|
/**
|
|
264
278
|
* Process the type of a created rule with `createRule`.
|
|
265
279
|
* For a rule with params it will return a function
|
|
@@ -345,7 +359,10 @@ type DefaultValidators = {
|
|
|
345
359
|
numeric: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
|
|
346
360
|
regex: RegleRuleWithParamsDefinition<string, [regexp: RegExp], false, boolean>;
|
|
347
361
|
required: RegleRuleDefinition<unknown, []>;
|
|
348
|
-
sameAs: RegleRuleWithParamsDefinition<unknown, [
|
|
362
|
+
sameAs: RegleRuleWithParamsDefinition<unknown, [
|
|
363
|
+
target: unknown,
|
|
364
|
+
otherName?: string
|
|
365
|
+
], false, boolean>;
|
|
349
366
|
startsWith: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
|
|
350
367
|
url: RegleRuleDefinition<string, [], false, boolean, string>;
|
|
351
368
|
};
|
|
@@ -353,7 +370,9 @@ type DefaultValidators = {
|
|
|
353
370
|
type CustomRulesDeclarationTree = {
|
|
354
371
|
[x: string]: RegleRuleRaw<any, any, boolean, any> | undefined;
|
|
355
372
|
};
|
|
356
|
-
type AllRulesDeclarations = CustomRulesDeclarationTree &
|
|
373
|
+
type AllRulesDeclarations = CustomRulesDeclarationTree & {
|
|
374
|
+
[K in keyof DefaultValidators]: RegleRuleRaw<any, any, boolean, any> | undefined;
|
|
375
|
+
};
|
|
357
376
|
|
|
358
377
|
/**
|
|
359
378
|
* @public
|
|
@@ -382,7 +401,7 @@ type RegleFormPropertyType<TValue = any, TCustomRules extends Partial<AllRulesDe
|
|
|
382
401
|
* Rule tree for a form property
|
|
383
402
|
*/
|
|
384
403
|
type RegleRuleDecl<TValue extends any = any, TCustomRules extends Partial<AllRulesDeclarations> = Partial<AllRulesDeclarations>> = FieldRegleBehaviourOptions & {
|
|
385
|
-
[TKey in keyof TCustomRules]?: NonNullable<TCustomRules[TKey]> extends RegleRuleWithParamsDefinition<any, infer TParams> ? RegleRuleDefinition<TValue, TParams, boolean> : NonNullable<TCustomRules[TKey]> extends RegleRuleDefinition<any, any, any, any> ? FormRuleDeclaration<TValue, any> : FormRuleDeclaration<TValue, any> | FieldRegleBehaviourOptions[keyof FieldRegleBehaviourOptions];
|
|
404
|
+
[TKey in keyof TCustomRules]?: NonNullable<TCustomRules[TKey]> extends RegleRuleWithParamsDefinition<any, infer TParams> ? RegleRuleDefinition<TValue, [...TParams, ...args: [...any[]]], boolean> : NonNullable<TCustomRules[TKey]> extends RegleRuleDefinition<any, any, any, any> ? FormRuleDeclaration<TValue, any> : FormRuleDeclaration<TValue, any> | FieldRegleBehaviourOptions[keyof FieldRegleBehaviourOptions];
|
|
386
405
|
};
|
|
387
406
|
/**
|
|
388
407
|
* @public
|
|
@@ -433,12 +452,12 @@ type RegleExternalValidationErrorsReport<TExternalError extends RegleExternalVal
|
|
|
433
452
|
/**
|
|
434
453
|
* @public
|
|
435
454
|
*/
|
|
436
|
-
type RegleStatus<TState extends Record<string, any> = Record<string, any>, TRules extends ReglePartialValidationTree<TState> = Record<string, any>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]> = never> = RegleCommonStatus<TState> & {
|
|
455
|
+
type RegleStatus<TState extends Record<string, any> = Record<string, any>, TRules extends ReglePartialValidationTree<TState> = Record<string, any>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]> = never, TExternal extends RegleExternalErrorTree<TState> = never> = RegleCommonStatus<TState> & {
|
|
437
456
|
readonly $fields: {
|
|
438
457
|
readonly [TKey in keyof TRules]: InferRegleStatusType<NonNullable<TRules[TKey]>, TState, TKey>;
|
|
439
458
|
};
|
|
440
|
-
readonly $errors: RegleErrorTree<TRules>;
|
|
441
|
-
readonly $silentErrors: RegleErrorTree<TRules>;
|
|
459
|
+
readonly $errors: RegleErrorTree<TRules, TExternal>;
|
|
460
|
+
readonly $silentErrors: RegleErrorTree<TRules, TExternal>;
|
|
442
461
|
} & ([TValidationGroups] extends [never] ? {} : {
|
|
443
462
|
$groups: {
|
|
444
463
|
readonly [TKey in keyof TValidationGroups]: RegleValidationGroupOutput;
|
|
@@ -451,7 +470,7 @@ type InferRegleStatusType<TRule extends RegleCollectionRuleDecl | RegleRuleDecl
|
|
|
451
470
|
/**
|
|
452
471
|
* @public
|
|
453
472
|
*/
|
|
454
|
-
interface RegleFieldStatus<TState extends any =
|
|
473
|
+
interface RegleFieldStatus<TState extends any = any, TRules extends RegleFormPropertyType<any, Partial<AllRulesDeclarations>> = Record<string, any>> extends RegleCommonStatus<TState> {
|
|
455
474
|
$value: UnwrapNestedRefs<TState>;
|
|
456
475
|
readonly $errors: string[];
|
|
457
476
|
readonly $silentErrors: string[];
|
|
@@ -482,7 +501,7 @@ interface RegleCommonStatus<TValue = any> {
|
|
|
482
501
|
/**
|
|
483
502
|
* @public
|
|
484
503
|
*/
|
|
485
|
-
type RegleRuleStatus<TValue = any, TParams extends any[] = any[], TMetadata extends RegleRuleMetadataDefinition =
|
|
504
|
+
type RegleRuleStatus<TValue = any, TParams extends any[] = any[], TMetadata extends RegleRuleMetadataDefinition = any> = {
|
|
486
505
|
readonly $type: string;
|
|
487
506
|
readonly $message: string | string[];
|
|
488
507
|
readonly $active: boolean;
|
|
@@ -490,10 +509,12 @@ type RegleRuleStatus<TValue = any, TParams extends any[] = any[], TMetadata exte
|
|
|
490
509
|
readonly $pending: boolean;
|
|
491
510
|
readonly $path: string;
|
|
492
511
|
readonly $metadata: TMetadata;
|
|
493
|
-
$validator: (value: TValue
|
|
512
|
+
$validator: (value: Maybe<TValue>, ...args: TParams) => RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>;
|
|
494
513
|
$validate(): Promise<boolean>;
|
|
495
514
|
$reset(): void;
|
|
496
|
-
} & ([TParams] extends [[]] ? {} : {
|
|
515
|
+
} & ([TParams] extends [never[]] ? {} : [unknown[]] extends [TParams] ? {
|
|
516
|
+
readonly $params?: any[];
|
|
517
|
+
} : {
|
|
497
518
|
readonly $params: TParams;
|
|
498
519
|
});
|
|
499
520
|
/**
|
|
@@ -545,15 +566,6 @@ declare function createRule<TValue extends any, TParams extends any[], TReturn e
|
|
|
545
566
|
*/
|
|
546
567
|
declare function unwrapRuleParameters<TParams extends any[]>(params: ParamDecl[]): TParams;
|
|
547
568
|
|
|
548
|
-
type useRegleFn<TCustomRules extends Partial<AllRulesDeclarations>> = <TState extends Record<string, any>, TRules extends ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules> & TValid, TExternal extends RegleExternalErrorTree<Unwrap<TState>>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>, TValid = isDeepExact<NoInferLegacy<TRules>, ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules>> extends true ? {} : never>(state: MaybeRef<TState> | DeepReactiveState<TState>, rulesFactory: TRules | (() => TRules) | ComputedRef<TRules>, options?: Partial<DeepMaybeRef<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<Unwrap<TState>, TRules, TExternal, TValidationGroups>) => Regle<Unwrap<TState>, TRules, TExternal, TValidationGroups>;
|
|
549
|
-
declare const useRegle: useRegleFn<Partial<AllRulesDeclarations>>;
|
|
550
|
-
|
|
551
|
-
interface inferRulesFn<TCustomRules extends Partial<AllRulesDeclarations>> {
|
|
552
|
-
<TState extends Record<string, any>, TRules extends ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules> & TValid, TValid = isDeepExact<NoInferLegacy<TRules>, ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules>> extends true ? {} : never>(state: MaybeRef<TState> | DeepReactiveState<TState>, rulesFactory: TRules): typeof rulesFactory;
|
|
553
|
-
<TState extends unknown, TRules extends RegleRuleDecl>(state: MaybeRef<TState>, rulesFactory: TRules): typeof rulesFactory;
|
|
554
|
-
}
|
|
555
|
-
declare const inferRules: inferRulesFn<Partial<AllRulesDeclarations>>;
|
|
556
|
-
|
|
557
569
|
declare function defineRegleConfig<TCustomRules extends Partial<AllRulesDeclarations>>({ rules, modifiers, }: {
|
|
558
570
|
rules?: () => TCustomRules;
|
|
559
571
|
modifiers?: RegleBehaviourOptions;
|
|
@@ -562,4 +574,4 @@ declare function defineRegleConfig<TCustomRules extends Partial<AllRulesDeclarat
|
|
|
562
574
|
inferRules: inferRulesFn<TCustomRules>;
|
|
563
575
|
};
|
|
564
576
|
|
|
565
|
-
export { type DeepMaybeRef, type FormRuleDeclaration, type InlineRuleDeclaration, InternalRuleType, type LocalRegleBehaviourOptions, type Maybe, type ParamDecl, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleExternalValidationErrors, type RegleExternalValidationErrorsReport, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialValidationTree, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleWithParamsDefinition, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleValidationTree, type Unwrap, type UnwrapRegleUniversalParams, createRule, defineRegleConfig, inferRules, unwrapRuleParameters, useRegle };
|
|
577
|
+
export { type AllRulesDeclarations, type DeepMaybeRef, type FormRuleDeclaration, type InferRegleRule, type InferRegleRules, type InlineRuleDeclaration, InternalRuleType, type LocalRegleBehaviourOptions, type Maybe, type ParamDecl, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleExternalValidationErrors, type RegleExternalValidationErrorsReport, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialValidationTree, type RegleRequiredRules, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleWithParamsDefinition, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleValidationTree, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, defineRegleConfig, inferRules, unwrapRuleParameters, useRegle };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MaybeRef, Ref, UnwrapRef, UnwrapNestedRefs, ComputedRef } from 'vue';
|
|
1
|
+
import { MaybeRef, Ref, UnwrapRef, UnwrapNestedRefs, MaybeRefOrGetter, ComputedRef } from 'vue';
|
|
2
2
|
|
|
3
3
|
type Prettify<T> = T extends infer R ? {
|
|
4
4
|
[K in keyof R]: R[K];
|
|
@@ -6,7 +6,7 @@ type Prettify<T> = T extends infer R ? {
|
|
|
6
6
|
type Maybe<T = any> = T | null | undefined;
|
|
7
7
|
type MaybeGetter<T, V = any, TAdd extends Record<string, any> = {}> = T | ((value: Ref<V>, index: number) => T & TAdd);
|
|
8
8
|
type Unwrap<T extends MaybeRef<Record<string, any>>> = T extends Ref ? UnwrapRef<T> : UnwrapNestedRefs<T>;
|
|
9
|
-
type ExtractFromGetter<T extends MaybeGetter<any, any, any>> = T extends
|
|
9
|
+
type ExtractFromGetter<T extends MaybeGetter<any, any, any>> = T extends ((value: Ref<any>, index: number) => infer U extends Record<string, any>) ? U : T;
|
|
10
10
|
type DeepMaybeRef<T extends Record<string, any>> = {
|
|
11
11
|
[K in keyof T]: MaybeRef<T[K]>;
|
|
12
12
|
};
|
|
@@ -157,13 +157,17 @@ type AddDollarToOptions<T extends Record<string, any>> = {
|
|
|
157
157
|
[K in keyof T as `$${string & K}`]: T[K];
|
|
158
158
|
};
|
|
159
159
|
|
|
160
|
+
type useRegleFn<TCustomRules extends Partial<AllRulesDeclarations>> = <TState extends Record<string, any>, TRules extends ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules> & TValid, TExternal extends RegleExternalErrorTree<Unwrap<TState>>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>, TValid = isDeepExact<NoInferLegacy<TRules>, ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules>> extends true ? {} : never>(state: MaybeRef<TState> | DeepReactiveState<TState>, rulesFactory: MaybeRefOrGetter<TRules>, options?: Partial<DeepMaybeRef<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<Unwrap<TState>, TRules, TExternal, TValidationGroups>) => Regle<Unwrap<TState>, TRules, TExternal, TValidationGroups>;
|
|
161
|
+
declare const useRegle: useRegleFn<Partial<AllRulesDeclarations>>;
|
|
162
|
+
|
|
163
|
+
interface inferRulesFn<TCustomRules extends Partial<AllRulesDeclarations>> {
|
|
164
|
+
<TState extends Record<string, any>, TRules extends ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules> & TValid, TValid = isDeepExact<NoInferLegacy<TRules>, ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules>> extends true ? {} : never>(state: MaybeRef<TState> | DeepReactiveState<TState>, rulesFactory: TRules): typeof rulesFactory;
|
|
165
|
+
<TState extends unknown, TRules extends RegleRuleDecl>(state: MaybeRef<TState>, rulesFactory: TRules): typeof rulesFactory;
|
|
166
|
+
}
|
|
167
|
+
declare const inferRules: inferRulesFn<Partial<AllRulesDeclarations>>;
|
|
168
|
+
|
|
160
169
|
interface Regle<TState extends Record<string, any> = EmptyObject, TRules extends ReglePartialValidationTree<TState, CustomRulesDeclarationTree> = EmptyObject, TExternal extends RegleExternalErrorTree<TState> = never, TValidationGroups extends Record<string, RegleValidationGroupEntry[]> = never> {
|
|
161
|
-
|
|
162
|
-
r$: RegleStatus<TState, TRules, TValidationGroups>;
|
|
163
|
-
/** Show active errors based on your behaviour options (lazy, autoDirty)
|
|
164
|
-
* It allow you to skip scouting the `regle` object
|
|
165
|
-
*/
|
|
166
|
-
errors: RegleErrorTree<TRules, TExternal>;
|
|
170
|
+
r$: RegleStatus<TState, TRules, TValidationGroups, TExternal>;
|
|
167
171
|
ready: ComputedRef<boolean>;
|
|
168
172
|
resetAll: () => void;
|
|
169
173
|
validateState: () => Promise<false | Prettify<DeepSafeFormState<TState, TRules>>>;
|
|
@@ -184,6 +188,10 @@ type DeepSafeFormState<TState extends Record<string, any>, TRules extends RegleP
|
|
|
184
188
|
[K in keyof TState as [SafeProperty<TState[K], TRules[K]>] extends [never] ? never : K]-?: SafeProperty<TState[K], TRules[K]>;
|
|
185
189
|
};
|
|
186
190
|
type SafeProperty<TState, TRule extends RegleFormPropertyType<any, any> | undefined = never> = TRule extends RegleCollectionRuleDefinition<any, any> ? TState extends Array<any> ? SafeProperty<TState[number], ExtractFromGetter<TRule['$each']>>[] : never : TRule extends ReglePartialValidationTree<any, any> ? TState extends Record<string, any> ? DeepSafeFormState<TState, TRule> : TRule extends RegleRuleDecl<any, any> ? unknown extends TRule['required'] ? never : TRule['required'] extends undefined ? never : TRule['required'] extends RegleRuleDefinition<any, infer Params, any, any, any> ? Params extends never[] ? TState : never : never : never : never;
|
|
191
|
+
type InferRegleRules<T extends useRegleFn<any>> = T extends useRegleFn<infer U> ? UnwrapRuleTree<Partial<U> & Partial<DefaultValidators>> : {};
|
|
192
|
+
type RegleRequiredRules<T extends Partial<AllRulesDeclarations> | useRegleFn<any>, TRules extends T extends useRegleFn<any> ? keyof InferRegleRules<T> : keyof T> = Omit<T extends useRegleFn<any> ? InferRegleRules<T> : T extends Partial<AllRulesDeclarations> ? UnwrapRuleTree<T> : {}, TRules> & {
|
|
193
|
+
[K in TRules]-?: T extends useRegleFn<any> ? K extends keyof InferRegleRules<T> ? NonNullable<InferRegleRules<T>[K]> : never : K extends keyof T ? NonNullable<T[K]> : never;
|
|
194
|
+
};
|
|
187
195
|
|
|
188
196
|
type ParamDecl<T = any> = MaybeRef<Maybe<T>> | (() => Maybe<T>);
|
|
189
197
|
type CreateFn<T extends any[]> = (...args: T) => any;
|
|
@@ -239,6 +247,12 @@ type RegleRuleMetadataExtended = {
|
|
|
239
247
|
$valid: boolean;
|
|
240
248
|
[x: string]: any;
|
|
241
249
|
};
|
|
250
|
+
type UnwrapRuleTree<T extends {
|
|
251
|
+
[x: string]: RegleRuleRaw<any> | undefined;
|
|
252
|
+
}> = {
|
|
253
|
+
[K in keyof T]: UnwrapRuleWithParams<T[K]>;
|
|
254
|
+
};
|
|
255
|
+
type UnwrapRuleWithParams<T extends RegleRuleRaw<any> | undefined> = T extends RegleRuleWithParamsDefinition<infer TValue, infer TParams, infer TAsync, infer TMetadata> ? RegleRuleDefinition<TValue, TParams, TAsync, TMetadata> : T;
|
|
242
256
|
/**
|
|
243
257
|
* Define a rule Metadata definition
|
|
244
258
|
*/
|
|
@@ -259,7 +273,7 @@ type PossibleRegleRuleMetadataConsumer = DefaultMetadataProperties & {
|
|
|
259
273
|
/**
|
|
260
274
|
* Generic types for a created RegleRule
|
|
261
275
|
*/
|
|
262
|
-
type RegleRuleRaw<TValue extends any = any, TParams extends any[] = [], TAsync extends boolean =
|
|
276
|
+
type RegleRuleRaw<TValue extends any = any, TParams extends any[] = [], TAsync extends boolean = boolean, TMetaData extends RegleRuleMetadataDefinition = boolean> = RegleRuleDefinition<TValue, TParams, TAsync, TMetaData> | RegleRuleWithParamsDefinition<TValue, TParams, TAsync, TMetaData>;
|
|
263
277
|
/**
|
|
264
278
|
* Process the type of a created rule with `createRule`.
|
|
265
279
|
* For a rule with params it will return a function
|
|
@@ -345,7 +359,10 @@ type DefaultValidators = {
|
|
|
345
359
|
numeric: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
|
|
346
360
|
regex: RegleRuleWithParamsDefinition<string, [regexp: RegExp], false, boolean>;
|
|
347
361
|
required: RegleRuleDefinition<unknown, []>;
|
|
348
|
-
sameAs: RegleRuleWithParamsDefinition<unknown, [
|
|
362
|
+
sameAs: RegleRuleWithParamsDefinition<unknown, [
|
|
363
|
+
target: unknown,
|
|
364
|
+
otherName?: string
|
|
365
|
+
], false, boolean>;
|
|
349
366
|
startsWith: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
|
|
350
367
|
url: RegleRuleDefinition<string, [], false, boolean, string>;
|
|
351
368
|
};
|
|
@@ -353,7 +370,9 @@ type DefaultValidators = {
|
|
|
353
370
|
type CustomRulesDeclarationTree = {
|
|
354
371
|
[x: string]: RegleRuleRaw<any, any, boolean, any> | undefined;
|
|
355
372
|
};
|
|
356
|
-
type AllRulesDeclarations = CustomRulesDeclarationTree &
|
|
373
|
+
type AllRulesDeclarations = CustomRulesDeclarationTree & {
|
|
374
|
+
[K in keyof DefaultValidators]: RegleRuleRaw<any, any, boolean, any> | undefined;
|
|
375
|
+
};
|
|
357
376
|
|
|
358
377
|
/**
|
|
359
378
|
* @public
|
|
@@ -382,7 +401,7 @@ type RegleFormPropertyType<TValue = any, TCustomRules extends Partial<AllRulesDe
|
|
|
382
401
|
* Rule tree for a form property
|
|
383
402
|
*/
|
|
384
403
|
type RegleRuleDecl<TValue extends any = any, TCustomRules extends Partial<AllRulesDeclarations> = Partial<AllRulesDeclarations>> = FieldRegleBehaviourOptions & {
|
|
385
|
-
[TKey in keyof TCustomRules]?: NonNullable<TCustomRules[TKey]> extends RegleRuleWithParamsDefinition<any, infer TParams> ? RegleRuleDefinition<TValue, TParams, boolean> : NonNullable<TCustomRules[TKey]> extends RegleRuleDefinition<any, any, any, any> ? FormRuleDeclaration<TValue, any> : FormRuleDeclaration<TValue, any> | FieldRegleBehaviourOptions[keyof FieldRegleBehaviourOptions];
|
|
404
|
+
[TKey in keyof TCustomRules]?: NonNullable<TCustomRules[TKey]> extends RegleRuleWithParamsDefinition<any, infer TParams> ? RegleRuleDefinition<TValue, [...TParams, ...args: [...any[]]], boolean> : NonNullable<TCustomRules[TKey]> extends RegleRuleDefinition<any, any, any, any> ? FormRuleDeclaration<TValue, any> : FormRuleDeclaration<TValue, any> | FieldRegleBehaviourOptions[keyof FieldRegleBehaviourOptions];
|
|
386
405
|
};
|
|
387
406
|
/**
|
|
388
407
|
* @public
|
|
@@ -433,12 +452,12 @@ type RegleExternalValidationErrorsReport<TExternalError extends RegleExternalVal
|
|
|
433
452
|
/**
|
|
434
453
|
* @public
|
|
435
454
|
*/
|
|
436
|
-
type RegleStatus<TState extends Record<string, any> = Record<string, any>, TRules extends ReglePartialValidationTree<TState> = Record<string, any>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]> = never> = RegleCommonStatus<TState> & {
|
|
455
|
+
type RegleStatus<TState extends Record<string, any> = Record<string, any>, TRules extends ReglePartialValidationTree<TState> = Record<string, any>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]> = never, TExternal extends RegleExternalErrorTree<TState> = never> = RegleCommonStatus<TState> & {
|
|
437
456
|
readonly $fields: {
|
|
438
457
|
readonly [TKey in keyof TRules]: InferRegleStatusType<NonNullable<TRules[TKey]>, TState, TKey>;
|
|
439
458
|
};
|
|
440
|
-
readonly $errors: RegleErrorTree<TRules>;
|
|
441
|
-
readonly $silentErrors: RegleErrorTree<TRules>;
|
|
459
|
+
readonly $errors: RegleErrorTree<TRules, TExternal>;
|
|
460
|
+
readonly $silentErrors: RegleErrorTree<TRules, TExternal>;
|
|
442
461
|
} & ([TValidationGroups] extends [never] ? {} : {
|
|
443
462
|
$groups: {
|
|
444
463
|
readonly [TKey in keyof TValidationGroups]: RegleValidationGroupOutput;
|
|
@@ -451,7 +470,7 @@ type InferRegleStatusType<TRule extends RegleCollectionRuleDecl | RegleRuleDecl
|
|
|
451
470
|
/**
|
|
452
471
|
* @public
|
|
453
472
|
*/
|
|
454
|
-
interface RegleFieldStatus<TState extends any =
|
|
473
|
+
interface RegleFieldStatus<TState extends any = any, TRules extends RegleFormPropertyType<any, Partial<AllRulesDeclarations>> = Record<string, any>> extends RegleCommonStatus<TState> {
|
|
455
474
|
$value: UnwrapNestedRefs<TState>;
|
|
456
475
|
readonly $errors: string[];
|
|
457
476
|
readonly $silentErrors: string[];
|
|
@@ -482,7 +501,7 @@ interface RegleCommonStatus<TValue = any> {
|
|
|
482
501
|
/**
|
|
483
502
|
* @public
|
|
484
503
|
*/
|
|
485
|
-
type RegleRuleStatus<TValue = any, TParams extends any[] = any[], TMetadata extends RegleRuleMetadataDefinition =
|
|
504
|
+
type RegleRuleStatus<TValue = any, TParams extends any[] = any[], TMetadata extends RegleRuleMetadataDefinition = any> = {
|
|
486
505
|
readonly $type: string;
|
|
487
506
|
readonly $message: string | string[];
|
|
488
507
|
readonly $active: boolean;
|
|
@@ -490,10 +509,12 @@ type RegleRuleStatus<TValue = any, TParams extends any[] = any[], TMetadata exte
|
|
|
490
509
|
readonly $pending: boolean;
|
|
491
510
|
readonly $path: string;
|
|
492
511
|
readonly $metadata: TMetadata;
|
|
493
|
-
$validator: (value: TValue
|
|
512
|
+
$validator: (value: Maybe<TValue>, ...args: TParams) => RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>;
|
|
494
513
|
$validate(): Promise<boolean>;
|
|
495
514
|
$reset(): void;
|
|
496
|
-
} & ([TParams] extends [[]] ? {} : {
|
|
515
|
+
} & ([TParams] extends [never[]] ? {} : [unknown[]] extends [TParams] ? {
|
|
516
|
+
readonly $params?: any[];
|
|
517
|
+
} : {
|
|
497
518
|
readonly $params: TParams;
|
|
498
519
|
});
|
|
499
520
|
/**
|
|
@@ -545,15 +566,6 @@ declare function createRule<TValue extends any, TParams extends any[], TReturn e
|
|
|
545
566
|
*/
|
|
546
567
|
declare function unwrapRuleParameters<TParams extends any[]>(params: ParamDecl[]): TParams;
|
|
547
568
|
|
|
548
|
-
type useRegleFn<TCustomRules extends Partial<AllRulesDeclarations>> = <TState extends Record<string, any>, TRules extends ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules> & TValid, TExternal extends RegleExternalErrorTree<Unwrap<TState>>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>, TValid = isDeepExact<NoInferLegacy<TRules>, ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules>> extends true ? {} : never>(state: MaybeRef<TState> | DeepReactiveState<TState>, rulesFactory: TRules | (() => TRules) | ComputedRef<TRules>, options?: Partial<DeepMaybeRef<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<Unwrap<TState>, TRules, TExternal, TValidationGroups>) => Regle<Unwrap<TState>, TRules, TExternal, TValidationGroups>;
|
|
549
|
-
declare const useRegle: useRegleFn<Partial<AllRulesDeclarations>>;
|
|
550
|
-
|
|
551
|
-
interface inferRulesFn<TCustomRules extends Partial<AllRulesDeclarations>> {
|
|
552
|
-
<TState extends Record<string, any>, TRules extends ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules> & TValid, TValid = isDeepExact<NoInferLegacy<TRules>, ReglePartialValidationTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules>> extends true ? {} : never>(state: MaybeRef<TState> | DeepReactiveState<TState>, rulesFactory: TRules): typeof rulesFactory;
|
|
553
|
-
<TState extends unknown, TRules extends RegleRuleDecl>(state: MaybeRef<TState>, rulesFactory: TRules): typeof rulesFactory;
|
|
554
|
-
}
|
|
555
|
-
declare const inferRules: inferRulesFn<Partial<AllRulesDeclarations>>;
|
|
556
|
-
|
|
557
569
|
declare function defineRegleConfig<TCustomRules extends Partial<AllRulesDeclarations>>({ rules, modifiers, }: {
|
|
558
570
|
rules?: () => TCustomRules;
|
|
559
571
|
modifiers?: RegleBehaviourOptions;
|
|
@@ -562,4 +574,4 @@ declare function defineRegleConfig<TCustomRules extends Partial<AllRulesDeclarat
|
|
|
562
574
|
inferRules: inferRulesFn<TCustomRules>;
|
|
563
575
|
};
|
|
564
576
|
|
|
565
|
-
export { type DeepMaybeRef, type FormRuleDeclaration, type InlineRuleDeclaration, InternalRuleType, type LocalRegleBehaviourOptions, type Maybe, type ParamDecl, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleExternalValidationErrors, type RegleExternalValidationErrorsReport, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialValidationTree, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleWithParamsDefinition, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleValidationTree, type Unwrap, type UnwrapRegleUniversalParams, createRule, defineRegleConfig, inferRules, unwrapRuleParameters, useRegle };
|
|
577
|
+
export { type AllRulesDeclarations, type DeepMaybeRef, type FormRuleDeclaration, type InferRegleRule, type InferRegleRules, type InlineRuleDeclaration, InternalRuleType, type LocalRegleBehaviourOptions, type Maybe, type ParamDecl, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleExternalValidationErrors, type RegleExternalValidationErrorsReport, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialValidationTree, type RegleRequiredRules, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleWithParamsDefinition, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleValidationTree, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, defineRegleConfig, inferRules, unwrapRuleParameters, useRegle };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {unref,version,isRef,toRef,computed,ref,toRaw,reactive,shallowRef,onScopeDispose,triggerRef,watch,effectScope}from'vue';function F(e){return e.map(t=>t instanceof Function?t():unref(t))}function Ce(e){return e.map(t=>t instanceof Function||isRef(t)?t:toRef(()=>t))}function Ie(e){let t=e.toString();return (t.includes("=>")?t.split("=>")[0]:t).slice(t.indexOf("(")+1,t.indexOf(")")).split(",").map(o=>o.trim()).filter(o=>o.includes("=")).length+e.length}function se(e,...t){let{message:r,validator:n,active:a,...o}=e,m=n.constructor.name==="AsyncFunction";return {...{validator(y,...i){return e.validator(y,...F(i.length?i:t))},message(y,i){return typeof e.message=="function"?e.message(y,{...i,$params:F(i.$params?.length?i.$params:t)}):e.message},active(y,i){return typeof e.active=="function"?e.active(y,{...i,$params:F(i.$params?.length?i.$params:t)}):e.active??!0},exec(y){let i=e.validator(y,...F(t)),l;return i instanceof Promise?i.then(T=>(l=T,typeof l=="object"&&"$valid"in l?l.$valid:typeof l=="boolean"?l:!1)):(l=i,typeof l=="object"&&"$valid"in l?l.$valid:typeof l=="boolean"?l:!1)}},...o,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:m,_params:Ce(t)}}function ie(e){if(typeof e.validator=="function"){let r=se(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(Ie(e.validator)>1){let a=function(...o){return se(e,...o)};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 k(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Pe(e){return k(e.value)}function G(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>G(n)))),r=="Map"&&(t=new Map([...e].map(n=>[G(n[0]),G(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]=G(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 ue(e,t,r){return e instanceof Function?e(t,r??0):e}function te(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?e.length===0:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function Q(e,t,r){let n,a=(...o)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(m);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...o)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(m);},0);}),a}function rt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),m=Number(n[a]);if(o>m)return 1;if(m>o)return -1;if(!isNaN(o)&&isNaN(m))return 1;if(isNaN(o)&&!isNaN(m))return -1}return 0}var H=rt(version,"3.5.0")!==-1;function nt(){return Math.floor(Math.random()*Date.now()).toString()}function ce(){return typeof window>"u"?nt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function fe(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),o=shallowRef(new Map);function m(p){let R=t.value.get(p);if(R)return R;{let d=ref({});return t.value.set(p,d),d}}function I(p){let R=r.value.get(p);if(R)return R;{let d=ref([]);return r.value.set(p,d),d}}function P(p,R,d){o.value.set(`${p}-${R}`,d);}function y(p,R){return o.value.get(`${p}-${R}`)}function i(p,R){p&&R!=null&&o.value.delete(`${p}-${R}`);}function l(p,R){n.value.set(p,R);}function T(p){return n.value.get(p)??!1}function h(p,R){e.value.set(p,R);}function E(p,R){let d=e.value.get(p);return d?u(R,d)?{valid:!0}:{valid:!1}:void 0}function u(p,R){let d=Object.keys(R),w=Object.keys(p);return w.length!==d.length||!w.every(g=>d.includes(g))?!1:w.every(g=>{let c=p[g],s=R[g];return !s||!c||typeof c=="function"||typeof s=="function"||typeof c=="number"||typeof c=="boolean"?!1:c._params?c._params?.every((f,C)=>{if(typeof s=="number"||typeof s=="boolean")return !0;{let v=F(s._params),S=F(c._params);return v?.[C]===S?.[C]}}):!0})}function M(p){let R=a.value.get(p);if(R)return R;{let d=ref(!1),w=ref(!0),x=ref({}),g=ref(!1);return a.value.set(p,{$pending:d,$valid:w,$metadata:x,$validating:g}),{$pending:d,$valid:w,$metadata:x,$validating:g}}}return onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:h,setDirtyEntry:l,checkRuleDeclEntry:E,getDirtyState:T,trySetRuleStatusRef:M,getFieldsEntry:m,getCollectionsEntry:I,getArrayStatus:y,addArrayStatus:P,deleteArrayStatus:i,arrayStatusStorage:o}}function we(e,t){return k(e.value)&&k(t.value)&&!Object.entries(t.value).some(r=>Re(r))}function Oe(e){return !!e.value&&"$each"in e.value}function Ae(e){return !!e.value&&k(e.value)}function Re(e){return k(e)&&"_validator"in e}function X(e){return typeof e.value!="function"}function pe(e){return k(e)&&"$fields"in e}function de(e){return !!e&&"$each"in e}function me(e){return !!e&&"$rules"in e}function ge(e){return "$each"in e||"$errors"in e}function N({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$externalErrors??[])}function Me(e,t=!1){return pe(e)?ye(e.$fields):de(e)?{$errors:e.$field.$rules?N({field:e.$field,silent:t}):[],$each:e.$each.map(r=>Me(r,t))}:me(e)?e.$error?N({field:e,silent:t}):e.$externalErrors??[]:[]}function ot(e,t=!1){return e.map(r=>Me(r,t))}function ye(e,t=!1){return Object.fromEntries(Object.entries(e).map(([r,n])=>pe(n)?[r,ye(n.$fields,t)]:de(n)?[r,{$errors:N({field:n.$field,silent:t}),$each:ot(n.$each,t)}]:me(n)?n.$error?[r,N({field:n,silent:t})]:[r,n.$externalErrors??[]]:[r,[]]))}function Fe(e){return computed(()=>ye(e.$fields))}var Ve=(r=>(r.Inline="__inline",r.Async="__async",r))(Ve||{});function _e(e,t){return computed(()=>e.value.some(r=>r[t]))}function ke(e,t){return computed(()=>e.value.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[]))}function Be({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:o,storage:m,$debounce:I}){let P=effectScope(),y,i,{$pending:l,$valid:T,$metadata:h,$validating:E}=m.trySetRuleStatusRef(`${o}.${n}`);function u(){y=P.run(()=>{let x=computed(()=>({$invalid:!T.value,$params:C.value,...h.value})),g=computed(()=>X(r)?typeof r.value.active=="function"?r.value.active(a.value,x.value):r.value.active:!0),c=computed(()=>{let S="",D=t?t[n]?.message:void 0;return D&&(typeof D=="function"?S=D(a.value,x.value):S=D),X(r)&&(D&&!r.value._patched||(typeof r.value.message=="function"?S=r.value.message(a.value,x.value):S=r.value.message)),te(S)&&(S="Error",console.warn(`No error message defined for ${o}.${n}`)),S}),s=computed(()=>X(r)&&r.value.type?r.value.type:n),f=computed(()=>X(r)?r.value.validator:r.value),C=computed(()=>typeof r.value=="function"?[]:F(r.value._params??[])),v=computed(()=>`${o}.${s.value}`);return {$active:g,$message:c,$type:s,$validator:f,$params:C,$path:v}}),i=watch(y.$params,R,{deep:!0});}u();async function M(x){let g=!1;try{T.value=!0,e.value&&(l.value=!0);let c=await x;if(typeof c=="boolean")g=c;else {let{$valid:s,...f}=c;g=s,h.value=f;}}catch{g=!1;}finally{l.value=!1;}return g}let p=Q(M,I??100);async function R(){E.value=!0;let x=y.$validator.value,g=!1,c=x(a.value,...y.$params.value);if(c instanceof Promise)g=await p(c);else if(c!=null)if(typeof c=="boolean")g=c;else {let{$valid:s,...f}=c;g=s,h.value=f;}return T.value=g,E.value=!1,g}function d(){T.value=!0,h.value={},l.value=!1,E.value=!1,u();}function w(){i(),P.stop(),P=effectScope();}return reactive({...y,$pending:l,$valid:T,$metadata:h,$validate:R,$unwatch:w,$watch:u,$reset:d})}function re({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:m,index:I,onUnwatch:P}){let y=effectScope(),i,l=ref(!1),T=ref(!1),h=ref([]),E,u,M,p,R=()=>{};function d(){h.value=m.value??[];}d();function w(){let $=t.value,b=a.checkRuleDeclEntry(n,$);f.value=Object.fromEntries(Object.entries($).filter(([A])=>A.startsWith("$"))),s.value=Object.fromEntries(Object.entries(t.value).filter(([A])=>!A.startsWith("$")).map(([A,_])=>{if(_){let le=toRef(()=>_);return [A,Be({$dirty:l,customMessages:r,rule:le,ruleKey:A,state:e,path:n,storage:a,$debounce:f.value.$debounce})]}return []}).filter(A=>!!A.length)),g(),R=i.$debounce.value?Q(c,i.$debounce.value??0):c,b?.valid!=null&&(l.value=a.getDirtyState(n),l.value&&R()),a.addRuleDeclEntry(n,$);}function x(){s.value&&Object.entries(s.value).forEach(([$,b])=>{b.$unwatch();}),p(),l.value&&a.setDirtyEntry(n,l.value),E(),u(),M(),y.stop(),y=effectScope(),P?.();}function g(){s.value&&Object.entries(s.value).forEach(([$,b])=>{b.$watch();}),i=y.run(()=>{let $=computed(()=>l.value),b=computed(()=>f.value.$debounce),A=computed(()=>f.value.$lazy!=null?f.value.$lazy:unref(o.lazy)),_=computed(()=>f.value.$rewardEarly!=null?f.value.$rewardEarly:unref(o.rewardEarly)),le=computed(()=>f.value.$autoDirty!=null?f.value.$autoDirty:unref(o.autoDirty)),Je=computed(()=>oe.value&&!he.value&&l.value),Qe=computed(()=>N({field:{$dirty:l.value,$externalErrors:h.value,$rules:s.value}})),Xe=computed(()=>N({field:{$dirty:l.value,$externalErrors:h.value,$rules:s.value},silent:!0})),he=computed(()=>T.value||!_.value?Object.entries(s.value).some(([ee,J])=>J.$pending):!1),oe=computed(()=>h.value?.length?!0:!_.value||_.value&&T.value?Object.entries(s.value).some(([ee,J])=>!J.$valid):!1),De=computed(()=>l.value&&!te(e.value)?h.value?.length?!1:_.value?Object.entries(s.value).every(([ee,J])=>J.$valid):!oe.value:!1);return watch(De,ee=>{ee&&(T.value=!1);}),{$error:Je,$pending:he,$invalid:oe,$valid:De,$debounce:b,$lazy:A,$errors:Qe,$silentErrors:Xe,$rewardEarly:_,$autoDirty:le,$anyDirty:$}}),M=watch(m,d),E=watch(e,()=>{i.$autoDirty.value&&(l.value||(l.value=!0)),t.value instanceof Function&&w(),R(),i.$rewardEarly.value;},{deep:H?1:!0}),p=watch(l,()=>{a.setDirtyEntry(n,l.value);}),u=watch(i.$valid,$=>{i.$rewardEarly.value&&$&&(T.value=!1);});}function c(){Object.entries(s.value).forEach(([$,b])=>{b.$validate();});}let s=ref(),f=ref();w();function C(){l.value=!1,h.value=[],Object.entries(s.value).forEach(([$,b])=>{b.$reset();}),i.$lazy.value||Object.entries(s.value).map(([$,b])=>b.$validate());}function v(){l.value||(l.value=!0,i.$rewardEarly.value,R());}let S=i.$debounce.value?Q(D,i.$debounce.value??0):D;async function D(){try{if(T.value=!0,i.$autoDirty.value&&l.value&&!i.$pending.value)return !i.$error.value;{let $=Object.entries(s.value).map(([A,_])=>_.$validate());return (await Promise.allSettled($)).every(A=>A.status==="fulfilled"?A.value:!1)}}catch{return !1}}function O(){h.value=[];}return i.$lazy.value||D(),reactive({$dirty:l,...i,$externalErrors:h,$value:e,$rules:s,$reset:C,$touch:v,$validate:S,$unwatch:x,$watch:g,$clearExternalErrors:O})}function Ue({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:m,rules:I,externalErrors:P}){let y=I.$key?I.$key:ce(),i=`${t}.${String(y)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?i=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:y,enumerable:!1,configurable:!1,writable:!1}}));let l=toRef(()=>P.value?.[r]),T=ae({state:o,rulesDef:toRef(()=>I),customMessages:m,path:i,storage:a,options:n,externalErrors:l});if(T){let h=o.value?.$id;T.$id=h??String(y),a.addArrayStatus(e,T.$id,T);}return T}function We({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:m}){let I=effectScope(),P,y=effectScope(),i;if(Array.isArray(e.value)&&!t.value.$each)return null;let l=ref(),T=ref(e.value),h,E=ref({}),u=a.getCollectionsEntry(n);i=y.run(()=>{let s=computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(v=>typeof v!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(v=>Re(v)):!1),f=computed(()=>m.value?ge(m.value)?m.value.$errors??[]:[]:[]),C=computed(()=>m.value?ge(m.value)?m.value.$each??[]:[]:[]);return {isPrimitiveArray:s,$externalErrorsField:f,$externalErrorsEach:C}}),M(),R();function M(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(l.value=ce(),Object.defineProperties(e.value,{$id:{value:l.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(l.value=e.value.$id)),!i.isPrimitiveArray.value&&(T.value=E.value.$value,Array.isArray(e.value)&&t.value.$each?u.value=e.value.map((s,f)=>{let C=ue(t.value.$each,toRef(()=>s),f);if(C){let v=Ue({$id:l.value,path:n,rules:C,stateValue:toRef(()=>s),index:f,options:o,storage:a,externalErrors:i.$externalErrorsEach});return v||null}}).filter(s=>!!s):u.value=[],E.value=re({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:i.$externalErrorsField}));}function p(){if(Array.isArray(e.value)){let s=G(u.value);u.value=e.value.map((f,C)=>{let v=toRef(()=>f);if(f.$id&&u.value.find(S=>S.$id===f.$id)){let S=a.getArrayStatus(l.value,f.$id);return S?(S.$value=v,S):null}else {let S=ue(t.value.$each,v,C);if(S){let D=Ue({$id:l.value,path:n,rules:S,stateValue:v,index:C,options:o,storage:a,externalErrors:i.$externalErrorsEach});return D||null}}}).filter(f=>!!f),s.filter(f=>!e.value.find(C=>f.$id===C.$id)).forEach((f,C)=>{a.deleteArrayStatus(l.value,C.toString());});}else u.value=[];}function R(){h=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?M():p();},{deep:H?1:!0,flush:"pre"}),P=I.run(()=>{let s=computed(()=>E.value.$dirty&&u.value.every(b=>b.$dirty)),f=computed(()=>E.value.$anyDirty||u.value.some(b=>b.$dirty)),C=computed(()=>E.value.$invalid||u.value.some(b=>b.$invalid)),v=computed(()=>E.value.$valid&&u.value.every(b=>b.$valid)),S=computed(()=>E.value.$error||u.value.some(b=>b.$error)),D=computed(()=>E.value.$pending||u.value.some(b=>b.$pending)),O=computed(()=>({$errors:E.value.$errors,$each:u.value.map(b=>b.$errors)})),$=computed(()=>({$errors:E.value.$silentErrors,$each:u.value.map(b=>b.$silentErrors)}));return {$dirty:s,$anyDirty:f,$invalid:C,$valid:v,$error:S,$pending:D,$errors:O,$silentErrors:$}}),i.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`),h());}function d(){h&&h(),E.value&&E.value.$unwatch(),u.value&&u.value.forEach(s=>{"$dirty"in s&&s.$unwatch();}),I.stop(),I=effectScope(),y.stop(),y=effectScope(!0);}function w(){E.value.$touch(),u.value.forEach(s=>{s.$touch();});}function x(){E.value.$reset(),u.value.forEach(s=>{s.$reset();});}async function g(){try{return (await Promise.all([E.value.$validate(),...u.value.map(f=>f.$validate())])).every(f=>!!f)}catch{return !1}}function c(){}return reactive({$field:E,...P,$each:u,$value:e,$validate:g,$unwatch:d,$watch:R,$touch:w,$reset:x,$clearExternalErrors:c})}function Se({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:o,options:m,externalErrors:I,validationGroups:P}){let y,i,l;function E(g=!0,c=!1){u.value=null,triggerRef(u);let s=Object.fromEntries(Object.entries(e.value).map(([v,S])=>{if(S){let D=toRef(t.value,v),O=toRef(()=>S),$=toRef(()=>I.value?.[v]);return [v,ae({state:D,rulesDef:O,customMessages:r,path:n?`${n}.${v}`:v,storage:o,options:m,externalErrors:$})]}return []}).filter(v=>!!v.length&&v[1]!=null)),f=Object.fromEntries(Object.entries(unref(I)??{}).filter(([v])=>!(v in e.value)).map(([v,S])=>{if(S){let D=toRef(()=>({})),O=toRef(()=>S);return [v,ae({state:ref(void 0),rulesDef:D,customMessages:r,path:n?`${n}.${v}`:v,storage:o,options:m,externalErrors:O})]}return []})),C=Object.fromEntries(Object.entries(P?.(s)??{}).map(([v,S])=>S.length?[v,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(D=>[D,_e(toRef(()=>S),D)])),...Object.fromEntries(["$errors","$silentErrors"].map(D=>[D,ke(toRef(()=>S),D)]))}]:[]));u.value={...s,...f,...C},g&&d();}let u=o.getFieldsEntry(n);E();function M(){E(!1),Object.entries(u.value).forEach(([g,c])=>{c.$reset();}),d();}function p(){Object.entries(u.value).forEach(([g,c])=>{c.$touch();});}async function R(){try{return (await Promise.allSettled(Object.entries(u.value).map(([c,s])=>s.$validate()))).every(c=>c.status==="fulfilled"?c.value:!1)}catch{return !1}}function d(){a&&(l=watch(a,()=>{w(),E();},{deep:H?1:!0,flush:"post"})),y=effectScope(),i=y.run(()=>{let g=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([O,$])=>$.$dirty)),c=computed(()=>Object.entries(u.value).some(([O,$])=>$.$dirty)),s=computed(()=>Object.entries(u.value).some(([O,$])=>$.$invalid)),f=computed(()=>Object.entries(u.value).every(([O,$])=>$.$valid)),C=computed(()=>Object.entries(u.value).some(([O,$])=>$.$error)),v=computed(()=>Object.entries(u.value).some(([O,$])=>$.$pending)),S=computed(()=>Object.fromEntries(Object.entries(u.value).map(([O,$])=>[O,$.$errors]))),D=computed(()=>Object.fromEntries(Object.entries(u.value).map(([O,$])=>[O,$.$silentErrors])));return {$dirty:g,$anyDirty:c,$invalid:s,$valid:f,$error:C,$pending:v,$errors:S,$silentErrors:D}});}function w(){u.value&&Object.entries(u.value).forEach(([g,c])=>{c.$unwatch();}),l?.(),y.stop(),y=effectScope();}function x(){Object.entries(u.value).forEach(([g,c])=>{c.$clearExternalErrors();});}return reactive({...i,$fields:u,$value:t,$reset:M,$touch:p,$validate:R,$unwatch:w,$watch:d,$clearExternalErrors:x})}function ae({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:m,index:I,onUnwatch:P}){return Oe(t)?We({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:I,externalErrors:m}):we(e,t)&&Pe(e)?Se({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:o,index:I,externalErrors:m}):Ae(t)?re({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:I,externalErrors:m,onUnwatch:P}):null}function Ee(e,t,r,n){let a=fe(),o=computed(()=>unref(r.externalErrors)),m=reactive(Se({rootRules:e,scopeRules:e,state:t,customMessages:n?.(),storage:a,options:r,externalErrors:o,validationGroups:r.validationGroups})),I=Fe(m);return {regle:m,errors:I}}function be(e,t){let r={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1};function n(a,o,m){let I=isRef(o)?o:computed(typeof o=="function"?o:()=>o),P={...r,...m},y=isRef(a)?a:ref(a),i=G(toRaw(y.value)),{regle:l,errors:T}=Ee(I,y,P,e);function h(){l.$unwatch(),E(a,i),l.$reset();}function E(p,R){Object.entries(R).forEach(([d,w])=>{let x=isRef(p)?p.value:p,g=isRef(x[d])?x[d].value:x[d],c=isRef(R[d])?R[d]._value:R[d];Array.isArray(c)&&Array.isArray(g)?(x[d]=[],c.forEach((s,f)=>{x[d][f]={},E(x[d][f],c[f]);})):k(c)?E(g,c):isRef(x[d])?x[d].value=c:x[d]=c;});}let u=computed(()=>!(l.$invalid||l.$pending));async function M(){return l.$touch(),await l.$validate()?y.value:!1}return {regle:l,r$:l,errors:T,resetAll:h,validateState:M,ready:u,state:y}}return n}var Le=be();function xe(){function e(t,r){return r}return e}var Te=xe();function ze({rules:e,modifiers:t}){let r=be(e,t),n=xe();return {useRegle:r,inferRules:n}}export{Ve as InternalRuleType,ie as createRule,ze as defineRegleConfig,Te as inferRules,F as unwrapRuleParameters,Le as useRegle};
|
|
1
|
+
import {unref,version,isRef,toRef,computed,ref,toRaw,reactive,shallowRef,onScopeDispose,triggerRef,watch,effectScope}from'vue';var ce=(r=>(r.Inline="__inline",r.Async="__async",r))(ce||{});function Ae(e,t){return computed(()=>e.value.some(r=>r[t]))}function Me(e,t){return computed(()=>e.value.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[]))}function j(e){return e.map(t=>t instanceof Function?t():unref(t))}function Fe(e){return e.map(t=>t instanceof Function||isRef(t)?t:toRef(()=>t))}function Ve(e){let t=e.toString();return (t.includes("=>")?t.split("=>")[0]:t).slice(t.indexOf("(")+1,t.indexOf(")")).split(",").map(o=>o.trim()).filter(o=>o.includes("=")).length+e.length}function fe(e,...t){let{message:r,validator:n,active:a,type:o,...m}=e,T=o==="__async"||n.constructor.name==="AsyncFunction";return {...{validator($,...s){return e.validator($,...j(s.length?s:t))},message($,s){return typeof e.message=="function"?e.message($,{...s,$params:j(s.$params?.length?s.$params:t)}):e.message},active($,s){return typeof e.active=="function"?e.active($,{...s,$params:j(s.$params?.length?s.$params:t)}):e.active??!0},exec($){let s=e.validator($,...j(t)),i;return s instanceof Promise?s.then(h=>(i=h,typeof i=="object"&&"$valid"in i?i.$valid:typeof i=="boolean"?i:!1)):(i=s,typeof i=="object"&&"$valid"in i?i.$valid:typeof i=="boolean"?i:!1)}},...m,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:T,_params:Fe(t)}}function Re(e){if(typeof e.validator=="function"){let r=fe(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(Ve(e.validator)>1){let a=function(...o){return fe(e,...o)};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 B(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function je(e){return B(e.value)}function U(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>U(n)))),r=="Map"&&(t=new Map([...e].map(n=>[U(n[0]),U(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,lt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=U(e[n]);}return t}function lt(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 pe(e,t,r){return e instanceof Function?e(t,r??0):e}function ae(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?e.length===0:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function K(e,t,r){let n,a=(...o)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(m);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...o)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(m);},0);}),a}function st(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),m=Number(n[a]);if(o>m)return 1;if(m>o)return -1;if(!isNaN(o)&&isNaN(m))return 1;if(isNaN(o)&&!isNaN(m))return -1}return 0}var J=st(version,"3.5.0")!==-1;function it(){return Math.floor(Math.random()*Date.now()).toString()}function de(){return typeof window>"u"?it():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),o=shallowRef(new Map);function m(p){let c=t.value.get(p);if(c)return c;{let x=ref({});return t.value.set(p,x),x}}function T(p){let c=r.value.get(p);if(c)return c;{let x=ref([]);return r.value.set(p,x),x}}function P(p,c,x){o.value.set(`${p}-${c}`,x);}function S(p,c){return o.value.get(`${p}-${c}`)}function $(p,c){p&&c!=null&&o.value.delete(`${p}-${c}`);}function s(p,c){n.value.set(p,c);}function i(p){return n.value.get(p)??!1}function h(p,c){e.value.set(p,c);}function y(p,c){let x=e.value.get(p);return x?u(c,x)?{valid:!0}:{valid:!1}:void 0}function u(p,c){let x=Object.keys(c),E=Object.keys(p);return E.length!==x.length||!E.every(v=>x.includes(v))?!1:E.every(v=>{let d=p[v],f=c[v];return !f||!d||typeof d=="function"||typeof f=="function"||typeof d=="number"||typeof d=="boolean"?!1:d._params?d._params?.every((R,b)=>{if(typeof f=="number"||typeof f=="boolean")return !0;{let l=j(f._params),g=j(d._params);return l?.[b]===g?.[b]}}):!0})}function O(p){let c=a.value.get(p);if(c)return c;{let x=ref(!1),E=ref(!0),A=ref({}),v=ref(!1);return a.value.set(p,{$pending:x,$valid:E,$metadata:A,$validating:v}),{$pending:x,$valid:E,$metadata:A,$validating:v}}}return onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:h,setDirtyEntry:s,checkRuleDeclEntry:y,getDirtyState:i,trySetRuleStatusRef:O,getFieldsEntry:m,getCollectionsEntry:T,getArrayStatus:S,addArrayStatus:P,deleteArrayStatus:$,arrayStatusStorage:o}}function _e(e,t){return B(e.value)&&B(t.value)&&!Object.entries(t.value).some(r=>ee(r))}function Ge(e){return !!e.value&&"$each"in e.value}function ke(e){return !!e.value&&B(e.value)}function ee(e){return B(e)&&"_validator"in e}function te(e){return typeof e.value!="function"}function ye(e){return B(e)&&"$fields"in e}function ge(e){return !!e&&"$each"in e}function ve(e){return !!e&&"$rules"in e}function $e(e){return "$each"in e||"$errors"in e}function H({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.$externalErrors??[])}function Be(e,t=!1){return ye(e)?Se(e.$fields):ge(e)?{$errors:e.$field.$rules?H({field:e.$field,silent:t}):[],$each:e.$each.map(r=>Be(r,t))}:ve(e)?e.$error?H({field:e,silent:t}):e.$externalErrors??[]:[]}function ft(e,t=!1){return e.map(r=>Be(r,t))}function Se(e,t=!1){return Object.fromEntries(Object.entries(e).map(([r,n])=>ye(n)?[r,Se(n.$fields,t)]:ge(n)?[r,{$errors:H({field:n.$field,silent:t}),$each:ft(n.$each,t)}]:ve(n)?n.$error?[r,H({field:n,silent:t})]:[r,n.$externalErrors??[]]:[r,[]]))}function Ne(e){return computed(()=>Se(e.$fields))}function We({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:o,storage:m,$debounce:T}){let P=effectScope(),S,$,s=ref(!1),{$pending:i,$valid:h,$metadata:y,$validating:u}=m.trySetRuleStatusRef(`${o}.${n}`);function O(){S=P.run(()=>{let d=computed(()=>({$invalid:!h.value,$params:g.value,...y.value})),f=computed(()=>te(r)?typeof r.value.active=="function"?r.value.active(a.value,d.value):r.value.active:!0),R=computed(()=>{let C="",D=t?t[n]?.message:void 0;return D&&(typeof D=="function"?C=D(a.value,d.value):C=D),te(r)&&(D&&!r.value._patched||(typeof r.value.message=="function"?C=r.value.message(a.value,d.value):C=r.value.message)),ae(C)&&(C="Error",console.warn(`No error message defined for ${o}.${n}`)),C}),b=computed(()=>te(r)&&r.value.type?r.value.type:n),l=computed(()=>te(r)?r.value.validator:r.value),g=computed(()=>typeof r.value=="function"?[]:j(r.value._params??[])),I=computed(()=>`${o}.${b.value}`);return {$active:f,$message:R,$type:b,$validator:l,$params:g,$path:I}}),$=watch(S.$params,E,{deep:!0});}O();function p(){h.value=!0,e.value&&(i.value=!0);}async function c(){let d=S.$validator.value,f=d(a.value,...S.$params.value),R=!1,b=a.value;try{p();let l;if(f instanceof Promise?l=await f:l=f,a.value!==b)return !0;if(typeof l=="boolean")R=l;else {let{$valid:g,...I}=l;R=g,y.value=I;}}catch{R=!1;}finally{i.value=!1;}return R}let x=K(c,T??200);async function E(){u.value=!0;let d=!1;if(ee(r.value)&&r.value._async)d=await x();else {let f=S.$validator.value,R=f(a.value,...S.$params.value);if(R 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(R!=null)if(typeof R=="boolean")d=R;else {let{$valid:b,...l}=R;d=b,y.value=l;}}return h.value=d,u.value=!1,d}function A(){h.value=!0,y.value={},i.value=!1,u.value=!1,O();}function v(){$(),P.stop(),P=effectScope();}return reactive({...S,$pending:i,$valid:h,$metadata:y,_haveAsync:s,$validating:u,$validate:E,$unwatch:v,$watch:O,$reset:A})}function le({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:m,index:T,onUnwatch:P,$isArray:S}){let $=effectScope(),s,i=ref(!1),h=ref(!1),y=ref([]),u,O,p,c,x,E=()=>{};function A(){y.value=m.value??[];}A();function v(){let M=t.value,F=a.checkRuleDeclEntry(n,M);g.value=Object.fromEntries(Object.entries(M).filter(([V])=>V.startsWith("$"))),l.value=Object.fromEntries(Object.entries(t.value).filter(([V])=>!V.startsWith("$")).map(([V,k])=>{if(k){let ie=toRef(()=>k);return [V,We({$dirty:i,customMessages:r,rule:ie,ruleKey:V,state:e,path:n,storage:a,$debounce:g.value.$debounce})]}return []}).filter(V=>!!V.length)),R(),d(),F?.valid!=null&&(i.value=a.getDirtyState(n),i.value&&E()),a.addRuleDeclEntry(n,M);}function d(){E=s.$debounce.value?K(b,s.$debounce.value??s.haveAnyAsyncRule?100:0):b;}function f(){l.value&&Object.entries(l.value).forEach(([M,F])=>{F.$unwatch();}),c(),i.value&&a.setDirtyEntry(n,i.value),u(),O(),p(),$.stop(),$=effectScope(),P?.(),x?.();}function R(){l.value&&Object.entries(l.value).forEach(([M,F])=>{F.$watch();}),s=$.run(()=>{let M=computed(()=>i.value),F=computed(()=>g.value.$debounce),V=computed(()=>g.value.$lazy!=null?g.value.$lazy:unref(o.lazy)),k=computed(()=>g.value.$rewardEarly!=null?g.value.$rewardEarly:unref(o.rewardEarly)),ie=computed(()=>g.value.$autoDirty!=null?g.value.$autoDirty:unref(o.autoDirty)),Ze=computed(()=>Object.entries(l.value).some(([z,N])=>N.$validating)),Ie=computed(()=>ue.value&&!Pe.value&&i.value),Ke=computed(()=>Ie.value?H({field:{$dirty:i.value,$externalErrors:y.value,$rules:l.value}}):[]),et=computed(()=>H({field:{$dirty:i.value,$externalErrors:y.value,$rules:l.value},silent:!0})),Pe=computed(()=>h.value||!k.value?Object.entries(l.value).some(([z,N])=>N.$pending):!1),ue=computed(()=>y.value?.length?!0:!k.value||k.value&&h.value?Object.entries(l.value).some(([z,N])=>!N.$valid):!1),we=computed(()=>i.value&&!ae(e.value)&&!Ze.value?y.value?.length?!1:k.value?Object.entries(l.value).every(([z,N])=>N.$valid):!ue.value:!1),tt=computed(()=>Object.entries(l.value).some(([z,N])=>N._haveAsync));return watch(we,z=>{z&&(h.value=!1);}),{$error:Ie,$pending:Pe,$invalid:ue,$valid:we,$debounce:F,$lazy:V,$errors:Ke,$silentErrors:et,$rewardEarly:k,$autoDirty:ie,$anyDirty:M,haveAnyAsyncRule:tt}}),p=watch(m,A),u=watch(e,()=>{s.$autoDirty.value&&(i.value||(i.value=!0)),t.value instanceof Function&&v(),E(),s.$rewardEarly.value;},{deep:S?!0:J?1:!0}),c=watch(i,()=>{a.setDirtyEntry(n,i.value);}),O=watch(s.$valid,M=>{s.$rewardEarly.value&&M&&(h.value=!1);}),x=watch(s.haveAnyAsyncRule,d);}function b(){Object.entries(l.value).forEach(([M,F])=>{F.$validate();});}let l=ref(),g=ref();v();function I(){i.value=!1,y.value=[],Object.entries(l.value).forEach(([M,F])=>{F.$reset();}),s.$lazy.value||Object.entries(l.value).map(([M,F])=>F.$validate());}function C(){i.value||(i.value=!0,s.$rewardEarly.value,E());}let D=s.$debounce.value?K(w,s.$debounce.value??0):w;async function w(){try{if(h.value=!0,s.$autoDirty.value&&i.value&&!s.$pending.value)return !s.$error.value;{let M=Object.entries(l.value).map(([V,k])=>k.$validate());return (await Promise.allSettled(M)).every(V=>V.status==="fulfilled"?V.value:!1)}}catch{return !1}}function Xe(){y.value=[];}return s.$lazy.value||w(),reactive({$dirty:i,...s,$externalErrors:y,$value:e,$rules:l,$reset:I,$touch:C,$validate:D,$unwatch:f,$watch:R,$clearExternalErrors:Xe})}function qe({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:m,rules:T,externalErrors:P}){let S=T.$key?T.$key:de(),$=`${t}.${String(S)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?$=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:S,enumerable:!1,configurable:!1,writable:!1}}));let s=toRef(()=>P.value?.[r]),i=se({state:o,rulesDef:toRef(()=>T),customMessages:m,path:$,storage:a,options:n,externalErrors:s});if(i){let h=o.value?.$id;i.$id=h??String(S),a.addArrayStatus(e,i.$id,i);}return i}function Le({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:m}){let T=effectScope(),P,S=effectScope(),$;if(Array.isArray(e.value)&&!t.value.$each)return null;let s=ref(),i=ref(e.value),h,y=ref({}),u=a.getCollectionsEntry(n);$=S.run(()=>{let f=computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(l=>typeof l!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(l=>ee(l)):!1),R=computed(()=>m.value?$e(m.value)?m.value.$errors??[]:[]:[]),b=computed(()=>m.value?$e(m.value)?m.value.$each??[]:[]:[]);return {isPrimitiveArray:f,$externalErrorsField:R,$externalErrorsEach:b}}),O(),c();function O(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(s.value=de(),Object.defineProperties(e.value,{$id:{value:s.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(s.value=e.value.$id)),!$.isPrimitiveArray.value&&(i.value=y.value.$value,Array.isArray(e.value)&&t.value.$each?u.value=e.value.map((f,R)=>{let b=pe(t.value.$each,toRef(()=>f),R);if(b){let l=qe({$id:s.value,path:n,rules:b,stateValue:toRef(()=>f),index:R,options:o,storage:a,externalErrors:$.$externalErrorsEach});return l||null}}).filter(f=>!!f):u.value=[],y.value=le({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:$.$externalErrorsField,$isArray:!0}));}function p(){if(Array.isArray(e.value)){let f=U(u.value);u.value=e.value.map((R,b)=>{let l=toRef(()=>R);if(R.$id&&u.value.find(g=>g.$id===R.$id)){let g=a.getArrayStatus(s.value,R.$id);return g?(g.$value=l,g):null}else {let g=pe(t.value.$each,l,b);if(g){let I=qe({$id:s.value,path:n,rules:g,stateValue:l,index:b,options:o,storage:a,externalErrors:$.$externalErrorsEach});return I||null}}}).filter(R=>!!R),f.filter(R=>!e.value.find(b=>R.$id===b.$id)).forEach((R,b)=>{a.deleteArrayStatus(s.value,b.toString());});}else u.value=[];}function c(){h=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?O():p();},{deep:J?1:!0,flush:"pre"}),P=T.run(()=>{let f=computed(()=>y.value.$dirty&&u.value.every(w=>w.$dirty)),R=computed(()=>y.value.$anyDirty||u.value.some(w=>w.$dirty)),b=computed(()=>y.value.$invalid||u.value.some(w=>w.$invalid)),l=computed(()=>y.value.$valid&&u.value.every(w=>w.$valid)),g=computed(()=>y.value.$error||u.value.some(w=>w.$error)),I=computed(()=>y.value.$pending||u.value.some(w=>w.$pending)),C=computed(()=>({$errors:y.value.$errors,$each:u.value.map(w=>w.$errors)})),D=computed(()=>({$errors:y.value.$silentErrors,$each:u.value.map(w=>w.$silentErrors)}));return {$dirty:f,$anyDirty:R,$invalid:b,$valid:l,$error:g,$pending:I,$errors:C,$silentErrors:D}}),$.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`),h());}function x(){h&&h(),y.value&&y.value.$unwatch(),u.value&&u.value.forEach(f=>{"$dirty"in f&&f.$unwatch();}),T.stop(),T=effectScope(),S.stop(),S=effectScope(!0);}function E(){y.value.$touch(),u.value.forEach(f=>{f.$touch();});}function A(){y.value.$reset(),u.value.forEach(f=>{f.$reset();});}async function v(){try{return (await Promise.all([y.value.$validate(),...u.value.map(R=>R.$validate())])).every(R=>!!R)}catch{return !1}}function d(){}return reactive({$field:y,...P,$each:u,$value:e,$validate:v,$unwatch:x,$watch:c,$touch:E,$reset:A,$clearExternalErrors:d})}function he({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:o,options:m,externalErrors:T,validationGroups:P}){let S,$,s=null;function y(v=!0,d=!1){u.value=null,triggerRef(u);let f=Object.fromEntries(Object.entries(e.value).map(([l,g])=>{if(g){let I=toRef(t.value,l),C=toRef(()=>g),D=toRef(()=>T.value?.[l]);return [l,se({state:I,rulesDef:C,customMessages:r,path:n?`${n}.${l}`:l,storage:o,options:m,externalErrors:D})]}return []}).filter(l=>!!l.length&&l[1]!=null)),R=Object.fromEntries(Object.entries(unref(T)??{}).filter(([l])=>!(l in e.value)).map(([l,g])=>{if(g){let I=toRef(()=>({})),C=toRef(()=>g);return [l,se({state:ref(void 0),rulesDef:I,customMessages:r,path:n?`${n}.${l}`:l,storage:o,options:m,externalErrors:C})]}return []})),b=Object.fromEntries(Object.entries(P?.(f)??{}).map(([l,g])=>g.length?[l,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(I=>[I,Ae(toRef(()=>g),I)])),...Object.fromEntries(["$errors","$silentErrors"].map(I=>[I,Me(toRef(()=>g),I)]))}]:[]));u.value={...f,...R,...b},v&&x();}let u=o.getFieldsEntry(n);y();function O(){y(!1),Object.entries(u.value).forEach(([v,d])=>{d.$reset();}),x();}function p(){Object.entries(u.value).forEach(([v,d])=>{d.$touch();});}async function c(){try{return (await Promise.allSettled(Object.entries(u.value).map(([d,f])=>f.$validate()))).every(d=>d.status==="fulfilled"?d.value:!1)}catch{return !1}}function x(){a&&(s=watch(a,()=>{E(),y();},{deep:J?1:!0,flush:"post"})),S=effectScope(),$=S.run(()=>{let v=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([C,D])=>D.$dirty)),d=computed(()=>Object.entries(u.value).some(([C,D])=>D.$dirty)),f=computed(()=>Object.entries(u.value).some(([C,D])=>D.$invalid)),R=computed(()=>Object.entries(u.value).every(([C,D])=>D.$valid)),b=computed(()=>v.value&&!l.value&&f.value),l=computed(()=>Object.entries(u.value).some(([C,D])=>D.$pending)),g=computed(()=>Object.fromEntries(Object.entries(u.value).map(([C,D])=>[C,D.$errors]))),I=computed(()=>Object.fromEntries(Object.entries(u.value).map(([C,D])=>[C,D.$silentErrors])));return {$dirty:v,$anyDirty:d,$invalid:f,$valid:R,$error:b,$pending:l,$errors:g,$silentErrors:I}});}function E(){u.value&&Object.entries(u.value).forEach(([v,d])=>{d.$unwatch();}),s?.(),S.stop(),S=effectScope();}function A(){Object.entries(u.value).forEach(([v,d])=>{d.$clearExternalErrors();});}return reactive({...$,$fields:u,$value:t,$reset:O,$touch:p,$validate:c,$unwatch:E,$watch:x,$clearExternalErrors:A})}function se({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:m,index:T,onUnwatch:P}){return Ge(t)?Le({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:T,externalErrors:m}):_e(e,t)&&je(e)?he({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:o,index:T,externalErrors:m}):ke(t)?le({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:T,externalErrors:m,onUnwatch:P}):null}function xe(e,t,r,n){let a=me(),o=computed(()=>unref(r.externalErrors)),m=reactive(he({rootRules:e,scopeRules:e,state:t,customMessages:n?.(),storage:a,options:r,externalErrors:o,validationGroups:r.validationGroups})),T=Ne(m);return {regle:m,errors:T}}function Te(e,t){let r={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1};function n(a,o,m){let T=isRef(o)?o:computed(typeof o=="function"?o:()=>o),P={...r,...m},S=isRef(a)?a:ref(a),$=U(toRaw(S.value)),{regle:s}=xe(T,S,P,e);function i(){s.$unwatch(),h(a,$),s.$reset();}function h(O,p){Object.entries(p).forEach(([c,x])=>{let E=isRef(O)?O.value:O,A=isRef(E[c])?E[c].value:E[c],v=isRef(p[c])?p[c]._value:p[c];Array.isArray(v)&&Array.isArray(A)?(E[c]=[],v.forEach((d,f)=>{E[c][f]={},h(E[c][f],v[f]);})):B(v)?h(A,v):isRef(E[c])?E[c].value=v:E[c]=v;});}let y=computed(()=>!(s.$invalid||s.$pending));async function u(){return s.$touch(),await s.$validate()?S.value:!1}return {r$:s,resetAll:i,validateState:u,ready:y,state:S}}return n}var Ye=Te();function De(){function e(t,r){return r}return e}var Ce=De();function Qe({rules:e,modifiers:t}){let r=Te(e,t),n=De();return {useRegle:r,inferRules:n}}export{ce as InternalRuleType,Re as createRule,Qe as defineRegleConfig,Ce as inferRules,j as unwrapRuleParameters,Ye as useRegle};
|
package/package.json
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@regle/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Typescript-first model-based form validation library for Vue 3",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"vue": "^3.1.0"
|
|
7
7
|
},
|
|
8
8
|
"devDependencies": {
|
|
9
9
|
"@total-typescript/ts-reset": "0.6.1",
|
|
10
|
-
"@types/node": "22.9.
|
|
11
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
12
|
-
"@typescript-eslint/parser": "8.
|
|
10
|
+
"@types/node": "22.9.3",
|
|
11
|
+
"@typescript-eslint/eslint-plugin": "8.15.0",
|
|
12
|
+
"@typescript-eslint/parser": "8.15.0",
|
|
13
13
|
"@vue/test-utils": "2.4.6",
|
|
14
14
|
"bumpp": "9.8.1",
|
|
15
15
|
"changelogithub": "0.13.11",
|
|
16
16
|
"cross-env": "7.0.3",
|
|
17
|
-
"eslint": "9.
|
|
17
|
+
"eslint": "9.15.0",
|
|
18
18
|
"eslint-config-prettier": "9.1.0",
|
|
19
|
-
"eslint-plugin-vue": "9.
|
|
19
|
+
"eslint-plugin-vue": "9.31.0",
|
|
20
20
|
"prettier": "3.3.3",
|
|
21
21
|
"tsup": "8.3.5",
|
|
22
|
-
"type-fest": "4.
|
|
22
|
+
"type-fest": "4.28.0",
|
|
23
23
|
"typescript": "5.6.3",
|
|
24
|
-
"vitest": "2.1.
|
|
25
|
-
"vue": "3.5.
|
|
24
|
+
"vitest": "2.1.5",
|
|
25
|
+
"vue": "3.5.13",
|
|
26
26
|
"vue-eslint-parser": "9.4.3",
|
|
27
27
|
"vue-tsc": "2.1.10"
|
|
28
28
|
},
|