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