@homedev/objector 1.2.53 → 1.2.55

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 +6 -4
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- var at=Object.create;var{getPrototypeOf:lt,defineProperty:X,getOwnPropertyNames:Ae}=Object;var ke=Object.prototype.hasOwnProperty,S=(e,r,t)=>{for(let n of Ae(r))if(!ke.call(e,n)&&n!=="default")X(e,n,{get:()=>r[n],enumerable:!0});if(t){for(let n of Ae(r))if(!ke.call(t,n)&&n!=="default")X(t,n,{get:()=>r[n],enumerable:!0});return t}},ut=(e,r,t)=>{t=e!=null?at(lt(e)):{};let n=r||!e||!e.__esModule?X(t,"default",{value:e,enumerable:!0}):t;for(let o of Ae(e))if(!ke.call(n,o))X(n,o,{get:()=>e[o],enumerable:!0});return n};var pt=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var $=(e,r)=>{for(var t in r)X(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(n)=>r[t]=()=>n})};var nt=pt((Si,tt)=>{var{defineProperty:xe,getOwnPropertyNames:mn,getOwnPropertyDescriptor:gn}=Object,yn=Object.prototype.hasOwnProperty,et=new WeakMap,dn=(e)=>{var r=et.get(e),t;if(r)return r;if(r=xe({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")mn(e).map((n)=>!yn.call(r,n)&&xe(r,n,{get:()=>e[n],enumerable:!(t=gn(e,n))||t.enumerable}));return et.set(e,r),r},wn=(e,r)=>{for(var t in r)xe(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(n)=>r[t]=()=>n})},rt={};wn(rt,{splitWithQuotes:()=>bn,splitNested:()=>hn});tt.exports=dn(rt);var hn=(e,r,t="(",n=")")=>{let o=0,s="",a=[];for(let i of e){if(s+=i,i===t)o++;if(i===n)o--;if(o===0&&i===r)a.push(s.slice(0,-1)),s=""}if(s)a.push(s);return a},bn=(e,r=",")=>{let t=[],n=e.length,o=r.length,s=0,a=(i)=>{if(i+o>n)return!1;for(let l=0;l<o;l++)if(e[i+l]!==r[l])return!1;return!0};while(s<n){while(s<n&&e[s]===" ")s++;if(s>=n)break;let i="",l=e[s]==='"'||e[s]==="'";if(l){let m=e[s++];while(s<n&&e[s]!==m)i+=e[s++];if(s<n)s++}else{while(s<n&&!a(s)){let m=e[s];if(m==='"'||m==="'"){i+=m,s++;while(s<n&&e[s]!==m)i+=e[s++];if(s<n)i+=e[s++]}else i+=e[s++]}i=i.trim()}if(i)t.push({value:i,quoted:l});if(a(s))s+=o}return t}});var W={};$(W,{writeOutputs:()=>z,writeOutput:()=>ce,writeFormat:()=>fe,tokenize:()=>Qe,toObjectWithKey:()=>Le,toObject:()=>ee,toList:()=>_,stripIndent:()=>Ke,sortBy:()=>_e,snake:()=>K,select:()=>O,processFields:()=>F,pascal:()=>Q,padBlock:()=>C,nonNullMap:()=>Ue,navigate:()=>ye,mergeAll:()=>B,merge:()=>N,makeFieldProcessorMap:()=>D,makeFieldProcessorList:()=>De,makeFieldProcessor:()=>q,locate:()=>I,loadFormat:()=>P,importList:()=>me,importGlob:()=>Ne,globMap:()=>Z,getProcessor:()=>H,getArgs:()=>pe,find:()=>Be,exists:()=>Y,defined:()=>Ie,deepClone:()=>R,conditionPredicates:()=>j,changeCase:()=>G,capital:()=>ne,camel:()=>oe,asyncMap:()=>Te,Objector:()=>ot,NavigateResult:()=>b,NavigateAction:()=>ge,Logger:()=>Xe});var $e={};$($e,{processFields:()=>F,makeFieldProcessorMap:()=>D,makeFieldProcessorList:()=>De,makeFieldProcessor:()=>q,getProcessor:()=>H,getArgs:()=>pe});var ft=Object.create,{getPrototypeOf:ct,defineProperty:Ze,getOwnPropertyNames:mt}=Object,gt=Object.prototype.hasOwnProperty,yt=(e,r,t)=>{t=e!=null?ft(ct(e)):{};let n=r||!e||!e.__esModule?Ze(t,"default",{value:e,enumerable:!0}):t;for(let o of mt(e))if(!gt.call(n,o))Ze(n,o,{get:()=>e[o],enumerable:!0});return n},dt=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),wt=dt((e,r)=>{var{defineProperty:t,getOwnPropertyNames:n,getOwnPropertyDescriptor:o}=Object,s=Object.prototype.hasOwnProperty,a=new WeakMap,i=(u)=>{var c=a.get(u),h;if(c)return c;if(c=t({},"__esModule",{value:!0}),u&&typeof u==="object"||typeof u==="function")n(u).map((f)=>!s.call(c,f)&&t(c,f,{get:()=>u[f],enumerable:!(h=o(u,f))||h.enumerable}));return a.set(u,c),c},l=(u,c)=>{for(var h in c)t(u,h,{get:c[h],enumerable:!0,configurable:!0,set:(f)=>c[h]=()=>f})},m={};l(m,{splitWithQuotes:()=>g,splitNested:()=>y}),r.exports=i(m);var y=(u,c,h="(",f=")")=>{let w=0,p="",v=[];for(let d of u){if(p+=d,d===h)w++;if(d===f)w--;if(w===0&&d===c)v.push(p.slice(0,-1)),p=""}if(p)v.push(p);return v},g=(u,c=",")=>{let h=[],f=u.length,w=c.length,p=0,v=(d)=>{if(d+w>f)return!1;for(let M=0;M<w;M++)if(u[d+M]!==c[M])return!1;return!0};while(p<f){while(p<f&&u[p]===" ")p++;if(p>=f)break;let d="",M=u[p]==='"'||u[p]==="'";if(M){let k=u[p++];while(p<f&&u[p]!==k)d+=u[p++];if(p<f)p++}else{while(p<f&&!v(p)){let k=u[p];if(k==='"'||k==="'"){d+=k,p++;while(p<f&&u[p]!==k)d+=u[p++];if(p<f)d+=u[p++]}else d+=u[p++]}d=d.trim()}if(d)h.push({value:d,quoted:M});if(v(p))p+=w}return h}}),ht=yt(wt(),1),U;((e)=>{e[e.Explore=0]="Explore",e[e.SkipSiblings=1]="SkipSiblings",e[e.NoExplore=2]="NoExplore",e[e.ReplaceParent=3]="ReplaceParent",e[e.DeleteParent=4]="DeleteParent",e[e.MergeParent=5]="MergeParent",e[e.ReplaceItem=6]="ReplaceItem",e[e.DeleteItem=7]="DeleteItem"})(U||={});class E{action;by;skipSiblings;reexplore;constructor(e,r,t,n){this.action=e,this.by=r,this.skipSiblings=t,this.reexplore=n}static _explore=new E(0);static _noExplore=new E(2);static _skipSiblings=new E(1);static _deleteParent=new E(4);static ReplaceParent(e,r){return new E(3,e,void 0,r)}static SkipSiblings(){return E._skipSiblings}static Explore(){return E._explore}static NoExplore(){return E._noExplore}static DeleteParent(){return E._deleteParent}static MergeParent(e){return new E(5,e)}static ReplaceItem(e,r){return new E(6,e,r)}static DeleteItem(e){return new E(7,void 0,e)}}var bt=async(e,r)=>{let t=new WeakSet,n=[],o=[],s=async(i,l,m)=>{let y=i===null,g=y?E.Explore():await r({key:i,value:l,path:n,parent:m,parents:o});if(l&&typeof l==="object"&&g.action===0){if(t.has(l))return g;if(t.add(l),!y)n.push(i),o.push(m);let u=l;while(await a(u,i,m))u=m[i];if(!y)o.pop(),n.pop()}return g},a=async(i,l,m)=>{let y=Object.keys(i),g=y.length;for(let u=0;u<g;u++){let c=y[u],h=i[c],f=await s(c,h,i),w=f.action;if(w===0||w===2)continue;if(w===6){if(i[c]=f.by,f.skipSiblings)return;continue}if(w===7){if(delete i[c],f.skipSiblings)return;continue}if(w===1)return;if(w===3){if(l===null)throw Error("Cannot replace root object");if(m[l]=f.by,f.reexplore)return!0;return}if(w===4){if(l===null)throw Error("Cannot delete root object");delete m[l];return}if(w===5)delete i[c],Object.assign(i,f.by)}};await s(null,e,null)},vt=Object.create,{getPrototypeOf:Mt,defineProperty:ze,getOwnPropertyNames:Ot}=Object,Et=Object.prototype.hasOwnProperty,At=(e,r,t)=>{t=e!=null?vt(Mt(e)):{};let n=r||!e||!e.__esModule?ze(t,"default",{value:e,enumerable:!0}):t;for(let o of Ot(e))if(!Et.call(n,o))ze(n,o,{get:()=>e[o],enumerable:!0});return n},kt=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),St=kt((e,r)=>{var{defineProperty:t,getOwnPropertyNames:n,getOwnPropertyDescriptor:o}=Object,s=Object.prototype.hasOwnProperty,a=new WeakMap,i=(u)=>{var c=a.get(u),h;if(c)return c;if(c=t({},"__esModule",{value:!0}),u&&typeof u==="object"||typeof u==="function")n(u).map((f)=>!s.call(c,f)&&t(c,f,{get:()=>u[f],enumerable:!(h=o(u,f))||h.enumerable}));return a.set(u,c),c},l=(u,c)=>{for(var h in c)t(u,h,{get:c[h],enumerable:!0,configurable:!0,set:(f)=>c[h]=()=>f})},m={};l(m,{splitWithQuotes:()=>g,splitNested:()=>y}),r.exports=i(m);var y=(u,c,h="(",f=")")=>{let w=0,p="",v=[];for(let d of u){if(p+=d,d===h)w++;if(d===f)w--;if(w===0&&d===c)v.push(p.slice(0,-1)),p=""}if(p)v.push(p);return v},g=(u,c=",")=>{let h=[],f=u.length,w=c.length,p=0,v=(d)=>{if(d+w>f)return!1;for(let M=0;M<w;M++)if(u[d+M]!==c[M])return!1;return!0};while(p<f){while(p<f&&u[p]===" ")p++;if(p>=f)break;let d="",M=u[p]==='"'||u[p]==="'";if(M){let k=u[p++];while(p<f&&u[p]!==k)d+=u[p++];if(p<f)p++}else{while(p<f&&!v(p)){let k=u[p];if(k==='"'||k==="'"){d+=k,p++;while(p<f&&u[p]!==k)d+=u[p++];if(p<f)d+=u[p++]}else d+=u[p++]}d=d.trim()}if(d)h.push({value:d,quoted:M});if(v(p))p+=w}return h}}),Ft=At(St(),1),Dt=/^\[([^=\]]*)([=]*)([^\]]*)\]$/,$t=/^([^[\]]*)\[([^\]]*)]$/,Se=(e,r,t,n)=>{if(e.startsWith("{")&&e.endsWith("}")){let o=e.substring(1,e.length-1);return V(r,o,t)?.toString()}return n?e:void 0},Rt=(e,r,t,n)=>{let o=Se(r,t,n);if(o)return V(e,o,n);let s=Dt.exec(r);if(s){let[,i,l,m]=s,y=Se(i.trim(),t,n,!0),g=Se(m.trim(),t,n,!0);if(Array.isArray(e)&&(l==="="||l==="==")&&y)return e.find((u)=>u?.[y]==g)}let a=$t.exec(r);if(a){let[,i,l]=a;return e?.[i]?.[l]}return e?.[r]},V=(e,r,t)=>{let n=void 0,o=void 0,s=r??"",a=(g)=>{if(!g)return[g,!1];return g.endsWith("?")?[g.substring(0,g.length-1),!0]:[g,!1]},i=(g,u)=>{let[c,h]=a(u.pop());if(!c){if(t?.set!==void 0&&o!==void 0&&n!==void 0)n[o]=t.set;return g}let f=Rt(g,c,e,t);if(f===void 0){if(h||t?.optional||t?.defaultValue!==void 0)return;throw Error(`Unknown path element: "${c}" in "${s}"`)}return n=g,o=c,i(f,u)},l=Ft.splitNested(s,t?.separator??".","{","}"),m=void 0;if(l.length>0&&l[l.length-1].startsWith("?="))m=l.pop()?.substring(2);l.reverse();let y=i(e,l);if(y===void 0)return m??t?.defaultValue;return y},er=(e,r)=>{if(typeof e.value==="string"){if(e.quoted)return e.value;if(e.value.startsWith("[")&&e.value.endsWith("]")){let t=e.value.slice(1,-1);if(t.trim()==="")return[];return t.split(";").map((n)=>{let o=n.trim();if(!isNaN(+o))return+o;return o})}if(e.value.startsWith("{")&&e.value.endsWith("}")){if(e.value.slice(1,-1).trim()==="")return{}}if(e.value==="null")return null;if(e.value==="undefined")return;if(e.value.startsWith("@"))return e.value.slice(1);if(!isNaN(+e.value))return+e.value}return r(e.value)},ue=(e,r,t,n,o,s)=>{let a=n?.(e)??e,i=o(a);if(i[0])return i[1];if(!r){let l=V(t,e),m=o(l);if(m[0])return m[1]}throw Error(s)},tr=(e,r,t,n,o)=>{let s=typeof e.types==="function"?e.types(n,r.value,o):e.types?.[n];if(!s||s==="ref")return er(r,(i)=>V(t,i));let a=er(r,()=>r.value);if(Array.isArray(s)){if(!s.includes(a))throw Error(`Argument ${n.toString()} must be one of [${s.join(", ")}]: ${a}`);return a}if(typeof s==="string"){if(s.endsWith("?")){let i=s.slice(0,-1);if(r.value==="null")return E.ReplaceItem(null);if(r.value==="undefined")return E.ReplaceItem(void 0);if(r.value==="")return"";s=i}switch(s){case"any":return a;case"array":return ue(a,r.quoted,t,null,(i)=>[Array.isArray(i),i],`Argument ${n.toString()} must be an array: ${a}`);case"object":return ue(a,r.quoted,t,null,(i)=>[typeof i==="object"&&i!==null,i],`Argument ${n.toString()} must be an object: ${a}`);case"number":return ue(a,r.quoted,t,(i)=>Number(i),(i)=>[!isNaN(i),i],`Argument ${n.toString()} must be a number: ${a}`);case"boolean":return ue(a,r.quoted,t,null,(i)=>{if([!0,"true","1",1,"yes","on"].includes(i))return[!0,!0];if([!1,"false","0",0,"no","off"].includes(i))return[!0,!1];if([null,"null","undefined",void 0,""].includes(i))return[!0,!1];if(Array.isArray(i))return[!0,i.length>0];return[!1,!1]},`Argument ${n.toString()} must be a boolean: ${a}`);case"string":return a.toString();default:throw Error(`Unknown type for argument ${n.toString()}: ${s}`)}}return s(a,t,n,r.quoted)},H=(e,r)=>{let t=e?.[r];if(t===void 0)throw Error(`Unhandled field processor type: ${r}`);return typeof t==="function"?{options:{},fn:t}:{options:t,fn:t.fn}},nr=(e)=>!e.quoted&&e.value.startsWith("."),jt=(e)=>{let r={};for(let t of e){if(!nr(t))continue;let n=t.value.indexOf("="),o=n>-1?t.value.slice(1,n):t.value.slice(1),s=n>-1?t.value.slice(n+1):"";if(s.length>=2){let a=s[0],i=s[s.length-1];if(a==='"'&&i==='"'||a==="'"&&i==="'")s=s.slice(1,-1)}if(!r[o])r[o]=[];r[o].push(s)}return r},pe=(e,r,t)=>{let n=ht.splitWithQuotes(e??""),o=jt(n),s=n.filter((i)=>!nr(i)),a=r.options.processArgs===!1?[]:s.map((i,l)=>tr(r.options,i,t,l,s));return{rawArgs:s,parsedArgs:a,tags:o}},Wt=(e)=>{return e!==null&&typeof e==="object"&&"action"in e},Nt=(e,r)=>r.keys!==void 0&&e.key.startsWith(".")&&r.keys[e.key.substring(1)]!==void 0,Ct=async(e,r,t,n)=>{let{key:o,parent:s}=e,a=H(n.keys,o.substring(1));if(a.options.processArgs!==!1&&(typeof a.options.types==="function"||a.options.types?.[0]!==void 0))e.value=tr(a.options,{value:e.value,quoted:!1},t,0,[]);if(typeof e.value!=="string")await F(e.value,{...n,root:{...t,parent:e.parent,parents:e.parents},filters:[...n.filters??[],...a.options.filters??[]]});let i=await a.fn({path:r,root:t,parent:s,key:o,options:n,value:e.value,args:[],rawArgs:[],tags:{}});return Wt(i)?i:E.ReplaceParent(i)},rr=(e)=>{let r=e.split(/\r?\n/),t=r.filter((o)=>o.trim().length>0).map((o)=>/^[ \t]*/.exec(o)?.[0].length??0),n=t.length>0?Math.min(...t):0;if(n===0)return e;return r.map((o)=>o.slice(n)).join(`
1
+ var at=Object.create;var{getPrototypeOf:lt,defineProperty:X,getOwnPropertyNames:Ae}=Object;var ke=Object.prototype.hasOwnProperty,S=(e,r,t)=>{for(let n of Ae(r))if(!ke.call(e,n)&&n!=="default")X(e,n,{get:()=>r[n],enumerable:!0});if(t){for(let n of Ae(r))if(!ke.call(t,n)&&n!=="default")X(t,n,{get:()=>r[n],enumerable:!0});return t}},ut=(e,r,t)=>{t=e!=null?at(lt(e)):{};let n=r||!e||!e.__esModule?X(t,"default",{value:e,enumerable:!0}):t;for(let o of Ae(e))if(!ke.call(n,o))X(n,o,{get:()=>e[o],enumerable:!0});return n};var pt=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var j=(e,r)=>{for(var t in r)X(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(n)=>r[t]=()=>n})};var nt=pt((Si,tt)=>{var{defineProperty:xe,getOwnPropertyNames:mn,getOwnPropertyDescriptor:gn}=Object,yn=Object.prototype.hasOwnProperty,et=new WeakMap,dn=(e)=>{var r=et.get(e),t;if(r)return r;if(r=xe({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")mn(e).map((n)=>!yn.call(r,n)&&xe(r,n,{get:()=>e[n],enumerable:!(t=gn(e,n))||t.enumerable}));return et.set(e,r),r},wn=(e,r)=>{for(var t in r)xe(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(n)=>r[t]=()=>n})},rt={};wn(rt,{splitWithQuotes:()=>bn,splitNested:()=>hn});tt.exports=dn(rt);var hn=(e,r,t="(",n=")")=>{let o=0,s="",a=[];for(let i of e){if(s+=i,i===t)o++;if(i===n)o--;if(o===0&&i===r)a.push(s.slice(0,-1)),s=""}if(s)a.push(s);return a},bn=(e,r=",")=>{let t=[],n=e.length,o=r.length,s=0,a=(i)=>{if(i+o>n)return!1;for(let l=0;l<o;l++)if(e[i+l]!==r[l])return!1;return!0};while(s<n){while(s<n&&e[s]===" ")s++;if(s>=n)break;let i="",l=e[s]==='"'||e[s]==="'";if(l){let m=e[s++];while(s<n&&e[s]!==m)i+=e[s++];if(s<n)s++}else{while(s<n&&!a(s)){let m=e[s];if(m==='"'||m==="'"){i+=m,s++;while(s<n&&e[s]!==m)i+=e[s++];if(s<n)i+=e[s++]}else i+=e[s++]}i=i.trim()}if(i)t.push({value:i,quoted:l});if(a(s))s+=o}return t}});var W={};j(W,{writeOutputs:()=>z,writeOutput:()=>ce,writeFormat:()=>fe,tokenize:()=>Qe,toObjectWithKey:()=>Le,toObject:()=>ee,toList:()=>_,stripIndent:()=>Ke,sortBy:()=>_e,snake:()=>K,select:()=>O,processFields:()=>F,pascal:()=>Q,padBlock:()=>C,nonNullMap:()=>Ue,navigate:()=>ye,mergeAll:()=>B,merge:()=>N,makeFieldProcessorMap:()=>D,makeFieldProcessorList:()=>De,makeFieldProcessor:()=>q,locate:()=>I,loadFormat:()=>P,importList:()=>me,importGlob:()=>Ne,globMap:()=>Z,getProcessor:()=>H,getArgs:()=>pe,find:()=>Be,exists:()=>Y,defined:()=>Ie,deepClone:()=>R,conditionPredicates:()=>$,changeCase:()=>G,capital:()=>ne,camel:()=>oe,asyncMap:()=>Te,Objector:()=>ot,NavigateResult:()=>b,NavigateAction:()=>ge,Logger:()=>Xe});var je={};j(je,{processFields:()=>F,makeFieldProcessorMap:()=>D,makeFieldProcessorList:()=>De,makeFieldProcessor:()=>q,getProcessor:()=>H,getArgs:()=>pe});var ft=Object.create,{getPrototypeOf:ct,defineProperty:Ze,getOwnPropertyNames:mt}=Object,gt=Object.prototype.hasOwnProperty,yt=(e,r,t)=>{t=e!=null?ft(ct(e)):{};let n=r||!e||!e.__esModule?Ze(t,"default",{value:e,enumerable:!0}):t;for(let o of mt(e))if(!gt.call(n,o))Ze(n,o,{get:()=>e[o],enumerable:!0});return n},dt=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),wt=dt((e,r)=>{var{defineProperty:t,getOwnPropertyNames:n,getOwnPropertyDescriptor:o}=Object,s=Object.prototype.hasOwnProperty,a=new WeakMap,i=(u)=>{var c=a.get(u),h;if(c)return c;if(c=t({},"__esModule",{value:!0}),u&&typeof u==="object"||typeof u==="function")n(u).map((f)=>!s.call(c,f)&&t(c,f,{get:()=>u[f],enumerable:!(h=o(u,f))||h.enumerable}));return a.set(u,c),c},l=(u,c)=>{for(var h in c)t(u,h,{get:c[h],enumerable:!0,configurable:!0,set:(f)=>c[h]=()=>f})},m={};l(m,{splitWithQuotes:()=>g,splitNested:()=>y}),r.exports=i(m);var y=(u,c,h="(",f=")")=>{let w=0,p="",v=[];for(let d of u){if(p+=d,d===h)w++;if(d===f)w--;if(w===0&&d===c)v.push(p.slice(0,-1)),p=""}if(p)v.push(p);return v},g=(u,c=",")=>{let h=[],f=u.length,w=c.length,p=0,v=(d)=>{if(d+w>f)return!1;for(let M=0;M<w;M++)if(u[d+M]!==c[M])return!1;return!0};while(p<f){while(p<f&&u[p]===" ")p++;if(p>=f)break;let d="",M=u[p]==='"'||u[p]==="'";if(M){let k=u[p++];while(p<f&&u[p]!==k)d+=u[p++];if(p<f)p++}else{while(p<f&&!v(p)){let k=u[p];if(k==='"'||k==="'"){d+=k,p++;while(p<f&&u[p]!==k)d+=u[p++];if(p<f)d+=u[p++]}else d+=u[p++]}d=d.trim()}if(d)h.push({value:d,quoted:M});if(v(p))p+=w}return h}}),ht=yt(wt(),1),U;((e)=>{e[e.Explore=0]="Explore",e[e.SkipSiblings=1]="SkipSiblings",e[e.NoExplore=2]="NoExplore",e[e.ReplaceParent=3]="ReplaceParent",e[e.DeleteParent=4]="DeleteParent",e[e.MergeParent=5]="MergeParent",e[e.ReplaceItem=6]="ReplaceItem",e[e.DeleteItem=7]="DeleteItem"})(U||={});class E{action;by;skipSiblings;reexplore;constructor(e,r,t,n){this.action=e,this.by=r,this.skipSiblings=t,this.reexplore=n}static _explore=new E(0);static _noExplore=new E(2);static _skipSiblings=new E(1);static _deleteParent=new E(4);static ReplaceParent(e,r){return new E(3,e,void 0,r)}static SkipSiblings(){return E._skipSiblings}static Explore(){return E._explore}static NoExplore(){return E._noExplore}static DeleteParent(){return E._deleteParent}static MergeParent(e){return new E(5,e)}static ReplaceItem(e,r){return new E(6,e,r)}static DeleteItem(e){return new E(7,void 0,e)}}var bt=async(e,r)=>{let t=new WeakSet,n=[],o=[],s=async(i,l,m)=>{let y=i===null,g=y?E.Explore():await r({key:i,value:l,path:n,parent:m,parents:o});if(l&&typeof l==="object"&&g.action===0){if(t.has(l))return g;if(t.add(l),!y)n.push(i),o.push(m);let u=l;while(await a(u,i,m))u=m[i];if(!y)o.pop(),n.pop()}return g},a=async(i,l,m)=>{let y=Object.keys(i),g=y.length;for(let u=0;u<g;u++){let c=y[u],h=i[c],f=await s(c,h,i),w=f.action;if(w===0||w===2)continue;if(w===6){if(i[c]=f.by,f.skipSiblings)return;continue}if(w===7){if(delete i[c],f.skipSiblings)return;continue}if(w===1)return;if(w===3){if(l===null)throw Error("Cannot replace root object");if(m[l]=f.by,f.reexplore)return!0;return}if(w===4){if(l===null)throw Error("Cannot delete root object");delete m[l];return}if(w===5)delete i[c],Object.assign(i,f.by)}};await s(null,e,null)},vt=Object.create,{getPrototypeOf:Mt,defineProperty:ze,getOwnPropertyNames:Ot}=Object,Et=Object.prototype.hasOwnProperty,At=(e,r,t)=>{t=e!=null?vt(Mt(e)):{};let n=r||!e||!e.__esModule?ze(t,"default",{value:e,enumerable:!0}):t;for(let o of Ot(e))if(!Et.call(n,o))ze(n,o,{get:()=>e[o],enumerable:!0});return n},kt=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),St=kt((e,r)=>{var{defineProperty:t,getOwnPropertyNames:n,getOwnPropertyDescriptor:o}=Object,s=Object.prototype.hasOwnProperty,a=new WeakMap,i=(u)=>{var c=a.get(u),h;if(c)return c;if(c=t({},"__esModule",{value:!0}),u&&typeof u==="object"||typeof u==="function")n(u).map((f)=>!s.call(c,f)&&t(c,f,{get:()=>u[f],enumerable:!(h=o(u,f))||h.enumerable}));return a.set(u,c),c},l=(u,c)=>{for(var h in c)t(u,h,{get:c[h],enumerable:!0,configurable:!0,set:(f)=>c[h]=()=>f})},m={};l(m,{splitWithQuotes:()=>g,splitNested:()=>y}),r.exports=i(m);var y=(u,c,h="(",f=")")=>{let w=0,p="",v=[];for(let d of u){if(p+=d,d===h)w++;if(d===f)w--;if(w===0&&d===c)v.push(p.slice(0,-1)),p=""}if(p)v.push(p);return v},g=(u,c=",")=>{let h=[],f=u.length,w=c.length,p=0,v=(d)=>{if(d+w>f)return!1;for(let M=0;M<w;M++)if(u[d+M]!==c[M])return!1;return!0};while(p<f){while(p<f&&u[p]===" ")p++;if(p>=f)break;let d="",M=u[p]==='"'||u[p]==="'";if(M){let k=u[p++];while(p<f&&u[p]!==k)d+=u[p++];if(p<f)p++}else{while(p<f&&!v(p)){let k=u[p];if(k==='"'||k==="'"){d+=k,p++;while(p<f&&u[p]!==k)d+=u[p++];if(p<f)d+=u[p++]}else d+=u[p++]}d=d.trim()}if(d)h.push({value:d,quoted:M});if(v(p))p+=w}return h}}),Ft=At(St(),1),Dt=/^\[([^=\]]*)([=]*)([^\]]*)\]$/,jt=/^([^[\]]*)\[([^\]]*)]$/,Se=(e,r,t,n)=>{if(e.startsWith("{")&&e.endsWith("}")){let o=e.substring(1,e.length-1);return V(r,o,t)?.toString()}return n?e:void 0},Rt=(e,r,t,n)=>{let o=Se(r,t,n);if(o)return V(e,o,n);let s=Dt.exec(r);if(s){let[,i,l,m]=s,y=Se(i.trim(),t,n,!0),g=Se(m.trim(),t,n,!0);if(Array.isArray(e)&&(l==="="||l==="==")&&y)return e.find((u)=>u?.[y]==g)}let a=jt.exec(r);if(a){let[,i,l]=a;return e?.[i]?.[l]}return e?.[r]},V=(e,r,t)=>{let n=void 0,o=void 0,s=r??"",a=(g)=>{if(!g)return[g,!1];return g.endsWith("?")?[g.substring(0,g.length-1),!0]:[g,!1]},i=(g,u)=>{let[c,h]=a(u.pop());if(!c){if(t?.set!==void 0&&o!==void 0&&n!==void 0)n[o]=t.set;return g}let f=Rt(g,c,e,t);if(f===void 0){if(h||t?.optional||t?.defaultValue!==void 0)return;throw Error(`Unknown path element: "${c}" in "${s}"`)}return n=g,o=c,i(f,u)},l=Ft.splitNested(s,t?.separator??".","{","}"),m=void 0;if(l.length>0&&l[l.length-1].startsWith("?="))m=l.pop()?.substring(2);l.reverse();let y=i(e,l);if(y===void 0)return m??t?.defaultValue;return y},er=(e,r)=>{if(typeof e.value==="string"){if(e.quoted)return e.value;if(e.value.startsWith("[")&&e.value.endsWith("]")){let t=e.value.slice(1,-1);if(t.trim()==="")return[];return t.split(";").map((n)=>{let o=n.trim();if(!isNaN(+o))return+o;return o})}if(e.value.startsWith("{")&&e.value.endsWith("}")){if(e.value.slice(1,-1).trim()==="")return{}}if(e.value==="null")return null;if(e.value==="undefined")return;if(e.value.startsWith("@"))return e.value.slice(1);if(!isNaN(+e.value))return+e.value}return r(e.value)},ue=(e,r,t,n,o,s)=>{let a=n?.(e)??e,i=o(a);if(i[0])return i[1];if(!r){let l=V(t,e),m=o(l);if(m[0])return m[1]}throw Error(s)},tr=(e,r,t,n,o)=>{let s=typeof e.types==="function"?e.types(n,r.value,o):e.types?.[n];if(!s||s==="ref")return er(r,(i)=>V(t,i));let a=er(r,()=>r.value);if(Array.isArray(s)){if(!s.includes(a))throw Error(`Argument ${n.toString()} must be one of [${s.join(", ")}]: ${a}`);return a}if(typeof s==="string"){if(s.endsWith("?")){let i=s.slice(0,-1);if(r.value==="null")return E.ReplaceItem(null);if(r.value==="undefined")return E.ReplaceItem(void 0);if(r.value==="")return"";s=i}switch(s){case"any":return a;case"array":return ue(a,r.quoted,t,null,(i)=>[Array.isArray(i),i],`Argument ${n.toString()} must be an array: ${a}`);case"object":return ue(a,r.quoted,t,null,(i)=>[typeof i==="object"&&i!==null,i],`Argument ${n.toString()} must be an object: ${a}`);case"number":return ue(a,r.quoted,t,(i)=>Number(i),(i)=>[!isNaN(i),i],`Argument ${n.toString()} must be a number: ${a}`);case"boolean":return ue(a,r.quoted,t,null,(i)=>{if([!0,"true","1",1,"yes","on"].includes(i))return[!0,!0];if([!1,"false","0",0,"no","off"].includes(i))return[!0,!1];if([null,"null","undefined",void 0,""].includes(i))return[!0,!1];if(Array.isArray(i))return[!0,i.length>0];return[!1,!1]},`Argument ${n.toString()} must be a boolean: ${a}`);case"string":return a.toString();default:throw Error(`Unknown type for argument ${n.toString()}: ${s}`)}}return s(a,t,n,r.quoted)},H=(e,r)=>{let t=e?.[r];if(t===void 0)throw Error(`Unhandled field processor type: ${r}`);return typeof t==="function"?{options:{},fn:t}:{options:t,fn:t.fn}},nr=(e)=>!e.quoted&&e.value.startsWith("."),$t=(e)=>{let r={};for(let t of e){if(!nr(t))continue;let n=t.value.indexOf("="),o=n>-1?t.value.slice(1,n):t.value.slice(1),s=n>-1?t.value.slice(n+1):"";if(s.length>=2){let a=s[0],i=s[s.length-1];if(a==='"'&&i==='"'||a==="'"&&i==="'")s=s.slice(1,-1)}if(!r[o])r[o]=[];r[o].push(s)}return r},pe=(e,r,t)=>{let n=ht.splitWithQuotes(e??""),o=$t(n),s=n.filter((i)=>!nr(i)),a=r.options.processArgs===!1?[]:s.map((i,l)=>tr(r.options,i,t,l,s));return{rawArgs:s,parsedArgs:a,tags:o}},Wt=(e)=>{return e!==null&&typeof e==="object"&&"action"in e},Nt=(e,r)=>r.keys!==void 0&&e.key.startsWith(".")&&r.keys[e.key.substring(1)]!==void 0,Ct=async(e,r,t,n)=>{let{key:o,parent:s}=e,a=H(n.keys,o.substring(1));if(a.options.processArgs!==!1&&(typeof a.options.types==="function"||a.options.types?.[0]!==void 0))e.value=tr(a.options,{value:e.value,quoted:!1},t,0,[]);if(typeof e.value!=="string")await F(e.value,{...n,root:{...t,parent:e.parent,parents:e.parents},filters:[...n.filters??[],...a.options.filters??[]]});let i=await a.fn({path:r,root:t,parent:s,key:o,options:n,value:e.value,args:[],rawArgs:[],tags:{}});return Wt(i)?i:E.ReplaceParent(i)},rr=(e)=>{let r=e.split(/\r?\n/),t=r.filter((o)=>o.trim().length>0).map((o)=>/^[ \t]*/.exec(o)?.[0].length??0),n=t.length>0?Math.min(...t):0;if(n===0)return e;return r.map((o)=>o.slice(n)).join(`
2
2
  `)},Lt=async(e,r,t,n)=>{if(!r?.onSection&&!r?.onSectionConfig&&!r?.sections)return[e,!1];let o=/%{\s*section\s*}%([\s\S]*?)%{\s*endsection\s*}%/g,s,a=e,i=0,l=!1,m={content:a,root:n,path:t,options:r,section:{}};while((s=o.exec(e))!==null){l=!0;let[y,g]=s,u=s.index,c=u+y.length,h=e[c]===`
3
3
  `;if(h)c++;let f=u+i,w=c+i,p={},v=g,d=/(^|\r?\n)[ \t]*---[ \t]*(\r?\n|$)/m.exec(g);if(d){let Ee=g.slice(0,d.index),st=d.index+d[0].length;v=g.slice(st);let Pe=rr(Ee).trim();if(Pe.length>0)try{p=r?.configParser?.(Pe)??{}}catch(it){throw Error(`Failed to parse YAML config for section: ${it.message}`)}}else if(/^\r?\n/.test(v))v=v.replace(/^\r?\n/,"");v=rr(v),v=v.replace(/(?:\r?\n[ \t]*)+$/,""),v=v.replace(/[ \t]+$/,"");let M={config:p,content:v};if(m.content=a,m.section=M,Object.keys(M.config).length>0){if(await r.onSectionConfig?.(m)!==!1)await F(M.config,{...r,root:n})}let k=m.section.config.type?r.sections?.[m.section.config.type]:void 0,x;if(k)x=await k(m);else if(r.onSection)x=await r.onSection(m);if(M.trim)M.content=M.content.trim();if(M.indent)M.content=M.content.split(`
4
4
  `).map((Ee)=>" ".repeat(M.indent)+Ee).join(`
@@ -6,7 +6,9 @@ var at=Object.create;var{getPrototypeOf:lt,defineProperty:X,getOwnPropertyNames:
6
6
  `))L+=`
7
7
  `;let Ve=a.lastIndexOf(`
8
8
  `,f-1),He=Ve===-1?0:Ve+1,qe=a.slice(He,f).trim().length===0?He:f;a=a.slice(0,qe)+L+a.slice(w),i+=L.length-(w-qe),m.content=a}return[a,l]},or=(e)=>{let r=[],t=0;while(t<e.length)if(e[t]==="$"&&e[t+1]==="("&&(t===0||e[t-1]!=="\\")){let n=t;t+=2;let o=1;for(;t<e.length;t++)if(e[t]==="(")o++;else if(e[t]===")"){if(o--,o===0){r.push([n,t]);break}}if(o!==0)throw Error(`Unmatched opening $( at position ${n.toString()}`);t++}else t++;return r},Fe=Symbol.for("@homedev/fields:OverrideResult"),Ut=(e)=>({[Fe]:!0,value:e}),It=(e)=>{return e!==null&&typeof e==="object"&&Fe in e&&e[Fe]===!0},sr=async(e,r,t)=>{for(let n=r.length-1;n>=0;n--){let[o,s]=r[n],a=e.slice(o+2,s),i=await sr(a,or(a),t);if(typeof i==="object")return i;let l=await t(i,e);if(It(l))return l.value;e=e.slice(0,o)+l+e.slice(s+1)}return e},_t=async(e,r)=>sr(e,or(e),r),Tt=(e)=>{return e!==null&&typeof e==="object"&&"action"in e},Yt=/([\w\d.-_/]+):(.+)/,Bt=async(e,r,t,n)=>{let o=await(async()=>{let s=Yt.exec(e);if(!s)return await V(r,e);let[a,i,l]=s,m=H(n.sources,i),y=pe(l,m,r);return await m.fn({args:y.parsedArgs,rawArgs:y.rawArgs,tags:y.tags,key:i,options:n,root:r,path:t,value:null})})();if(o===null||o===void 0)return"";if(typeof o==="object")return Ut(o);return o},ir=async(e,r,t,n)=>{let o=await _t(r,(s)=>Bt(s,t,e,n));if(Tt(o))return o;if(o===r)return E.Explore();if(typeof o==="string"){let s=await ir(e,o,t,n);if(s.action!==U.Explore)return s;return E.ReplaceItem(o)}return E.ReplaceItem(o)},F=async(e,r)=>{return r??={},await bt(e,async(t)=>{let n=[...t.path,t.key].join(".");if(r?.filters?.length&&r.filters.some((i)=>i.test(n)))return E.NoExplore();let o=t.path.length===0,s=t.parents.length>0?t.parents.toReversed():[];if(o){if(s.length>0)throw Error("Root object should not have a parent");s=r?.root?.parents?[r.root.parent,...r.root.parents.toReversed()]:[]}let a={...e,...r.root,this:t.parent,parent:s.length>0?s[0]:null,parents:s};try{if(t.key.startsWith("$"))return E.NoExplore();let i=E.Explore();if(typeof t.value==="string"){let l=t.value,m=!1;while(!0){let[y,g]=await Lt(l,r,n,a);if(m=m||g,i=await ir(n,y,a,r),i.action===U.ReplaceItem&&typeof i.by==="string"){l=i.by;continue}if(i.action===U.Explore&&g&&y!==l)i=E.ReplaceItem(y);break}if(i.action===U.Explore&&l!==t.value)i=E.ReplaceItem(l);switch(i.action){case U.Explore:break;case U.ReplaceItem:t.value=i.by;break;default:return i}}if(Nt(t,r))i=await Ct(t,n,a,r);return i}catch(i){throw Error(`${i.message}
9
- (${n})`)}}),e},q=(e,r)=>r?{fn:(t)=>e(...t.args),types:r}:(t)=>e(...t.args),De=(e,r)=>Object.fromEntries(e.map((t)=>[t.name,q(t,r?.types?.[t.name])])),D=(e,r)=>Object.fromEntries((r?.keys??Object.keys(e)).map((t)=>[t,q(e[t],r?.types?.[t])]));var Ce={};$(Ce,{writeOutputs:()=>z,writeOutput:()=>ce,writeFormat:()=>fe,locate:()=>I,loadFormat:()=>P,importList:()=>me,importGlob:()=>Ne,globMap:()=>Z,exists:()=>Y});import ar from"fs/promises";import Re from"path";import Jt from"fs/promises";import Qt from"path";import Kt from"fs/promises";import Gt from"fs/promises";import pr from"fs/promises";import lr from"path";import xt from"fs/promises";import je from"path";import ur from"path";var Y=async(e)=>{try{return await ar.access(e,ar.constants.R_OK),!0}catch{return!1}},I=async(e,r)=>{let t=!Re.isAbsolute(e)&&r?["",...r]:[""];for(let n of t){let o=Re.join(n,e);if(await Y(o))return Re.resolve(o)}throw Error(`File not found: "${e}"`)},P=async(e,r)=>{let t=await I(e,r?.dirs),n=await Jt.readFile(t,"utf-8"),o=Qt.dirname(t),s={text:{fn:(i)=>i,matching:["\\.txt$","\\.text$"]},json:{fn:JSON.parse,matching:["\\.json$"]},...r?.parsers},a=r?.format?s[r.format]:Object.values(s).find((i)=>i.matching?.some((l)=>new RegExp(l).test(e)));if(!a)throw Error(`Unsupported format for file "${e}" and no matching parser found`);return{content:await a.fn(n),fullPath:t,folderPath:o}},fe=async(e,r,t)=>{let n={text:{fn:(s)=>s,matching:["\\.txt$","\\.text$"]},json:{fn:JSON.stringify,matching:["\\.json$"]},...t?.encoders},o=t?.format?n[t.format]:Object.values(n).find((s)=>s.matching?.some((a)=>new RegExp(a).test(e)));if(!o)throw Error(`Unsupported format for file "${e}" and no matching encoder found`);await Kt.writeFile(e,await o.fn(r))},Z=async(e,r)=>{if(typeof e==="string"&&!e.includes("*"))return await r.map(e,0,[]);let t=await Array.fromAsync(Gt.glob(e,{cwd:r.cwd})),n=r.filter?t.filter(r.filter):t;return await Promise.all(n.map(r.map))},z=async(e,r)=>{if(r?.targetDirectory&&r?.removeFirst)try{await pr.rm(r?.targetDirectory,{recursive:!0,force:!0})}catch(t){throw Error(`Failed to clean the output directory: ${t.message}`)}for(let t of e)await ce(t,r)},ce=async(e,r)=>{let t=lr.join(r?.targetDirectory??".",e.name),n=lr.dirname(t);if(r?.classes){if(e.class!==void 0&&!r.classes.includes(e.class))return;if(r.classRequired&&e.class===void 0)throw Error(`Output "${e.name}" is missing class field`)}if(r?.writing?.(e)===!1)return;try{await pr.mkdir(n,{recursive:!0})}catch(o){throw Error(`Failed to create target directory "${n}" for output "${t}": ${o.message}`)}try{await fe(t,e.value,{format:e.type??"text"})}catch(o){throw Error(`Failed to write output "${t}": ${o.message}`)}},We=(e)=>e?ur.isAbsolute(e)?e:ur.join(process.cwd(),e):process.cwd(),me=async(e,r)=>{let t=[];for(let n of e)try{let o=!je.isAbsolute(n)?je.join(We(r?.cwd),n):n;if(r?.filter?.(o)===!1)continue;let s=await import(o);if(r?.resolveDefault==="only"&&!s.default)throw Error(`Module ${n} does not have a default export`);let a=r?.resolveDefault?s.default??s:s,i=r?.map?await r.map(a,n):a;if(i!==void 0)t.push(i)}catch(o){if(r?.fail?.(n,o)===!1)continue;throw Error(`Failed to import module ${n}: ${o.message??o}`)}return t},Ne=async(e,r)=>{let t=[];for(let n of e){let o=(await Array.fromAsync(xt.glob(n,{cwd:We(r?.cwd)}))).map((s)=>je.join(We(r?.cwd),s));t.push(...await me(o,r))}return t};var Ye={};$(Ye,{toObjectWithKey:()=>Le,toObject:()=>ee,toList:()=>_,sortBy:()=>_e,nonNullMap:()=>Ue,defined:()=>Ie,deepClone:()=>R,asyncMap:()=>Te});var _=(e,r="name")=>Object.entries(e).map(([t,n])=>({[r]:t,...n})),Le=(e,r="name")=>Object.fromEntries(e.map((t)=>[t[r],t])),ee=(e,r="name")=>Object.fromEntries(e.map((t)=>{let{[r]:n,...o}=t;return[n,o]})),Ue=(e,r)=>{if(!e)return[];let t=[],n=0;for(let o of e)if(o!==null&&o!==void 0)t.push(r(o,n,e)),n++;return t},Ie=(e,r="Value is undefined")=>{if(e===void 0||e===null)throw Error(r);return e},_e=(e,r,t=(n,o)=>n-o)=>e.slice().sort((n,o)=>t(r(n),r(o))),Te=async(e,r)=>Promise.all(e.map(r)),R=(e)=>{if(typeof structuredClone<"u")try{return structuredClone(e)}catch{}return JSON.parse(JSON.stringify(e))};var Zr={};$(Zr,{defaultProcessors:()=>Ge});var fr={};$(fr,{navigate:()=>ye,find:()=>Be,NavigateResult:()=>b,NavigateAction:()=>ge});var ge;((e)=>{e[e.Explore=0]="Explore",e[e.SkipSiblings=1]="SkipSiblings",e[e.NoExplore=2]="NoExplore",e[e.ReplaceParent=3]="ReplaceParent",e[e.DeleteParent=4]="DeleteParent",e[e.MergeParent=5]="MergeParent",e[e.ReplaceItem=6]="ReplaceItem",e[e.DeleteItem=7]="DeleteItem"})(ge||={});class b{action;by;skipSiblings;reexplore;constructor(e,r,t,n){this.action=e,this.by=r,this.skipSiblings=t,this.reexplore=n}static _explore=new b(0);static _noExplore=new b(2);static _skipSiblings=new b(1);static _deleteParent=new b(4);static ReplaceParent(e,r){return new b(3,e,void 0,r)}static SkipSiblings(){return b._skipSiblings}static Explore(){return b._explore}static NoExplore(){return b._noExplore}static DeleteParent(){return b._deleteParent}static MergeParent(e){return new b(5,e)}static ReplaceItem(e,r){return new b(6,e,r)}static DeleteItem(e){return new b(7,void 0,e)}}var ye=async(e,r)=>{let t=new WeakSet,n=[],o=[],s=async(i,l,m)=>{let y=i===null,g=y?b.Explore():await r({key:i,value:l,path:n,parent:m,parents:o});if(l&&typeof l==="object"&&g.action===0){if(t.has(l))return g;if(t.add(l),!y)n.push(i),o.push(m);let u=l;while(await a(u,i,m))u=m[i];if(!y)o.pop(),n.pop()}return g},a=async(i,l,m)=>{let y=Object.keys(i),g=y.length;for(let u=0;u<g;u++){let c=y[u],h=i[c],f=await s(c,h,i),w=f.action;if(w===0||w===2)continue;if(w===6){if(i[c]=f.by,f.skipSiblings)return;continue}if(w===7){if(delete i[c],f.skipSiblings)return;continue}if(w===1)return;if(w===3){if(l===null)throw Error("Cannot replace root object");if(m[l]=f.by,f.reexplore)return!0;return}if(w===4){if(l===null)throw Error("Cannot delete root object");delete m[l];return}if(w===5)delete i[c],Object.assign(i,f.by)}};await s(null,e,null)},Be=async(e,r)=>{let t=[];return await ye(e,(n)=>{if(r([...n.path,n.key].join("."),n.value))t.push(n.value);return b.Explore()}),t};var cr=(e)=>({output:(r)=>{delete r.parent[r.key];for(let t of Array.isArray(r.value)?r.value:[r.value])if(typeof t==="string")e.output({name:t,value:r.parent});else e.output({...t,value:t.value??r.parent});return b.SkipSiblings()}});import Xt from"path";var mr=(e)=>({load:async(r)=>{let t=r.options.globalContext;for(let{file:n}of Array.isArray(r.value)?r.value:[r.value]){if(!n)throw Error("File reference required");await e.load(n,t.file&&Xt.dirname(t.file))}return b.DeleteItem()}});var gr={};$(gr,{mergeAll:()=>B,merge:()=>N});var N=(e,r,t)=>{for(let n of Object.keys(r)){if(e[n]===void 0)continue;let o=r[n],s=e[n];if(typeof s!==typeof o||Array.isArray(s)!==Array.isArray(o)){let i=t?.mismatch?.(n,s,o,e,r);if(i!==void 0){r[n]=i;continue}throw Error(`Type mismatch: ${n}`)}let a=t?.mode?.(n,s,o,e,r)??r[".merge"]??"merge";switch(a){case"source":r[n]=s;continue;case"target":continue;case"skip":delete r[n],delete e[n];continue;case"merge":break;default:throw Error(`Unknown merge mode: ${a}`)}if(typeof s==="object")if(Array.isArray(s))o.push(...s);else{if(t?.navigate?.(n,s,o,e,r)===!1)continue;N(s,o,t)}else{if(s===o)continue;let i=t?.conflict?.(n,s,o,e,r);r[n]=i===void 0?o:i}}for(let n of Object.keys(e))if(r[n]===void 0)r[n]=e[n]},B=(e,r)=>{let t={};for(let n of e.toReversed())N(n,t,r);return t};var yr={};$(yr,{CacheManager:()=>de});class de{cache=new Map;maxSize;constructor(e=100){this.maxSize=e}get(e){return this.cache.get(e)}set(e,r){this.evictIfNeeded(),this.cache.set(e,r)}has(e){return this.cache.has(e)}clear(){this.cache.clear()}setMaxSize(e){this.maxSize=e}size(){return this.cache.size}evictIfNeeded(){if(this.cache.size>=this.maxSize){let e=null,r=1/0;for(let[t,n]of this.cache.entries())if(n.timestamp<r)r=n.timestamp,e=t;if(e)this.cache.delete(e)}}}var wr={};$(wr,{select:()=>O});var Vt=Object.create,{getPrototypeOf:Ht,defineProperty:dr,getOwnPropertyNames:qt}=Object,Pt=Object.prototype.hasOwnProperty,Zt=(e,r,t)=>{t=e!=null?Vt(Ht(e)):{};let n=r||!e||!e.__esModule?dr(t,"default",{value:e,enumerable:!0}):t;for(let o of qt(e))if(!Pt.call(n,o))dr(n,o,{get:()=>e[o],enumerable:!0});return n},zt=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),en=zt((e,r)=>{var{defineProperty:t,getOwnPropertyNames:n,getOwnPropertyDescriptor:o}=Object,s=Object.prototype.hasOwnProperty,a=new WeakMap,i=(u)=>{var c=a.get(u),h;if(c)return c;if(c=t({},"__esModule",{value:!0}),u&&typeof u==="object"||typeof u==="function")n(u).map((f)=>!s.call(c,f)&&t(c,f,{get:()=>u[f],enumerable:!(h=o(u,f))||h.enumerable}));return a.set(u,c),c},l=(u,c)=>{for(var h in c)t(u,h,{get:c[h],enumerable:!0,configurable:!0,set:(f)=>c[h]=()=>f})},m={};l(m,{splitWithQuotes:()=>g,splitNested:()=>y}),r.exports=i(m);var y=(u,c,h="(",f=")")=>{let w=0,p="",v=[];for(let d of u){if(p+=d,d===h)w++;if(d===f)w--;if(w===0&&d===c)v.push(p.slice(0,-1)),p=""}if(p)v.push(p);return v},g=(u,c=",")=>{let h=[],f=u.length,w=c.length,p=0,v=(d)=>{if(d+w>f)return!1;for(let M=0;M<w;M++)if(u[d+M]!==c[M])return!1;return!0};while(p<f){while(p<f&&u[p]===" ")p++;if(p>=f)break;let d="",M=u[p]==='"'||u[p]==="'";if(M){let k=u[p++];while(p<f&&u[p]!==k)d+=u[p++];if(p<f)p++}else{while(p<f&&!v(p)){let k=u[p];if(k==='"'||k==="'"){d+=k,p++;while(p<f&&u[p]!==k)d+=u[p++];if(p<f)d+=u[p++]}else d+=u[p++]}d=d.trim()}if(d)h.push({value:d,quoted:M});if(v(p))p+=w}return h}}),rn=Zt(en(),1),tn=/^\[([^=\]]*)([=]*)([^\]]*)\]$/,nn=/^([^[\]]*)\[([^\]]*)]$/,Je=(e,r,t,n)=>{if(e.startsWith("{")&&e.endsWith("}")){let o=e.substring(1,e.length-1);return O(r,o,t)?.toString()}return n?e:void 0},on=(e,r,t,n)=>{let o=Je(r,t,n);if(o)return O(e,o,n);let s=tn.exec(r);if(s){let[,i,l,m]=s,y=Je(i.trim(),t,n,!0),g=Je(m.trim(),t,n,!0);if(Array.isArray(e)&&(l==="="||l==="==")&&y)return e.find((u)=>u?.[y]==g)}let a=nn.exec(r);if(a){let[,i,l]=a;return e?.[i]?.[l]}return e?.[r]},O=(e,r,t)=>{let n=void 0,o=void 0,s=r??"",a=(g)=>{if(!g)return[g,!1];return g.endsWith("?")?[g.substring(0,g.length-1),!0]:[g,!1]},i=(g,u)=>{let[c,h]=a(u.pop());if(!c){if(t?.set!==void 0&&o!==void 0&&n!==void 0)n[o]=t.set;return g}let f=on(g,c,e,t);if(f===void 0){if(h||t?.optional||t?.defaultValue!==void 0)return;throw Error(`Unknown path element: "${c}" in "${s}"`)}return n=g,o=c,i(f,u)},l=rn.splitNested(s,t?.separator??".","{","}"),m=void 0;if(l.length>0&&l[l.length-1].startsWith("?="))m=l.pop()?.substring(2);l.reverse();let y=i(e,l);if(y===void 0)return m??t?.defaultValue;return y};var we=(e)=>{if(typeof e.value==="string")return e.parent;let r=e.value.model;if(!r)return e.parent;if(typeof r==="string")return O(e.root,r);return r};var he=(e)=>{if(typeof e.value==="string")return O(e.root,e.value);if(Array.isArray(e.value))return e.value;let r=e.value;if(typeof r.from==="string")return O(e.root,r.from);return r.from};var be=async(e,r)=>{let t=e.value;if(t.selector===void 0)return r;if(typeof t.selector!=="string"){let n=JSON.parse(JSON.stringify(t.selector));return await F(n,{...e.options,root:{...e.root,result:r}}),n}return await O({...e.root,result:r},t.selector)};var hr={};$(hr,{PathManager:()=>T});import J from"path";class T{constructor(){}static normalize(e){return J.normalize(J.resolve(e))}static resolveInContext(e,r){let t=r??process.cwd(),n=J.isAbsolute(e)?e:J.join(t,e);return this.normalize(n)}static isDirectoryPattern(e){return e.endsWith("/")}static isGlobPattern(e){return e.includes("*")}static toAbsolute(e,r){if(J.isAbsolute(e))return e;return J.join(r??process.cwd(),e)}}var br={};$(br,{conditionPredicatesTypes:()=>re,conditionPredicates:()=>j});var j={and:(...e)=>e.every((r)=>!!r),or:(...e)=>e.some((r)=>!!r),xor:(...e)=>e.filter((r)=>!!r).length===1,true:(...e)=>e.every((r)=>!!r),false:(...e)=>e.every((r)=>!r),eq:(...e)=>e.every((r)=>r===e[0]),ne:(...e)=>e.some((r)=>r!==e[0]),lt:(...e)=>typeof e[0]==="number"&&e.slice(1).every((r)=>typeof r==="number"&&e[0]<r),le:(...e)=>typeof e[0]==="number"&&e.slice(1).every((r)=>typeof r==="number"&&e[0]<=r),gt:(...e)=>typeof e[0]==="number"&&e.slice(1).every((r)=>typeof r==="number"&&e[0]>r),ge:(...e)=>typeof e[0]==="number"&&e.slice(1).every((r)=>typeof r==="number"&&e[0]>=r),in:(e,r)=>{if(Array.isArray(r))return r.includes(e);if(typeof e==="string")return e.includes(r);if(Array.isArray(e))return e.includes(r);return!1},notin:(e,r)=>!j.in(e,r),contains:(e,r)=>e.includes(r),notcontains:(e,r)=>!e.includes(r),containsi:(e,r)=>e.toLowerCase().includes(r.toLowerCase()),notcontainsi:(e,r)=>!e.toLowerCase().includes(r.toLowerCase()),null:(...e)=>e.every((r)=>r===null||r===void 0),notnull:(...e)=>e.every((r)=>r!==null&&r!==void 0),empty:(...e)=>e.every((r)=>r===""),notempty:(...e)=>e.every((r)=>r!==""),nullorempty:(...e)=>e.every((r)=>r===null||r===void 0||r===""),notnullorempty:(...e)=>e.every((r)=>r!==null&&r!==void 0&&r!=="")},re={and:()=>"boolean",or:()=>"boolean",xor:()=>"boolean",true:()=>"boolean",false:()=>"boolean",lt:()=>"number",le:()=>"number",gt:()=>"number",ge:()=>"number"};var vr=()=>({each:{filters:[/select|model/],fn:async(e)=>{let r=e.value;delete e.parent[e.key];let t=await he(e),n=await we(e);if(!Array.isArray(t))throw Error('Key "each" requires a source list');if(n===void 0)throw Error('Key "each" must define a model');if(r.extend?.model)n=B([r.model,...Array.isArray(r.extend.model)?r.extend.model:[r.extend.model]]);let o=[];for(let s=0;s<t.length;s++){let a=R(n);if(await F(a,{...e.options,root:{...e.root,index:s,item:t[s],instance:a}}),r.extend?.result){let i=r.extend.result;a=B([a,...Array.isArray(i)?i:[i]])}o.push(await be(e,a))}return o}}});var Mr=()=>({map:{filters:[/select|model/],fn:async(e)=>{delete e.parent[e.key];let r=await he(e),t=await we(e);if(!Array.isArray(r))throw Error('Key "map" requires a source list');if(t===void 0)throw Error('Key "map" must define a model');let n=[];for(let o=0;o<r.length;o++){let s=R(t);await F(s,{...e.options,root:{...e.root,index:o,item:r[o],instance:s}}),n.push(await be(e,s))}return n}}});var Or=()=>({concat:async(e)=>{let r=[];for(let t of Array.isArray(e.value)?e.value:[e.value])r.push(...await O(e.root,t));return r.filter((t)=>t!==void 0)}});var Er=()=>({extends:async(e)=>{let r=async(t,n)=>{for(let o of Array.isArray(n)?n:[n]){let s=await O(e.root,o),a=R(s);if(a[e.key])await r(a,a[e.key]);await F(a,{...e.options}),N(a,t),delete t[e.key]}};return await r(e.parent,e.value),b.Explore()},group:(e)=>{let r=e.root.parent,t=e.value,{items:n,...o}=t;return t.items.forEach((s)=>r.push({...o,...s})),b.DeleteParent()}});var Ar=(e)=>({skip:{types:{0:"boolean"},fn:(r)=>r.value?b.DeleteParent():b.DeleteItem()},metadata:({path:r,value:t})=>{return e.metadata(r,t),b.DeleteItem()},if:{types:{0:"boolean"},fn:async(r)=>{let t=r.parent[".then"],n=r.parent[".else"];if(t!==void 0)delete r.parent[".then"];if(n!==void 0)delete r.parent[".else"];let o=r.value?t:n;if(o===void 0)return b.DeleteItem();if(typeof o==="string")return(await F({value:o},{...r.options,root:{...r.root}})).value;return b.ReplaceParent(o,!0)}},switch:(r)=>{let t=r.value;if(!t.cases)throw Error("Missing cases for switch");if(t.cases[t.from]!==void 0)return b.ReplaceParent(t.cases[t.from],!0);if(t.default!==void 0)return b.ReplaceParent(t.default,!0);return b.DeleteParent()}});var kr=()=>({from:async({root:e,parent:r,value:t})=>{let n=await O(e,t);if(n===null||n===void 0)throw Error(`Unable to resolve reference: ${t}`);if(r.content){if(Array.isArray(r.content)&&Array.isArray(n))return[...n,...r.content];return N(n,r.content),r.content}return n}});import Sr from"node:vm";var Fr=(e)=>({modules:async(r)=>{for(let[t,n]of Object.entries(r.value)){let o=Sr.createContext({console,objector:e,document:r.root}),s=new Sr.SourceTextModule(n,{identifier:t,context:o});await s.link((a)=>{throw Error(`Module ${a} is not allowed`)}),await s.evaluate(),e.sources(Object.fromEntries(Object.entries(s.namespace).map(([a,i])=>[`${t}.${a}`,(l)=>i(l,...l.args)])))}return b.DeleteItem()}});var Dr=()=>({try:{fn:(e)=>{let r=e.parent[".catch"];if(r!==void 0)delete e.parent[".catch"];try{return e.value}catch(t){if(r!==void 0)return r;return b.DeleteItem()}}}});var $r=()=>({let:{fn:(e)=>{let r=e.value;return Object.assign(e.root,r),b.DeleteItem()}}});var Rr=()=>({tap:{fn:(e)=>{return console.log(`[tap] ${e.path}:`,e.value),e.value}}});var sn=Object.getPrototypeOf(async function(){}).constructor,jr=async(e)=>{let r=[],t={write:(s)=>r.push(s)},o=await new sn("document",e.section.content)({...e.root,...t});if(typeof o<"u")return o;if(r.length===0)return!1;return r.join("")};var Wr=()=>({script:jr});import Nr from"fs/promises";import te from"path";var Cr=(e)=>({include:async(r)=>{let{file:t}=r.options.globalContext;return await Z(r.args[0],{cwd:te.dirname(t),filter:(n)=>te.basename(t)!==n,map:async(n)=>e.load(n,te.dirname(t),r.root)})},exists:async({args:[r]})=>await Y(r),file:async(r)=>await Nr.readFile(await I(r.args[0],e.getIncludeDirectories())).then((t)=>t.toString()),scan:async(r)=>{let t=[],o=(()=>{let i=r.args[2]??["**/node_modules/**"],l=typeof i==="string"?i.split(",").map((m)=>m.trim()):i;if(!Array.isArray(l))throw Error("Scan exclusion must be a list");return l})(),{file:s}=r.options.globalContext,a=r.args[1]?await I(r.args[1],e.getIncludeDirectories()):te.dirname(s);for await(let i of Nr.glob(r.args[0],{cwd:a,exclude:(l)=>o.some((m)=>te.matchesGlob(l,m))}))t.push(i);return t}});var Lr=()=>D({env:(e)=>process.env[e]});var Ur={};$(Ur,{tokenize:()=>Qe,stripIndent:()=>Ke,snake:()=>K,pascal:()=>Q,padBlock:()=>C,changeCase:()=>G,capital:()=>ne,camel:()=>oe});var Q=(e)=>e.replace(/((?:[_ ]+)\w|^\w)/g,(r,t)=>t.toUpperCase()).replace(/[_ ]/g,""),ne=(e)=>e.replace(/((?:[ ]+)\w|^\w)/g,(r,t)=>t.toUpperCase()),oe=(e)=>{let r=Q(e);return r.charAt(0).toLowerCase()+r.slice(1)},K=(e,r="_")=>e.replace(/([a-z])([A-Z])/g,`$1${r}$2`).replace(/\s+/g,r).toLowerCase(),G=(e,r)=>{switch(r){case"upper":return e.toUpperCase();case"lower":return e.toLowerCase();default:return e}},C=(e,r,t=`
9
+ (${n})`)}}),e},q=(e,r)=>r?{fn:(t)=>e(...t.args),types:r}:(t)=>e(...t.args),De=(e,r)=>Object.fromEntries(e.map((t)=>[t.name,q(t,r?.types?.[t.name])])),D=(e,r)=>Object.fromEntries((r?.keys??Object.keys(e)).map((t)=>[t,q(e[t],r?.types?.[t])]));var Ce={};j(Ce,{writeOutputs:()=>z,writeOutput:()=>ce,writeFormat:()=>fe,locate:()=>I,loadFormat:()=>P,importList:()=>me,importGlob:()=>Ne,globMap:()=>Z,exists:()=>Y});import ar from"fs/promises";import Re from"path";import Jt from"fs/promises";import Qt from"path";import Kt from"fs/promises";import Gt from"fs/promises";import pr from"fs/promises";import lr from"path";import xt from"fs/promises";import $e from"path";import ur from"path";var Y=async(e)=>{try{return await ar.access(e,ar.constants.R_OK),!0}catch{return!1}},I=async(e,r)=>{let t=!Re.isAbsolute(e)&&r?["",...r]:[""];for(let n of t){let o=Re.join(n,e);if(await Y(o))return Re.resolve(o)}throw Error(`File not found: "${e}"`)},P=async(e,r)=>{let t=await I(e,r?.dirs),n=await Jt.readFile(t,"utf-8"),o=Qt.dirname(t),s={text:{fn:(i)=>i,matching:["\\.txt$","\\.text$"]},json:{fn:JSON.parse,matching:["\\.json$"]},...r?.parsers},a=r?.format?s[r.format]:Object.values(s).find((i)=>i.matching?.some((l)=>new RegExp(l).test(e)));if(!a)throw Error(`Unsupported format for file "${e}" and no matching parser found`);return{content:await a.fn(n),fullPath:t,folderPath:o}},fe=async(e,r,t)=>{let n={text:{fn:(s)=>s,matching:["\\.txt$","\\.text$"]},json:{fn:JSON.stringify,matching:["\\.json$"]},...t?.encoders},o=t?.format?n[t.format]:Object.values(n).find((s)=>s.matching?.some((a)=>new RegExp(a).test(e)));if(!o)throw Error(`Unsupported format for file "${e}" and no matching encoder found`);await Kt.writeFile(e,await o.fn(r))},Z=async(e,r)=>{if(typeof e==="string"&&!e.includes("*"))return await r.map(e,0,[]);let t=await Array.fromAsync(Gt.glob(e,{cwd:r.cwd})),n=r.filter?t.filter(r.filter):t;return await Promise.all(n.map(r.map))},z=async(e,r)=>{if(r?.targetDirectory&&r?.removeFirst)try{await pr.rm(r?.targetDirectory,{recursive:!0,force:!0})}catch(t){throw Error(`Failed to clean the output directory: ${t.message}`)}for(let t of e)await ce(t,r)},ce=async(e,r)=>{let t=lr.join(r?.targetDirectory??".",e.name),n=lr.dirname(t);if(r?.classes){if(e.class!==void 0&&!r.classes.includes(e.class))return;if(r.classRequired&&e.class===void 0)throw Error(`Output "${e.name}" is missing class field`)}if(r?.writing?.(e)===!1)return;try{await pr.mkdir(n,{recursive:!0})}catch(o){throw Error(`Failed to create target directory "${n}" for output "${t}": ${o.message}`)}try{await fe(t,e.value,{format:e.type??"text"})}catch(o){throw Error(`Failed to write output "${t}": ${o.message}`)}},We=(e)=>e?ur.isAbsolute(e)?e:ur.join(process.cwd(),e):process.cwd(),me=async(e,r)=>{let t=[];for(let n of e)try{let o=!$e.isAbsolute(n)?$e.join(We(r?.cwd),n):n;if(r?.filter?.(o)===!1)continue;let s=await import(o);if(r?.resolveDefault==="only"&&!s.default)throw Error(`Module ${n} does not have a default export`);let a=r?.resolveDefault?s.default??s:s,i=r?.map?await r.map(a,n):a;if(i!==void 0)t.push(i)}catch(o){if(r?.fail?.(n,o)===!1)continue;throw Error(`Failed to import module ${n}: ${o.message??o}`)}return t},Ne=async(e,r)=>{let t=[];for(let n of e){let o=(await Array.fromAsync(xt.glob(n,{cwd:We(r?.cwd)}))).map((s)=>$e.join(We(r?.cwd),s));t.push(...await me(o,r))}return t};var Ye={};j(Ye,{toObjectWithKey:()=>Le,toObject:()=>ee,toList:()=>_,sortBy:()=>_e,nonNullMap:()=>Ue,defined:()=>Ie,deepClone:()=>R,asyncMap:()=>Te});var _=(e,r="name")=>Object.entries(e).map(([t,n])=>({[r]:t,...n})),Le=(e,r="name")=>Object.fromEntries(e.map((t)=>[t[r],t])),ee=(e,r="name")=>Object.fromEntries(e.map((t)=>{let{[r]:n,...o}=t;return[n,o]})),Ue=(e,r)=>{if(!e)return[];let t=[],n=0;for(let o of e)if(o!==null&&o!==void 0)t.push(r(o,n,e)),n++;return t},Ie=(e,r="Value is undefined")=>{if(e===void 0||e===null)throw Error(r);return e},_e=(e,r,t=(n,o)=>n-o)=>e.slice().sort((n,o)=>t(r(n),r(o))),Te=async(e,r)=>Promise.all(e.map(r)),R=(e)=>{if(typeof structuredClone<"u")try{return structuredClone(e)}catch{}return JSON.parse(JSON.stringify(e))};var Zr={};j(Zr,{defaultProcessors:()=>Ge});var fr={};j(fr,{navigate:()=>ye,find:()=>Be,NavigateResult:()=>b,NavigateAction:()=>ge});var ge;((e)=>{e[e.Explore=0]="Explore",e[e.SkipSiblings=1]="SkipSiblings",e[e.NoExplore=2]="NoExplore",e[e.ReplaceParent=3]="ReplaceParent",e[e.DeleteParent=4]="DeleteParent",e[e.MergeParent=5]="MergeParent",e[e.ReplaceItem=6]="ReplaceItem",e[e.DeleteItem=7]="DeleteItem"})(ge||={});class b{action;by;skipSiblings;reexplore;constructor(e,r,t,n){this.action=e,this.by=r,this.skipSiblings=t,this.reexplore=n}static _explore=new b(0);static _noExplore=new b(2);static _skipSiblings=new b(1);static _deleteParent=new b(4);static ReplaceParent(e,r){return new b(3,e,void 0,r)}static SkipSiblings(){return b._skipSiblings}static Explore(){return b._explore}static NoExplore(){return b._noExplore}static DeleteParent(){return b._deleteParent}static MergeParent(e){return new b(5,e)}static ReplaceItem(e,r){return new b(6,e,r)}static DeleteItem(e){return new b(7,void 0,e)}}var ye=async(e,r)=>{let t=new WeakSet,n=[],o=[],s=async(i,l,m)=>{let y=i===null,g=y?b.Explore():await r({key:i,value:l,path:n,parent:m,parents:o});if(l&&typeof l==="object"&&g.action===0){if(t.has(l))return g;if(t.add(l),!y)n.push(i),o.push(m);let u=l;while(await a(u,i,m))u=m[i];if(!y)o.pop(),n.pop()}return g},a=async(i,l,m)=>{let y=Object.keys(i),g=y.length;for(let u=0;u<g;u++){let c=y[u],h=i[c],f=await s(c,h,i),w=f.action;if(w===0||w===2)continue;if(w===6){if(i[c]=f.by,f.skipSiblings)return;continue}if(w===7){if(delete i[c],f.skipSiblings)return;continue}if(w===1)return;if(w===3){if(l===null)throw Error("Cannot replace root object");if(m[l]=f.by,f.reexplore)return!0;return}if(w===4){if(l===null)throw Error("Cannot delete root object");delete m[l];return}if(w===5)delete i[c],Object.assign(i,f.by)}};await s(null,e,null)},Be=async(e,r)=>{let t=[];return await ye(e,(n)=>{if(r([...n.path,n.key].join("."),n.value))t.push(n.value);return b.Explore()}),t};var cr=(e)=>({output:(r)=>{delete r.parent[r.key];for(let t of Array.isArray(r.value)?r.value:[r.value])if(typeof t==="string")e.output({name:t,value:r.parent});else e.output({...t,value:t.value??r.parent});return b.SkipSiblings()}});import Xt from"path";var mr=(e)=>({load:async(r)=>{let t=r.options.globalContext;for(let{file:n}of Array.isArray(r.value)?r.value:[r.value]){if(!n)throw Error("File reference required");await e.load(n,t.file&&Xt.dirname(t.file))}return b.DeleteItem()}});var gr={};j(gr,{mergeAll:()=>B,merge:()=>N});var N=(e,r,t)=>{for(let n of Object.keys(r)){if(e[n]===void 0)continue;let o=r[n],s=e[n];if(typeof s!==typeof o||Array.isArray(s)!==Array.isArray(o)){let i=t?.mismatch?.(n,s,o,e,r);if(i!==void 0){r[n]=i;continue}throw Error(`Type mismatch: ${n}`)}let a=t?.mode?.(n,s,o,e,r)??r[".merge"]??"merge";switch(a){case"source":r[n]=s;continue;case"target":continue;case"skip":delete r[n],delete e[n];continue;case"merge":break;default:throw Error(`Unknown merge mode: ${a}`)}if(typeof s==="object")if(Array.isArray(s))o.push(...s);else{if(t?.navigate?.(n,s,o,e,r)===!1)continue;N(s,o,t)}else{if(s===o)continue;let i=t?.conflict?.(n,s,o,e,r);r[n]=i===void 0?o:i}}for(let n of Object.keys(e))if(r[n]===void 0)r[n]=e[n]},B=(e,r)=>{let t={};for(let n of e.toReversed())N(n,t,r);return t};var yr={};j(yr,{CacheManager:()=>de});class de{cache=new Map;maxSize;constructor(e=100){this.maxSize=e}get(e){return this.cache.get(e)}set(e,r){this.evictIfNeeded(),this.cache.set(e,r)}has(e){return this.cache.has(e)}clear(){this.cache.clear()}setMaxSize(e){this.maxSize=e}size(){return this.cache.size}evictIfNeeded(){if(this.cache.size>=this.maxSize){let e=null,r=1/0;for(let[t,n]of this.cache.entries())if(n.timestamp<r)r=n.timestamp,e=t;if(e)this.cache.delete(e)}}}var wr={};j(wr,{select:()=>O});var Vt=Object.create,{getPrototypeOf:Ht,defineProperty:dr,getOwnPropertyNames:qt}=Object,Pt=Object.prototype.hasOwnProperty,Zt=(e,r,t)=>{t=e!=null?Vt(Ht(e)):{};let n=r||!e||!e.__esModule?dr(t,"default",{value:e,enumerable:!0}):t;for(let o of qt(e))if(!Pt.call(n,o))dr(n,o,{get:()=>e[o],enumerable:!0});return n},zt=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),en=zt((e,r)=>{var{defineProperty:t,getOwnPropertyNames:n,getOwnPropertyDescriptor:o}=Object,s=Object.prototype.hasOwnProperty,a=new WeakMap,i=(u)=>{var c=a.get(u),h;if(c)return c;if(c=t({},"__esModule",{value:!0}),u&&typeof u==="object"||typeof u==="function")n(u).map((f)=>!s.call(c,f)&&t(c,f,{get:()=>u[f],enumerable:!(h=o(u,f))||h.enumerable}));return a.set(u,c),c},l=(u,c)=>{for(var h in c)t(u,h,{get:c[h],enumerable:!0,configurable:!0,set:(f)=>c[h]=()=>f})},m={};l(m,{splitWithQuotes:()=>g,splitNested:()=>y}),r.exports=i(m);var y=(u,c,h="(",f=")")=>{let w=0,p="",v=[];for(let d of u){if(p+=d,d===h)w++;if(d===f)w--;if(w===0&&d===c)v.push(p.slice(0,-1)),p=""}if(p)v.push(p);return v},g=(u,c=",")=>{let h=[],f=u.length,w=c.length,p=0,v=(d)=>{if(d+w>f)return!1;for(let M=0;M<w;M++)if(u[d+M]!==c[M])return!1;return!0};while(p<f){while(p<f&&u[p]===" ")p++;if(p>=f)break;let d="",M=u[p]==='"'||u[p]==="'";if(M){let k=u[p++];while(p<f&&u[p]!==k)d+=u[p++];if(p<f)p++}else{while(p<f&&!v(p)){let k=u[p];if(k==='"'||k==="'"){d+=k,p++;while(p<f&&u[p]!==k)d+=u[p++];if(p<f)d+=u[p++]}else d+=u[p++]}d=d.trim()}if(d)h.push({value:d,quoted:M});if(v(p))p+=w}return h}}),rn=Zt(en(),1),tn=/^\[([^=\]]*)([=]*)([^\]]*)\]$/,nn=/^([^[\]]*)\[([^\]]*)]$/,Je=(e,r,t,n)=>{if(e.startsWith("{")&&e.endsWith("}")){let o=e.substring(1,e.length-1);return O(r,o,t)?.toString()}return n?e:void 0},on=(e,r,t,n)=>{let o=Je(r,t,n);if(o)return O(e,o,n);let s=tn.exec(r);if(s){let[,i,l,m]=s,y=Je(i.trim(),t,n,!0),g=Je(m.trim(),t,n,!0);if(Array.isArray(e)&&(l==="="||l==="==")&&y)return e.find((u)=>u?.[y]==g)}let a=nn.exec(r);if(a){let[,i,l]=a;return e?.[i]?.[l]}return e?.[r]},O=(e,r,t)=>{let n=void 0,o=void 0,s=r??"",a=(g)=>{if(!g)return[g,!1];return g.endsWith("?")?[g.substring(0,g.length-1),!0]:[g,!1]},i=(g,u)=>{let[c,h]=a(u.pop());if(!c){if(t?.set!==void 0&&o!==void 0&&n!==void 0)n[o]=t.set;return g}let f=on(g,c,e,t);if(f===void 0){if(h||t?.optional||t?.defaultValue!==void 0)return;throw Error(`Unknown path element: "${c}" in "${s}"`)}return n=g,o=c,i(f,u)},l=rn.splitNested(s,t?.separator??".","{","}"),m=void 0;if(l.length>0&&l[l.length-1].startsWith("?="))m=l.pop()?.substring(2);l.reverse();let y=i(e,l);if(y===void 0)return m??t?.defaultValue;return y};var we=(e)=>{if(typeof e.value==="string")return e.parent;let r=e.value.model;if(!r)return e.parent;if(typeof r==="string")return O(e.root,r);return r};var he=(e)=>{if(typeof e.value==="string")return O(e.root,e.value);if(Array.isArray(e.value))return e.value;let r=e.value;if(typeof r.from==="string")return O(e.root,r.from);return r.from};var be=async(e,r)=>{let t=e.value;if(t.selector===void 0)return r;if(typeof t.selector!=="string"){let n=JSON.parse(JSON.stringify(t.selector));return await F(n,{...e.options,root:{...e.root,result:r}}),n}return await O({...e.root,result:r},t.selector)};var hr={};j(hr,{PathManager:()=>T});import J from"path";class T{constructor(){}static normalize(e){return J.normalize(J.resolve(e))}static resolveInContext(e,r){let t=r??process.cwd(),n=J.isAbsolute(e)?e:J.join(t,e);return this.normalize(n)}static isDirectoryPattern(e){return e.endsWith("/")}static isGlobPattern(e){return e.includes("*")}static toAbsolute(e,r){if(J.isAbsolute(e))return e;return J.join(r??process.cwd(),e)}}var br={};j(br,{conditionPredicatesTypes:()=>re,conditionPredicates:()=>$});var $={and:(...e)=>e.every((r)=>!!r),or:(...e)=>e.some((r)=>!!r),xor:(...e)=>e.filter((r)=>!!r).length===1,true:(...e)=>e.every((r)=>!!r),false:(...e)=>e.every((r)=>!r),eq:(...e)=>e.every((r)=>r===e[0]),ne:(...e)=>e.some((r)=>r!==e[0]),lt:(...e)=>typeof e[0]==="number"&&e.slice(1).every((r)=>typeof r==="number"&&e[0]<r),le:(...e)=>typeof e[0]==="number"&&e.slice(1).every((r)=>typeof r==="number"&&e[0]<=r),gt:(...e)=>typeof e[0]==="number"&&e.slice(1).every((r)=>typeof r==="number"&&e[0]>r),ge:(...e)=>typeof e[0]==="number"&&e.slice(1).every((r)=>typeof r==="number"&&e[0]>=r),in:(e,r)=>{if(Array.isArray(r))return r.includes(e);if(typeof e==="string")return e.includes(r);if(Array.isArray(e))return e.includes(r);return!1},notin:(e,r)=>!$.in(e,r),contains:(e,r)=>e.includes(r),notcontains:(e,r)=>!e.includes(r),containsi:(e,r)=>e.toLowerCase().includes(r.toLowerCase()),notcontainsi:(e,r)=>!e.toLowerCase().includes(r.toLowerCase()),null:(...e)=>e.every((r)=>r===null||r===void 0),notnull:(...e)=>e.every((r)=>r!==null&&r!==void 0),empty:(...e)=>e.every((r)=>r===""),notempty:(...e)=>e.every((r)=>r!==""),nullorempty:(...e)=>e.every((r)=>r===null||r===void 0||r===""),notnullorempty:(...e)=>e.every((r)=>r!==null&&r!==void 0&&r!=="")},re={and:()=>"boolean",or:()=>"boolean",xor:()=>"boolean",true:()=>"boolean",false:()=>"boolean",lt:()=>"number",le:()=>"number",gt:()=>"number",ge:()=>"number"};var vr=()=>({each:{filters:[/select|model/],fn:async(e)=>{let r=e.value;delete e.parent[e.key];let t=await he(e),n=await we(e);if(!Array.isArray(t))throw Error('Key "each" requires a source list');if(n===void 0)throw Error('Key "each" must define a model');if(r.extend?.model)n=B([r.model,...Array.isArray(r.extend.model)?r.extend.model:[r.extend.model]]);let o=[];for(let s=0;s<t.length;s++){let a=R(n);if(await F(a,{...e.options,root:{...e.root,index:s,item:t[s],instance:a}}),r.extend?.result){let i=r.extend.result;a=B([a,...Array.isArray(i)?i:[i]])}o.push(await be(e,a))}return o}}});var Mr=()=>({map:{filters:[/select|model/],fn:async(e)=>{delete e.parent[e.key];let r=await he(e),t=await we(e);if(!Array.isArray(r))throw Error('Key "map" requires a source list');if(t===void 0)throw Error('Key "map" must define a model');let n=[];for(let o=0;o<r.length;o++){let s=R(t);await F(s,{...e.options,root:{...e.root,index:o,item:r[o],instance:s}}),n.push(await be(e,s))}return n}}});var Or=()=>({concat:async(e)=>{let r=[];for(let t of Array.isArray(e.value)?e.value:[e.value])r.push(...await O(e.root,t));return r.filter((t)=>t!==void 0)}});var Er=()=>({extends:async(e)=>{let r=async(t,n)=>{for(let o of Array.isArray(n)?n:[n]){let s=await O(e.root,o),a=R(s);if(a[e.key])await r(a,a[e.key]);await F(a,{...e.options}),N(a,t),delete t[e.key]}};return await r(e.parent,e.value),b.Explore()},group:(e)=>{let r=e.root.parent,t=e.value,{items:n,...o}=t;return t.items.forEach((s)=>r.push({...o,...s})),b.DeleteParent()}});var Ar=(e)=>({skip:{types:{0:"boolean"},fn:(r)=>r.value?b.DeleteParent():b.DeleteItem()},metadata:({path:r,value:t})=>{return e.metadata(r,t),b.DeleteItem()},if:{types:{0:"boolean"},fn:async(r)=>{let t=r.parent[".then"],n=r.parent[".else"];if(t!==void 0)delete r.parent[".then"];if(n!==void 0)delete r.parent[".else"];let o=r.value?t:n;if(o===void 0)return b.DeleteItem();if(typeof o==="string")return(await F({value:o},{...r.options,root:{...r.root}})).value;return b.ReplaceParent(o,!0)}},switch:(r)=>{let t=r.value;if(!t.cases)throw Error("Missing cases for switch");if(t.cases[t.from]!==void 0)return b.ReplaceParent(t.cases[t.from],!0);if(t.default!==void 0)return b.ReplaceParent(t.default,!0);return b.DeleteParent()}});var kr=()=>({from:async({root:e,parent:r,value:t})=>{let n=await O(e,t);if(n===null||n===void 0)throw Error(`Unable to resolve reference: ${t}`);if(r.content){if(Array.isArray(r.content)&&Array.isArray(n))return[...n,...r.content];return N(n,r.content),r.content}return n}});import Sr from"node:vm";var Fr=(e)=>({modules:async(r)=>{for(let[t,n]of Object.entries(r.value)){let o=Sr.createContext({console,objector:e,document:r.root}),s=new Sr.SourceTextModule(n,{identifier:t,context:o});await s.link((a)=>{throw Error(`Module ${a} is not allowed`)}),await s.evaluate(),e.sources(Object.fromEntries(Object.entries(s.namespace).map(([a,i])=>[`${t}.${a}`,(l)=>i(l,...l.args)])))}return b.DeleteItem()}});var Dr=()=>({try:{fn:(e)=>{let r=e.parent[".catch"];if(r!==void 0)delete e.parent[".catch"];try{return e.value}catch(t){if(r!==void 0)return r;return b.DeleteItem()}}}});var jr=()=>({let:{fn:(e)=>{let r=e.value;return Object.assign(e.root,r),b.DeleteItem()}}});var Rr=()=>({tap:{fn:(e)=>{return console.log(`[tap] ${e.path}:`,e.value),e.value}}});var sn=Object.getPrototypeOf(async function(){}).constructor,$r=(e)=>async(r)=>{let t=[],n={write:(...a)=>{return t.push(...a),n},writeLine:(...a)=>{return t.push(...a.map((i)=>i+`
10
+ `)),n},clear:()=>{return t.splice(0,t.length),n},prepend:(...a)=>{return t.unshift(...a),n},prependLine:(...a)=>{return t.unshift(...a.map((i)=>i+`
11
+ `)),n},setOptions:(a)=>{return Object.assign(r.section,a),n},use:(a)=>{return a(n),n},getLines:()=>t},s=await new sn("section","context","config","system",r.section.content)(n,r.root,r.section.config,e);if(typeof s<"u")return s;if(t.length===0)return!1;return t.join("")};var Wr=(e)=>({script:$r(e)});import Nr from"fs/promises";import te from"path";var Cr=(e)=>({include:async(r)=>{let{file:t}=r.options.globalContext;return await Z(r.args[0],{cwd:te.dirname(t),filter:(n)=>te.basename(t)!==n,map:async(n)=>e.load(n,te.dirname(t),r.root)})},exists:async({args:[r]})=>await Y(r),file:async(r)=>await Nr.readFile(await I(r.args[0],e.getIncludeDirectories())).then((t)=>t.toString()),scan:async(r)=>{let t=[],o=(()=>{let i=r.args[2]??["**/node_modules/**"],l=typeof i==="string"?i.split(",").map((m)=>m.trim()):i;if(!Array.isArray(l))throw Error("Scan exclusion must be a list");return l})(),{file:s}=r.options.globalContext,a=r.args[1]?await I(r.args[1],e.getIncludeDirectories()):te.dirname(s);for await(let i of Nr.glob(r.args[0],{cwd:a,exclude:(l)=>o.some((m)=>te.matchesGlob(l,m))}))t.push(i);return t}});var Lr=()=>D({env:(e)=>process.env[e]});var Ur={};j(Ur,{tokenize:()=>Qe,stripIndent:()=>Ke,snake:()=>K,pascal:()=>Q,padBlock:()=>C,changeCase:()=>G,capital:()=>ne,camel:()=>oe});var Q=(e)=>e.replace(/((?:[_ ]+)\w|^\w)/g,(r,t)=>t.toUpperCase()).replace(/[_ ]/g,""),ne=(e)=>e.replace(/((?:[ ]+)\w|^\w)/g,(r,t)=>t.toUpperCase()),oe=(e)=>{let r=Q(e);return r.charAt(0).toLowerCase()+r.slice(1)},K=(e,r="_")=>e.replace(/([a-z])([A-Z])/g,`$1${r}$2`).replace(/\s+/g,r).toLowerCase(),G=(e,r)=>{switch(r){case"upper":return e.toUpperCase();case"lower":return e.toLowerCase();default:return e}},C=(e,r,t=`
10
12
  `,n=" ")=>{let o=n.repeat(r);return e.split(t).map((s)=>o+s).join(t)},Qe=(e,r,t=/\${([^}]+)}/g)=>{return e.replace(t,(n,o)=>{let s=r[o];if(s===null||s===void 0)return"";if(typeof s==="string")return s;if(typeof s==="number"||typeof s==="boolean")return String(s);return String(s)})},Ke=(e)=>{let r=e.split(/\r?\n/),t=r.filter((o)=>o.trim().length>0).map((o)=>/^[ \t]*/.exec(o)?.[0].length??0),n=t.length>0?Math.min(...t):0;if(n===0)return e;return r.map((o)=>o.slice(n)).join(`
11
13
  `)};var Ir=(e)=>({substring:{types:{0:"ref",1:"number",2:"number"},fn:(r)=>r.args[0].substring(r.args[1],r.args[2])},repeat:{types:{0:"ref",1:"number"},fn:({args:[r,t]})=>r.repeat(t)},uuid:(r)=>crypto.randomUUID(),pad:{types:{0:"ref",1:"number",2:"string"},fn:({args:[r,t],tags:n})=>{let o=n.join?.[0]??`
12
14
  `,s=n.padChar?.[0]??" ";return C(r,t??2,o,s)}},formatAs:{fn:({args:[r,t],tags:n})=>{let o=e.getEncoder(t);if(!o)throw Error("Unsupported format: "+String(t));let s=[];if(o.options?.includeTags)s=[n];return o.fn(r,...s)}},...D({pascal:Q,camel:oe,capital:ne,concat:(...r)=>r.join(""),len:(r)=>r.length,reverse:(r)=>r.split("").reverse().join(""),trim:(r)=>r.trim(),ltrim:(r)=>r.trimStart(),rtrim:(r)=>r.trimEnd(),lower:(r)=>r.toLowerCase(),upper:(r)=>r.toUpperCase(),snake:(r,t)=>G(K(r,"_"),t),kebab:(r,t)=>G(K(r,"-"),t),encode:(r,t)=>Buffer.from(r).toString(t??"base64"),decode:(r,t)=>Buffer.from(r,t??"base64").toString()})});var ve=(e,r=0,t)=>{let n=" ".repeat(r),o=" ".repeat(r+1);if(e===null||e===void 0)return"null";else if(typeof e==="boolean")return String(e);else if(typeof e==="number")return String(e);else if(typeof e==="string")return`"${e.replace(/\\/g,"\\\\").replace(/"/g,"\\\"").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}"`;else if(Array.isArray(e)){if(e.length===0)return"[]";return`[
@@ -17,5 +19,5 @@ ${s.map(([i,l])=>`${o}${i} = ${ve(l,r+1,t)}`).join(`
17
19
  `)}
18
20
  ${n}}`}else return String(e)},se=(e)=>{if(!e)return e;return e.replaceAll("\\n",`
19
21
  `).replaceAll("\\$","$").replaceAll("\\t","\t")};var _r=()=>({...D({merge:(...e)=>e.flatMap((r)=>r)}),join:({args:[e],root:r,tags:t})=>{let n=t.key?.[0],o=t.separator?.[0]??t.sep?.[0],s=t.finalize?.length>0,a=se(o);if(typeof e==="string"){if(s&&e.length&&a)return e+a;return e}if(!Array.isArray(e))throw Error("Object is not a list");let i=((n?.length)?e.map((g)=>O({...r,...g},n)):e).join(a),l=t.pad?.[0]??"0",m=t.padChar?.[0]??" ",y=s&&i.length&&a?i+a:i;return l?C(y,parseInt(l),`
20
- `,m):y},list:({args:e})=>_(e[0],e[1]),object:({args:e})=>ee(e[0],e[1]),range:({args:[e,r,t]})=>{let n=parseInt(e),o=parseInt(r),s=parseInt(t)||1;if(isNaN(n))throw Error("Invalid range: start value '"+String(e)+"' is not a number");if(isNaN(o))throw Error("Invalid range: end value '"+String(r)+"' is not a number");if(s===0)throw Error("Invalid range: step cannot be zero");if((o-n)/s<0)throw Error("Invalid range: step "+String(s)+" has wrong direction for range "+String(n)+" to "+String(o));return Array.from({length:Math.floor((o-n)/s)+1},(a,i)=>n+i*s)},filter:{types:(e,r,t)=>{switch(e){case 0:return"array";case 1:return Object.keys(j)}return re[t[1].value]?.(e-2,r,t.slice(2))},fn:({args:[e,r,t],root:n,tags:o})=>{if(e===null||e===void 0)throw Error("Filter source cannot be null or undefined");if(!Array.isArray(e))throw Error("Filter source must be an array");let s=o.key?.[0],a=j[r];if(s){let l=Array(e.length);for(let y=0;y<e.length;y++)try{l[y]=O({...n,...e[y]},s)}catch{l[y]=Symbol("invalid")}let m=[];for(let y=0;y<e.length;y++){let g=l[y];if(typeof g!=="symbol"&&t===void 0?a(g):a(g,t))m.push(e[y])}return m}let i=[];for(let l of e)if(t===void 0?a(l):a(l,t))i.push(l);return i}}});var Tr=()=>({each:{processArgs:!1,fn:async({rawArgs:[e,r,...t],root:n,options:o,tags:s})=>{let a=async(f)=>f.quoted?se(f.value):await O(n,f.value),i=await O(n,e.value),l=await a(r),m=s.key?.[0],y=Array.isArray(i)?i:_(i),g=[],u=await Promise.all(t.map(async(f)=>await a(f))),c={...n,item:void 0,index:0,params:u,instance:void 0,parent:n.this,tags:s},h={...o,root:c};for(let f=0;f<y.length;f++){let w=R(l),p={instance:w},v=typeof l==="string"?p:w;if(c.item=y[f],c.index=f,c.instance=w,s?.root?.[0])Object.assign(c,await O(c,s.root[0]));if(await F(v,h),m!==void 0)g.push(await O(p.instance,m));else g.push(p.instance)}if(s.join?.length){if(g.length===0)return"";let f=se(s.join[0]),w=s.pad?.[0]??"0",p=s.padChar?.[0]??" ",v=s.finalize?.length&&f?f:"",d=`${g.join(f)}${v}`;return w?C(d,parseInt(w),`
21
- `,p):d}return g}}});var ie=async(e,r,t)=>e.rawArgs[r].quoted?e.rawArgs[r].value:await O(e.root,e.rawArgs[r].value,{defaultValue:t}),Yr=()=>({switch:{processArgs:!1,fn:async(e)=>{let r=await ie(e,0,!1),t=await ie(e,1);if(t[r]===void 0){if(e.rawArgs.length>2)return ie(e,2);throw Error(`Unhandled switch case: ${r}`)}return t[r]}}});var Br=()=>D({log:console.log});var Jr=()=>({if:{types:{0:"boolean"},fn:(e)=>e.args[0]?e.args[1]:e.args[2]},check:{types:{0:Object.keys(j)},fn:(e)=>j[e.args[0]](...e.args.slice(1))},...D(j,{types:re})});var Qr=(e)=>({default:{processArgs:!1,fn:async(r)=>{for(let t=0;t<r.rawArgs.length;t++)if(r.rawArgs[t]?.value!==void 0){let o=await ie(r,t,null);if(o!==null)return o}if(r.tags.nullable?.length)return b.DeleteItem();if(r.tags.fail?.length)throw Error(`No valid value found for default (${r.rawArgs.map((t)=>t.value).join(", ")})`);return""}},section:{types:["string","boolean"],fn:(r)=>{let t=r.args[0];if(!(r.args[1]??!0))return null;let o=e.getSection(t);if(!o)throw Error(`Section not found: ${t}`);return o.content}}});var Kr=()=>({convert:({args:[e,r,t]})=>{switch(r){case"string":return String(e);case"number":{let n=Number(e);if(!isNaN(n))return b.ReplaceItem(n);break}case"boolean":if(e==="true"||e===!0||e===1||e==="1"||e==="yes"||e==="on")return b.ReplaceItem(!0);else if(e==="false"||e===!1||e===0||e==="0"||e==="no"||e==="off")return b.ReplaceItem(!1);break;default:throw Error(`Unsupported type for convert: ${r}`)}if(t!==void 0)return b.ReplaceItem(t);throw Error(`Failed to convert value to ${r}`)},isType:({args:[e,r]})=>{let n=(()=>{switch(r){case"string":return typeof e==="string";case"number":return typeof e==="number";case"boolean":return typeof e==="boolean";case"object":return e!==null&&typeof e==="object"&&!Array.isArray(e);case"array":return Array.isArray(e);case"null":return e===null;case"undefined":return e===void 0;case"function":return typeof e==="function";default:throw Error(`Unknown type for isType: ${r}`)}})();return b.ReplaceItem(n)},typeOf:({args:[e]})=>{if(e===null)return"null";else if(Array.isArray(e))return"array";else return typeof e}});var Gr=()=>({...D({add:(...e)=>e.reduce((r,t)=>r+t,0),subtract:(e,r)=>e-r,multiply:(...e)=>e.reduce((r,t)=>r*t,1),divide:(e,r)=>{if(r===0)throw Error("Division by zero");return e/r},modulo:(e,r)=>e%r,power:(e,r)=>Math.pow(e,r),sqrt:(e)=>Math.sqrt(e),abs:(e)=>Math.abs(e),floor:(e)=>Math.floor(e),ceil:(e)=>Math.ceil(e),round:(e,r)=>{let t=Math.pow(10,r??0);return Math.round(e*t)/t},min:(...e)=>Math.min(...e),max:(...e)=>Math.max(...e),clamp:(e,r,t)=>Math.max(r,Math.min(t,e)),random:(e,r)=>{let t=e??0,n=r??1;return Math.random()*(n-t)+t}})});var xr=()=>({now:()=>new Date,timestamp:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getTime()},iso:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).toISOString()},utc:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).toUTCString()},format:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=new Date(r),o=n.getFullYear(),s=String(n.getMonth()+1).padStart(2,"0"),a=String(n.getDate()).padStart(2,"0"),i=String(n.getHours()).padStart(2,"0"),l=String(n.getMinutes()).padStart(2,"0"),m=String(n.getSeconds()).padStart(2,"0");return t.replace("YYYY",String(o)).replace("MM",s).replace("DD",a).replace("HH",i).replace("mm",l).replace("ss",m)},parse:(e)=>{let r=e.args?.[0];return new Date(r).getTime()},year:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getFullYear()},month:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getMonth()+1},day:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getDate()},dayOfWeek:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getDay()},hours:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getHours()},minutes:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getMinutes()},seconds:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getSeconds()}});var Xr=()=>{return{unique:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];if(!Array.isArray(r))return r;let n=new Set;return r.filter((o)=>{let s=typeof t==="function"?t(o):t?o[t]:o;if(n.has(s))return!1;return n.add(s),!0})},groupBy:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];if(!Array.isArray(r))return r;let n={};return r.forEach((o)=>{let s=typeof t==="function"?String(t(o)):String(o[t]);if(!n[s])n[s]=[];n[s].push(o)}),n},partition:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];if(!Array.isArray(r))return[[],[]];if(typeof t!=="function")return[r,[]];let n=[],o=[];return r.forEach((s)=>{(t(s)?n:o).push(s)}),[n,o]},chunk:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1]??1;if(!Array.isArray(r))return[];let n=[];for(let o=0;o<r.length;o+=t)n.push(r.slice(o,o+t));return n},flatten:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1]??1;if(!Array.isArray(r))return[r];let n=[],o=(s,a)=>{for(let i of s)if(Array.isArray(i)&&a>0)o(i,a-1);else n.push(i)};return o(r,t),n},compact:(e)=>{let r=e.args?.[0]??e.value;if(!Array.isArray(r))return r;return r.filter((t)=>t!==null&&t!==void 0)},head:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];if(!Array.isArray(r))return r;return t?r.slice(0,t):r[0]},tail:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];if(!Array.isArray(r))return r;return t?r.slice(-t):r[r.length-1]}}};import{createHash as ae}from"crypto";var Vr=()=>({md5:(e)=>{let r=e.args?.[0]??e.value;return ae("md5").update(r).digest("hex")},sha1:(e)=>{let r=e.args?.[0]??e.value;return ae("sha1").update(r).digest("hex")},sha256:(e)=>{let r=e.args?.[0]??e.value;return ae("sha256").update(r).digest("hex")},sha512:(e)=>{let r=e.args?.[0]??e.value;return ae("sha512").update(r).digest("hex")},hash:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1]??"sha256";return ae(t).update(r).digest("hex")},base64Encode:(e)=>{let r=e.args?.[0]??e.value,t=typeof r==="string"?r:JSON.stringify(r);return Buffer.from(t).toString("base64")},base64Decode:(e)=>{let r=e.args?.[0]??e.value;return Buffer.from(r,"base64").toString("utf-8")},hexEncode:(e)=>{let r=e.args?.[0]??e.value;return Buffer.from(r).toString("hex")},hexDecode:(e)=>{let r=e.args?.[0]??e.value;return Buffer.from(r,"hex").toString("utf-8")}});var Hr=()=>({test:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2];return new RegExp(r,n).test(t)},match:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2],o=new RegExp(r,n);return t.match(o)},matchAll:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2],o=new RegExp(r,n);return Array.from(t.matchAll(o))},replace:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2],o=e.args?.[3],s=new RegExp(r,o);return n.replace(s,t)},replaceAll:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2],o=e.args?.[3]??"g",s=new RegExp(r,o);return n.replace(s,t)},split:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2],o=new RegExp(r,n);return t.split(o)},exec:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2];return new RegExp(r,n).exec(t)},search:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2],o=new RegExp(r,n);return t.search(o)}});import{resolve as an,dirname as ln,basename as un,normalize as pn,join as fn}from"path";var qr=()=>({...D({pathJoin:(...e)=>fn(...e),resolve:(...e)=>an(...e),dirname:(e)=>ln(e),basename:(e,r)=>un(e,r),normalize:(e)=>pn(e),extname:(e)=>{let r=/\.[^.]*$/.exec(e);return r?r[0]:""},relative:(e,r)=>{let t=e.split("/"),n=r.split("/"),o=0;while(o<t.length&&o<n.length&&t[o]===n[o])o++;let s=t.length-o,a=n.slice(o);return[...Array(s).fill("..")].concat(a).join("/")},isAbsolute:(e)=>e.startsWith("/"),segments:(e)=>e.split("/").filter(Boolean)})});var Pr=()=>({isEmail:(e)=>{let r=e.args?.[0]??e.value;return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r)},isUrl:(e)=>{let r=e.args?.[0]??e.value;try{return new URL(r),!0}catch{return!1}},isJson:(e)=>{let r=e.args?.[0]??e.value;try{return JSON.parse(r),!0}catch{return!1}},isUuid:(e)=>{let r=e.args?.[0]??e.value;return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r)},minLength:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];return r?.length>=t},maxLength:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];return r?.length<=t},length:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];return r?.length===t},isNumber:(e)=>{let r=e.args?.[0]??e.value;return typeof r==="number"&&!isNaN(r)},isString:(e)=>{return typeof(e.args?.[0]??e.value)==="string"},isBoolean:(e)=>{return typeof(e.args?.[0]??e.value)==="boolean"},isArray:(e)=>{let r=e.args?.[0]??e.value;return Array.isArray(r)},isObject:(e)=>{let r=e.args?.[0]??e.value;return r!==null&&typeof r==="object"&&!Array.isArray(r)},isEmpty:(e)=>{let r=e.args?.[0]??e.value;if(r===null||r===void 0)return!0;if(typeof r==="string"||Array.isArray(r))return r.length===0;if(typeof r==="object")return Object.keys(r).length===0;return!1},isTruthy:(e)=>{return!!(e.args?.[0]??e.value)},isFalsy:(e)=>{return!(e.args?.[0]??e.value)},inRange:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2];return r>=t&&r<=n},matches:(e)=>{let r=e.args?.[0],t=e.args?.[1];return new RegExp(t).test(r)},includes:(e)=>{let r=e.args?.[0],t=e.args?.[1];if(typeof r==="string")return r.includes(String(t));return Array.isArray(r)&&r.includes(t)},startsWith:(e)=>{let r=e.args?.[0],t=e.args?.[1];return r.startsWith(t)},endsWith:(e)=>{let r=e.args?.[0],t=e.args?.[1];return r.endsWith(t)}});var Ge=(e)=>e.keys(cr(e)).keys(mr(e)).keys(vr()).keys(Mr()).keys(kr()).keys(Or()).keys(Er()).keys(Ar(e)).keys(Fr(e)).keys(Dr()).keys($r()).keys(Rr()).sources(Cr(e)).sources(Lr()).sources(Ir(e)).sources(Kr()).sources(_r()).sources(Tr()).sources(Yr()).sources(Br()).sources(Jr()).sources(Qr(e)).sources(Gr()).sources(xr()).sources(Xr()).sources(Vr()).sources(Hr()).sources(qr()).sources(Pr()).sections(Wr()).fieldOptions({configParser:Bun.YAML.parse,onSection:(r)=>{if(r.section.config.name)e.section(r.section)}}).decoders({yaml:{matching:["\\.yml$","\\.yaml$"],fn:Bun.YAML.parse}}).encoders({json:{fn:(r)=>JSON.stringify(r,null,2)},yaml:{fn:(r)=>Bun.YAML.stringify(r,null,2)},terraform:{options:{includeTags:!0},fn:(r,t)=>ve(r,0,{sortKeys:!!(t?.sort?.length??t?.sortKeys?.length)})}});var zr={};$(zr,{IncludeManager:()=>Me,DocumentIncludeProcessor:()=>Oe});import cn from"fs/promises";import le from"path";class Me{includeDirectories=[];baseIncludeDirectories=[];includes=[];addDirectories(...e){this.includeDirectories.push(...e),this.baseIncludeDirectories.push(...e)}getDirectories(){return this.includeDirectories}reset(){this.includeDirectories=[...this.baseIncludeDirectories]}restore(e){this.includeDirectories=[...e]}snapshot(){return[...this.includeDirectories]}addFiles(...e){this.includes.push(...e)}getPendingAndClear(){let e=[...this.includes];return this.includes.length=0,e}async processPatterns(e,r,t){let n=[];for(let o of e)if(T.isGlobPattern(o)){let s=(await Array.fromAsync(cn.glob(o,{cwd:r}))).map((a)=>le.join(r,a));for(let a of s)if(!t.included.includes(a))n.push(a)}else if(T.isDirectoryPattern(o)){let s=le.isAbsolute(o)?o:le.join(r,o);if(!this.includeDirectories.includes(s))this.includeDirectories.push(s)}else n.push(o);return n}buildSearchDirs(e){let r=e?[e]:[];return r.push(...this.includeDirectories.map((t)=>le.isAbsolute(t)?t:le.join(e??process.cwd(),t))),r}}class Oe{includeManager;loadFn;constructor(e,r){this.includeManager=e;this.loadFn=r}async processIncludes(e,r,t){let n=[];if(e.content.includes)n.push(...e.content.includes),delete e.content.includes;n.push(...this.includeManager.getPendingAndClear());let o=await this.includeManager.processPatterns(n,e.folderPath,t);for(let s of o)N(await this.loadFn(s,e.folderPath,{parent:e.content,...r},!0,t),e.content)}}var A={};$(A,{writeOutputs:()=>z,writeOutput:()=>ce,writeFormat:()=>fe,tokenize:()=>Qe,toObjectWithKey:()=>Le,toObject:()=>ee,toList:()=>_,stripIndent:()=>Ke,sortBy:()=>_e,snake:()=>K,select:()=>O,processFields:()=>F,pascal:()=>Q,padBlock:()=>C,nonNullMap:()=>Ue,navigate:()=>ye,mergeAll:()=>B,merge:()=>N,makeFieldProcessorMap:()=>D,makeFieldProcessorList:()=>De,makeFieldProcessor:()=>q,locate:()=>I,loadFormat:()=>P,importList:()=>me,importGlob:()=>Ne,globMap:()=>Z,getProcessor:()=>H,getArgs:()=>pe,find:()=>Be,exists:()=>Y,defined:()=>Ie,deepClone:()=>R,conditionPredicates:()=>j,changeCase:()=>G,capital:()=>ne,camel:()=>oe,asyncMap:()=>Te,NavigateResult:()=>b,NavigateAction:()=>ge,Logger:()=>Xe});S(A,ut(nt(),1));class Xe{options;constructor(e){this.options={level:"INFO",showClass:!1,levels:["DEBUG","INFO","WARN","ERROR"],timeStamp:!1,timeOptions:{second:"2-digit",minute:"2-digit",hour:"2-digit",day:"2-digit",month:"2-digit",year:"2-digit"},logFunction:(r,...t)=>{switch(r){case"ERROR":console.error(...t);break;case"WARN":console.warn(...t);break;case"DEBUG":console.debug(...t);break;default:console.log(...t)}},...e}}write(e,...r){if(this.options.level){let o=this.options.levels.indexOf(this.options.level)??-1,s=this.options.levels.indexOf(e);if(s===-1)throw Error(`Unknown log level: ${e}`);if(s<o)return}let t=[],n=[];if(this.options.timeStamp)n.push(new Date().toLocaleString(this.options.timeLocale,this.options.timeOptions));if(this.options.showClass)n.push(e);if(n.length>0)t.push(`[${n.join(" ")}]`);t.push(...r),this.options.logFunction(e,...t)}info(...e){this.write("INFO",...e)}error(...e){this.write("ERROR",...e)}warn(...e){this.write("WARN",...e)}debug(...e){this.write("DEBUG",...e)}}S(W,A);class ot{includeManager=new Me;includeProcessor;cacheManager=new de(100);outputs=[];vars={};fields={sources:{},keys:{},sections:{}};objectMetadata={};currentContext=null;storedSections={};dataEncoders={};dataDecoders={};constructor(){this.includeProcessor=new Oe(this.includeManager,this.load.bind(this)),this.use(Ge)}use(e){return e(this),this}includeDirectory(...e){return this.includeManager.addDirectories(...e),this}getIncludeDirectories(){return this.includeManager.getDirectories()}include(...e){return this.includeManager.addFiles(...e),this}keys(e){return Object.assign(this.fields.keys,{...this.fields.keys,...e}),this}sources(e){return Object.assign(this.fields.sources,{...this.fields.sources,...e}),this}sections(e){return Object.assign(this.fields.sections,{...this.fields.sections,...e}),this}variables(e){return this.vars={...this.vars,...e},this}getOutputs(){return this.outputs}output(e){return this.outputs.push(e),this}metadata(e,r){return this.objectMetadata[e]=r,this}getMetadata(e){return this.objectMetadata[e]}getAllMetadata(){return this.objectMetadata}setCacheMaxSize(e){return this.cacheManager.setMaxSize(e),this}clearCache(){return this.cacheManager.clear(),this}getCurrentContext(){return this.currentContext}fieldOptions(e){return this.fields={...this.fields,...e},this}section(e){return this.storedSections[e.config.name]=e,this}getSection(e){return this.storedSections[e]}encoders(e){return this.dataEncoders={...this.dataEncoders,...e},this}decoders(e){return this.dataDecoders={...this.dataDecoders,...e},this}getEncoder(e){return this.dataEncoders[e]}getDecoder(e){return this.dataDecoders[e]}filter(e){return this.fields.filters??=[],this.fields.filters.push(e),this}async loadObject(e,r,t){return await F(e,{...this.fields,globalContext:{file:t?.fullPath??"@internal"},root:{...r,...this.fields.root,...this.vars,context:this.currentContext,sections:this.storedSections,$document:{root:{content:e},fileName:t?.fileName??"@internal",folder:t?.folderPath??"@internal",fullPath:t?.fullPath??"@internal"}}}),e}async load(e,r,t,n,o){let s=this.includeManager.snapshot();try{this.includeManager.reset();let a=this.includeManager.buildSearchDirs(r);if(o)this.currentContext=o;this.currentContext??={included:[],document:null};let i=await P(e,{dirs:a,parsers:this.dataDecoders,format:"yaml"}),l=T.normalize(i.fullPath);if(this.currentContext.included.push(l),!i.content)return null;let m=this.cacheManager.get(l),y;if(m)y=m.raw;else y=i.content,this.cacheManager.set(l,{raw:y,timestamp:Date.now()});let g=R(y);i.content=g,await this.includeProcessor.processIncludes(i,t,this.currentContext);let u;if(n!==!0)u=await this.loadObject(i.content,t,{fileName:i.fullPath,folderPath:i.folderPath,fullPath:i.fullPath});else u=i.content;return this.currentContext.document=u,u}catch(a){throw this.includeManager.restore(s),a}finally{this.includeManager.restore(s)}}async writeAll(e){await z(this.getOutputs(),e)}}export{z as writeOutputs,ce as writeOutput,fe as writeFormat,Qe as tokenize,Le as toObjectWithKey,ee as toObject,_ as toList,Ke as stripIndent,_e as sortBy,K as snake,O as select,F as processFields,Q as pascal,C as padBlock,Ue as nonNullMap,ye as navigate,B as mergeAll,N as merge,D as makeFieldProcessorMap,De as makeFieldProcessorList,q as makeFieldProcessor,I as locate,P as loadFormat,me as importList,Ne as importGlob,Z as globMap,H as getProcessor,pe as getArgs,Be as find,Y as exists,Ie as defined,R as deepClone,j as conditionPredicates,G as changeCase,ne as capital,oe as camel,Te as asyncMap,ot as Objector,b as NavigateResult,ge as NavigateAction,Xe as Logger};
22
+ `,m):y},list:({args:e})=>_(e[0],e[1]),object:({args:e})=>ee(e[0],e[1]),range:({args:[e,r,t]})=>{let n=parseInt(e),o=parseInt(r),s=parseInt(t)||1;if(isNaN(n))throw Error("Invalid range: start value '"+String(e)+"' is not a number");if(isNaN(o))throw Error("Invalid range: end value '"+String(r)+"' is not a number");if(s===0)throw Error("Invalid range: step cannot be zero");if((o-n)/s<0)throw Error("Invalid range: step "+String(s)+" has wrong direction for range "+String(n)+" to "+String(o));return Array.from({length:Math.floor((o-n)/s)+1},(a,i)=>n+i*s)},filter:{types:(e,r,t)=>{switch(e){case 0:return"array";case 1:return Object.keys($)}return re[t[1].value]?.(e-2,r,t.slice(2))},fn:({args:[e,r,t],root:n,tags:o})=>{if(e===null||e===void 0)throw Error("Filter source cannot be null or undefined");if(!Array.isArray(e))throw Error("Filter source must be an array");let s=o.key?.[0],a=$[r];if(s){let l=Array(e.length);for(let y=0;y<e.length;y++)try{l[y]=O({...n,...e[y]},s)}catch{l[y]=Symbol("invalid")}let m=[];for(let y=0;y<e.length;y++){let g=l[y];if(typeof g!=="symbol"&&t===void 0?a(g):a(g,t))m.push(e[y])}return m}let i=[];for(let l of e)if(t===void 0?a(l):a(l,t))i.push(l);return i}}});var Tr=()=>({each:{processArgs:!1,fn:async({rawArgs:[e,r,...t],root:n,options:o,tags:s})=>{let a=async(f)=>f.quoted?se(f.value):await O(n,f.value),i=await O(n,e.value),l=await a(r),m=s.key?.[0],y=Array.isArray(i)?i:_(i),g=[],u=await Promise.all(t.map(async(f)=>await a(f))),c={...n,item:void 0,index:0,params:u,instance:void 0,parent:n.this,tags:s},h={...o,root:c};for(let f=0;f<y.length;f++){let w=R(l),p={instance:w},v=typeof l==="string"?p:w;if(c.item=y[f],c.index=f,c.instance=w,s?.root?.[0])Object.assign(c,await O(c,s.root[0]));if(await F(v,h),m!==void 0)g.push(await O(p.instance,m));else g.push(p.instance)}if(s.join?.length){if(g.length===0)return"";let f=se(s.join[0]),w=s.pad?.[0]??"0",p=s.padChar?.[0]??" ",v=s.finalize?.length&&f?f:"",d=`${g.join(f)}${v}`;return w?C(d,parseInt(w),`
23
+ `,p):d}return g}}});var ie=async(e,r,t)=>e.rawArgs[r].quoted?e.rawArgs[r].value:await O(e.root,e.rawArgs[r].value,{defaultValue:t}),Yr=()=>({switch:{processArgs:!1,fn:async(e)=>{let r=await ie(e,0,!1),t=await ie(e,1);if(t[r]===void 0){if(e.rawArgs.length>2)return ie(e,2);throw Error(`Unhandled switch case: ${r}`)}return t[r]}}});var Br=()=>D({log:console.log});var Jr=()=>({if:{types:{0:"boolean"},fn:(e)=>e.args[0]?e.args[1]:e.args[2]},check:{types:{0:Object.keys($)},fn:(e)=>$[e.args[0]](...e.args.slice(1))},...D($,{types:re})});var Qr=(e)=>({default:{processArgs:!1,fn:async(r)=>{for(let t=0;t<r.rawArgs.length;t++)if(r.rawArgs[t]?.value!==void 0){let o=await ie(r,t,null);if(o!==null)return o}if(r.tags.nullable?.length)return b.DeleteItem();if(r.tags.fail?.length)throw Error(`No valid value found for default (${r.rawArgs.map((t)=>t.value).join(", ")})`);return""}},section:{types:["string","boolean"],fn:(r)=>{let t=r.args[0];if(!(r.args[1]??!0))return null;let o=e.getSection(t);if(!o)throw Error(`Section not found: ${t}`);return o.content}}});var Kr=()=>({convert:({args:[e,r,t]})=>{switch(r){case"string":return String(e);case"number":{let n=Number(e);if(!isNaN(n))return b.ReplaceItem(n);break}case"boolean":if(e==="true"||e===!0||e===1||e==="1"||e==="yes"||e==="on")return b.ReplaceItem(!0);else if(e==="false"||e===!1||e===0||e==="0"||e==="no"||e==="off")return b.ReplaceItem(!1);break;default:throw Error(`Unsupported type for convert: ${r}`)}if(t!==void 0)return b.ReplaceItem(t);throw Error(`Failed to convert value to ${r}`)},isType:({args:[e,r]})=>{let n=(()=>{switch(r){case"string":return typeof e==="string";case"number":return typeof e==="number";case"boolean":return typeof e==="boolean";case"object":return e!==null&&typeof e==="object"&&!Array.isArray(e);case"array":return Array.isArray(e);case"null":return e===null;case"undefined":return e===void 0;case"function":return typeof e==="function";default:throw Error(`Unknown type for isType: ${r}`)}})();return b.ReplaceItem(n)},typeOf:({args:[e]})=>{if(e===null)return"null";else if(Array.isArray(e))return"array";else return typeof e}});var Gr=()=>({...D({add:(...e)=>e.reduce((r,t)=>r+t,0),subtract:(e,r)=>e-r,multiply:(...e)=>e.reduce((r,t)=>r*t,1),divide:(e,r)=>{if(r===0)throw Error("Division by zero");return e/r},modulo:(e,r)=>e%r,power:(e,r)=>Math.pow(e,r),sqrt:(e)=>Math.sqrt(e),abs:(e)=>Math.abs(e),floor:(e)=>Math.floor(e),ceil:(e)=>Math.ceil(e),round:(e,r)=>{let t=Math.pow(10,r??0);return Math.round(e*t)/t},min:(...e)=>Math.min(...e),max:(...e)=>Math.max(...e),clamp:(e,r,t)=>Math.max(r,Math.min(t,e)),random:(e,r)=>{let t=e??0,n=r??1;return Math.random()*(n-t)+t}})});var xr=()=>({now:()=>new Date,timestamp:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getTime()},iso:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).toISOString()},utc:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).toUTCString()},format:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=new Date(r),o=n.getFullYear(),s=String(n.getMonth()+1).padStart(2,"0"),a=String(n.getDate()).padStart(2,"0"),i=String(n.getHours()).padStart(2,"0"),l=String(n.getMinutes()).padStart(2,"0"),m=String(n.getSeconds()).padStart(2,"0");return t.replace("YYYY",String(o)).replace("MM",s).replace("DD",a).replace("HH",i).replace("mm",l).replace("ss",m)},parse:(e)=>{let r=e.args?.[0];return new Date(r).getTime()},year:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getFullYear()},month:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getMonth()+1},day:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getDate()},dayOfWeek:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getDay()},hours:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getHours()},minutes:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getMinutes()},seconds:(e)=>{let r=e.args?.[0];return(r?new Date(r):new Date).getSeconds()}});var Xr=()=>{return{unique:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];if(!Array.isArray(r))return r;let n=new Set;return r.filter((o)=>{let s=typeof t==="function"?t(o):t?o[t]:o;if(n.has(s))return!1;return n.add(s),!0})},groupBy:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];if(!Array.isArray(r))return r;let n={};return r.forEach((o)=>{let s=typeof t==="function"?String(t(o)):String(o[t]);if(!n[s])n[s]=[];n[s].push(o)}),n},partition:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];if(!Array.isArray(r))return[[],[]];if(typeof t!=="function")return[r,[]];let n=[],o=[];return r.forEach((s)=>{(t(s)?n:o).push(s)}),[n,o]},chunk:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1]??1;if(!Array.isArray(r))return[];let n=[];for(let o=0;o<r.length;o+=t)n.push(r.slice(o,o+t));return n},flatten:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1]??1;if(!Array.isArray(r))return[r];let n=[],o=(s,a)=>{for(let i of s)if(Array.isArray(i)&&a>0)o(i,a-1);else n.push(i)};return o(r,t),n},compact:(e)=>{let r=e.args?.[0]??e.value;if(!Array.isArray(r))return r;return r.filter((t)=>t!==null&&t!==void 0)},head:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];if(!Array.isArray(r))return r;return t?r.slice(0,t):r[0]},tail:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];if(!Array.isArray(r))return r;return t?r.slice(-t):r[r.length-1]}}};import{createHash as ae}from"crypto";var Vr=()=>({md5:(e)=>{let r=e.args?.[0]??e.value;return ae("md5").update(r).digest("hex")},sha1:(e)=>{let r=e.args?.[0]??e.value;return ae("sha1").update(r).digest("hex")},sha256:(e)=>{let r=e.args?.[0]??e.value;return ae("sha256").update(r).digest("hex")},sha512:(e)=>{let r=e.args?.[0]??e.value;return ae("sha512").update(r).digest("hex")},hash:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1]??"sha256";return ae(t).update(r).digest("hex")},base64Encode:(e)=>{let r=e.args?.[0]??e.value,t=typeof r==="string"?r:JSON.stringify(r);return Buffer.from(t).toString("base64")},base64Decode:(e)=>{let r=e.args?.[0]??e.value;return Buffer.from(r,"base64").toString("utf-8")},hexEncode:(e)=>{let r=e.args?.[0]??e.value;return Buffer.from(r).toString("hex")},hexDecode:(e)=>{let r=e.args?.[0]??e.value;return Buffer.from(r,"hex").toString("utf-8")}});var Hr=()=>({test:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2];return new RegExp(r,n).test(t)},match:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2],o=new RegExp(r,n);return t.match(o)},matchAll:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2],o=new RegExp(r,n);return Array.from(t.matchAll(o))},replace:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2],o=e.args?.[3],s=new RegExp(r,o);return n.replace(s,t)},replaceAll:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2],o=e.args?.[3]??"g",s=new RegExp(r,o);return n.replace(s,t)},split:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2],o=new RegExp(r,n);return t.split(o)},exec:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2];return new RegExp(r,n).exec(t)},search:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2],o=new RegExp(r,n);return t.search(o)}});import{resolve as an,dirname as ln,basename as un,normalize as pn,join as fn}from"path";var qr=()=>({...D({pathJoin:(...e)=>fn(...e),resolve:(...e)=>an(...e),dirname:(e)=>ln(e),basename:(e,r)=>un(e,r),normalize:(e)=>pn(e),extname:(e)=>{let r=/\.[^.]*$/.exec(e);return r?r[0]:""},relative:(e,r)=>{let t=e.split("/"),n=r.split("/"),o=0;while(o<t.length&&o<n.length&&t[o]===n[o])o++;let s=t.length-o,a=n.slice(o);return[...Array(s).fill("..")].concat(a).join("/")},isAbsolute:(e)=>e.startsWith("/"),segments:(e)=>e.split("/").filter(Boolean)})});var Pr=()=>({isEmail:(e)=>{let r=e.args?.[0]??e.value;return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r)},isUrl:(e)=>{let r=e.args?.[0]??e.value;try{return new URL(r),!0}catch{return!1}},isJson:(e)=>{let r=e.args?.[0]??e.value;try{return JSON.parse(r),!0}catch{return!1}},isUuid:(e)=>{let r=e.args?.[0]??e.value;return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r)},minLength:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];return r?.length>=t},maxLength:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];return r?.length<=t},length:(e)=>{let r=e.args?.[0]??e.value,t=e.args?.[1];return r?.length===t},isNumber:(e)=>{let r=e.args?.[0]??e.value;return typeof r==="number"&&!isNaN(r)},isString:(e)=>{return typeof(e.args?.[0]??e.value)==="string"},isBoolean:(e)=>{return typeof(e.args?.[0]??e.value)==="boolean"},isArray:(e)=>{let r=e.args?.[0]??e.value;return Array.isArray(r)},isObject:(e)=>{let r=e.args?.[0]??e.value;return r!==null&&typeof r==="object"&&!Array.isArray(r)},isEmpty:(e)=>{let r=e.args?.[0]??e.value;if(r===null||r===void 0)return!0;if(typeof r==="string"||Array.isArray(r))return r.length===0;if(typeof r==="object")return Object.keys(r).length===0;return!1},isTruthy:(e)=>{return!!(e.args?.[0]??e.value)},isFalsy:(e)=>{return!(e.args?.[0]??e.value)},inRange:(e)=>{let r=e.args?.[0],t=e.args?.[1],n=e.args?.[2];return r>=t&&r<=n},matches:(e)=>{let r=e.args?.[0],t=e.args?.[1];return new RegExp(t).test(r)},includes:(e)=>{let r=e.args?.[0],t=e.args?.[1];if(typeof r==="string")return r.includes(String(t));return Array.isArray(r)&&r.includes(t)},startsWith:(e)=>{let r=e.args?.[0],t=e.args?.[1];return r.startsWith(t)},endsWith:(e)=>{let r=e.args?.[0],t=e.args?.[1];return r.endsWith(t)}});var Ge=(e)=>e.keys(cr(e)).keys(mr(e)).keys(vr()).keys(Mr()).keys(kr()).keys(Or()).keys(Er()).keys(Ar(e)).keys(Fr(e)).keys(Dr()).keys(jr()).keys(Rr()).sources(Cr(e)).sources(Lr()).sources(Ir(e)).sources(Kr()).sources(_r()).sources(Tr()).sources(Yr()).sources(Br()).sources(Jr()).sources(Qr(e)).sources(Gr()).sources(xr()).sources(Xr()).sources(Vr()).sources(Hr()).sources(qr()).sources(Pr()).sections(Wr(e)).fieldOptions({configParser:Bun.YAML.parse,onSection:(r)=>{if(r.section.config.name)e.section(r.section)}}).decoders({yaml:{matching:["\\.yml$","\\.yaml$"],fn:Bun.YAML.parse}}).encoders({json:{fn:(r)=>JSON.stringify(r,null,2)},yaml:{fn:(r)=>Bun.YAML.stringify(r,null,2)},terraform:{options:{includeTags:!0},fn:(r,t)=>ve(r,0,{sortKeys:!!(t?.sort?.length??t?.sortKeys?.length)})}});var zr={};j(zr,{IncludeManager:()=>Me,DocumentIncludeProcessor:()=>Oe});import cn from"fs/promises";import le from"path";class Me{includeDirectories=[];baseIncludeDirectories=[];includes=[];addDirectories(...e){this.includeDirectories.push(...e),this.baseIncludeDirectories.push(...e)}getDirectories(){return this.includeDirectories}reset(){this.includeDirectories=[...this.baseIncludeDirectories]}restore(e){this.includeDirectories=[...e]}snapshot(){return[...this.includeDirectories]}addFiles(...e){this.includes.push(...e)}getPendingAndClear(){let e=[...this.includes];return this.includes.length=0,e}async processPatterns(e,r,t){let n=[];for(let o of e)if(T.isGlobPattern(o)){let s=(await Array.fromAsync(cn.glob(o,{cwd:r}))).map((a)=>le.join(r,a));for(let a of s)if(!t.included.includes(a))n.push(a)}else if(T.isDirectoryPattern(o)){let s=le.isAbsolute(o)?o:le.join(r,o);if(!this.includeDirectories.includes(s))this.includeDirectories.push(s)}else n.push(o);return n}buildSearchDirs(e){let r=e?[e]:[];return r.push(...this.includeDirectories.map((t)=>le.isAbsolute(t)?t:le.join(e??process.cwd(),t))),r}}class Oe{includeManager;loadFn;constructor(e,r){this.includeManager=e;this.loadFn=r}async processIncludes(e,r,t){let n=[];if(e.content.includes)n.push(...e.content.includes),delete e.content.includes;n.push(...this.includeManager.getPendingAndClear());let o=await this.includeManager.processPatterns(n,e.folderPath,t);for(let s of o)N(await this.loadFn(s,e.folderPath,{parent:e.content,...r},!0,t),e.content)}}var A={};j(A,{writeOutputs:()=>z,writeOutput:()=>ce,writeFormat:()=>fe,tokenize:()=>Qe,toObjectWithKey:()=>Le,toObject:()=>ee,toList:()=>_,stripIndent:()=>Ke,sortBy:()=>_e,snake:()=>K,select:()=>O,processFields:()=>F,pascal:()=>Q,padBlock:()=>C,nonNullMap:()=>Ue,navigate:()=>ye,mergeAll:()=>B,merge:()=>N,makeFieldProcessorMap:()=>D,makeFieldProcessorList:()=>De,makeFieldProcessor:()=>q,locate:()=>I,loadFormat:()=>P,importList:()=>me,importGlob:()=>Ne,globMap:()=>Z,getProcessor:()=>H,getArgs:()=>pe,find:()=>Be,exists:()=>Y,defined:()=>Ie,deepClone:()=>R,conditionPredicates:()=>$,changeCase:()=>G,capital:()=>ne,camel:()=>oe,asyncMap:()=>Te,NavigateResult:()=>b,NavigateAction:()=>ge,Logger:()=>Xe});S(A,ut(nt(),1));class Xe{options;constructor(e){this.options={level:"INFO",showClass:!1,levels:["DEBUG","INFO","WARN","ERROR"],timeStamp:!1,timeOptions:{second:"2-digit",minute:"2-digit",hour:"2-digit",day:"2-digit",month:"2-digit",year:"2-digit"},logFunction:(r,...t)=>{switch(r){case"ERROR":console.error(...t);break;case"WARN":console.warn(...t);break;case"DEBUG":console.debug(...t);break;default:console.log(...t)}},...e}}write(e,...r){if(this.options.level){let o=this.options.levels.indexOf(this.options.level)??-1,s=this.options.levels.indexOf(e);if(s===-1)throw Error(`Unknown log level: ${e}`);if(s<o)return}let t=[],n=[];if(this.options.timeStamp)n.push(new Date().toLocaleString(this.options.timeLocale,this.options.timeOptions));if(this.options.showClass)n.push(e);if(n.length>0)t.push(`[${n.join(" ")}]`);t.push(...r),this.options.logFunction(e,...t)}info(...e){this.write("INFO",...e)}error(...e){this.write("ERROR",...e)}warn(...e){this.write("WARN",...e)}debug(...e){this.write("DEBUG",...e)}}S(W,A);class ot{includeManager=new Me;includeProcessor;cacheManager=new de(100);outputs=[];vars={};fields={sources:{},keys:{},sections:{}};objectMetadata={};currentContext=null;storedSections={};dataEncoders={};dataDecoders={};constructor(){this.includeProcessor=new Oe(this.includeManager,this.load.bind(this)),this.use(Ge)}use(e){return e(this),this}includeDirectory(...e){return this.includeManager.addDirectories(...e),this}getIncludeDirectories(){return this.includeManager.getDirectories()}include(...e){return this.includeManager.addFiles(...e),this}keys(e){return Object.assign(this.fields.keys,{...this.fields.keys,...e}),this}sources(e){return Object.assign(this.fields.sources,{...this.fields.sources,...e}),this}sections(e){return Object.assign(this.fields.sections,{...this.fields.sections,...e}),this}variables(e){return this.vars={...this.vars,...e},this}getOutputs(){return this.outputs}output(e){return this.outputs.push(e),this}metadata(e,r){return this.objectMetadata[e]=r,this}getMetadata(e){return this.objectMetadata[e]}getAllMetadata(){return this.objectMetadata}setCacheMaxSize(e){return this.cacheManager.setMaxSize(e),this}clearCache(){return this.cacheManager.clear(),this}getCurrentContext(){return this.currentContext}fieldOptions(e){return this.fields={...this.fields,...e},this}section(e){return this.storedSections[e.config.name]=e,this}getSection(e){return this.storedSections[e]}encoders(e){return this.dataEncoders={...this.dataEncoders,...e},this}decoders(e){return this.dataDecoders={...this.dataDecoders,...e},this}getEncoder(e){return this.dataEncoders[e]}getDecoder(e){return this.dataDecoders[e]}filter(e){return this.fields.filters??=[],this.fields.filters.push(e),this}async loadObject(e,r,t){return await F(e,{...this.fields,globalContext:{file:t?.fullPath??"@internal"},root:{...r,...this.fields.root,...this.vars,context:this.currentContext,sections:this.storedSections,$document:{root:{content:e},fileName:t?.fileName??"@internal",folder:t?.folderPath??"@internal",fullPath:t?.fullPath??"@internal"}}}),e}async load(e,r,t,n,o){let s=this.includeManager.snapshot();try{this.includeManager.reset();let a=this.includeManager.buildSearchDirs(r);if(o)this.currentContext=o;this.currentContext??={included:[],document:null};let i=await P(e,{dirs:a,parsers:this.dataDecoders,format:"yaml"}),l=T.normalize(i.fullPath);if(this.currentContext.included.push(l),!i.content)return null;let m=this.cacheManager.get(l),y;if(m)y=m.raw;else y=i.content,this.cacheManager.set(l,{raw:y,timestamp:Date.now()});let g=R(y);i.content=g,await this.includeProcessor.processIncludes(i,t,this.currentContext);let u;if(n!==!0)u=await this.loadObject(i.content,t,{fileName:i.fullPath,folderPath:i.folderPath,fullPath:i.fullPath});else u=i.content;return this.currentContext.document=u,u}catch(a){throw this.includeManager.restore(s),a}finally{this.includeManager.restore(s)}}async writeAll(e){await z(this.getOutputs(),e)}}export{z as writeOutputs,ce as writeOutput,fe as writeFormat,Qe as tokenize,Le as toObjectWithKey,ee as toObject,_ as toList,Ke as stripIndent,_e as sortBy,K as snake,O as select,F as processFields,Q as pascal,C as padBlock,Ue as nonNullMap,ye as navigate,B as mergeAll,N as merge,D as makeFieldProcessorMap,De as makeFieldProcessorList,q as makeFieldProcessor,I as locate,P as loadFormat,me as importList,Ne as importGlob,Z as globMap,H as getProcessor,pe as getArgs,Be as find,Y as exists,Ie as defined,R as deepClone,$ as conditionPredicates,G as changeCase,ne as capital,oe as camel,Te as asyncMap,ot as Objector,b as NavigateResult,ge as NavigateAction,Xe as Logger};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homedev/objector",
3
- "version": "1.2.53",
3
+ "version": "1.2.55",
4
4
  "description": "object extensions for YAML/JSON",
5
5
  "author": "julzor",
6
6
  "license": "ISC",