@regle/core 1.2.3 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,isRef as i,markRaw as a,nextTick as o,onMounted as s,onScopeDispose as c,reactive as l,ref as u,shallowRef as d,toRef as f,toValue as p,triggerRef as m,unref as h,version as g,watch as _,watchEffect as v}from"vue";function y(e){return e?.constructor.name==`File`||e?.constructor.name==`FileList`}function b(e,t=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):y(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:typeof e==`object`&&e?Object.keys(e).length===0:!String(e).length}const x=Symbol(`regle-rule`);function S(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 C(e){let t=e,n={}.toString.call(e).slice(8,-1);if(n==`Set`&&(t=new Set([...e].map(e=>C(e)))),n==`Map`&&(t=new Map([...e].map(e=>[C(e[0]),C(e[1])]))),n==`Date`&&(t=new Date(e.getTime())),n==`RegExp`&&(t=RegExp(e.source,S(e))),n==`Array`||n==`Object`)for(let n in t=Array.isArray(e)?[]:{},e)t[n]=C(e[n]);return t}function w(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function T(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function E(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e==`object`&&t===`[object Date]`?new Date(e.getTime()):typeof e==`number`||t===`[object Number]`||typeof e==`string`||t===`[object String]`?new Date(e):new Date(NaN)}function D(e,t,n){let r,i=(...i)=>new Promise(a=>{clearTimeout(r),r=setTimeout(()=>{r=void 0,n||Promise.resolve(e.apply(this,[...i])).then(a)},t),n&&!r&&Promise.resolve(e.apply(this,[...i])).then(a)});return i.cancel=()=>{clearTimeout(r),r=void 0},i}function O(e,t,n=!1,r=!0){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(e.constructor!==t.constructor)return!1;var i,a,o;if(Array.isArray(e)&&Array.isArray(t)){if(i=e.length,i!=t.length)return!1;if(r||!r&&n){for(a=i;a--!==0;)if(!O(e[a],t[a],n,!1))return!1}return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(t).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[a]))return!1;for(a=i;a--!==0;){var s=o[a];return!(w(e)&&w(t)&&(r||!r&&n)&&!O(e[s],t[s],n,!1))}return!0}return e!==e&&t!==t}const k={Inline:`__inline`,Async:`__async`};function A(e,t){return e.some(e=>e[t])}function j(e,t){return e.reduce((e,n)=>{let r=n[t]||[];return e.concat(r)},[])}function M(e){try{return e.map(e=>p(e))}catch{return[]}}function N(t){return t.map(t=>t instanceof Function?e(t):i(t)?t:f(()=>t))}function P(e){let t=e.toString(),n=t.replace(/\/\/.*$/gm,``).replace(/\/\*[\s\S]*?\*\//g,``),r=n.match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);if(!r)return 0;let i=r[0]||r[1]||r[2]||r[3]||r[4]||``,a=i.split(`,`).map(e=>e.trim()).filter(e=>e.length>0);return a.length}function F(e,...t){let{validator:n,type:r}=e,i=r===k.Async||n.constructor.name===`AsyncFunction`,o={validator(n,...r){return e.validator(n,...M(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:M(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:M(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:M(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...M(t)),i;return r instanceof Promise?r.then(e=>(i=e,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)):(i=r,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)}},s=a({...o,_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:i,_params:N(t),_brand:x});return s}function I(e){if(typeof e.validator==`function`){let t=[],n=F(e,...t),r=e.async??e.validator.constructor.name===`AsyncFunction`;if(P(e.validator)>1){let t=function(...t){return F(e,...t)};return t.validator=n.validator,t.message=n.message,t.active=n.active,t.tooltip=n.tooltip,t.type=n.type,t.exec=n.exec,t._validator=n.validator,t._message=n.message,t._active=n.active,t._tooltip=n.tooltip,t._type=e.type,t._message_pacthed=!1,t._tooltip_pacthed=!1,t._async=r,t}else return n}throw Error(`[createRule] validator must be a function`)}function L(){let e=d(new Map),t=d(new Map),n=d(new Map),i=d(new Map),a=d(new Map),o=d(new Map);function s(e){let n=t.value.get(e);if(n)return n;{let n=u({});return t.value.set(e,n),n}}function l(e){let t=n.value.get(e);if(t)return t;{let t=u([]);return n.value.set(e,t),t}}function f(e,t,n){o.value.set(`${e}-${t}`,n)}function p(e,t){return o.value.get(`${e}-${t}`)}function m(e,t){e&&t!=null&&o.value.delete(`${e}-${t}`)}function h(e,t){i.value.set(e,t)}function g(e){return i.value.get(e)??!1}function _(t,n){e.value.set(t,n)}function v(t,n){let r=e.value.get(t);if(!r)return;let i=r,a=y(n,i);return a?{valid:!0}:{valid:!1}}function y(e,t){let n=Object.keys(t),r=Object.keys(e);if(r.length!==n.length)return!1;let i=r.every(e=>n.includes(e));return i?r.every(n=>{let r=e[n],i=t[n];return!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`?!1:r._params?r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`)return!0;{let e=M(i._params),n=M(r._params);return e?.[t]===n?.[t]}}):!0}):!1}function b(e){let t=a.value.get(e);if(t)return t;{let t=u(!1),n=u(!0),r=u({}),i=u(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}return r()&&c(()=>{e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),o.value.clear()}),{addRuleDeclEntry:_,setDirtyEntry:h,checkRuleDeclEntry:v,getDirtyState:g,trySetRuleStatusRef:b,getFieldsEntry:s,getCollectionsEntry:l,getArrayStatus:p,addArrayStatus:f,deleteArrayStatus:m,arrayStatusStorage:o}}function R(e){return w(e.value)}function z(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const B={LessThan:-1,EqualTo:0,GreaterThan:1};function V(e,t){let n=String(e).split(`.`),r=String(t).split(`.`);for(let e=0;e<Math.min(n.length,r.length);e++){let t=Number(n[e]),i=Number(r[e]);if(t>i)return B.GreaterThan;if(i>t)return B.LessThan;if(!isNaN(t)&&isNaN(i))return B.GreaterThan;if(isNaN(t)&&!isNaN(i))return B.LessThan}return B.EqualTo}const H=V(g,`3.5.0`)!==-1;function U(){return Math.floor(Math.random()*Date.now()).toString()}function W(){if(typeof window>`u`)return U();{let e=window.crypto.getRandomValues(new Uint32Array(1))[0];return e.toString(10)}}function G(e){return r()?(c(e),!0):!1}function K(e){let n=!1,r,i=t(!0);return(...t)=>(n||(r=i.run(()=>e(...t)),n=!0),r)}function q(e,t){return R(e)||w(t.value)&&!b(t.value)&&!Object.entries(t.value).some(([e,t])=>X(t)||typeof t==`function`)}function J(e,t,n=!1){return!!e.value&&w(e.value)&&`$each`in e.value||n&&Array.isArray(t.value)&&t.value.some(w)||Array.isArray(t.value)&&t.value.some(w)}function Y(e){return!!e.value&&w(e.value)}function X(e){return w(e)&&`_validator`in e}function Z(e){return typeof e.value==`function`?`_validator`in e.value:!0}function ee(e){return w(e)&&`$fields`in e}function te(e){return!!e&&`$rules`in e}function ne({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([n,r])=>t&&!r.$valid||!r.$valid&&e.$error&&!r.$validating?r.$message:null).filter(e=>!!e).reduce((e,t)=>typeof t==`string`?e?.concat([t]):e?.concat(t),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function re({field:e}){return Object.entries(e.$rules??{}).map(([e,t])=>t.$tooltip).filter(e=>!!e).reduce((e,t)=>typeof t==`string`?e?.concat([t]):e?.concat(t),[])}function ie(e){return w(e)&&`$each`in e}function ae(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!w(e)))return e;if(ie(e)){let t=n?e.$self?.map(e=>({error:e,path:``}))??[]:e.$self??[],r=e.$each?.map(e=>oe(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>oe(t,n,[e])).flat()}function oe(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!w(e)))return t?e.map(e=>({error:e,path:r?.join(`.`)??``})):e;if(ie(e)){let n=r?.length?e.$self?.map(e=>({error:e,path:r.join(`.`)}))??[]:e.$self??[],i=e.$each?.map((e,n)=>oe(e,t,r?.concat(n.toString())))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>oe(n,t,r?.concat(e))).flat()}function se({customMessages:n,rule:r,ruleKey:i,state:a,path:o,storage:s,$debounce:c,modifiers:d}){let f=t(),p={},m,h=u(!1),g=u(!1),{$pending:v,$valid:y,$metadata:x,$validating:S}=s.trySetRuleStatusRef(`${o}.${i}`);function C(){f=t(),p=f.run(()=>{let t=u(!1),s=u(!1),c=u(!0),l=u(!1),d=u(!1),f=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:d.value,$invalid:c.value,$rule:{$valid:y.value,$invalid:!y.value,$pending:v.value},$params:C.value,...x.value})),p=e(()=>Z(r)?typeof r.value.active==`function`?r.value.active(f.value):!!r.value.active:!0);function m(e){let t=``,a=n?n[i]?.[e]:void 0;if(a&&(t=typeof a==`function`?a(f.value):a),Z(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](f.value):r.value[e]??``)}return t}let h=e(()=>{let e=m(`message`);return b(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),_=e(()=>Z(r)&&r.value.type?r.value.type:i),S=e(()=>Z(r)?r.value.validator:r.value),C=e(()=>typeof r.value==`function`?[]:M(r.value._params??[])),w=e(()=>`${o}.${_.value}`);return{$active:p,$message:h,$type:_,$validator:S,$params:C,$path:w,$tooltip:g,$fieldCorrect:d,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=_(p?.$params,()=>{(!d.$silent.value||d.$rewardEarly.value&&p.$fieldError.value)&&O()})}C();function w(){y.value=!0,p.$fieldDirty.value&&(v.value=!0)}async function T(){let e=!1;try{let t=p.$validator.value;if(typeof t!=`function`)return console.error(`${o}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let n=t(a.value,...p.$params.value),r=a.value;w();let i;if(i=n instanceof Promise?await n:n,a.value!==r)return!0;if(typeof i==`boolean`)e=i;else{let{$valid:t,...n}=i;e=t,x.value=n}}catch{e=!1}finally{v.value=!1}return e}let E=D(T,c??200);async function O(){try{S.value=!0;let e=!1;if(g.value=!0,X(r.value)&&r.value._async)e=await E();else{let t=p.$validator.value,n=t(a.value,...p.$params.value);if(n 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(n!=null)if(typeof n==`boolean`)e=n;else{let{$valid:t,...r}=n;e=t,x.value=r}}return y.value=e,e}catch{return!1}finally{S.value=!1,g.value=!1}}function k(){y.value=!0,x.value={},v.value=!1,S.value=!1,C()}function A(){m(),f.stop(),f=t()}return l({...p,$pending:v,$valid:y,$metadata:x,$haveAsync:h,$maybePending:g,$validating:S,$parse:O,$unwatch:A,$watch:C,$reset:k})}function ce({state:n,rulesDef:r,customMessages:i,path:a,fieldName:o,storage:s,options:c,externalErrors:d,schemaErrors:p,schemaMode:m,onUnwatch:g,$isArray:y,initialState:x,shortcuts:S,onValidate:T}){let k=t(),A,j=[],M,N,P,F,I,L=()=>{};function R(){let e=r.value,t=s.checkRuleDeclEntry(a,e);K.value=Object.fromEntries(Object.entries(e).filter(([e])=>e.startsWith(`$`))),V(),G.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>!e.startsWith(`$`)).map(([e,t])=>{if(t){let r=f(()=>t);return[e,se({modifiers:{$silent:A.$silent,$rewardEarly:A.$rewardEarly},customMessages:i,rule:r,ruleKey:e,state:n,path:a,storage:s,$debounce:K.value.$debounce})]}return[]}).filter(e=>!!e.length)),A.processShortcuts(),z(),t?.valid!=null&&(A.$dirty.value=s.getDirtyState(a),(A.$dirty.value&&!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&L()),s.addRuleDeclEntry(a,e)}function z(){L=A.$debounce.value?D(W,A.$debounce.value??A.$haveAnyAsyncRule?100:0):W}function B(){G.value&&Object.entries(G.value).forEach(([e,t])=>{t.$unwatch()}),P(),I?.(),A.$dirty.value&&s.setDirtyEntry(a,A.$dirty.value),M?.(),k.stop(),k=t(),j.forEach(e=>e.stop()),j=[],g?.(),F?.()}function V(){G.value&&Object.entries(G.value).forEach(([e,t])=>{t.$watch()}),A=k.run(()=>{let i=u(!1),a=u(!1),s=e(()=>i.value),f=e(()=>K.value.$debounce),g=e(()=>K.value.$deepCompare==null?!1:K.value.$deepCompare),_=e(()=>K.value.$lazy==null?h(c.lazy)==null?!1:h(c.lazy):K.value.$lazy),y=e(()=>K.value.$rewardEarly==null?h(c.rewardEarly)==null?!1:h(c.rewardEarly):K.value.$rewardEarly),C=e(()=>K.value.$clearExternalErrorsOnChange==null?h(c.clearExternalErrorsOnChange)==null?!w.value:h(c.clearExternalErrorsOnChange):K.value.$clearExternalErrorsOnChange),w=e(()=>y.value?!0:K.value.$silent==null?h(c.silent)==null?!1:h(c.silent):K.value.$silent),T=e(()=>K.value.$autoDirty==null?h(c.autoDirty)==null?!0:h(c.autoDirty):K.value.$autoDirty),D=e(()=>Object.entries(G.value).some(([e,t])=>t.$validating)),k=e({get:()=>n.value,set(e){M(),n.value=e,U()}}),A=e(()=>B.value&&!z.value&&i.value),N=e(()=>ne({field:{$rules:G.value,$error:A.value,$externalErrors:d?.value,$schemaErrors:p?.value}})),P=e(()=>ne({field:{$rules:G.value,$error:A.value,$externalErrors:d?.value,$schemaErrors:p?.value},silent:!0})),F=e(()=>i.value?x.value instanceof Date&&n.value instanceof Date?E(x.value).getDate()!==E(n.value).getDate():x.value==null?!!n.value:Array.isArray(n.value)&&Array.isArray(x.value)?!O(n.value,x.value,K.value.$deepCompare):x.value!==n.value:!1),I=e(()=>F.value),L=e(()=>re({field:{$rules:G.value}})),R=e(()=>(w.value||s.value)&&!(B.value||z.value)),z=e(()=>a.value||!y.value?Object.entries(G.value).some(([e,t])=>t.$pending):!1),B=e(()=>{if(d?.value?.length||p?.value?.length)return!0;if(H.value)return!1;if(!y.value||y.value){let e=Object.entries(G.value).some(([e,t])=>!(t.$valid&&!t.$maybePending));return e}return!1}),V=e(()=>o),H=e(()=>Object.keys(r.value).filter(([e])=>!e.startsWith(`$`)).length===0&&!m),W=e(()=>{if(d?.value?.length||H.value)return!1;if(i.value&&!b(n.value)&&!D.value&&!z.value){if(m)return!p?.value?.length;{let e=Object.values(G.value).some(e=>e.$active);return e?Object.values(G.value).filter(e=>e.$active).every(e=>e.$valid):!1}}return!1}),q=e(()=>Object.entries(G.value).some(([e,t])=>t.$haveAsync));function J(){S?.fields&&Object.entries(S.fields).forEach(([e,r])=>{let a=t();Y[e]=a.run(()=>{let e=u();return v(()=>{e.value=r(l({$dirty:i,$externalErrors:d?.value??[],$value:n,$silentValue:k,$rules:G,$error:A,$pending:z,$invalid:B,$correct:W,$errors:N,$ready:R,$silentErrors:P,$anyDirty:s,$tooltips:L,$name:V,$inactive:H,$edited:F,$anyEdited:I}))}),e}),j.push(a)})}let Y={};return{$error:A,$pending:z,$invalid:B,$correct:W,$debounce:f,$deepCompare:g,$lazy:_,$errors:N,$ready:R,$silentErrors:P,$rewardEarly:y,$autoDirty:T,$silent:w,$clearExternalErrorsOnChange:C,$anyDirty:s,$edited:F,$anyEdited:I,$name:V,$haveAnyAsyncRule:q,$shortcuts:Y,$validating:D,$tooltips:L,$dirty:i,processShortcuts:J,$silentValue:k,$inactive:H}}),U(),P=_(A.$dirty,e=>{s.setDirtyEntry(a,e),Object.values(G.value).forEach(t=>{t.$fieldDirty=e})}),I=_([A.$error,A.$correct,A.$invalid,A.$pending],()=>{Object.values(G.value).forEach(e=>{e.$fieldError=A.$error.value,e.$fieldInvalid=A.$invalid.value,e.$fieldPending=A.$pending.value,e.$fieldCorrect=A.$correct.value})}),F=_(A.$haveAnyAsyncRule,z)}function U(){M=_(n,()=>{A.$autoDirty.value&&!A.$silent.value&&(A.$dirty.value||(A.$dirty.value=!0)),r.value instanceof Function&&R(),(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&L(),A.$clearExternalErrorsOnChange.value&&Z()},{deep:y?!0:H?1:!0})}function W(){Object.values(G.value).forEach(e=>{e.$parse()})}let G=u({}),K=u({});R();function q(e,t){if(Z(),A.$dirty.value=!1,s.setDirtyEntry(a,!1),!t)if(e?.toInitialState)n.value=C(x.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,x.value=C(t),n.value=C(t)}else x.value=w(n.value)?C(n.value):Array.isArray(n.value)?[...n.value]:n.value;e?.clearExternalErrors&&Z(),t||Object.entries(G.value).forEach(([e,t])=>{t.$reset()}),!A.$lazy.value&&!A.$silent.value&&!t&&Object.values(G.value).forEach(e=>e.$parse())}function J(e=!0,t=!1){A.$dirty.value||(A.$dirty.value=!0),t&&e?(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&L():e&&L()}async function Y(){try{if(m)return T?(J(!1),T()):{valid:!1,data:n.value};let e=n.value;if(!A.$dirty.value)A.$dirty.value=!0;else if(!A.$silent.value&&A.$dirty.value&&!A.$pending.value)return{valid:!A.$error.value,data:e};if(m)return{valid:!p?.value?.length,data:e};if(b(G.value))return{valid:!0,data:e};let t=await Promise.allSettled(Object.entries(G.value).map(([e,t])=>t.$parse())),r=t.every(e=>e.status===`fulfilled`?e.value===!0:!1);return{valid:r,data:e}}catch{return{valid:!1,data:n.value}}}function X(e=!0){return A.$dirty.value?n.value:e?{_null:!0}:null}function Z(){d?.value?.length&&(d.value=[])}!A.$lazy.value&&!A.$dirty.value&&!A.$silent.value&&L();let{$shortcuts:ee,$validating:te,$autoDirty:ie,$rewardEarly:ae,$clearExternalErrorsOnChange:oe,$haveAnyAsyncRule:ce,$debounce:le,$lazy:ue,...Q}=A;return l({...Q,$externalErrors:d,$value:n,$rules:G,...ee,$reset:q,$touch:J,$validate:Y,$unwatch:B,$watch:V,$extractDirtyFields:X,$clearExternalErrors:Z})}function le({$id:t,path:n,index:r,options:i,storage:a,stateValue:o,customMessages:s,rules:c,externalErrors:l,schemaErrors:u,initialState:d,shortcuts:p,fieldName:m,schemaMode:h}){let g=c.$key?c.$key:W(),_=`${n}.${String(g)}`;typeof o.value==`object`&&o.value!=null&&(o.value.$id?_=`${n}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:g,enumerable:!1,configurable:!1,writable:!1}}));let v=f(l?.value??[],r),y=e(()=>u?.value?.[r]),b=$({state:o,rulesDef:f(()=>c),customMessages:s,path:_,storage:a,options:i,externalErrors:v,schemaErrors:y,initialState:d,shortcuts:p,fieldName:m,schemaMode:h});if(b){let e=o.value?.$id;b.$id=e??String(g),a.addArrayStatus(t,b.$id,b)}return b}function ue({state:n,rulesDef:r,customMessages:i,path:a,storage:o,options:s,externalErrors:c,schemaErrors:d,schemaMode:p,initialState:m,shortcuts:g,fieldName:y}){let x=t(),S,w=t(),T,E=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let D=u(),O=u(n.value),k=u({}),A,j,M=u({}),N=o.getCollectionsEntry(a);T=w.run(()=>{let t=e(()=>n.value?.length?Array.isArray(n.value)&&n.value.length?n.value.every(e=>typeof e!=`object`):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(e=>X(e)||typeof e==`function`):!1:!1);return{isPrimitiveArray:t}}),P(),L();function P(){k.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(D.value=W(),Object.defineProperties(n.value,{$id:{value:D.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(D.value=n.value.$id)),O.value=M.value.$value,Array.isArray(n.value)&&!T.isPrimitiveArray.value?N.value=n.value.filter(e=>typeof e==`object`).map((t,n)=>{let{scope:l,unwrapped:u}=z(r.value.$each,f(()=>t),n);l&&E.push(l);let h=f(m.value??[],n),_=f(c?.value??{},`$each`),v=e(()=>d?.value?.$each),b=le({$id:D.value,path:a,customMessages:i,rules:u??{},stateValue:f(()=>t),index:n,options:s,storage:o,externalErrors:_,schemaErrors:v,initialState:h,shortcuts:g,fieldName:y,schemaMode:p});return b||null}).filter(e=>!!e):N.value=[],M.value=ce({state:n,rulesDef:r,customMessages:i,path:a,storage:o,options:s,externalErrors:f(c?.value??{},`$self`),schemaErrors:e(()=>d?.value?.$self),$isArray:!0,initialState:m,shortcuts:g,fieldName:y,schemaMode:p})}function F(){if(Array.isArray(n.value)&&!T.isPrimitiveArray.value){let t=C(N.value);N.value=n.value.filter(e=>typeof e==`object`).map((t,n)=>{let l=f(()=>t);if(t.$id&&N.value.find(e=>e.$id===t.$id)){let e=o.getArrayStatus(D.value,t.$id);return e?(e.$value=l,e):null}else{let{scope:t,unwrapped:u}=z(r.value.$each,l,n);t&&E.push(t);let h=f(c?.value??{},`$each`),_=e(()=>d?.value?.$each??[]),v=le({$id:D.value,path:a,customMessages:i,rules:u??{},stateValue:l,index:n,options:s,storage:o,externalErrors:h,schemaErrors:_,initialState:f(m.value??[],n),shortcuts:g,fieldName:y,schemaMode:p});return v||null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{o.deleteArrayStatus(D.value,t.toString())})}else N.value=[]}function I(){A=_(n,()=>{n.value!=null&&!Object.hasOwn(n.value,`$id`)?P():F()},{deep:H?1:!0,flush:`pre`}),j=_(n,()=>{S.$autoDirty.value&&!S.$silent.value&&B(!1,!0)},{flush:`pre`})}function L(){I(),x=t(),S=x.run(()=>{let r=e({get:()=>n.value,set(e){A?.(),j?.(),n.value=e,I()}}),i=e(()=>M.value.$dirty&&(!N.value.length||N.value.every(e=>e.$dirty))),a=e(()=>M.value.$anyDirty||N.value.some(e=>e.$anyDirty)),o=e(()=>M.value.$invalid||N.value.some(e=>e.$invalid)),c=e(()=>(b(M.value.$rules)?!0:M.value.$correct)&&(!N.value.length||N.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),d=e(()=>M.value.$error||N.value.some(e=>e.$error)),f=e(()=>!(o.value||p.value)),p=e(()=>M.value.$pending||N.value.some(e=>e.$pending)),m=e(()=>!!N.value.length&&N.value.every(e=>e.$edited)),_=e(()=>M.value.$anyEdited||N.value.some(e=>e.$anyEdited)),x=e(()=>({$self:M.value.$errors,$each:N.value.map(e=>e.$errors)})),S=e(()=>({$self:M.value.$silentErrors,$each:N.value.map(e=>e.$silentErrors)})),C=e(()=>k.value.$rewardEarly==null?h(s.rewardEarly)==null?!1:h(s.rewardEarly):k.value.$rewardEarly),w=e(()=>C.value?!0:k.value.$silent==null?h(s.silent)==null?!1:h(s.silent):k.value.$silent),T=e(()=>k.value.$autoDirty==null?h(s.autoDirty)==null?!0:h(s.autoDirty):k.value.$autoDirty),D=e(()=>y);function O(){g?.collections&&Object.entries(g?.collections).forEach(([e,s])=>{let h=t();P[e]=h.run(()=>{let e=u();return v(()=>{e.value=s(l({$dirty:i,$error:d,$silentValue:r,$pending:p,$invalid:o,$correct:c,$errors:x,$ready:f,$silentErrors:S,$anyDirty:a,$name:D,$each:N,$self:M,$value:n,$edited:m,$anyEdited:_}))}),e}),E.push(h)})}let P={};return O(),{$dirty:i,$anyDirty:a,$invalid:o,$correct:c,$error:d,$pending:p,$errors:x,$silentErrors:S,$ready:f,$name:D,$shortcuts:P,$silentValue:r,$edited:m,$anyEdited:_,$rewardEarly:C,$silent:w,$autoDirty:T}}),T.isPrimitiveArray.value&&r.value.$each&&console.warn(`${a} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`)}function R(){A?.(),M.value&&M.value.$unwatch(),N.value&&N.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),x.stop(),x=t(),w.stop(),w=t(!0),E.forEach(e=>e.stop()),E=[]}function B(e=!0,t=!1){M.value.$touch(e,t),N.value.forEach(n=>{n.$touch(e,t)})}function V(e,t){if(R(),!t)if(e?.toInitialState)n.value=C(m.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,m.value=C(t),n.value=C(t)}else m.value=C(n.value);e?.clearExternalErrors&&G(),M.value.$reset(e,t),N.value.forEach(t=>{t.$reset(e,!0)}),t||P()}async function U(){let e=n.value;try{let t=await Promise.allSettled([M.value.$validate(),...N.value.map(e=>e.$validate())]),n=t.every(e=>e.status===`fulfilled`?e.value.valid===!0:!1);return{valid:n,data:e}}catch{return{valid:!1,data:e}}}function G(){M.value.$clearExternalErrors(),N.value.forEach(e=>{e.$clearExternalErrors()})}function K(e=!0){let t=N.value.map(t=>{if(ee(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>b(e))&&(t=[]),t}let{$shortcuts:q,...J}=S;return l({$self:M,...J,...q,$each:N,$value:n,$validate:U,$unwatch:R,$watch:L,$touch:B,$reset:V,$extractDirtyFields:K,$clearExternalErrors:G})}function Q({rulesDef:n,state:r,path:i=``,rootRules:a,externalErrors:o,schemaErrors:s,rootSchemaErrors:c,validationGroups:d,initialState:p,fieldName:m,...g}){let y=t(),x,S=[],T=null,E=null,D=null,O=null,k=null;async function M(t=!0){let a=Object.entries(n.value),c=Object.fromEntries(a.filter(([e,t])=>!!t).map(([t,n])=>{if(n){let a=f(r.value??{},t),c=f(()=>n),l=f(o?.value??{},t),u=e(()=>s?.value?.[t]),d=f(p?.value??{},t);return[t,$({state:a,rulesDef:c,path:i?`${i}.${t}`:t,externalErrors:l,schemaErrors:u,initialState:d,fieldName:t,...g})]}return[]})),l=Object.fromEntries(Object.entries(h(o)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=f(r.value??{},t),a=f(o?.value??{},t),c=e(()=>s?.value?.[t]),l=f(p?.value??{},t);return[t,$({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,externalErrors:a,schemaErrors:c,initialState:l,fieldName:t,...g})]})),u=Object.fromEntries(Object.entries(h(s)??{}).map(([t])=>{let n=f(r.value??{},t),a=f(o?.value??{},t),c=e(()=>s?.value?.[t]),l=f(p?.value??{},t);return[t,$({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,externalErrors:a,schemaErrors:c,initialState:l,fieldName:t,...g})]})),d=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(l??{}))&&!(e in(u??{}))).map(([t])=>{let n=f(r.value??{},t),a=f(o?.value??{},t),c=e(()=>s?.value?.[t]),l=f(p?.value??{},t);return[t,$({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,externalErrors:a,schemaErrors:c,initialState:l,fieldName:t,...g})]}));N.value={...c,...l,...u,...d},t&&I()}let N=g.storage.getFieldsEntry(i);M();function P(){o&&(D=_(o,()=>{L(),M()},{deep:!0}))}function F(){O=_(r,()=>{L(),M(),x.$autoDirty.value&&!x.$silent.value&&B(!1,!0)})}function I(){a&&(T?.(),T=_(a,()=>{L(),M()},{deep:!0,flush:`pre`}),P()),c&&(E?.(),E=_(c,()=>{L(),M()},{deep:!0,flush:`post`})),F(),x=y.run(()=>{let n=e({get:()=>r.value,set(e){L(),r.value=e,M(),x.$autoDirty.value&&!x.$silent.value&&B(!1,!0)}}),i=e({get:()=>r.value,set(e){L(),r.value=e,M()}}),a=e(()=>!!Object.entries(N.value).length&&Object.entries(N.value).every(([e,t])=>t?.$dirty)),o=e(()=>Object.entries(N.value).some(([e,t])=>t?.$anyDirty)),s=e(()=>!!Object.entries(N.value).length&&Object.entries(N.value).some(([e,t])=>t?.$invalid)),c=e(()=>{let e=Object.entries(N.value).filter(([e,t])=>te(t)?!t.$inactive:!0);return e.length?e.every(([e,t])=>g.schemaMode?t.$correct:te(t)?`required`in t.$rules&&t.$rules.required.$active?t?.$correct:!t.$invalid&&!t.$pending:t?.$correct):!1}),f=e(()=>!!Object.entries(N.value).length&&Object.entries(N.value).some(([e,t])=>t?.$error)),p=e(()=>h(g.options.rewardEarly)==null?!1:h(g.options.rewardEarly)),_=e(()=>h(g.options.silent)==null?!!p.value:h(g.options.silent)),y=e(()=>h(g.options.autoDirty)==null?!0:h(g.options.autoDirty)),b=e(()=>(_.value||o.value)&&!(s.value||w.value)),C=u(!1),w=e(()=>C.value||Object.entries(N.value).some(([e,t])=>t?.$pending)),T=e(()=>Object.fromEntries(Object.entries(N.value).map(([e,t])=>[e,t?.$errors]))),E=e(()=>Object.fromEntries(Object.entries(N.value).map(([e,t])=>[e,t?.$silentErrors]))),D=e(()=>!!Object.entries(N.value).length&&Object.entries(N.value).every(([e,t])=>t?.$edited)),O=e(()=>Object.entries(N.value).some(([e,t])=>t?.$anyEdited)),k=e(()=>m);function P(){g.shortcuts?.nested&&Object.entries(g.shortcuts.nested).forEach(([e,n])=>{let d=t();I[e]=d.run(()=>{let e=u();return v(()=>{e.value=n(l({$dirty:a,$value:r,$silentValue:i,$error:f,$pending:w,$invalid:s,$correct:c,$ready:b,$anyDirty:o,$name:k,$silentErrors:E,$errors:T,$fields:N,$edited:D,$anyEdited:O}))}),e}),S.push(d)})}let F=e({get:()=>d?Object.fromEntries(Object.entries(d?.(N.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,A(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,j(t,e)]))}]:[])):{},set(){}}),I={};return P(),{$dirty:a,$anyDirty:o,$invalid:s,$correct:c,$error:f,$pending:w,$errors:T,$silentErrors:E,$ready:b,$name:k,$shortcuts:I,$groups:F,$silentValue:i,$edited:D,$anyEdited:O,$localPending:C,$autoDirty:y,$silent:_,$value:n}})}function L(){T?.(),D?.(),O?.(),k?.(),E?.(),S=[],x={},N.value&&Object.entries(N.value).forEach(([e,t])=>{t.$unwatch()})}function R(){Object.entries(N.value).forEach(([e,t])=>{t.$clearExternalErrors()})}function z(e,t){if(D?.(),L(),!t)if(e?.toInitialState)r.value=C({...p.value??{}});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,p.value=C(t),r.value=C(t)}else p.value=C(r.value);Object.values(N.value).forEach(t=>{t.$reset(e,!0)}),e?.clearExternalErrors&&R(),P(),t||M()}function B(e=!0,t=!1){Object.values(N.value).forEach(n=>{n.$touch(e,t)})}function V(e){return e.filter(([e,t])=>w(t)?!(t&&typeof t==`object`&&`_null`in t)&&!b(t):Array.isArray(t)?t.length:!0)}function H(e=!0){let t=Object.entries(N.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=V(t)),Object.fromEntries(t)}async function U(){try{if(g.schemaMode)return g.onValidate?(B(!1),x.$localPending.value=!0,g.onValidate()):{valid:!1,data:r.value};{let e=r.value,t=await Promise.allSettled(Object.values(N.value).map(e=>e.$validate())),n=t.every(e=>e.status===`fulfilled`?e.value.valid===!0:!1);return{valid:n,data:e}}}catch{return{valid:!1,data:r.value}}finally{x.$localPending.value=!1}}let{$shortcuts:W,$localPending:G,...K}=x;return l({...K,...W,$fields:N,$reset:z,$touch:B,$validate:U,$unwatch:L,$watch:I,$clearExternalErrors:R,$extractDirtyFields:H})}function $({rulesDef:e,...n}){if(J(e,n.state,n.schemaMode))return ue({rulesDef:e,...n});if(q(n.state,e)){if(R(n.state))return Q({rulesDef:e,...n});{let r=t(),i=r.run(()=>{let e=f(n.state.value?n.state:u({}));return _(()=>n.state.value,t=>{e.value=t},{deep:!0}),_(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:a,...o}=n;return Q({rulesDef:e,...o,state:i.fakeState})}}else if(Y(e))return ce({rulesDef:e,...n})}function de({initialState:e,options:t,scopeRules:n,state:i,customRules:a,shortcuts:o,schemaErrors:s,schemaMode:d=!1,onValidate:f}){let p=L(),m=u();return q(i,n)?m.value=Q({rootRules:n,rulesDef:n,state:i,customMessages:a?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:`root`,path:``,schemaErrors:s,rootSchemaErrors:s,schemaMode:d,onValidate:f}):Y(n)&&(m.value=ce({rulesDef:n,state:i,customMessages:a?.(),storage:p,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:`root`,path:``,schemaMode:d,schemaErrors:s,onValidate:f})),r()&&c(()=>{m.value?.$unwatch()}),l({regle:m})}function fe(t,n,r){let a={autoDirty:n?.autoDirty,lazy:n?.lazy,rewardEarly:n?.rewardEarly,silent:n?.silent,clearExternalErrorsOnChange:n?.clearExternalErrorsOnChange};function o(n,o,s){let c=i(o)?o:typeof o==`function`?void 0:e(()=>o),l={...a,...s},f=i(n)?n:u(n),p=d(c??{});typeof o==`function`&&v(()=>{p.value=o(f),m(p)});let h=u(w(f.value)?{...C(f.value)}:C(f.value)),g=de({scopeRules:p,state:f,options:l,initialState:h,customRules:t,shortcuts:r});return{r$:g.regle}}return o}const pe=fe();function me(){function e(e,t){return t}return e}const he=me();function ge({rules:e,modifiers:t,shortcuts:n}){let r=fe(e,t,n);r.__config={rules:e,modifiers:t,shortcuts:n};let i=me();return{useRegle:r,inferRules:i}}function _e(e,{rules:t,modifiers:n,shortcuts:r}){let i=e.__config??{},a=()=>({...i.rules?.(),...t?.()}),o=i.modifiers&&n?T(i.modifiers,n):n,s=i.shortcuts&&r?T(i.shortcuts,r):r,c=fe(a,o,s);c.__config={rules:a,modifiers:o,shortcuts:s};let l=me();return{useRegle:c,inferRules:l}}function ve(t,n){let r=n??!1,i=e({get:()=>r?Object.values(t).map(e=>e.$value):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$value])),set:e=>{r||typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$value=n)}}),a=e({get:()=>Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentValue])),set:e=>{typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$silentValue=n)}}),o=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$dirty)}),s=e(()=>Object.entries(t).some(([e,t])=>t?.$anyDirty)),c=e(()=>Object.entries(t).some(([e,t])=>t?.$invalid)),u=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$correct||t.$anyDirty&&!t.$invalid)}),d=e(()=>Object.entries(t).some(([e,t])=>t?.$error)),f=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$ready)}),p=e(()=>Object.entries(t).some(([e,t])=>t?.$pending)),m=e(()=>r?Object.entries(t).map(([e,t])=>t.$errors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$errors]))),h=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentErrors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentErrors]))),g=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),_=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),v=e(()=>r?Object.values(t):t);function y(e){Object.values(t).forEach(t=>{t.$reset(e)})}function b(){Object.values(t).forEach(e=>{e.$touch()})}function x(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function S(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}async function C(){try{let e=i.value,n=await Promise.allSettled(Object.values(t).map(e=>e.$validate())),r=n.every(e=>e.status===`fulfilled`?e.value.valid===!0:!1);return{valid:r,data:e}}catch{return{valid:!1,data:i.value}}}return l({...!r&&{$silentValue:a},$errors:m,$silentErrors:h,$instances:v,$value:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:u,$error:d,$pending:p,$ready:f,$edited:g,$anyEdited:_,$reset:y,$touch:b,$validate:C,$extractDirtyFields:x,$clearExternalErrors:S})}function ye(t,n){function r(r){let i=e(()=>p(r));s();let a=u(c(t.value)),o=l({r$:a});function s(){i.value&&!t.value[i.value]&&(t.value[i.value]={})}_(i,s),_(t,e=>{a.value=c(e)},{deep:!0});function c(e){if(i.value){let t=e[i.value]??{};return ve(t,!n.asRecord)}else return ve(e[`~~global`]??{},!n.asRecord)}return{r$:o.r$}}return{useCollectScope:r}}function be(t,r){let i=r??pe,a=(r,a,o)=>{let{namespace:c,scopeKey:l,...d}=o??{};i.__config??={};let f=e(()=>p(c)),m=u(`${Object.keys(t.value).length+1}-${W()}`),h=e(()=>o?.scopeKey??`instance-${m.value}`),{r$:g}=i(r,a,d);y(),G(v),_(f,(e,t)=>{v(t),y()}),n()&&s(()=>{let e=n();typeof window<`u`&&e?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(e?.proxy?.$el?.parentElement)&&v()});function v(e){let n=e??f.value;n?t.value[n]&&delete t.value[n][h.value]:t.value[`~~global`][h.value]&&delete t.value[`~~global`][h.value]}function y(){f.value?(t.value[f.value]||(t.value[f.value]={}),t.value[f.value][h.value]=g):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][h.value]=g)}return{r$:g,dispose:v,register:y}};return{useScopedRegle:a}}function xe(e){let t=e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):K(()=>{let e=u({"~~global":{}});return e}),n=t(),{useScopedRegle:r}=be(n,e?.customUseRegle),{useCollectScope:i}=ye(n,{asRecord:e?.asRecord});return{useScopedRegle:r,useCollectScope:i}}const{useCollectScope:Se,useScopedRegle:Ce}=xe();function we(t,n,r){let i=e(()=>p(t)[n]),a=e(()=>{let e=r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if(X(t))return h(t._params?.[0])===i.value}});if(e)return e;{let e=r.find(e=>w(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`));return e||{}}});return a}function Te(e,t,n){return w(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function Ee(e,t,n){let r=i(e)?f(e.value,`$fields`):f(e,`$fields`),a=u();return _(r,async()=>{await o(),Te(r.value,t,n)?a.value=r.value:a.value=void 0},{immediate:!0,flush:`pre`}),a}function De(e){return e}function Oe(e,t){return n=>T({...e},t(n))}export{k as InternalRuleType,I as createRule,xe as createScopedUseRegle,we as createVariant,ge as defineRegleConfig,De as defineRules,_e as extendRegleConfig,ae as flatErrors,he as inferRules,ve as mergeRegles,Te as narrowVariant,Oe as refineRules,M as unwrapRuleParameters,Se as useCollectScope,pe as useRegle,de as useRootStorage,Ce as useScopedRegle,Ee as variantToRef};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "1.2.3",
3
+ "version": "1.3.0",
4
4
  "description": "Headless form validation library for Vue 3",
5
5
  "peerDependencies": {
6
6
  "pinia": ">=2.2.5",
@@ -22,7 +22,7 @@
22
22
  "eslint-plugin-vue": "9.33.0",
23
23
  "expect-type": "1.2.1",
24
24
  "prettier": "3.5.3",
25
- "tsup": "8.4.0",
25
+ "tsdown": "0.12.3",
26
26
  "type-fest": "4.40.1",
27
27
  "typescript": "5.8.3",
28
28
  "vitest": "3.1.2",
@@ -36,18 +36,18 @@
36
36
  "types": "./dist/regle-core.d.ts",
37
37
  "node": {
38
38
  "import": {
39
- "production": "./dist/regle-core.min.mjs",
40
- "development": "./dist/regle-core.mjs",
41
- "default": "./dist/regle-core.mjs"
39
+ "production": "./dist/regle-core.min.js",
40
+ "development": "./dist/regle-core.js",
41
+ "default": "./dist/regle-core.js"
42
42
  }
43
43
  },
44
- "import": "./dist/regle-core.mjs"
44
+ "import": "./dist/regle-core.js"
45
45
  },
46
46
  "./package.json": "./package.json",
47
47
  "./dist/*": "./dist/*"
48
48
  },
49
- "main": "./dist/regle-core.mjs",
50
- "module": "./dist/regle-core.mjs",
49
+ "main": "./dist/regle-core.js",
50
+ "module": "./dist/regle-core.js",
51
51
  "types": "./dist/regle-core.d.ts",
52
52
  "files": [
53
53
  "dist",
@@ -83,10 +83,10 @@
83
83
  "license": "MIT",
84
84
  "scripts": {
85
85
  "typecheck": "tsc --noEmit",
86
- "build": "tsup",
87
- "build:dev": "tsup --config=tsup.dev.ts",
88
- "build:sourcemaps": "tsup --config=tsup.sourcemap.ts",
89
- "dev": "tsup --config=tsup.dev.ts --watch",
86
+ "build": "tsdown",
87
+ "build:dev": "tsdown --config=tsdown.dev.ts",
88
+ "build:sourcemaps": "tsdown --config=tsdown.sourcemap.ts",
89
+ "dev": "tsdown --config=tsdown.dev.ts --watch",
90
90
  "test": "echo 'no tests'"
91
91
  }
92
92
  }
@@ -1,2 +0,0 @@
1
- import {effectScope,computed,toValue,ref,watch,getCurrentInstance,onMounted,reactive,getCurrentScope,onScopeDispose,isRef,shallowRef,watchEffect,triggerRef,toRef,unref,version,nextTick,markRaw}from'vue';function It(e){return e?.constructor.name=="File"||e?.constructor.name=="FileList"}function oe(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):It(e)?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var Ot=Symbol("regle-rule");function cr(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 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,cr(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=G(e[n]);}return t}function M(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function je(e,...t){for(var r=[].slice.call(arguments),n,a=r.length;n=r[a-1],a--;)if(!n||typeof n!="object"&&typeof n!="function")throw new Error("expected object, got "+n);for(var l=r[0],i=r.slice(1),c=i.length,a=0;a<c;a++){var g=i[a];for(var p in g)l[p]=g[p];}return l}function tt(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Ge(e,t,r){let n,a=(...l)=>new Promise(i=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(i);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}function We(e,t,r=false,n=true){if(e===t)return true;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return false;var a,l,i;if(Array.isArray(e)&&Array.isArray(t)){if(a=e.length,a!=t.length)return false;if(n||!n&&r){for(l=a;l--!==0;)if(!We(e[l],t[l],r,false))return false}return true}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(i=Object.keys(e),a=i.length,a!==Object.keys(t).length)return false;for(l=a;l--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[l]))return false;for(l=a;l--!==0;){var c=i[l];return !(M(e)&&M(t)&&(n||!n&&r)&&!We(e[c],t[c],r,false))}return true}return e!==e&&t!==t}var rt={Inline:"__inline",Async:"__async"};function wt(e,t){return e.some(r=>r[t])}function Pt(e,t){return e.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[])}function re(e){try{return e.map(t=>toValue(t))}catch{return []}}function At(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function Mt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(i=>i.trim()).filter(i=>i.length>0).length:0}function nt(e,...t){let{validator:r,type:n}=e,a=n===rt.Async||r.constructor.name==="AsyncFunction";return markRaw({...{validator(c,...g){return e.validator(c,...re(g.length?g:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:re(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:re(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:re(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let g=e.validator(c,...re(t)),p;return g instanceof Promise?g.then(d=>(p=d,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)):(p=g,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:a,_params:At(t),_brand:Ot})}function at(e){if(typeof e.validator=="function"){let r=nt(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(Mt(e.validator)>1){let a=function(...l){return nt(e,...l)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.tooltip=r.tooltip,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._tooltip=r.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=n,a}else return r}throw new Error("[createRule] validator must be a function")}function lt(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),l=shallowRef(new Map);function i(y){let h=t.value.get(y);if(h)return h;{let x=ref({});return t.value.set(y,x),x}}function c(y){let h=r.value.get(y);if(h)return h;{let x=ref([]);return r.value.set(y,x),x}}function g(y,h,x){l.value.set(`${y}-${h}`,x);}function p(y,h){return l.value.get(`${y}-${h}`)}function d(y,h){y&&h!=null&&l.value.delete(`${y}-${h}`);}function B(y,h){n.value.set(y,h);}function b(y){return n.value.get(y)??false}function P(y,h){e.value.set(y,h);}function I(y,h){let x=e.value.get(y);return x?w(h,x)?{valid:true}:{valid:false}:void 0}function w(y,h){let x=Object.keys(h),T=Object.keys(y);return T.length!==x.length||!T.every(s=>x.includes(s))?false:T.every(s=>{let o=y[s],$=h[s];return !$||!o||typeof o=="function"||typeof $=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((L,H)=>{if(typeof $=="number"||typeof $=="boolean")return true;{let J=re($._params),K=re(o._params);return J?.[H]===K?.[H]}}):true})}function u(y){let h=a.value.get(y);if(h)return h;{let x=ref(false),T=ref(true),Q=ref({}),s=ref(false);return a.value.set(y,{$pending:x,$valid:T,$metadata:Q,$validating:s}),{$pending:x,$valid:T,$metadata:Q,$validating:s}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),l.value.clear();}),{addRuleDeclEntry:P,setDirtyEntry:B,checkRuleDeclEntry:I,getDirtyState:b,trySetRuleStatusRef:u,getFieldsEntry:i,getCollectionsEntry:c,getArrayStatus:p,addArrayStatus:g,deleteArrayStatus:d,arrayStatusStorage:l}}function Be(e){return M(e.value)}function ot(e,t,r){let n=effectScope(),a;return e instanceof Function?a=n.run(()=>e(t,r??0)):a=e,{scope:n,unwrapped:a}}var Fe={LessThan:-1,EqualTo:0,GreaterThan:1};function Sr(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let l=Number(r[a]),i=Number(n[a]);if(l>i)return Fe.GreaterThan;if(i>l)return Fe.LessThan;if(!isNaN(l)&&isNaN(i))return Fe.GreaterThan;if(isNaN(l)&&!isNaN(i))return Fe.LessThan}return Fe.EqualTo}var Le=Sr(version,"3.5.0")!==-1;function Tr(){return Math.floor(Math.random()*Date.now()).toString()}function Ee(){return typeof window>"u"?Tr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function jt(e){return getCurrentScope()?(onScopeDispose(e),true):false}function Ft(e){let t=false,r,n=effectScope(true);return (...a)=>(t||(r=n.run(()=>e(...a)),t=true),r)}function He(e,t){return Be(e)||M(t.value)&&!oe(t.value)&&!Object.entries(t.value).some(([r,n])=>$e(n)||typeof n=="function")}function Vt(e,t,r=false){return !!e.value&&M(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(M)||Array.isArray(t.value)&&t.value.some(M)}function ze(e){return !!e.value&&M(e.value)}function $e(e){return M(e)&&"_validator"in e}function Ve(e){return typeof e.value=="function"?"_validator"in e.value:true}function _t(e){return M(e)&&"$fields"in e}function st(e){return !!e&&"$rules"in e}function it({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ut({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function Nt(e){return M(e)&&"$each"in e}function ut(e,t){let{includePath:r=false}=t??{};if(Array.isArray(e)&&e.every(n=>!M(n)))return e;if(Nt(e)){let n=r?e.$self?.map(l=>({error:l,path:""}))??[]:e.$self??[],a=e.$each?.map(l=>Ke(l,r))??[];return n?.concat(a.flat())}else return Object.entries(e).map(([n,a])=>Ke(a,r,[n])).flat()}function Ke(e,t=false,r){let n=t&&!r?[]:r;if(Array.isArray(e)&&e.every(a=>!M(a)))return t?e.map(a=>({error:a,path:n?.join(".")??""})):e;if(Nt(e)){let a=n?.length?e.$self?.map(i=>({error:i,path:n.join(".")}))??[]:e.$self??[],l=e.$each?.map((i,c)=>Ke(i,t,n?.concat(c.toString())))??[];return a?.concat(l.flat())}else return Object.entries(e).map(([a,l])=>Ke(l,t,n?.concat(a))).flat()}function kt({customMessages:e,rule:t,ruleKey:r,state:n,path:a,storage:l,$debounce:i,modifiers:c}){let g=effectScope(),p={},d,B=ref(false),b=ref(false),{$pending:P,$valid:I,$metadata:w,$validating:u}=l.trySetRuleStatusRef(`${a}.${r}`);function y(){g=effectScope(),p=g.run(()=>{let $=ref(false),L=ref(false),H=ref(true),J=ref(false),K=ref(false),le=computed(()=>({$value:n.value,$error:L.value,$dirty:$.value,$pending:J.value,$correct:K.value,$invalid:H.value,$rule:{$valid:I.value,$invalid:!I.value,$pending:P.value},$params:f.value,...w.value})),C=computed(()=>Ve(t)?typeof t.value.active=="function"?t.value.active(le.value):!!t.value.active:true);function k(S){let j="",R=e?e[r]?.[S]:void 0;if(R&&(typeof R=="function"?j=R(le.value):j=R),Ve(t)){let N=`_${S}_patched`;R&&!t.value[N]||(typeof t.value[S]=="function"?j=t.value[S](le.value):j=t.value[S]??"");}return j}let me=computed(()=>{let S=k("message");return oe(S)&&(S="This field is not valid"),S}),Re=computed(()=>k("tooltip")),O=computed(()=>Ve(t)&&t.value.type?t.value.type:r),V=computed(()=>Ve(t)?t.value.validator:t.value),f=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),m=computed(()=>`${a}.${O.value}`);return {$active:C,$message:me,$type:O,$validator:V,$params:f,$path:m,$tooltip:Re,$fieldCorrect:K,$fieldError:L,$fieldDirty:$,$fieldPending:J,$fieldInvalid:H}}),d=watch(p?.$params,()=>{(!c.$silent.value||c.$rewardEarly.value&&p.$fieldError.value)&&Q();});}y();function h(){I.value=true,p.$fieldDirty.value&&(P.value=true);}async function x(){let $=false;try{let L=p.$validator.value;if(typeof L!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let H=L(n.value,...p.$params.value),J=n.value;h();let K;if(H instanceof Promise?K=await H:K=H,n.value!==J)return !0;if(typeof K=="boolean")$=K;else {let{$valid:le,...C}=K;$=le,w.value=C;}}catch{$=false;}finally{P.value=false;}return $}let T=Ge(x,i??200);async function Q(){try{u.value=!0;let $=!1;if(b.value=!0,$e(t.value)&&t.value._async)$=await T();else {let L=p.$validator.value,H=L(n.value,...p.$params.value);if(H instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(H!=null)if(typeof H=="boolean")$=H;else {let{$valid:J,...K}=H;$=J,w.value=K;}}return I.value=$,$}catch{return false}finally{u.value=false,b.value=false;}}function s(){I.value=true,w.value={},P.value=false,u.value=false,y();}function o(){d(),g.stop(),g=effectScope();}return reactive({...p,$pending:P,$valid:I,$metadata:w,$haveAsync:B,$maybePending:b,$validating:u,$parse:Q,$unwatch:o,$watch:y,$reset:s})}function Ce({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:l,options:i,externalErrors:c,schemaErrors:g,schemaMode:p,onUnwatch:d,$isArray:B,initialState:b,shortcuts:P,onValidate:I}){let w=effectScope(),u,y=[],h,T,Q,s,o=()=>{};function $(){let v=t.value,z=l.checkRuleDeclEntry(n,v);k.value=Object.fromEntries(Object.entries(v).filter(([A])=>A.startsWith("$"))),J(),C.value=Object.fromEntries(Object.entries(t.value).filter(([A])=>!A.startsWith("$")).map(([A,ee])=>{if(ee){let se=toRef(()=>ee);return [A,kt({modifiers:{$silent:u.$silent,$rewardEarly:u.$rewardEarly},customMessages:r,rule:se,ruleKey:A,state:e,path:n,storage:l,$debounce:k.value.$debounce})]}return []}).filter(A=>!!A.length)),u.processShortcuts(),L(),z?.valid!=null&&(u.$dirty.value=l.getDirtyState(n),(u.$dirty.value&&!u.$silent.value||u.$rewardEarly.value&&u.$error.value)&&o()),l.addRuleDeclEntry(n,v);}function L(){o=u.$debounce.value?Ge(le,u.$debounce.value??u.$haveAnyAsyncRule?100:0):le;}function H(){C.value&&Object.entries(C.value).forEach(([v,z])=>{z.$unwatch();}),T(),s?.(),u.$dirty.value&&l.setDirtyEntry(n,u.$dirty.value),h?.(),w.stop(),w=effectScope(),y.forEach(v=>v.stop()),y=[],d?.(),Q?.();}function J(){C.value&&Object.entries(C.value).forEach(([v,z])=>{z.$watch();}),u=w.run(()=>{let v=ref(false),z=ref(false),A=computed(()=>v.value),ee=computed(()=>k.value.$debounce),se=computed(()=>k.value.$deepCompare!=null?k.value.$deepCompare:false),ge=computed(()=>k.value.$lazy!=null?k.value.$lazy:unref(i.lazy)!=null?unref(i.lazy):false),fe=computed(()=>k.value.$rewardEarly!=null?k.value.$rewardEarly:unref(i.rewardEarly)!=null?unref(i.rewardEarly):false),Te=computed(()=>k.value.$clearExternalErrorsOnChange!=null?k.value.$clearExternalErrorsOnChange:unref(i.clearExternalErrorsOnChange)!=null?unref(i.clearExternalErrorsOnChange):!E.value),E=computed(()=>fe.value?true:k.value.$silent!=null?k.value.$silent:unref(i.silent)!=null?unref(i.silent):false),_=computed(()=>k.value.$autoDirty!=null?k.value.$autoDirty:unref(i.autoDirty)!=null?unref(i.autoDirty):true),D=computed(()=>Object.entries(C.value).some(([ie,te])=>te.$validating)),F=computed({get:()=>e.value,set(ie){h(),e.value=ie,K();}}),ve=computed(()=>Ae.value&&!be.value&&v.value),$t=computed(()=>it({field:{$rules:C.value,$error:ve.value,$externalErrors:c?.value,$schemaErrors:g?.value}})),St=computed(()=>it({field:{$rules:C.value,$error:ve.value,$externalErrors:c?.value,$schemaErrors:g?.value},silent:true})),et=computed(()=>v.value?b.value instanceof Date&&e.value instanceof Date?tt(b.value).getDate()!==tt(e.value).getDate():b.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(b.value)?!We(e.value,b.value,k.value.$deepCompare):b.value!==e.value:false),Tt=computed(()=>et.value),bt=computed(()=>Ut({field:{$rules:C.value}})),ht=computed(()=>(E.value||A.value)&&!(Ae.value||be.value)),be=computed(()=>z.value||!fe.value?Object.entries(C.value).some(([ie,te])=>te.$pending):false),Ae=computed(()=>c?.value?.length||g?.value?.length?true:ke.value?false:!fe.value||fe.value?Object.entries(C.value).some(([te,Me])=>!(Me.$valid&&!Me.$maybePending)):false),xt=computed(()=>a),ke=computed(()=>Object.keys(t.value).filter(([ie])=>!ie.startsWith("$")).length===0&&!p),Et=computed(()=>c?.value?.length||ke.value?false:v.value&&!oe(e.value)&&!D.value&&!be.value?p?!g?.value?.length:Object.values(C.value).some(te=>te.$active)?Object.values(C.value).filter(te=>te.$active).every(te=>te.$valid):false:false),ir=computed(()=>Object.entries(C.value).some(([ie,te])=>te.$haveAsync));function ur(){P?.fields&&Object.entries(P.fields).forEach(([ie,te])=>{let Me=effectScope();Ct[ie]=Me.run(()=>{let Dt=ref();return watchEffect(()=>{Dt.value=te(reactive({$dirty:v,$externalErrors:c?.value??[],$value:e,$silentValue:F,$rules:C,$error:ve,$pending:be,$invalid:Ae,$correct:Et,$errors:$t,$ready:ht,$silentErrors:St,$anyDirty:A,$tooltips:bt,$name:xt,$inactive:ke,$edited:et,$anyEdited:Tt}));}),Dt}),y.push(Me);});}let Ct={};return {$error:ve,$pending:be,$invalid:Ae,$correct:Et,$debounce:ee,$deepCompare:se,$lazy:ge,$errors:$t,$ready:ht,$silentErrors:St,$rewardEarly:fe,$autoDirty:_,$silent:E,$clearExternalErrorsOnChange:Te,$anyDirty:A,$edited:et,$anyEdited:Tt,$name:xt,$haveAnyAsyncRule:ir,$shortcuts:Ct,$validating:D,$tooltips:bt,$dirty:v,processShortcuts:ur,$silentValue:F,$inactive:ke}}),K(),T=watch(u.$dirty,v=>{l.setDirtyEntry(n,v),Object.values(C.value).forEach(z=>{z.$fieldDirty=v;});}),s=watch([u.$error,u.$correct,u.$invalid,u.$pending],()=>{Object.values(C.value).forEach(v=>{v.$fieldError=u.$error.value,v.$fieldInvalid=u.$invalid.value,v.$fieldPending=u.$pending.value,v.$fieldCorrect=u.$correct.value;});}),Q=watch(u.$haveAnyAsyncRule,L);}function K(){h=watch(e,()=>{u.$autoDirty.value&&!u.$silent.value&&(u.$dirty.value||(u.$dirty.value=true)),t.value instanceof Function&&$(),(!u.$silent.value||u.$rewardEarly.value&&u.$error.value)&&o(),u.$clearExternalErrorsOnChange.value&&f();},{deep:B?true:Le?1:true});}function le(){Object.values(C.value).forEach(v=>{v.$parse();});}let C=ref({}),k=ref({});$();function me(v,z){if(f(),u.$dirty.value=false,l.setDirtyEntry(n,false),!z)if(v?.toInitialState)e.value=G(b.value);else if(v?.toState){let A;typeof v?.toState=="function"?A=v?.toState():A=v?.toState,b.value=G(A),e.value=G(A);}else b.value=M(e.value)?G(e.value):Array.isArray(e.value)?[...e.value]:e.value;v?.clearExternalErrors&&f(),z||Object.entries(C.value).forEach(([A,ee])=>{ee.$reset();}),!u.$lazy.value&&!u.$silent.value&&!z&&Object.values(C.value).forEach(A=>A.$parse());}function Re(v=true,z=false){u.$dirty.value||(u.$dirty.value=true),z&&v?(!u.$silent.value||u.$rewardEarly.value&&u.$error.value)&&o():v&&o();}async function O(){try{if(p)return I?(Re(!1),I()):{valid:!1,data:e.value};let v=e.value;if(!u.$dirty.value)u.$dirty.value=!0;else if(!u.$silent.value&&u.$dirty.value&&!u.$pending.value)return {valid:!u.$error.value,data:v};return p?{valid:!g?.value?.length,data:v}:oe(C.value)?{valid:!0,data:v}:{valid:(await Promise.allSettled(Object.entries(C.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:v}}catch{return {valid:false,data:e.value}}}function V(v=true){return u.$dirty.value?e.value:v?{_null:true}:null}function f(){c?.value?.length&&(c.value=[]);}!u.$lazy.value&&!u.$dirty.value&&!u.$silent.value&&o();let{$shortcuts:m,$validating:S,$autoDirty:j,$rewardEarly:R,$clearExternalErrorsOnChange:N,$haveAnyAsyncRule:X,$debounce:Y,$lazy:Z,...ce}=u;return reactive({...ce,$externalErrors:c,$value:e,$rules:C,...m,$reset:me,$touch:Re,$validate:O,$unwatch:H,$watch:J,$extractDirtyFields:V,$clearExternalErrors:f})}function Rt({$id:e,path:t,index:r,options:n,storage:a,stateValue:l,customMessages:i,rules:c,externalErrors:g,schemaErrors:p,initialState:d,shortcuts:B,fieldName:b,schemaMode:P}){let I=c.$key?c.$key:Ee(),w=`${t}.${String(I)}`;typeof l.value=="object"&&l.value!=null&&(l.value.$id?w=`${t}.${l.value.$id}`:Object.defineProperties(l.value,{$id:{value:I,enumerable:false,configurable:false,writable:false}}));let u=toRef(g?.value??[],r),y=computed(()=>p?.value?.[r]),h=De({state:l,rulesDef:toRef(()=>c),customMessages:i,path:w,storage:a,options:n,externalErrors:u,schemaErrors:y,initialState:d,shortcuts:B,fieldName:b,schemaMode:P});if(h){let x=l.value?.$id;h.$id=x??String(I),a.addArrayStatus(e,h.$id,h);}return h}function Ht({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:i,schemaErrors:c,schemaMode:g,initialState:p,shortcuts:d,fieldName:B}){let b=effectScope(),P,I=effectScope(),w,u=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let y=ref(),h=ref(e.value),x=ref({}),T,Q,s=ref({}),o=a.getCollectionsEntry(n);w=I.run(()=>({isPrimitiveArray:computed(()=>e.value?.length?Array.isArray(e.value)&&e.value.length?e.value.every(m=>typeof m!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(m=>$e(m)||typeof m=="function"):false:false)})),$(),J();function $(){x.value=Object.fromEntries(Object.entries(t.value).filter(([f])=>f.startsWith("$"))),typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(y.value=Ee(),Object.defineProperties(e.value,{$id:{value:y.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(y.value=e.value.$id)),h.value=s.value.$value,Array.isArray(e.value)&&!w.isPrimitiveArray.value?o.value=e.value.filter(f=>typeof f=="object").map((f,m)=>{let{scope:S,unwrapped:j}=ot(t.value.$each,toRef(()=>f),m);S&&u.push(S);let R=toRef(p.value??[],m),N=toRef(i?.value??{},"$each"),X=computed(()=>c?.value?.$each),Y=Rt({$id:y.value,path:n,customMessages:r,rules:j??{},stateValue:toRef(()=>f),index:m,options:l,storage:a,externalErrors:N,schemaErrors:X,initialState:R,shortcuts:d,fieldName:B,schemaMode:g});return Y||null}).filter(f=>!!f):o.value=[],s.value=Ce({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:toRef(i?.value??{},"$self"),schemaErrors:computed(()=>c?.value?.$self),$isArray:true,initialState:p,shortcuts:d,fieldName:B,schemaMode:g});}function L(){if(Array.isArray(e.value)&&!w.isPrimitiveArray.value){let f=G(o.value);o.value=e.value.filter(m=>typeof m=="object").map((m,S)=>{let j=toRef(()=>m);if(m.$id&&o.value.find(R=>R.$id===m.$id)){let R=a.getArrayStatus(y.value,m.$id);return R?(R.$value=j,R):null}else {let{scope:R,unwrapped:N}=ot(t.value.$each,j,S);R&&u.push(R);let X=toRef(i?.value??{},"$each"),Y=computed(()=>c?.value?.$each??[]),Z=Rt({$id:y.value,path:n,customMessages:r,rules:N??{},stateValue:j,index:S,options:l,storage:a,externalErrors:X,schemaErrors:Y,initialState:toRef(p.value??[],S),shortcuts:d,fieldName:B,schemaMode:g});return Z||null}}).filter(m=>!!m),f.filter(m=>!e.value?.find(S=>m.$id===S.$id)).forEach((m,S)=>{a.deleteArrayStatus(y.value,S.toString());});}else o.value=[];}function H(){T=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?$():L();},{deep:Le?1:true,flush:"pre"}),Q=watch(e,()=>{P.$autoDirty.value&&!P.$silent.value&&le(false,true);},{flush:"pre"});}function J(){H(),b=effectScope(),P=b.run(()=>{let f=computed({get:()=>e.value,set(E){T?.(),Q?.(),e.value=E,H();}}),m=computed(()=>s.value.$dirty&&(!o.value.length||o.value.every(E=>E.$dirty))),S=computed(()=>s.value.$anyDirty||o.value.some(E=>E.$anyDirty)),j=computed(()=>s.value.$invalid||o.value.some(E=>E.$invalid)),R=computed(()=>(oe(s.value.$rules)?true:s.value.$correct)&&(!o.value.length||o.value.every(E=>E.$correct||E.$anyDirty&&!E.$invalid))),N=computed(()=>s.value.$error||o.value.some(E=>E.$error)),X=computed(()=>!(j.value||Y.value)),Y=computed(()=>s.value.$pending||o.value.some(E=>E.$pending)),Z=computed(()=>!!o.value.length&&o.value.every(E=>E.$edited)),ce=computed(()=>s.value.$anyEdited||o.value.some(E=>E.$anyEdited)),v=computed(()=>({$self:s.value.$errors,$each:o.value.map(E=>E.$errors)})),z=computed(()=>({$self:s.value.$silentErrors,$each:o.value.map(E=>E.$silentErrors)})),A=computed(()=>x.value.$rewardEarly!=null?x.value.$rewardEarly:unref(l.rewardEarly)!=null?unref(l.rewardEarly):false),ee=computed(()=>A.value?true:x.value.$silent!=null?x.value.$silent:unref(l.silent)!=null?unref(l.silent):false),se=computed(()=>x.value.$autoDirty!=null?x.value.$autoDirty:unref(l.autoDirty)!=null?unref(l.autoDirty):true),ge=computed(()=>B);function fe(){d?.collections&&Object.entries(d?.collections).forEach(([E,_])=>{let D=effectScope();Te[E]=D.run(()=>{let F=ref();return watchEffect(()=>{F.value=_(reactive({$dirty:m,$error:N,$silentValue:f,$pending:Y,$invalid:j,$correct:R,$errors:v,$ready:X,$silentErrors:z,$anyDirty:S,$name:ge,$each:o,$self:s,$value:e,$edited:Z,$anyEdited:ce}));}),F}),u.push(D);});}let Te={};return fe(),{$dirty:m,$anyDirty:S,$invalid:j,$correct:R,$error:N,$pending:Y,$errors:v,$silentErrors:z,$ready:X,$name:ge,$shortcuts:Te,$silentValue:f,$edited:Z,$anyEdited:ce,$rewardEarly:A,$silent:ee,$autoDirty:se}}),w.isPrimitiveArray.value&&t.value.$each&&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`);}function K(){T?.(),s.value&&s.value.$unwatch(),o.value&&o.value.forEach(f=>{"$dirty"in f&&f.$unwatch();}),b.stop(),b=effectScope(),I.stop(),I=effectScope(true),u.forEach(f=>f.stop()),u=[];}function le(f=true,m=false){s.value.$touch(f,m),o.value.forEach(S=>{S.$touch(f,m);});}function C(f,m){if(K(),!m)if(f?.toInitialState)e.value=G(p.value);else if(f?.toState){let S;typeof f?.toState=="function"?S=f?.toState():S=f?.toState,p.value=G(S),e.value=G(S);}else p.value=G(e.value);f?.clearExternalErrors&&me(),s.value.$reset(f,m),o.value.forEach(S=>{S.$reset(f,true);}),m||$();}async function k(){let f=e.value;try{return {valid:(await Promise.allSettled([s.value.$validate(),...o.value.map(j=>j.$validate())])).every(j=>j.status==="fulfilled"?j.value.valid===!0:!1),data:f}}catch{return {valid:false,data:f}}}function me(){s.value.$clearExternalErrors(),o.value.forEach(f=>{f.$clearExternalErrors();});}function Re(f=true){let m=o.value.map(S=>{if(_t(S))return S.$extractDirtyFields(f)});return f&&m.every(S=>oe(S))&&(m=[]),m}let{$shortcuts:O,...V}=P;return reactive({$self:s,...V,...O,$each:o,$value:e,$validate:k,$unwatch:K,$watch:J,$touch:le,$reset:C,$extractDirtyFields:Re,$clearExternalErrors:me})}function Je({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:a,schemaErrors:l,rootSchemaErrors:i,validationGroups:c,initialState:g,fieldName:p,...d}){let B=effectScope(),b,P=[],I=null,w=null,u=null,y=null;async function x(O=true){let V=Object.entries(e.value),f=Object.fromEntries(V.filter(([R,N])=>!!N).map(([R,N])=>{if(N){let X=toRef(t.value??{},R),Y=toRef(()=>N),Z=toRef(a?.value??{},R),ce=computed(()=>l?.value?.[R]),v=toRef(g?.value??{},R);return [R,De({state:X,rulesDef:Y,path:r?`${r}.${R}`:R,externalErrors:Z,schemaErrors:ce,initialState:v,fieldName:R,...d})]}return []})),m=Object.fromEntries(Object.entries(unref(a)??{}).filter(([R,N])=>!(R in e.value)&&!!N).map(([R])=>{let N=toRef(t.value??{},R),X=toRef(a?.value??{},R),Y=computed(()=>l?.value?.[R]),Z=toRef(g?.value??{},R);return [R,De({state:N,rulesDef:computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:X,schemaErrors:Y,initialState:Z,fieldName:R,...d})]})),S=Object.fromEntries(Object.entries(unref(l)??{}).map(([R])=>{let N=toRef(t.value??{},R),X=toRef(a?.value??{},R),Y=computed(()=>l?.value?.[R]),Z=toRef(g?.value??{},R);return [R,De({state:N,rulesDef:computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:X,schemaErrors:Y,initialState:Z,fieldName:R,...d})]})),j=Object.fromEntries(Object.entries(t.value??{}).filter(([R])=>!(R in e.value)&&!(R in(m??{}))&&!(R in(S??{}))).map(([R])=>{let N=toRef(t.value??{},R),X=toRef(a?.value??{},R),Y=computed(()=>l?.value?.[R]),Z=toRef(g?.value??{},R);return [R,De({state:N,rulesDef:computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:X,schemaErrors:Y,initialState:Z,fieldName:R,...d})]}));T.value={...f,...m,...S,...j},O&&o();}let T=d.storage.getFieldsEntry(r);x();function Q(){a&&(u=watch(a,()=>{$(),x();},{deep:true}));}function s(){y=watch(t,()=>{$(),x(),b.$autoDirty.value&&!b.$silent.value&&J(false,true);});}function o(){n&&(I?.(),I=watch(n,()=>{$(),x();},{deep:true,flush:"pre"}),Q()),i&&(w?.(),w=watch(i,()=>{$(),x();},{deep:true,flush:"post"})),s(),b=B.run(()=>{let O=computed({get:()=>t.value,set(_){$(),t.value=_,x(),b.$autoDirty.value&&!b.$silent.value&&J(false,true);}}),V=computed({get:()=>t.value,set(_){$(),t.value=_,x();}}),f=computed(()=>!!Object.entries(T.value).length&&Object.entries(T.value).every(([_,D])=>D?.$dirty)),m=computed(()=>Object.entries(T.value).some(([_,D])=>D?.$anyDirty)),S=computed(()=>!!Object.entries(T.value).length&&Object.entries(T.value).some(([_,D])=>D?.$invalid)),j=computed(()=>{let _=Object.entries(T.value).filter(([D,F])=>st(F)?!F.$inactive:true);return _.length?_.every(([D,F])=>d.schemaMode?F.$correct:st(F)?"required"in F.$rules&&F.$rules.required.$active?F?.$correct:!F.$invalid&&!F.$pending:F?.$correct):false}),R=computed(()=>!!Object.entries(T.value).length&&Object.entries(T.value).some(([_,D])=>D?.$error)),N=computed(()=>unref(d.options.rewardEarly)!=null?unref(d.options.rewardEarly):false),X=computed(()=>unref(d.options.silent)!=null?unref(d.options.silent):!!N.value),Y=computed(()=>unref(d.options.autoDirty)!=null?unref(d.options.autoDirty):true),Z=computed(()=>(X.value||m.value)&&!(S.value||v.value)),ce=ref(false),v=computed(()=>ce.value||Object.entries(T.value).some(([_,D])=>D?.$pending)),z=computed(()=>Object.fromEntries(Object.entries(T.value).map(([_,D])=>[_,D?.$errors]))),A=computed(()=>Object.fromEntries(Object.entries(T.value).map(([_,D])=>[_,D?.$silentErrors]))),ee=computed(()=>!!Object.entries(T.value).length&&Object.entries(T.value).every(([_,D])=>D?.$edited)),se=computed(()=>Object.entries(T.value).some(([_,D])=>D?.$anyEdited)),ge=computed(()=>p);function fe(){d.shortcuts?.nested&&Object.entries(d.shortcuts.nested).forEach(([_,D])=>{let F=effectScope();E[_]=F.run(()=>{let ve=ref();return watchEffect(()=>{ve.value=D(reactive({$dirty:f,$value:t,$silentValue:V,$error:R,$pending:v,$invalid:S,$correct:j,$ready:Z,$anyDirty:m,$name:ge,$silentErrors:A,$errors:z,$fields:T,$edited:ee,$anyEdited:se}));}),ve}),P.push(F);});}let Te=computed({get:()=>c?Object.fromEntries(Object.entries(c?.(T.value)??{}).map(([_,D])=>D.length?[_,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(F=>[F,wt(D,F)])),...Object.fromEntries(["$errors","$silentErrors"].map(F=>[F,Pt(D,F)]))}]:[])):{},set(){}}),E={};return fe(),{$dirty:f,$anyDirty:m,$invalid:S,$correct:j,$error:R,$pending:v,$errors:z,$silentErrors:A,$ready:Z,$name:ge,$shortcuts:E,$groups:Te,$silentValue:V,$edited:ee,$anyEdited:se,$localPending:ce,$autoDirty:Y,$silent:X,$value:O}});}function $(){I?.(),u?.(),y?.(),w?.(),P=[],b={},T.value&&Object.entries(T.value).forEach(([O,V])=>{V.$unwatch();});}function L(){Object.entries(T.value).forEach(([O,V])=>{V.$clearExternalErrors();});}function H(O,V){if(u?.(),$(),!V)if(O?.toInitialState)t.value=G({...g.value??{}});else if(O?.toState){let f;typeof O?.toState=="function"?f=O?.toState():f=O?.toState,g.value=G(f),t.value=G(f);}else g.value=G(t.value);Object.values(T.value).forEach(f=>{f.$reset(O,true);}),O?.clearExternalErrors&&L(),Q(),V||x();}function J(O=true,V=false){Object.values(T.value).forEach(f=>{f.$touch(O,V);});}function K(O){return O.filter(([V,f])=>M(f)?!(f&&typeof f=="object"&&"_null"in f)&&!oe(f):Array.isArray(f)?f.length:true)}function le(O=true){let V=Object.entries(T.value).map(([f,m])=>[f,m.$extractDirtyFields(O)]);return O&&(V=K(V)),Object.fromEntries(V)}async function C(){try{if(d.schemaMode)return d.onValidate?(J(!1),b.$localPending.value=!0,d.onValidate()):{valid:!1,data:t.value};{let O=t.value;return {valid:(await Promise.allSettled(Object.values(T.value).map(m=>m.$validate()))).every(m=>m.status==="fulfilled"?m.value.valid===!0:!1),data:O}}}catch{return {valid:false,data:t.value}}finally{b.$localPending.value=false;}}let{$shortcuts:k,$localPending:me,...Re}=b;return reactive({...Re,...k,$fields:T,$reset:H,$touch:J,$validate:C,$unwatch:$,$watch:o,$clearExternalErrors:L,$extractDirtyFields:le})}function De({rulesDef:e,...t}){if(Vt(e,t.state,t.schemaMode))return Ht({rulesDef:e,...t});if(He(t.state,e)){if(Be(t.state))return Je({rulesDef:e,...t});{let n=effectScope().run(()=>{let i=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,c=>{i.value=c;},{deep:true}),watch(i,c=>{t.state.value=c;},{deep:true}),{fakeState:i}}),{state:a,...l}=t;return Je({rulesDef:e,...l,state:n.fakeState})}}else if(ze(e))return Ce({rulesDef:e,...t})}function Pe({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:l,schemaErrors:i,schemaMode:c=false,onValidate:g}){let p=lt(),d=ref();return He(n,r)?d.value=Je({rootRules:r,rulesDef:r,state:n,customMessages:a?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:l,fieldName:"root",path:"",schemaErrors:i,rootSchemaErrors:i,schemaMode:c,onValidate:g}):ze(r)&&(d.value=Ce({rulesDef:r,state:n,customMessages:a?.(),storage:p,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:l,fieldName:"root",path:"",schemaMode:c,schemaErrors:i,onValidate:g})),getCurrentScope()&&onScopeDispose(()=>{d.value?.$unwatch();}),reactive({regle:d})}function Ye(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,silent:t?.silent,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(l,i,c){let g=isRef(i)?i:typeof i=="function"?void 0:computed(()=>i),p={...n,...c},d=isRef(l)?l:ref(l),B=shallowRef(g??{});typeof i=="function"&&watchEffect(()=>{B.value=i(d),triggerRef(B);});let b=ref(M(d.value)?{...G(d.value)}:G(d.value));return {r$:Pe({scopeRules:B,state:d,options:p,initialState:b,customRules:e,shortcuts:r}).regle}}return a}var Qe=Ye();function Xe(){function e(t,r){return r}return e}var yt=Xe();function Jt({rules:e,modifiers:t,shortcuts:r}){let n=Ye(e,t,r);n.__config={rules:e,modifiers:t,shortcuts:r};let a=Xe();return {useRegle:n,inferRules:a}}function Yt(e,{rules:t,modifiers:r,shortcuts:n}){let a=e.__config??{},l=()=>({...a.rules?.(),...t?.()}),i=a.modifiers&&r?je(a.modifiers,r):r,c=a.shortcuts&&n?je(a.shortcuts,n):n,g=Ye(l,i,c);g.__config={rules:l,modifiers:i,shortcuts:c};let p=Xe();return {useRegle:g,inferRules:p}}function Ne(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(s=>s.$value):Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$value])),set:s=>{r||typeof s=="object"&&Object.entries(s).forEach(([o,$])=>e[o].$value=$);}}),a=computed({get:()=>Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$silentValue])),set:s=>{typeof s=="object"&&Object.entries(s).forEach(([o,$])=>e[o].$silentValue=$);}}),l=computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,$])=>$?.$dirty)}),i=computed(()=>Object.entries(e).some(([s,o])=>o?.$anyDirty)),c=computed(()=>Object.entries(e).some(([s,o])=>o?.$invalid)),g=computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,$])=>$?.$correct||$.$anyDirty&&!$.$invalid)}),p=computed(()=>Object.entries(e).some(([s,o])=>o?.$error)),d=computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,$])=>$?.$ready)}),B=computed(()=>Object.entries(e).some(([s,o])=>o?.$pending)),b=computed(()=>r?Object.entries(e).map(([s,o])=>o.$errors):Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$errors]))),P=computed(()=>r?Object.entries(e).map(([s,o])=>o.$silentErrors):Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$silentErrors]))),I=computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,$])=>$?.$edited)}),w=computed(()=>Object.entries(e).some(([s,o])=>o?.$anyEdited)),u=computed(()=>r?Object.values(e):e);function y(s){Object.values(e).forEach(o=>{o.$reset(s);});}function h(){Object.values(e).forEach(s=>{s.$touch();});}function x(s=true){return Object.values(e).map(o=>o.$extractDirtyFields(s))}function T(){Object.values(e).forEach(s=>{s.$clearExternalErrors();});}async function Q(){try{let s=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(L=>L.$validate()))).every(L=>L.status==="fulfilled"?L.value.valid===!0:!1),data:s}}catch{return {valid:false,data:n.value}}}return reactive({...!r&&{$silentValue:a},$errors:b,$silentErrors:P,$instances:u,$value:n,$dirty:l,$anyDirty:i,$invalid:c,$correct:g,$error:p,$pending:B,$ready:d,$edited:I,$anyEdited:w,$reset:y,$touch:h,$validate:Q,$extractDirtyFields:x,$clearExternalErrors:T})}function Xt(e,t){function r(n){let a=computed(()=>toValue(n));c();let l=ref(g(e.value)),i=reactive({r$:l});function c(){a.value&&!e.value[a.value]&&(e.value[a.value]={});}watch(a,c),watch(e,p=>{l.value=g(p);},{deep:true});function g(p){if(a.value){let d=p[a.value]??{};return Ne(d,!t.asRecord)}else return Ne(p["~~global"]??{},!t.asRecord)}return {r$:i.r$}}return {useCollectScope:r}}function tr(e,t){let r=t??Qe;return {useScopedRegle:(a,l,i)=>{let{namespace:c,scopeKey:g,...p}=i??{};r.__config??={};let d=computed(()=>toValue(c)),B=ref(`${Object.keys(e.value).length+1}-${Ee()}`),b=computed(()=>i?.scopeKey??`instance-${B.value}`),{r$:P}=r(a,l,p);w(),jt(I),watch(d,(u,y)=>{I(y),w();}),getCurrentInstance()&&onMounted(()=>{let u=getCurrentInstance();typeof window<"u"&&u?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(u?.proxy?.$el?.parentElement)&&I();});function I(u){let y=u??d.value;y?e.value[y]&&delete e.value[y][b.value]:e.value["~~global"][b.value]&&delete e.value["~~global"][b.value];}function w(){d.value?(e.value[d.value]||(e.value[d.value]={}),e.value[d.value][b.value]=P):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][b.value]=P);}return {r$:P,dispose:I,register:w}}}}function Ze(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Ft(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=tr(r,e?.customUseRegle),{useCollectScope:a}=Xt(r,{asRecord:e?.asRecord});return {useScopedRegle:n,useCollectScope:a}}var {useCollectScope:mt,useScopedRegle:gt}=Ze();function ar(e,t,r){let n=computed(()=>toValue(e)[t]);return computed(()=>{let l=r.find(i=>{if(i[t]&&"literal"in i[t]){let c=i[t].literal;if($e(c))return unref(c._params?.[0])===n.value}});if(l)return l;{let i=r.find(c=>M(c[t])&&!Object.keys(c[t]).some(g=>g==="literal"));return i||{}}})}function vt(e,t,r){return M(e[t])&&"$value"in e[t]&&e[t]?.$value===r}function lr(e,t,r){let n=isRef(e)?toRef(e.value,"$fields"):toRef(e,"$fields"),a=ref();return watch(n,async()=>{await nextTick(),vt(n.value,t,r)?a.value=n.value:a.value=void 0;},{immediate:true,flush:"pre"}),a}function or(e){return e}function sr(e,t){return r=>je({...e},t(r))}
2
- export{rt as InternalRuleType,at as createRule,Ze as createScopedUseRegle,ar as createVariant,Jt as defineRegleConfig,or as defineRules,Yt as extendRegleConfig,ut as flatErrors,yt as inferRules,Ne as mergeRegles,vt as narrowVariant,sr as refineRules,re as unwrapRuleParameters,mt as useCollectScope,Qe as useRegle,Pe as useRootStorage,gt as useScopedRegle,lr as variantToRef};