@homedev/fields 1.2.14 → 1.2.16

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.
Files changed (2) hide show
  1. package/dist/index.js +2 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var s=Object.create;var{getPrototypeOf:a,defineProperty:m,getOwnPropertyNames:o}=Object;var P0=Object.prototype.hasOwnProperty;var L=(P,y,b)=>{b=P!=null?s(a(P)):{};let D=y||!P||!P.__esModule?m(b,"default",{value:P,enumerable:!0}):b;for(let M of o(P))if(!P0.call(D,M))m(D,M,{get:()=>P[M],enumerable:!0});return D};var A=(P,y)=>()=>(y||P((y={exports:{}}).exports,y),y.exports);var X=A(($0,h)=>{var{defineProperty:Q,getOwnPropertyNames:b0,getOwnPropertyDescriptor:y0}=Object,F0=Object.prototype.hasOwnProperty,d=new WeakMap,E0=(P)=>{var y=d.get(P),b;if(y)return y;if(y=Q({},"__esModule",{value:!0}),P&&typeof P==="object"||typeof P==="function")b0(P).map((D)=>!F0.call(y,D)&&Q(y,D,{get:()=>P[D],enumerable:!(b=y0(P,D))||b.enumerable}));return d.set(P,y),y},D0=(P,y)=>{for(var b in y)Q(P,b,{get:y[b],enumerable:!0,configurable:!0,set:(D)=>y[b]=()=>D})},w={};D0(w,{splitWithQuotes:()=>k0,splitNested:()=>M0});h.exports=E0(w);var M0=(P,y,b="(",D=")")=>{let M=0,E="",k=[];for(let F of P){if(E+=F,F===b)M++;if(F===D)M--;if(M===0&&F===y)k.push(E.slice(0,-1)),E=""}if(E)k.push(E);return k},k0=(P,y=",")=>{let b=[],D=P.length,M=y.length,E=0,k=(F)=>{if(F+M>D)return!1;for(let S=0;S<M;S++)if(P[F+S]!==y[S])return!1;return!0};while(E<D){while(E<D&&P[E]===" ")E++;if(E>=D)break;let F="",S=P[E]==='"'||P[E]==="'";if(S){let C=P[E++];while(E<D&&P[E]!==C)F+=P[E++];if(E<D)E++}else{while(E<D&&!k(E)){let C=P[E];if(C==='"'||C==="'"){F+=C,E++;while(E<D&&P[E]!==C)F+=P[E++];if(E<D)F+=P[E++]}else F+=P[E++]}F=F.trim()}if(F)b.push({value:F,quoted:S});if(k(E))E+=M}return b}});var N=A((L0,r)=>{var{defineProperty:Z,getOwnPropertyNames:S0,getOwnPropertyDescriptor:O0}=Object,C0=Object.prototype.hasOwnProperty,x=new WeakMap,H0=(P)=>{var y=x.get(P),b;if(y)return y;if(y=Z({},"__esModule",{value:!0}),P&&typeof P==="object"||typeof P==="function")S0(P).map((D)=>!C0.call(y,D)&&Z(y,D,{get:()=>P[D],enumerable:!(b=O0(P,D))||b.enumerable}));return x.set(P,y),y},J0=(P,y)=>{for(var b in y)Z(P,b,{get:y[b],enumerable:!0,configurable:!0,set:(D)=>y[b]=()=>D})},g={};J0(g,{select:()=>K});r.exports=H0(g);var _0=X(),Y=(P,y,b,D)=>{if(P.startsWith("{")){let M=P.substring(1,P.length-1);return K(y,M,b).toString()}return D?P:void 0},T0=(P,y,b,D)=>{let M=Y(y,b,D);if(M)return K(P,M,D);let E=/^\[([^=\]]*)([=]*)([^\]]*)\]$/.exec(y);if(E){let[F,S,C,H]=E,J=Y(S.trim(),b,D,!0),_=Y(H.trim(),b,D,!0);if(Array.isArray(P))switch(C){case"==":case"=":return P.find((f)=>f[J]==_)}}let k=/^([^[\]]*)\[([^\]]*)]/.exec(y);if(k)return P[k[1]][k[2]];return P[y]},K=(P,y,b)=>{let D=void 0,M=void 0;y??="";let E=(H)=>H?.endsWith("?")?[H.substring(0,H.length-1),!0]:[H,!1],k=(H,J)=>{let[_,f]=E(J.pop());if(_){let z=T0(H,_,P,b);if(z===void 0){if(f||b?.defaultValue!==void 0||b?.optional)return;throw Error(`Unknown path element: "${_}" in "${y}"`)}return D=H,M=_,k(z,J)}if(b?.set&&M)D[M]=b?.set;return H},F=_0.splitNested(y,b?.separator??".","{","}"),S=F.length>0&&F[F.length-1].startsWith("?=")?F.pop()?.substring(2):void 0;F.reverse();let C=k(P,F);if(C===void 0)return S??b?.defaultValue;return C}});var v=L(X(),1);var T;((P)=>{P[P.Explore=0]="Explore",P[P.SkipSiblings=1]="SkipSiblings",P[P.NoExplore=2]="NoExplore",P[P.ReplaceParent=3]="ReplaceParent",P[P.DeleteParent=4]="DeleteParent",P[P.MergeParent=5]="MergeParent",P[P.ReplaceItem=6]="ReplaceItem",P[P.DeleteItem=7]="DeleteItem"})(T||={});class O{action;by;skipSibilings;reexplore;constructor(P,y,b,D){this.action=P,this.by=y,this.skipSibilings=b,this.reexplore=D}static ReplaceParent(P,y){return new O(3,P,void 0,y)}static SkipSiblings(){return new O(1)}static Explore(){return new O(0)}static NoExplore(){return new O(2)}static DeleteParent(){return new O(4)}static MergeParent(P){return new O(5,P)}static ReplaceItem(P,y){return new O(6,P,y)}static DeleteItem(P){return new O(7,void 0,P)}}var q=async(P,y)=>{let b=async(M)=>{let E=M.key===null,k=E?{action:0}:await y(M);if(M.value&&typeof M.value==="object"&&k.action==0){if(!E)M.path.push(M.key),M.parents.push(M.parent);while(await D(M));if(!E)M.parents.pop(),M.path.pop()}return k},D=async(M)=>{for(let[E,k]of Object.entries(M.value)){let F=await b({key:E,value:k,path:M.path,parent:M.value,parents:M.parents});switch(F.action){case 3:if(!M.key)throw Error("Cannot replace root");if(M.parent[M.key]=F.by,F.reexplore)return M.value=F.by,!0;return;case 4:delete M.parent[M.key];return;case 5:delete M.value[E],Object.assign(M.value,F.by);break;case 1:return;case 6:if(M.value[E]=F.by,F.skipSibilings)return;break;case 7:if(delete M.value[E],F.skipSibilings)return;break}}};await b({key:null,value:P,path:[],parent:null,parents:[]})};var B=L(N(),1),V=(P,y)=>{if(typeof P.value==="string"){if(P.quoted)return P.value;if(P.value.startsWith("[")&&P.value.endsWith("]")){let b=P.value.slice(1,-1);if(b.trim()==="")return[];return b.split(";").map((D)=>{let M=D.trim();if(!isNaN(+M))return+M;return M})}if(P.value.startsWith("{")&&P.value.endsWith("}")){if(P.value.slice(1,-1).trim()==="")return{}}if(P.value==="null")return null;if(P.value==="undefined")return;if(P.value.startsWith("@"))return P.value.slice(1);if(!isNaN(+P.value))return+P.value}return y(P.value)},I=(P,y,b,D,M,E)=>{let k=D?.(P)??P,F=M(k);if(F[0])return F[1];if(!y){let S=B.select(b,P),C=M(S);if(C[0])return C[1]}throw Error(E)},U=(P,y,b,D,M)=>{let E=typeof P.types==="function"?P.types(D,y.value,M):P.types?.[D];if(!E||E==="ref")return V(y,(F)=>B.select(b,F));let k=V(y,()=>y.value);if(Array.isArray(E)){if(!E.includes(k))throw Error(`Argument ${D.toString()} must be one of [${E.join(", ")}]: ${k}`);return k}if(typeof E==="string"){if(E.endsWith("?")){let F=E.slice(0,-1);if(y.value==="null")return O.ReplaceItem(null);if(y.value==="undefined")return O.ReplaceItem(void 0);if(y.value==="")return"";E=F}switch(E){case"any":return k;case"array":return I(k,y.quoted,b,null,(F)=>[Array.isArray(F),F],`Argument ${D.toString()} must be an array: ${k}`);case"object":return I(k,y.quoted,b,null,(F)=>[typeof F==="object"&&F!==null,F],`Argument ${D.toString()} must be an object: ${k}`);case"number":return I(k,y.quoted,b,(F)=>Number(F),(F)=>[!isNaN(F),F],`Argument ${D.toString()} must be a number: ${k}`);case"boolean":return I(k,y.quoted,b,null,(F)=>{if([!0,"true","1",1,"yes","on"].includes(F))return[!0,!0];if([!1,"false","0",0,"no","off"].includes(F))return[!0,!1];if([null,"null","undefined",void 0,""].includes(F))return[!0,!1];if(Array.isArray(F))return[!0,F.length>0];return[!1,!1]},`Argument ${D.toString()} must be a boolean: ${k}`);case"string":return k.toString();default:throw Error(`Unknown type for argument ${D.toString()}: ${E}`)}}return E(k,b,D,y.quoted)};var W=(P,y)=>{let b=P?.[y];if(b===void 0)throw Error(`Unhandled field processor type: ${y}`);return typeof b==="function"?{options:{},fn:b}:{options:b,fn:b.fn}},e=(P)=>!P.quoted&&P.value.startsWith("."),f0=(P)=>{let y={};for(let b of P){if(!e(b))continue;let D=b.value.indexOf("="),M=D>-1?b.value.slice(1,D):b.value.slice(1),E=D>-1?b.value.slice(D+1):"";if(E.length>=2){let k=E[0],F=E[E.length-1];if(k==='"'&&F==='"'||k==="'"&&F==="'")E=E.slice(1,-1)}if(!y[M])y[M]=[];y[M].push(E)}return y},i=(P,y,b)=>{let D=v.splitWithQuotes(P??""),M=f0(D),E=D.filter((F)=>!e(F)),k=y.options.processArgs===!1?[]:E.map((F,S)=>U(y.options,F,b,S,E));return{rawArgs:E,parsedArgs:k,tags:M}};var l=(P,y)=>y.keys!==void 0&&P.key.startsWith(".")&&y.keys[P.key.substring(1)]!==void 0,n=async(P,y,b,D)=>{let{key:M,parent:E}=P,k=W(D.keys,M.substring(1));if(k.options.processArgs!==!1&&(typeof k.options.types==="function"||k.options.types?.[0]!==void 0))P.value=U(k.options,{value:P.value,quoted:!1},b,0,[]);if(typeof P.value!=="string")await $(P.value,{...D,root:{...b,parent:P.parent,parents:P.parents},filters:[...D.filters??[],...k.options.filters??[]]});let F=await k.fn({path:y,root:b,parent:E,key:M,options:D,value:P.value,args:[],rawArgs:[],tags:{}});return F instanceof O?F:O.ReplaceParent(F)};var u=L(N(),1);var R=(P)=>{let y=[],b=0;while(b<P.length)if(P[b]==="$"&&P[b+1]==="("&&(b===0||P[b-1]!=="\\")){let D=b;b+=2;let M=1;for(;b<P.length;b++)if(P[b]==="(")M++;else if(P[b]===")"){if(M--,M===0){y.push([D,b]);break}}if(M!==0)throw Error(`Unmatched opening $( at position ${D.toString()}`);b++}else b++;return y};class G{value;constructor(P){this.value=P}}var c=async(P,y,b)=>{for(let D=y.length-1;D>=0;D--){let[M,E]=y[D],k=P.slice(M+2,E),F=await c(k,R(k),b);if(typeof F==="object")return F;let S=await b(F,P);if(S instanceof G)return S.value;P=P.slice(0,M)+S+P.slice(E+1)}return P},p=async(P,y)=>c(P,R(P),y);var I0=async(P,y,b,D)=>{let M=await(async()=>{let E=/([\w\d.-_/]+):(.+)/.exec(P);if(!E)return await u.select(y,P);let[k,F,S]=E,C=W(D.sources,F),H=i(S,C,y);return await C.fn({args:H.parsedArgs,rawArgs:H.rawArgs,tags:H.tags,key:F,options:D,root:y,path:b,value:null})})();if(M===null||M===void 0)return"";if(typeof M==="object")return new G(M);return M},U0=(P)=>{let y=/{%\s*section\s+([\w\d_-]+)\s*%}([\s\S]*?){%\s*endsection\s+\1\s*%}/g,b,D=[],M=[];while((b=y.exec(P))!==null){let[k,F,S]=b;M.push({fullMatch:k,name:F,body:S})}let E=P;for(let{fullMatch:k,name:F,body:S}of M){let C={},H=S.trim(),J=H.indexOf("---");if(J!==-1){let _=H.slice(0,J).trim();H=H.slice(J+3).trim();try{C=Bun.YAML.parse(_)??{}}catch(f){throw Error(`Failed to parse YAML config for section ${F}: ${f.message}`)}}D.push({name:F,config:C,content:H}),E=E.replace(k,"")}return{sections:D,content:E.trim()}},j=async(P,y,b,D)=>{let M=D?.onSection?U0(y):null,E=y;if(M){E=M.content;for(let F of M.sections){if(Object.keys(F.config).length>0)await $(F.config,D);let S=await D.onSection(F,P,b,D);if(S===!0)E=E+F.content;else if(typeof S==="string")E=E+S}}let k=await p(E,(F)=>I0(F,b,P,D));if(k instanceof O)return k;if(k===E){if(M?.sections.length)return O.ReplaceItem(k);return O.Explore()}if(typeof k==="string"){let F=await j(P,k,b,D);if(F.action!==T.Explore)return F}return O.ReplaceItem(k)};var $=async(P,y)=>{return y??={},await q(P,async(b)=>{let D=[...b.path,b.key].join(".");if(y?.filters?.length&&y.filters.some((F)=>F.test(D)))return O.NoExplore();let M=b.path.length===0,E=b.parents.length>0?b.parents.toReversed():[];if(M){if(E.length>0)throw Error("Root object should not have a parent");E=y?.root?.parents?[y.root.parent,...y.root.parents.toReversed()]:[]}let k={...P,...y.root,this:b.parent,parent:E.length>0?E[0]:null,parents:E};try{if(b.key.startsWith("$"))return O.NoExplore();let F=O.Explore();if(typeof b.value==="string")switch(F=await j(D,b.value,k,y),F.action){case T.Explore:break;case T.ReplaceItem:b.value=F.by;break;default:return F}if(l(b,y))F=await n(b,D,k,y);return F}catch(F){throw Error(`${F.message}
2
- (${D})`)}}),P};var t=(P,y)=>y?{fn:(b)=>P(...b.args),types:y}:(b)=>P(...b.args),t0=(P,y)=>Object.fromEntries(P.map((b)=>[b.name,t(b,y?.types?.[b.name])])),s0=(P,y)=>Object.fromEntries((y?.keys??Object.keys(P)).map((b)=>[b,t(P[b],y?.types?.[b])]));export{$ as processFields,s0 as makeFieldProcessorMap,t0 as makeFieldProcessorList,t as makeFieldProcessor,W as getProcessor,i as getArgs};
1
+ var P0=Object.create;var{getPrototypeOf:b0,defineProperty:z,getOwnPropertyNames:F0}=Object;var y0=Object.prototype.hasOwnProperty;var J=(P,F,b)=>{b=P!=null?P0(b0(P)):{};let M=F||!P||!P.__esModule?z(b,"default",{value:P,enumerable:!0}):b;for(let E of F0(P))if(!y0.call(M,E))z(M,E,{get:()=>P[E],enumerable:!0});return M};var w=(P,F)=>()=>(F||P((F={exports:{}}).exports,F),F.exports);var Y=w((J0,g)=>{var{defineProperty:K,getOwnPropertyNames:M0,getOwnPropertyDescriptor:f0}=Object,E0=Object.prototype.hasOwnProperty,x=new WeakMap,j0=(P)=>{var F=x.get(P),b;if(F)return F;if(F=K({},"__esModule",{value:!0}),P&&typeof P==="object"||typeof P==="function")M0(P).map((M)=>!E0.call(F,M)&&K(F,M,{get:()=>P[M],enumerable:!(b=f0(P,M))||b.enumerable}));return x.set(P,F),F},D0=(P,F)=>{for(var b in F)K(P,b,{get:F[b],enumerable:!0,configurable:!0,set:(M)=>F[b]=()=>M})},h={};D0(h,{splitWithQuotes:()=>C0,splitNested:()=>_0});g.exports=j0(h);var _0=(P,F,b="(",M=")")=>{let E=0,f="",j=[];for(let y of P){if(f+=y,y===b)E++;if(y===M)E--;if(E===0&&y===F)j.push(f.slice(0,-1)),f=""}if(f)j.push(f);return j},C0=(P,F=",")=>{let b=[],M=P.length,E=F.length,f=0,j=(y)=>{if(y+E>M)return!1;for(let D=0;D<E;D++)if(P[y+D]!==F[D])return!1;return!0};while(f<M){while(f<M&&P[f]===" ")f++;if(f>=M)break;let y="",D=P[f]==='"'||P[f]==="'";if(D){let C=P[f++];while(f<M&&P[f]!==C)y+=P[f++];if(f<M)f++}else{while(f<M&&!j(f)){let C=P[f];if(C==='"'||C==="'"){y+=C,f++;while(f<M&&P[f]!==C)y+=P[f++];if(f<M)y+=P[f++]}else y+=P[f++]}y=y.trim()}if(y)b.push({value:y,quoted:D});if(j(f))f+=E}return b}});var d=w((Y0,V)=>{var{defineProperty:N,getOwnPropertyNames:S0,getOwnPropertyDescriptor:k0}=Object,W0=Object.prototype.hasOwnProperty,r=new WeakMap,O0=(P)=>{var F=r.get(P),b;if(F)return F;if(F=N({},"__esModule",{value:!0}),P&&typeof P==="object"||typeof P==="function")S0(P).map((M)=>!W0.call(F,M)&&N(F,M,{get:()=>P[M],enumerable:!(b=k0(P,M))||b.enumerable}));return r.set(P,F),F},Q0=(P,F)=>{for(var b in F)N(P,b,{get:F[b],enumerable:!0,configurable:!0,set:(M)=>F[b]=()=>M})},i={};Q0(i,{select:()=>L});V.exports=O0(i);var $0=Y(),I=(P,F,b,M)=>{if(P.startsWith("{")){let E=P.substring(1,P.length-1);return L(F,E,b).toString()}return M?P:void 0},H0=(P,F,b,M)=>{let E=I(F,b,M);if(E)return L(P,E,M);let f=/^\[([^=\]]*)([=]*)([^\]]*)\]$/.exec(F);if(f){let[y,D,C,S]=f,W=I(D.trim(),b,M,!0),k=I(S.trim(),b,M,!0);if(Array.isArray(P))switch(C){case"==":case"=":return P.find((O)=>O[W]==k)}}let j=/^([^[\]]*)\[([^\]]*)]/.exec(F);if(j)return P[j[1]][j[2]];return P[F]},L=(P,F,b)=>{let M=void 0,E=void 0;F??="";let f=(S)=>S?.endsWith("?")?[S.substring(0,S.length-1),!0]:[S,!1],j=(S,W)=>{let[k,O]=f(W.pop());if(k){let X=H0(S,k,P,b);if(X===void 0){if(O||b?.defaultValue!==void 0||b?.optional)return;throw Error(`Unknown path element: "${k}" in "${F}"`)}return M=S,E=k,j(X,W)}if(b?.set&&E)M[E]=b?.set;return S},y=$0.splitNested(F,b?.separator??".","{","}"),D=y.length>0&&y[y.length-1].startsWith("?=")?y.pop()?.substring(2):void 0;y.reverse();let C=j(P,y);if(C===void 0)return D??b?.defaultValue;return C}});var l=J(Y(),1);var H;((P)=>{P[P.Explore=0]="Explore",P[P.SkipSiblings=1]="SkipSiblings",P[P.NoExplore=2]="NoExplore",P[P.ReplaceParent=3]="ReplaceParent",P[P.DeleteParent=4]="DeleteParent",P[P.MergeParent=5]="MergeParent",P[P.ReplaceItem=6]="ReplaceItem",P[P.DeleteItem=7]="DeleteItem"})(H||={});class _{action;by;skipSiblings;reexplore;constructor(P,F,b,M){this.action=P,this.by=F,this.skipSiblings=b,this.reexplore=M}static _explore=new _(0);static _noExplore=new _(2);static _skipSiblings=new _(1);static _deleteParent=new _(4);static ReplaceParent(P,F){return new _(3,P,void 0,F)}static SkipSiblings(){return _._skipSiblings}static Explore(){return _._explore}static NoExplore(){return _._noExplore}static DeleteParent(){return _._deleteParent}static MergeParent(P){return new _(5,P)}static ReplaceItem(P,F){return new _(6,P,F)}static DeleteItem(P){return new _(7,void 0,P)}}var q=async(P,F)=>{let b=new WeakSet,M=[],E=[],f=async(y,D,C)=>{let S=y===null,W=S?_.Explore():await F({key:y,value:D,path:M,parent:C,parents:E});if(D&&typeof D==="object"&&W.action===0){if(b.has(D))return W;if(b.add(D),!S)M.push(y),E.push(C);let k=D;while(await j(k,y,C))k=C[y];if(!S)E.pop(),M.pop()}return W},j=async(y,D,C)=>{let S=Object.keys(y),W=S.length;for(let k=0;k<W;k++){let O=S[k],X=y[O],$=await f(O,X,y),Q=$.action;if(Q===0||Q===2)continue;if(Q===6){if(y[O]=$.by,$.skipSiblings)return;continue}if(Q===7){if(delete y[O],$.skipSiblings)return;continue}if(Q===1)return;if(Q===3){if(D===null)throw Error("Cannot replace root object");if(C[D]=$.by,$.reexplore)return!0;return}if(Q===4){if(D===null)throw Error("Cannot delete root object");delete C[D];return}if(Q===5)delete y[O],Object.assign(y,$.by)}};await f(null,P,null)};var R=J(d(),1),n=(P,F)=>{if(typeof P.value==="string"){if(P.quoted)return P.value;if(P.value.startsWith("[")&&P.value.endsWith("]")){let b=P.value.slice(1,-1);if(b.trim()==="")return[];return b.split(";").map((M)=>{let E=M.trim();if(!isNaN(+E))return+E;return E})}if(P.value.startsWith("{")&&P.value.endsWith("}")){if(P.value.slice(1,-1).trim()==="")return{}}if(P.value==="null")return null;if(P.value==="undefined")return;if(P.value.startsWith("@"))return P.value.slice(1);if(!isNaN(+P.value))return+P.value}return F(P.value)},Z=(P,F,b,M,E,f)=>{let j=M?.(P)??P,y=E(j);if(y[0])return y[1];if(!F){let D=R.select(b,P),C=E(D);if(C[0])return C[1]}throw Error(f)},G=(P,F,b,M,E)=>{let f=typeof P.types==="function"?P.types(M,F.value,E):P.types?.[M];if(!f||f==="ref")return n(F,(y)=>R.select(b,y));let j=n(F,()=>F.value);if(Array.isArray(f)){if(!f.includes(j))throw Error(`Argument ${M.toString()} must be one of [${f.join(", ")}]: ${j}`);return j}if(typeof f==="string"){if(f.endsWith("?")){let y=f.slice(0,-1);if(F.value==="null")return _.ReplaceItem(null);if(F.value==="undefined")return _.ReplaceItem(void 0);if(F.value==="")return"";f=y}switch(f){case"any":return j;case"array":return Z(j,F.quoted,b,null,(y)=>[Array.isArray(y),y],`Argument ${M.toString()} must be an array: ${j}`);case"object":return Z(j,F.quoted,b,null,(y)=>[typeof y==="object"&&y!==null,y],`Argument ${M.toString()} must be an object: ${j}`);case"number":return Z(j,F.quoted,b,(y)=>Number(y),(y)=>[!isNaN(y),y],`Argument ${M.toString()} must be a number: ${j}`);case"boolean":return Z(j,F.quoted,b,null,(y)=>{if([!0,"true","1",1,"yes","on"].includes(y))return[!0,!0];if([!1,"false","0",0,"no","off"].includes(y))return[!0,!1];if([null,"null","undefined",void 0,""].includes(y))return[!0,!1];if(Array.isArray(y))return[!0,y.length>0];return[!1,!1]},`Argument ${M.toString()} must be a boolean: ${j}`);case"string":return j.toString();default:throw Error(`Unknown type for argument ${M.toString()}: ${f}`)}}return f(j,b,M,F.quoted)};var T=(P,F)=>{let b=P?.[F];if(b===void 0)throw Error(`Unhandled field processor type: ${F}`);return typeof b==="function"?{options:{},fn:b}:{options:b,fn:b.fn}},e=(P)=>!P.quoted&&P.value.startsWith("."),X0=(P)=>{let F={};for(let b of P){if(!e(b))continue;let M=b.value.indexOf("="),E=M>-1?b.value.slice(1,M):b.value.slice(1),f=M>-1?b.value.slice(M+1):"";if(f.length>=2){let j=f[0],y=f[f.length-1];if(j==='"'&&y==='"'||j==="'"&&y==="'")f=f.slice(1,-1)}if(!F[E])F[E]=[];F[E].push(f)}return F},v=(P,F,b)=>{let M=l.splitWithQuotes(P??""),E=X0(M),f=M.filter((y)=>!e(y)),j=F.options.processArgs===!1?[]:f.map((y,D)=>G(F.options,y,b,D,f));return{rawArgs:f,parsedArgs:j,tags:E}};var c=(P,F)=>F.keys!==void 0&&P.key.startsWith(".")&&F.keys[P.key.substring(1)]!==void 0,p=async(P,F,b,M)=>{let{key:E,parent:f}=P,j=T(M.keys,E.substring(1));if(j.options.processArgs!==!1&&(typeof j.options.types==="function"||j.options.types?.[0]!==void 0))P.value=G(j.options,{value:P.value,quoted:!1},b,0,[]);if(typeof P.value!=="string")await U(P.value,{...M,root:{...b,parent:P.parent,parents:P.parents},filters:[...M.filters??[],...j.options.filters??[]]});let y=await j.fn({path:F,root:b,parent:f,key:E,options:M,value:P.value,args:[],rawArgs:[],tags:{}});return y instanceof _?y:_.ReplaceParent(y)};var o=J(d(),1);var m=(P)=>{let F=[],b=0;while(b<P.length)if(P[b]==="$"&&P[b+1]==="("&&(b===0||P[b-1]!=="\\")){let M=b;b+=2;let E=1;for(;b<P.length;b++)if(P[b]==="(")E++;else if(P[b]===")"){if(E--,E===0){F.push([M,b]);break}}if(E!==0)throw Error(`Unmatched opening $( at position ${M.toString()}`);b++}else b++;return F};var A=Symbol.for("@homedev/fields:OverrideResult"),u=(P)=>({[A]:!0,value:P}),Z0=(P)=>{return P!==null&&typeof P==="object"&&A in P&&P[A]===!0},t=async(P,F,b)=>{for(let M=F.length-1;M>=0;M--){let[E,f]=F[M],j=P.slice(E+2,f),y=await t(j,m(j),b);if(typeof y==="object")return y;let D=await b(y,P);if(Z0(D))return D.value;P=P.slice(0,E)+D+P.slice(f+1)}return P},s=async(P,F)=>t(P,m(P),F);var G0=async(P,F,b,M)=>{let E=await(async()=>{let f=/([\w\d.-_/]+):(.+)/.exec(P);if(!f)return await o.select(F,P);let[j,y,D]=f,C=T(M.sources,y),S=v(D,C,F);return await C.fn({args:S.parsedArgs,rawArgs:S.rawArgs,tags:S.tags,key:y,options:M,root:F,path:b,value:null})})();if(E===null||E===void 0)return"";if(typeof E==="object")return u(E);return E},T0=(P)=>{let F=/{%\s*section\s+([\w\d_-]+)\s*%}([\s\S]*?){%\s*endsection\s+\1\s*%}/g,b,M=[],E=[];while((b=F.exec(P))!==null){let[j,y,D]=b;E.push({fullMatch:j,name:y,body:D})}let f=P;for(let{fullMatch:j,name:y,body:D}of E){let C={},S=D.trim(),W=S.indexOf("---");if(W!==-1){let k=S.slice(0,W).trim();S=S.slice(W+3).trim();try{C=Bun.YAML.parse(k)??{}}catch(O){throw Error(`Failed to parse YAML config for section ${y}: ${O.message}`)}}M.push({name:y,config:C,content:S}),f=f.replace(j,"")}return{sections:M,content:f.trim()}},B=async(P,F,b,M)=>{let E=M?.onSection?T0(F):null,f=F;if(E){f=E.content;for(let y of E.sections){if(Object.keys(y.config).length>0)await U(y.config,M);let D=await M.onSection(y,P,b,M);if(D===!0)f=f+y.content;else if(typeof D==="string")f=f+D}}let j=await s(f,(y)=>G0(y,b,P,M));if(j instanceof _)return j;if(j===f){if(E?.sections.length)return _.ReplaceItem(j);return _.Explore()}if(typeof j==="string"){let y=await B(P,j,b,M);if(y.action!==H.Explore)return y}return _.ReplaceItem(j)};var U=async(P,F)=>{return F??={},await q(P,async(b)=>{let M=[...b.path,b.key].join(".");if(F?.filters?.length&&F.filters.some((y)=>y.test(M)))return _.NoExplore();let E=b.path.length===0,f=b.parents.length>0?b.parents.toReversed():[];if(E){if(f.length>0)throw Error("Root object should not have a parent");f=F?.root?.parents?[F.root.parent,...F.root.parents.toReversed()]:[]}let j={...P,...F.root,this:b.parent,parent:f.length>0?f[0]:null,parents:f};try{if(b.key.startsWith("$"))return _.NoExplore();let y=_.Explore();if(typeof b.value==="string")switch(y=await B(M,b.value,j,F),y.action){case H.Explore:break;case H.ReplaceItem:b.value=y.by;break;default:return y}if(c(b,F))y=await p(b,M,j,F);return y}catch(y){throw Error(`${y.message}
2
+ (${M})`)}}),P};var a=(P,F)=>F?{fn:(b)=>P(...b.args),types:F}:(b)=>P(...b.args),PP=(P,F)=>Object.fromEntries(P.map((b)=>[b.name,a(b,F?.types?.[b.name])])),bP=(P,F)=>Object.fromEntries((F?.keys??Object.keys(P)).map((b)=>[b,a(P[b],F?.types?.[b])]));export{U as processFields,bP as makeFieldProcessorMap,PP as makeFieldProcessorList,a as makeFieldProcessor,T as getProcessor,v as getArgs};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homedev/fields",
3
- "version": "1.2.14",
3
+ "version": "1.2.16",
4
4
  "description": "field utilities",
5
5
  "author": "julzor",
6
6
  "license": "ISC",