@homedev/objector 1.2.56 → 1.2.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export declare const AsyncFunction: any;
2
+
1
3
  /**
2
4
  * Maps an array asynchronously using Promise.all for parallel execution
3
5
  * @typeParam T - Type of input array items
@@ -400,6 +402,7 @@ export declare class Objector {
400
402
  private cacheManager;
401
403
  private outputs;
402
404
  private vars;
405
+ private funcs;
403
406
  private fields;
404
407
  private objectMetadata;
405
408
  private currentContext;
@@ -415,6 +418,8 @@ export declare class Objector {
415
418
  sources(sources: FieldProcessorMap): this;
416
419
  sections(sections: Record<string, FieldProcessorSectionFunc>): this;
417
420
  variables(vars: Record<string, unknown>): this;
421
+ functions(funcs: Record<string, typeof AsyncFunction>): this;
422
+ getFunctions(): Record<string, typeof AsyncFunction>;
418
423
  getOutputs(): Output[];
419
424
  output(o: Output): this;
420
425
  metadata(path: string, o: unknown): this;
package/dist/index.js CHANGED
@@ -1,23 +1,23 @@
1
- var lt=Object.create;var{getPrototypeOf:ut,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}},pt=(e,r,t)=>{t=e!=null?lt(ut(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 ft=(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 ot=ft((Fi,nt)=>{var{defineProperty:Ze,getOwnPropertyNames:gn,getOwnPropertyDescriptor:yn}=Object,dn=Object.prototype.hasOwnProperty,rt=new WeakMap,wn=(e)=>{var r=rt.get(e),t;if(r)return r;if(r=Ze({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")gn(e).map((n)=>!dn.call(r,n)&&Ze(r,n,{get:()=>e[n],enumerable:!(t=yn(e,n))||t.enumerable}));return rt.set(e,r),r},hn=(e,r)=>{for(var t in r)Ze(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(n)=>r[t]=()=>n})},tt={};hn(tt,{splitWithQuotes:()=>vn,splitNested:()=>bn});nt.exports=wn(tt);var bn=(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},vn=(e,r=",")=>{let t=[],n=e.length,o=r.length,s=0,a=(i)=>{if(i+o>n)return!1;for(let u=0;u<o;u++)if(e[i+u]!==r[u])return!1;return!0};while(s<n){while(s<n&&e[s]===" ")s++;if(s>=n)break;let i="",u=e[s]==='"'||e[s]==="'";if(u){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:u});if(a(s))s+=o}return t}});var W={};j(W,{writeOutputs:()=>z,writeOutput:()=>ce,writeFormat:()=>fe,tokenize:()=>Xe,toObjectWithKey:()=>Le,toObject:()=>ee,toList:()=>U,stripIndent:()=>Ge,sortBy:()=>Ue,snake:()=>G,select:()=>E,processFields:()=>F,pascal:()=>X,padBlock:()=>C,nonNullMap:()=>Ie,navigate:()=>ye,mergeAll:()=>Y,merge:()=>N,makeFieldProcessorMap:()=>D,makeFieldProcessorList:()=>De,makeFieldProcessor:()=>q,locate:()=>_,loadFormat:()=>P,importList:()=>me,importGlob:()=>Ne,globMap:()=>J,getProcessor:()=>H,getArgs:()=>pe,find:()=>Ye,exists:()=>B,defined:()=>_e,deepClone:()=>R,conditionPredicates:()=>$,changeCase:()=>K,capital:()=>ne,camel:()=>oe,asyncMap:()=>Te,Objector:()=>st,NavigateResult:()=>b,NavigateAction:()=>ge,Logger:()=>xe});var je={};j(je,{processFields:()=>F,makeFieldProcessorMap:()=>D,makeFieldProcessorList:()=>De,makeFieldProcessor:()=>q,getProcessor:()=>H,getArgs:()=>pe});var ct=Object.create,{getPrototypeOf:mt,defineProperty:ze,getOwnPropertyNames:gt}=Object,yt=Object.prototype.hasOwnProperty,dt=(e,r,t)=>{t=e!=null?ct(mt(e)):{};let n=r||!e||!e.__esModule?ze(t,"default",{value:e,enumerable:!0}):t;for(let o of gt(e))if(!yt.call(n,o))ze(n,o,{get:()=>e[o],enumerable:!0});return n},wt=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),ht=wt((e,r)=>{var{defineProperty:t,getOwnPropertyNames:n,getOwnPropertyDescriptor:o}=Object,s=Object.prototype.hasOwnProperty,a=new WeakMap,i=(l)=>{var c=a.get(l),h;if(c)return c;if(c=t({},"__esModule",{value:!0}),l&&typeof l==="object"||typeof l==="function")n(l).map((f)=>!s.call(c,f)&&t(c,f,{get:()=>l[f],enumerable:!(h=o(l,f))||h.enumerable}));return a.set(l,c),c},u=(l,c)=>{for(var h in c)t(l,h,{get:c[h],enumerable:!0,configurable:!0,set:(f)=>c[h]=()=>f})},m={};u(m,{splitWithQuotes:()=>d,splitNested:()=>y}),r.exports=i(m);var y=(l,c,h="(",f=")")=>{let w=0,p="",M=[];for(let g of l){if(p+=g,g===h)w++;if(g===f)w--;if(w===0&&g===c)M.push(p.slice(0,-1)),p=""}if(p)M.push(p);return M},d=(l,c=",")=>{let h=[],f=l.length,w=c.length,p=0,M=(g)=>{if(g+w>f)return!1;for(let O=0;O<w;O++)if(l[g+O]!==c[O])return!1;return!0};while(p<f){while(p<f&&l[p]===" ")p++;if(p>=f)break;let g="",O=l[p]==='"'||l[p]==="'";if(O){let v=l[p++];while(p<f&&l[p]!==v)g+=l[p++];if(p<f)p++}else{while(p<f&&!M(p)){let v=l[p];if(v==='"'||v==="'"){g+=v,p++;while(p<f&&l[p]!==v)g+=l[p++];if(p<f)g+=l[p++]}else g+=l[p++]}g=g.trim()}if(g)h.push({value:g,quoted:O});if(M(p))p+=w}return h}}),bt=dt(ht(),1),I;((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"})(I||={});class A{action;by;skipSiblings;reexplore;constructor(e,r,t,n){this.action=e,this.by=r,this.skipSiblings=t,this.reexplore=n}static _explore=new A(0);static _noExplore=new A(2);static _skipSiblings=new A(1);static _deleteParent=new A(4);static ReplaceParent(e,r){return new A(3,e,void 0,r)}static SkipSiblings(){return A._skipSiblings}static Explore(){return A._explore}static NoExplore(){return A._noExplore}static DeleteParent(){return A._deleteParent}static MergeParent(e){return new A(5,e)}static ReplaceItem(e,r){return new A(6,e,r)}static DeleteItem(e){return new A(7,void 0,e)}}var vt=async(e,r)=>{let t=new WeakSet,n=[],o=[],s=async(i,u,m)=>{let y=i===null,d=y?A.Explore():await r({key:i,value:u,path:n,parent:m,parents:o});if(u&&typeof u==="object"&&d.action===0){if(t.has(u))return d;if(t.add(u),!y)n.push(i),o.push(m);let l=u;while(await a(l,i,m))l=m[i];if(!y)o.pop(),n.pop()}return d},a=async(i,u,m)=>{let y=Object.keys(i),d=y.length;for(let l=0;l<d;l++){let c=y[l],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(u===null)throw Error("Cannot replace root object");if(m[u]=f.by,f.reexplore)return!0;return}if(w===4){if(u===null)throw Error("Cannot delete root object");delete m[u];return}if(w===5)delete i[c],Object.assign(i,f.by)}};await s(null,e,null)},Mt=Object.create,{getPrototypeOf:Ot,defineProperty:er,getOwnPropertyNames:Et}=Object,At=Object.prototype.hasOwnProperty,kt=(e,r,t)=>{t=e!=null?Mt(Ot(e)):{};let n=r||!e||!e.__esModule?er(t,"default",{value:e,enumerable:!0}):t;for(let o of Et(e))if(!At.call(n,o))er(n,o,{get:()=>e[o],enumerable:!0});return n},St=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Ft=St((e,r)=>{var{defineProperty:t,getOwnPropertyNames:n,getOwnPropertyDescriptor:o}=Object,s=Object.prototype.hasOwnProperty,a=new WeakMap,i=(l)=>{var c=a.get(l),h;if(c)return c;if(c=t({},"__esModule",{value:!0}),l&&typeof l==="object"||typeof l==="function")n(l).map((f)=>!s.call(c,f)&&t(c,f,{get:()=>l[f],enumerable:!(h=o(l,f))||h.enumerable}));return a.set(l,c),c},u=(l,c)=>{for(var h in c)t(l,h,{get:c[h],enumerable:!0,configurable:!0,set:(f)=>c[h]=()=>f})},m={};u(m,{splitWithQuotes:()=>d,splitNested:()=>y}),r.exports=i(m);var y=(l,c,h="(",f=")")=>{let w=0,p="",M=[];for(let g of l){if(p+=g,g===h)w++;if(g===f)w--;if(w===0&&g===c)M.push(p.slice(0,-1)),p=""}if(p)M.push(p);return M},d=(l,c=",")=>{let h=[],f=l.length,w=c.length,p=0,M=(g)=>{if(g+w>f)return!1;for(let O=0;O<w;O++)if(l[g+O]!==c[O])return!1;return!0};while(p<f){while(p<f&&l[p]===" ")p++;if(p>=f)break;let g="",O=l[p]==='"'||l[p]==="'";if(O){let v=l[p++];while(p<f&&l[p]!==v)g+=l[p++];if(p<f)p++}else{while(p<f&&!M(p)){let v=l[p];if(v==='"'||v==="'"){g+=v,p++;while(p<f&&l[p]!==v)g+=l[p++];if(p<f)g+=l[p++]}else g+=l[p++]}g=g.trim()}if(g)h.push({value:g,quoted:O});if(M(p))p+=w}return h}}),Dt=kt(Ft(),1),jt=/^\[([^=\]]*)([=]*)([^\]]*)\]$/,Rt=/^([^[\]]*)\[([^\]]*)]$/,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},$t=(e,r,t,n)=>{let o=Se(r,t,n);if(o)return V(e,o,n);let s=jt.exec(r);if(s){let[,i,u,m]=s,y=Se(i.trim(),t,n,!0),d=Se(m.trim(),t,n,!0);if(Array.isArray(e)&&(u==="="||u==="==")&&y)return e.find((l)=>l?.[y]==d)}let a=Rt.exec(r);if(a){let[,i,u]=a;return e?.[i]?.[u]}return e?.[r]},V=(e,r,t)=>{let n=void 0,o=void 0,s=r??"",a=(d)=>{if(!d)return[d,!1];return d.endsWith("?")?[d.substring(0,d.length-1),!0]:[d,!1]},i=(d,l)=>{let[c,h]=a(l.pop());if(!c){if(t?.set!==void 0&&o!==void 0&&n!==void 0)n[o]=t.set;return d}let f=$t(d,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=d,o=c,i(f,l)},u=Dt.splitNested(s,t?.separator??".","{","}"),m=void 0;if(u.length>0&&u[u.length-1].startsWith("?="))m=u.pop()?.substring(2);u.reverse();let y=i(e,u);if(y===void 0)return m??t?.defaultValue;return y},rr=(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 u=V(t,e),m=o(u);if(m[0])return m[1]}throw Error(s)},nr=(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 rr(r,(i)=>V(t,i));let a=rr(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 A.ReplaceItem(null);if(r.value==="undefined")return A.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}},or=(e)=>!e.quoted&&e.value.startsWith("."),Wt=(e)=>{let r={};for(let t of e){if(!or(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=bt.splitWithQuotes(e??""),o=Wt(n),s=n.filter((i)=>!or(i)),a=r.options.processArgs===!1?[]:s.map((i,u)=>nr(r.options,i,t,u,s));return{rawArgs:s,parsedArgs:a,tags:o}},Nt=(e)=>{return e!==null&&typeof e==="object"&&"action"in e},Ct=(e,r)=>r.keys!==void 0&&e.key.startsWith(".")&&r.keys[e.key.substring(1)]!==void 0,Lt=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=nr(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 Nt(i)?i:A.ReplaceParent(i)},tr=(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
- `)},It=async(e,r,t,n)=>{if(!r?.onSection&&!r?.onSectionConfig&&!r?.sections)return[e,!1];let o=/<@\s*section(?:\s*:\s*([\w-]+))?\s*@>([\s\S]*?)<@\s*\/\s*section\s*@>/g,s,a=e,i=0,u=!1,m={content:a,root:n,path:t,options:r,section:{}};while((s=o.exec(e))!==null){u=!0;let[y,d,l]=s,c=s.index,h=c+y.length,f=e[h]===`
3
- `;if(f)h++;let w=c+i,p=h+i,M={},g=l,O=/(^|\r?\n)[ \t]*---[ \t]*(\r?\n|$)/m.exec(l);if(O){let Ee=l.slice(0,O.index),it=O.index+O[0].length;g=l.slice(it);let Je=tr(Ee).trim();if(Je.length>0)try{M=r?.configParser?.(Je)??{}}catch(at){throw Error(`Failed to parse YAML config for section: ${at.message}`)}}else if(/^\r?\n/.test(g))g=g.replace(/^\r?\n/,"");g=tr(g),g=g.replace(/(?:\r?\n[ \t]*)+$/,""),g=g.replace(/[ \t]+$/,"");let v={config:d?{...M,type:d}:M,content:g};if(m.content=a,m.section=v,Object.keys(v.config).length>0){if(await r.onSectionConfig?.(m)!==!1)await F(v.config,{...r,root:n})}let Ve=m.section.config.type?r.sections?.[m.section.config.type]:void 0,Z;if(Ve)Z=await Ve(m);else if(r.onSection)Z=await r.onSection(m);if(v.trim)v.content=v.content.trim();if(v.indent)v.content=v.content.split(`
1
+ var pt=Object.create;var{getPrototypeOf:ct,defineProperty:V,getOwnPropertyNames:rr}=Object;var ke=Object.prototype.hasOwnProperty;function Fe(e){return this[e]}var F=(e,r,t)=>{var n=rr(r);for(let o of n)if(!ke.call(e,o)&&o!=="default")V(e,o,{get:Fe.bind(r,o),enumerable:!0});if(t){for(let o of n)if(!ke.call(t,o)&&o!=="default")V(t,o,{get:Fe.bind(r,o),enumerable:!0});return t}},gt,mt,yt=(e,r,t)=>{var n=e!=null&&typeof e==="object";if(n){var o=r?gt??=new WeakMap:mt??=new WeakMap,s=o.get(e);if(s)return s}t=e!=null?pt(ct(e)):{};let a=r||!e||!e.__esModule?V(t,"default",{value:e,enumerable:!0}):t;for(let i of rr(e))if(!ke.call(a,i))V(a,i,{get:Fe.bind(e,i),enumerable:!0});if(n)o.set(e,a);return a};var dt=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var wt=(e)=>e;function ht(e,r){this[e]=wt.bind(null,r)}var j=(e,r)=>{for(var t in r)V(e,t,{get:r[t],enumerable:!0,configurable:!0,set:ht.bind(r,t)})};var at=dt((Ii,it)=>{var{defineProperty:He,getOwnPropertyNames:On,getOwnPropertyDescriptor:Mn}=Object,An=Object.prototype.hasOwnProperty,ot=new WeakMap,En=(e)=>{var r=ot.get(e),t;if(r)return r;if(r=He({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")On(e).map((n)=>!An.call(r,n)&&He(r,n,{get:()=>e[n],enumerable:!(t=Mn(e,n))||t.enumerable}));return ot.set(e,r),r},kn=(e,r)=>{for(var t in r)He(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(n)=>r[t]=()=>n})},st={};kn(st,{splitWithQuotes:()=>Sn,splitNested:()=>Fn});it.exports=En(st);var Fn=(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},Sn=(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 g=e[s++];while(s<n&&e[s]!==g)i+=e[s++];if(s<n)s++}else{while(s<n&&!a(s)){let g=e[s];if(g==='"'||g==="'"){i+=g,s++;while(s<n&&e[s]!==g)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 R={};j(R,{writeOutputs:()=>z,writeOutput:()=>ce,writeFormat:()=>pe,tokenize:()=>Ke,toObjectWithKey:()=>Ie,toObject:()=>ee,toList:()=>U,stripIndent:()=>Ze,sortBy:()=>Te,snake:()=>G,select:()=>A,processFields:()=>S,pascal:()=>X,padBlock:()=>C,nonNullMap:()=>_e,navigate:()=>ye,mergeAll:()=>Y,merge:()=>N,makeFieldProcessorMap:()=>D,makeFieldProcessorList:()=>je,makeFieldProcessor:()=>x,locate:()=>_,loadFormat:()=>P,importList:()=>ge,importGlob:()=>Ce,globMap:()=>J,getProcessor:()=>q,getArgs:()=>fe,find:()=>Qe,exists:()=>B,defined:()=>Ue,deepClone:()=>$,conditionPredicates:()=>W,changeCase:()=>K,capital:()=>ne,camel:()=>oe,asyncMap:()=>Be,Objector:()=>lt,NavigateResult:()=>b,NavigateAction:()=>me,Logger:()=>qe,AsyncFunction:()=>Ge});var $e={};j($e,{processFields:()=>S,makeFieldProcessorMap:()=>D,makeFieldProcessorList:()=>je,makeFieldProcessor:()=>x,getProcessor:()=>q,getArgs:()=>fe});var bt=Object.create,{getPrototypeOf:vt,defineProperty:tr,getOwnPropertyNames:Ot}=Object,Mt=Object.prototype.hasOwnProperty,At=(e,r,t)=>{t=e!=null?bt(vt(e)):{};let n=r||!e||!e.__esModule?tr(t,"default",{value:e,enumerable:!0}):t;for(let o of Ot(e))if(!Mt.call(n,o))tr(n,o,{get:()=>e[o],enumerable:!0});return n},Et=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),kt=Et((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((p)=>!s.call(c,p)&&t(c,p,{get:()=>u[p],enumerable:!(h=o(u,p))||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:(p)=>c[h]=()=>p})},g={};l(g,{splitWithQuotes:()=>d,splitNested:()=>y}),r.exports=i(g);var y=(u,c,h="(",p=")")=>{let w=0,f="",O=[];for(let m of u){if(f+=m,m===h)w++;if(m===p)w--;if(w===0&&m===c)O.push(f.slice(0,-1)),f=""}if(f)O.push(f);return O},d=(u,c=",")=>{let h=[],p=u.length,w=c.length,f=0,O=(m)=>{if(m+w>p)return!1;for(let M=0;M<w;M++)if(u[m+M]!==c[M])return!1;return!0};while(f<p){while(f<p&&u[f]===" ")f++;if(f>=p)break;let m="",M=u[f]==='"'||u[f]==="'";if(M){let v=u[f++];while(f<p&&u[f]!==v)m+=u[f++];if(f<p)f++}else{while(f<p&&!O(f)){let v=u[f];if(v==='"'||v==="'"){m+=v,f++;while(f<p&&u[f]!==v)m+=u[f++];if(f<p)m+=u[f++]}else m+=u[f++]}m=m.trim()}if(m)h.push({value:m,quoted:M});if(O(f))f+=w}return h}}),Ft=At(kt(),1),I;((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"})(I||={});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 St=async(e,r)=>{let t=new WeakSet,n=[],o=[],s=async(i,l,g)=>{let y=i===null,d=y?E.Explore():await r({key:i,value:l,path:n,parent:g,parents:o});if(l&&typeof l==="object"&&d.action===0){if(t.has(l))return d;if(t.add(l),!y)n.push(i),o.push(g);let u=l;while(await a(u,i,g))u=g[i];if(!y)o.pop(),n.pop()}return d},a=async(i,l,g)=>{let y=Object.keys(i),d=y.length;for(let u=0;u<d;u++){let c=y[u],h=i[c],p=await s(c,h,i),w=p.action;if(w===0||w===2)continue;if(w===6){if(i[c]=p.by,p.skipSiblings)return;continue}if(w===7){if(delete i[c],p.skipSiblings)return;continue}if(w===1)return;if(w===3){if(l===null)throw Error("Cannot replace root object");if(g[l]=p.by,p.reexplore)return!0;return}if(w===4){if(l===null)throw Error("Cannot delete root object");delete g[l];return}if(w===5)delete i[c],Object.assign(i,p.by)}};await s(null,e,null)},Dt=Object.create,{getPrototypeOf:jt,defineProperty:nr,getOwnPropertyNames:$t}=Object,Rt=Object.prototype.hasOwnProperty,Wt=(e,r,t)=>{t=e!=null?Dt(jt(e)):{};let n=r||!e||!e.__esModule?nr(t,"default",{value:e,enumerable:!0}):t;for(let o of $t(e))if(!Rt.call(n,o))nr(n,o,{get:()=>e[o],enumerable:!0});return n},Nt=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Ct=Nt((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((p)=>!s.call(c,p)&&t(c,p,{get:()=>u[p],enumerable:!(h=o(u,p))||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:(p)=>c[h]=()=>p})},g={};l(g,{splitWithQuotes:()=>d,splitNested:()=>y}),r.exports=i(g);var y=(u,c,h="(",p=")")=>{let w=0,f="",O=[];for(let m of u){if(f+=m,m===h)w++;if(m===p)w--;if(w===0&&m===c)O.push(f.slice(0,-1)),f=""}if(f)O.push(f);return O},d=(u,c=",")=>{let h=[],p=u.length,w=c.length,f=0,O=(m)=>{if(m+w>p)return!1;for(let M=0;M<w;M++)if(u[m+M]!==c[M])return!1;return!0};while(f<p){while(f<p&&u[f]===" ")f++;if(f>=p)break;let m="",M=u[f]==='"'||u[f]==="'";if(M){let v=u[f++];while(f<p&&u[f]!==v)m+=u[f++];if(f<p)f++}else{while(f<p&&!O(f)){let v=u[f];if(v==='"'||v==="'"){m+=v,f++;while(f<p&&u[f]!==v)m+=u[f++];if(f<p)m+=u[f++]}else m+=u[f++]}m=m.trim()}if(m)h.push({value:m,quoted:M});if(O(f))f+=w}return h}}),Lt=Wt(Ct(),1),It=/^\[([^=\]]*)([=]*)([^\]]*)\]$/,_t=/^([^[\]]*)\[([^\]]*)]$/,Se=(e,r,t,n)=>{if(e.startsWith("{")&&e.endsWith("}")){let o=e.substring(1,e.length-1);return H(r,o,t)?.toString()}return n?e:void 0},Ut=(e,r,t,n)=>{let o=Se(r,t,n);if(o)return H(e,o,n);let s=It.exec(r);if(s){let[,i,l,g]=s,y=Se(i.trim(),t,n,!0),d=Se(g.trim(),t,n,!0);if(Array.isArray(e)&&(l==="="||l==="==")&&y)return e.find((u)=>u?.[y]==d)}let a=_t.exec(r);if(a){let[,i,l]=a;return e?.[i]?.[l]}return e?.[r]},H=(e,r,t)=>{let n=void 0,o=void 0,s=r??"",a=(d)=>{if(!d)return[d,!1];return d.endsWith("?")?[d.substring(0,d.length-1),!0]:[d,!1]},i=(d,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 d}let p=Ut(d,c,e,t);if(p===void 0){if(h||t?.optional||t?.defaultValue!==void 0)return;throw Error(`Unknown path element: "${c}" in "${s}"`)}return n=d,o=c,i(p,u)},l=Lt.splitNested(s,t?.separator??".","{","}"),g=void 0;if(l.length>0&&l[l.length-1].startsWith("?="))g=l.pop()?.substring(2);l.reverse();let y=i(e,l);if(y===void 0)return g??t?.defaultValue;return y},or=(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=H(t,e),g=o(l);if(g[0])return g[1]}throw Error(s)},ir=(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 or(r,(i)=>H(t,i));let a=or(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)},q=(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}},ar=(e)=>!e.quoted&&e.value.startsWith("."),Tt=(e)=>{let r={};for(let t of e){if(!ar(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},fe=(e,r,t)=>{let n=Ft.splitWithQuotes(e??""),o=Tt(n),s=n.filter((i)=>!ar(i)),a=r.options.processArgs===!1?[]:s.map((i,l)=>ir(r.options,i,t,l,s));return{rawArgs:s,parsedArgs:a,tags:o}},Bt=(e)=>{return e!==null&&typeof e==="object"&&"action"in e},Yt=(e,r)=>r.keys!==void 0&&e.key.startsWith(".")&&r.keys[e.key.substring(1)]!==void 0,Qt=async(e,r,t,n)=>{let{key:o,parent:s}=e,a=q(n.keys,o.substring(1));if(a.options.processArgs!==!1&&(typeof a.options.types==="function"||a.options.types?.[0]!==void 0))e.value=ir(a.options,{value:e.value,quoted:!1},t,0,[]);if(typeof e.value!=="string")await S(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 Bt(i)?i:E.ReplaceParent(i)},sr=(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
+ `)},Xt=async(e,r,t,n)=>{if(!r?.onSection&&!r?.onSectionConfig&&!r?.sections)return[e,!1];let o=/<@\s*section(?:\s*:\s*([\w-]+))?\s*@>([\s\S]*?)<@\s*\/\s*section\s*@>/g,s,a=e,i=0,l=!1,g={content:a,root:n,path:t,options:r,section:{}};while((s=o.exec(e))!==null){l=!0;let[y,d,u]=s,c=s.index,h=c+y.length,p=e[h]===`
3
+ `;if(p)h++;let w=c+i,f=h+i,O={},m=u,M=/(^|\r?\n)[ \t]*---[ \t]*(\r?\n|$)/m.exec(u);if(M){let Ee=u.slice(0,M.index),ut=M.index+M[0].length;m=u.slice(ut);let er=sr(Ee).trim();if(er.length>0)try{O=r?.configParser?.(er)??{}}catch(ft){throw Error(`Failed to parse YAML config for section: ${ft.message}`)}}else if(/^\r?\n/.test(m))m=m.replace(/^\r?\n/,"");m=sr(m),m=m.replace(/(?:\r?\n[ \t]*)+$/,""),m=m.replace(/[ \t]+$/,"");let v={config:d?{...O,type:d}:O,content:m};if(g.content=a,g.section=v,Object.keys(v.config).length>0){if(await r.onSectionConfig?.(g)!==!1)await S(v.config,{...r,root:n})}let xe=g.section.config.type?r.sections?.[g.section.config.type]:void 0,Z;if(xe)Z=await xe(g);else if(r.onSection)Z=await r.onSection(g);if(v.trim)v.content=v.content.trim();if(v.indent)v.content=v.content.split(`
4
4
  `).map((Ee)=>" ".repeat(v.indent)+Ee).join(`
5
- `);let L="";if(Z===!0||v.show)L=v.content;else if(typeof Z==="string")L=Z;if(f&&L!==""&&!L.endsWith(`
5
+ `);let L="";if(Z===!0||v.show)L=v.content;else if(typeof Z==="string")L=Z;if(p&&L!==""&&!L.endsWith(`
6
6
  `))L+=`
7
- `;let He=a.lastIndexOf(`
8
- `,w-1),qe=He===-1?0:He+1,Pe=a.slice(qe,w).trim().length===0?qe:w;a=a.slice(0,Pe)+L+a.slice(p),i+=L.length-(p-Pe),m.content=a}return[a,u]},sr=(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"),_t=(e)=>({[Fe]:!0,value:e}),Ut=(e)=>{return e!==null&&typeof e==="object"&&Fe in e&&e[Fe]===!0},ir=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 ir(a,sr(a),t);if(typeof i==="object")return i;let u=await t(i,e);if(Ut(u))return u.value;e=e.slice(0,o)+u+e.slice(s+1)}return e},Tt=async(e,r)=>ir(e,sr(e),r),Bt=(e)=>{return e!==null&&typeof e==="object"&&"action"in e},Yt=/([\w\d.-_/]+):(.+)/,Qt=async(e,r,t,n)=>{let o=await(async()=>{let s=Yt.exec(e);if(!s)return await V(r,e);let[a,i,u]=s,m=H(n.sources,i),y=pe(u,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 _t(o);return o},ar=async(e,r,t,n)=>{let o=await Tt(r,(s)=>Qt(s,t,e,n));if(Bt(o))return o;if(o===r)return A.Explore();if(typeof o==="string"){let s=await ar(e,o,t,n);if(s.action!==I.Explore)return s;return A.ReplaceItem(o)}return A.ReplaceItem(o)},F=async(e,r)=>{return r??={},await vt(e,async(t)=>{let n=[...t.path,t.key].join(".");if(r?.filters?.length&&r.filters.some((i)=>i.test(n)))return A.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 A.NoExplore();let i=A.Explore();if(typeof t.value==="string"){let u=t.value,m=!1;while(!0){let[y,d]=await It(u,r,n,a);if(m=m||d,i=await ar(n,y,a,r),i.action===I.ReplaceItem&&typeof i.by==="string"){u=i.by;continue}if(i.action===I.Explore&&d&&y!==u)i=A.ReplaceItem(y);break}if(i.action===I.Explore&&u!==t.value)i=A.ReplaceItem(u);switch(i.action){case I.Explore:break;case I.ReplaceItem:t.value=i.by;break;default:return i}}if(Ct(t,r))i=await Lt(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={};j(Ce,{writeOutputs:()=>z,writeOutput:()=>ce,writeFormat:()=>fe,locate:()=>_,loadFormat:()=>P,importList:()=>me,importGlob:()=>Ne,globMap:()=>J,exists:()=>B});import lr from"fs/promises";import Re from"path";import Xt from"fs/promises";import Gt from"path";import Kt from"fs/promises";import Zt from"fs/promises";import fr from"fs/promises";import ur from"path";import xt from"fs/promises";import $e from"path";import pr from"path";var B=async(e)=>{try{return await lr.access(e,lr.constants.R_OK),!0}catch{return!1}},_=async(e,r)=>{let t=!Re.isAbsolute(e)&&r?["",...r]:[""];for(let n of t){let o=Re.join(n,e);if(await B(o))return Re.resolve(o)}throw Error(`File not found: "${e}"`)},P=async(e,r)=>{let t=await _(e,r?.dirs),n=await Xt.readFile(t,"utf-8"),o=Gt.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((u)=>new RegExp(u).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))},J=async(e,r)=>{if(typeof e==="string"&&!e.includes("*"))return await r.map(e,0,[]);let t=await Array.fromAsync(Zt.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 fr.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=ur.join(r?.targetDirectory??".",e.name),n=ur.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 fr.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?pr.isAbsolute(e)?e:pr.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 Be={};j(Be,{toObjectWithKey:()=>Le,toObject:()=>ee,toList:()=>U,sortBy:()=>Ue,nonNullMap:()=>Ie,defined:()=>_e,deepClone:()=>R,asyncMap:()=>Te});var U=(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]})),Ie=(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},_e=(e,r="Value is undefined")=>{if(e===void 0||e===null)throw Error(r);return e},Ue=(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:()=>Ke});var cr={};j(cr,{navigate:()=>ye,find:()=>Ye,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,u,m)=>{let y=i===null,d=y?b.Explore():await r({key:i,value:u,path:n,parent:m,parents:o});if(u&&typeof u==="object"&&d.action===0){if(t.has(u))return d;if(t.add(u),!y)n.push(i),o.push(m);let l=u;while(await a(l,i,m))l=m[i];if(!y)o.pop(),n.pop()}return d},a=async(i,u,m)=>{let y=Object.keys(i),d=y.length;for(let l=0;l<d;l++){let c=y[l],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(u===null)throw Error("Cannot replace root object");if(m[u]=f.by,f.reexplore)return!0;return}if(w===4){if(u===null)throw Error("Cannot delete root object");delete m[u];return}if(w===5)delete i[c],Object.assign(i,f.by)}};await s(null,e,null)},Ye=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 mr=(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 Vt from"path";var gr=(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&&Vt.dirname(t.file))}return b.DeleteItem()}});var yr={};j(yr,{mergeAll:()=>Y,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]},Y=(e,r)=>{let t={};for(let n of e.toReversed())N(n,t,r);return t};var dr={};j(dr,{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 hr={};j(hr,{select:()=>E});var Ht=Object.create,{getPrototypeOf:qt,defineProperty:wr,getOwnPropertyNames:Pt}=Object,Jt=Object.prototype.hasOwnProperty,zt=(e,r,t)=>{t=e!=null?Ht(qt(e)):{};let n=r||!e||!e.__esModule?wr(t,"default",{value:e,enumerable:!0}):t;for(let o of Pt(e))if(!Jt.call(n,o))wr(n,o,{get:()=>e[o],enumerable:!0});return n},en=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),rn=en((e,r)=>{var{defineProperty:t,getOwnPropertyNames:n,getOwnPropertyDescriptor:o}=Object,s=Object.prototype.hasOwnProperty,a=new WeakMap,i=(l)=>{var c=a.get(l),h;if(c)return c;if(c=t({},"__esModule",{value:!0}),l&&typeof l==="object"||typeof l==="function")n(l).map((f)=>!s.call(c,f)&&t(c,f,{get:()=>l[f],enumerable:!(h=o(l,f))||h.enumerable}));return a.set(l,c),c},u=(l,c)=>{for(var h in c)t(l,h,{get:c[h],enumerable:!0,configurable:!0,set:(f)=>c[h]=()=>f})},m={};u(m,{splitWithQuotes:()=>d,splitNested:()=>y}),r.exports=i(m);var y=(l,c,h="(",f=")")=>{let w=0,p="",M=[];for(let g of l){if(p+=g,g===h)w++;if(g===f)w--;if(w===0&&g===c)M.push(p.slice(0,-1)),p=""}if(p)M.push(p);return M},d=(l,c=",")=>{let h=[],f=l.length,w=c.length,p=0,M=(g)=>{if(g+w>f)return!1;for(let O=0;O<w;O++)if(l[g+O]!==c[O])return!1;return!0};while(p<f){while(p<f&&l[p]===" ")p++;if(p>=f)break;let g="",O=l[p]==='"'||l[p]==="'";if(O){let v=l[p++];while(p<f&&l[p]!==v)g+=l[p++];if(p<f)p++}else{while(p<f&&!M(p)){let v=l[p];if(v==='"'||v==="'"){g+=v,p++;while(p<f&&l[p]!==v)g+=l[p++];if(p<f)g+=l[p++]}else g+=l[p++]}g=g.trim()}if(g)h.push({value:g,quoted:O});if(M(p))p+=w}return h}}),tn=zt(rn(),1),nn=/^\[([^=\]]*)([=]*)([^\]]*)\]$/,on=/^([^[\]]*)\[([^\]]*)]$/,Qe=(e,r,t,n)=>{if(e.startsWith("{")&&e.endsWith("}")){let o=e.substring(1,e.length-1);return E(r,o,t)?.toString()}return n?e:void 0},sn=(e,r,t,n)=>{let o=Qe(r,t,n);if(o)return E(e,o,n);let s=nn.exec(r);if(s){let[,i,u,m]=s,y=Qe(i.trim(),t,n,!0),d=Qe(m.trim(),t,n,!0);if(Array.isArray(e)&&(u==="="||u==="==")&&y)return e.find((l)=>l?.[y]==d)}let a=on.exec(r);if(a){let[,i,u]=a;return e?.[i]?.[u]}return e?.[r]},E=(e,r,t)=>{let n=void 0,o=void 0,s=r??"",a=(d)=>{if(!d)return[d,!1];return d.endsWith("?")?[d.substring(0,d.length-1),!0]:[d,!1]},i=(d,l)=>{let[c,h]=a(l.pop());if(!c){if(t?.set!==void 0&&o!==void 0&&n!==void 0)n[o]=t.set;return d}let f=sn(d,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=d,o=c,i(f,l)},u=tn.splitNested(s,t?.separator??".","{","}"),m=void 0;if(u.length>0&&u[u.length-1].startsWith("?="))m=u.pop()?.substring(2);u.reverse();let y=i(e,u);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 E(e.root,r);return r};var he=(e)=>{if(typeof e.value==="string")return E(e.root,e.value);if(Array.isArray(e.value))return e.value;let r=e.value;if(typeof r.from==="string")return E(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 E({...e.root,result:r},t.selector)};var br={};j(br,{PathManager:()=>T});import Q from"path";class T{constructor(){}static normalize(e){return Q.normalize(Q.resolve(e))}static resolveInContext(e,r){let t=r??process.cwd(),n=Q.isAbsolute(e)?e:Q.join(t,e);return this.normalize(n)}static isDirectoryPattern(e){return e.endsWith("/")}static isGlobPattern(e){return e.includes("*")}static toAbsolute(e,r){if(Q.isAbsolute(e))return e;return Q.join(r??process.cwd(),e)}}var vr={};j(vr,{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 Mr=()=>({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=Y([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=Y([a,...Array.isArray(i)?i:[i]])}o.push(await be(e,a))}return o}}});var Or=()=>({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 Er=()=>({concat:async(e)=>{let r=[];for(let t of Array.isArray(e.value)?e.value:[e.value])r.push(...await E(e.root,t));return r.filter((t)=>t!==void 0)}});var Ar=()=>({extends:async(e)=>{let r=async(t,n)=>{for(let o of Array.isArray(n)?n:[n]){let s=await E(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 kr=(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 Sr=()=>({from:async({root:e,parent:r,value:t})=>{let n=await E(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 Fr from"node:vm";var Dr=(e)=>({modules:async(r)=>{for(let[t,n]of Object.entries(r.value)){let o=Fr.createContext({console,objector:e,document:r.root}),s=new Fr.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}`,(u)=>i(u,...u.args)])))}return b.DeleteItem()}});var jr=()=>({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 Rr=()=>({let:{fn:(e)=>{let r=e.value;return Object.assign(e.root,r),b.DeleteItem()}}});var $r=()=>({tap:{fn:(e)=>{return console.log(`[tap] ${e.path}:`,e.value),e.value}}});var an=Object.getPrototypeOf(async function(){}).constructor,Wr=(e)=>async(r)=>{let t=[],n={write:(...a)=>{return t.push(...a),n},writeLine:(...a)=>{return t.push(...a.map((i)=>i+`
7
+ `;let Pe=a.lastIndexOf(`
8
+ `,w-1),Je=Pe===-1?0:Pe+1,ze=a.slice(Je,w).trim().length===0?Je:w;a=a.slice(0,ze)+L+a.slice(f),i+=L.length-(f-ze),g.content=a}return[a,l]},lr=(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},De=Symbol.for("@homedev/fields:OverrideResult"),Gt=(e)=>({[De]:!0,value:e}),Kt=(e)=>{return e!==null&&typeof e==="object"&&De in e&&e[De]===!0},ur=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 ur(a,lr(a),t);if(typeof i==="object")return i;let l=await t(i,e);if(Kt(l))return l.value;e=e.slice(0,o)+l+e.slice(s+1)}return e},Zt=async(e,r)=>ur(e,lr(e),r),Vt=(e)=>{return e!==null&&typeof e==="object"&&"action"in e},Ht=/([\w\d.-_/]+):(.+)/,qt=async(e,r,t,n)=>{let o=await(async()=>{let s=Ht.exec(e);if(!s)return await H(r,e);let[a,i,l]=s,g=q(n.sources,i),y=fe(l,g,r);return await g.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 Gt(o);return o},fr=async(e,r,t,n)=>{let o=await Zt(r,(s)=>qt(s,t,e,n));if(Vt(o))return o;if(o===r)return E.Explore();if(typeof o==="string"){let s=await fr(e,o,t,n);if(s.action!==I.Explore)return s;return E.ReplaceItem(o)}return E.ReplaceItem(o)},S=async(e,r)=>{return r??={},await St(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,g=!1;while(!0){let[y,d]=await Xt(l,r,n,a);if(g=g||d,i=await fr(n,y,a,r),i.action===I.ReplaceItem&&typeof i.by==="string"){l=i.by;continue}if(i.action===I.Explore&&d&&y!==l)i=E.ReplaceItem(y);break}if(i.action===I.Explore&&l!==t.value)i=E.ReplaceItem(l);switch(i.action){case I.Explore:break;case I.ReplaceItem:t.value=i.by;break;default:return i}}if(Yt(t,r))i=await Qt(t,n,a,r);return i}catch(i){throw Error(`${i.message}
9
+ (${n})`)}}),e},x=(e,r)=>r?{fn:(t)=>e(...t.args),types:r}:(t)=>e(...t.args),je=(e,r)=>Object.fromEntries(e.map((t)=>[t.name,x(t,r?.types?.[t.name])])),D=(e,r)=>Object.fromEntries((r?.keys??Object.keys(e)).map((t)=>[t,x(e[t],r?.types?.[t])]));var Le={};j(Le,{writeOutputs:()=>z,writeOutput:()=>ce,writeFormat:()=>pe,locate:()=>_,loadFormat:()=>P,importList:()=>ge,importGlob:()=>Ce,globMap:()=>J,exists:()=>B});import pr from"fs/promises";import Re from"path";import xt from"fs/promises";import Pt from"path";import Jt from"fs/promises";import zt from"fs/promises";import mr from"fs/promises";import cr from"path";import en from"fs/promises";import We from"path";import gr from"path";var B=async(e)=>{try{return await pr.access(e,pr.constants.R_OK),!0}catch{return!1}},_=async(e,r)=>{let t=!Re.isAbsolute(e)&&r?["",...r]:[""];for(let n of t){let o=Re.join(n,e);if(await B(o))return Re.resolve(o)}throw Error(`File not found: "${e}"`)},P=async(e,r)=>{let t=await _(e,r?.dirs),n=await xt.readFile(t,"utf-8"),o=Pt.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}},pe=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 Jt.writeFile(e,await o.fn(r))},J=async(e,r)=>{if(typeof e==="string"&&!e.includes("*"))return await r.map(e,0,[]);let t=await Array.fromAsync(zt.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 mr.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=cr.join(r?.targetDirectory??".",e.name),n=cr.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 mr.mkdir(n,{recursive:!0})}catch(o){throw Error(`Failed to create target directory "${n}" for output "${t}": ${o.message}`)}try{await pe(t,e.value,{format:e.type??"text"})}catch(o){throw Error(`Failed to write output "${t}": ${o.message}`)}},Ne=(e)=>e?gr.isAbsolute(e)?e:gr.join(process.cwd(),e):process.cwd(),ge=async(e,r)=>{let t=[];for(let n of e)try{let o=!We.isAbsolute(n)?We.join(Ne(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},Ce=async(e,r)=>{let t=[];for(let n of e){let o=(await Array.fromAsync(en.glob(n,{cwd:Ne(r?.cwd)}))).map((s)=>We.join(Ne(r?.cwd),s));t.push(...await ge(o,r))}return t};var Ye={};j(Ye,{toObjectWithKey:()=>Ie,toObject:()=>ee,toList:()=>U,sortBy:()=>Te,nonNullMap:()=>_e,defined:()=>Ue,deepClone:()=>$,asyncMap:()=>Be});var U=(e,r="name")=>Object.entries(e).map(([t,n])=>({[r]:t,...n})),Ie=(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]})),_e=(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},Ue=(e,r="Value is undefined")=>{if(e===void 0||e===null)throw Error(r);return e},Te=(e,r,t=(n,o)=>n-o)=>e.slice().sort((n,o)=>t(r(n),r(o))),Be=async(e,r)=>Promise.all(e.map(r)),$=(e)=>{if(typeof structuredClone<"u")try{return structuredClone(e)}catch{}return JSON.parse(JSON.stringify(e))};var tt={};j(tt,{defaultProcessors:()=>Ve});var yr={};j(yr,{navigate:()=>ye,find:()=>Qe,NavigateResult:()=>b,NavigateAction:()=>me});var me;((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"})(me||={});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,g)=>{let y=i===null,d=y?b.Explore():await r({key:i,value:l,path:n,parent:g,parents:o});if(l&&typeof l==="object"&&d.action===0){if(t.has(l))return d;if(t.add(l),!y)n.push(i),o.push(g);let u=l;while(await a(u,i,g))u=g[i];if(!y)o.pop(),n.pop()}return d},a=async(i,l,g)=>{let y=Object.keys(i),d=y.length;for(let u=0;u<d;u++){let c=y[u],h=i[c],p=await s(c,h,i),w=p.action;if(w===0||w===2)continue;if(w===6){if(i[c]=p.by,p.skipSiblings)return;continue}if(w===7){if(delete i[c],p.skipSiblings)return;continue}if(w===1)return;if(w===3){if(l===null)throw Error("Cannot replace root object");if(g[l]=p.by,p.reexplore)return!0;return}if(w===4){if(l===null)throw Error("Cannot delete root object");delete g[l];return}if(w===5)delete i[c],Object.assign(i,p.by)}};await s(null,e,null)},Qe=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 dr=(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 rn from"path";var wr=(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&&rn.dirname(t.file))}return b.DeleteItem()}});var hr={};j(hr,{mergeAll:()=>Y,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]},Y=(e,r)=>{let t={};for(let n of e.toReversed())N(n,t,r);return t};var br={};j(br,{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 Or={};j(Or,{select:()=>A});var tn=Object.create,{getPrototypeOf:nn,defineProperty:vr,getOwnPropertyNames:on}=Object,sn=Object.prototype.hasOwnProperty,an=(e,r,t)=>{t=e!=null?tn(nn(e)):{};let n=r||!e||!e.__esModule?vr(t,"default",{value:e,enumerable:!0}):t;for(let o of on(e))if(!sn.call(n,o))vr(n,o,{get:()=>e[o],enumerable:!0});return n},ln=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),un=ln((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((p)=>!s.call(c,p)&&t(c,p,{get:()=>u[p],enumerable:!(h=o(u,p))||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:(p)=>c[h]=()=>p})},g={};l(g,{splitWithQuotes:()=>d,splitNested:()=>y}),r.exports=i(g);var y=(u,c,h="(",p=")")=>{let w=0,f="",O=[];for(let m of u){if(f+=m,m===h)w++;if(m===p)w--;if(w===0&&m===c)O.push(f.slice(0,-1)),f=""}if(f)O.push(f);return O},d=(u,c=",")=>{let h=[],p=u.length,w=c.length,f=0,O=(m)=>{if(m+w>p)return!1;for(let M=0;M<w;M++)if(u[m+M]!==c[M])return!1;return!0};while(f<p){while(f<p&&u[f]===" ")f++;if(f>=p)break;let m="",M=u[f]==='"'||u[f]==="'";if(M){let v=u[f++];while(f<p&&u[f]!==v)m+=u[f++];if(f<p)f++}else{while(f<p&&!O(f)){let v=u[f];if(v==='"'||v==="'"){m+=v,f++;while(f<p&&u[f]!==v)m+=u[f++];if(f<p)m+=u[f++]}else m+=u[f++]}m=m.trim()}if(m)h.push({value:m,quoted:M});if(O(f))f+=w}return h}}),fn=an(un(),1),pn=/^\[([^=\]]*)([=]*)([^\]]*)\]$/,cn=/^([^[\]]*)\[([^\]]*)]$/,Xe=(e,r,t,n)=>{if(e.startsWith("{")&&e.endsWith("}")){let o=e.substring(1,e.length-1);return A(r,o,t)?.toString()}return n?e:void 0},gn=(e,r,t,n)=>{let o=Xe(r,t,n);if(o)return A(e,o,n);let s=pn.exec(r);if(s){let[,i,l,g]=s,y=Xe(i.trim(),t,n,!0),d=Xe(g.trim(),t,n,!0);if(Array.isArray(e)&&(l==="="||l==="==")&&y)return e.find((u)=>u?.[y]==d)}let a=cn.exec(r);if(a){let[,i,l]=a;return e?.[i]?.[l]}return e?.[r]},A=(e,r,t)=>{let n=void 0,o=void 0,s=r??"",a=(d)=>{if(!d)return[d,!1];return d.endsWith("?")?[d.substring(0,d.length-1),!0]:[d,!1]},i=(d,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 d}let p=gn(d,c,e,t);if(p===void 0){if(h||t?.optional||t?.defaultValue!==void 0)return;throw Error(`Unknown path element: "${c}" in "${s}"`)}return n=d,o=c,i(p,u)},l=fn.splitNested(s,t?.separator??".","{","}"),g=void 0;if(l.length>0&&l[l.length-1].startsWith("?="))g=l.pop()?.substring(2);l.reverse();let y=i(e,l);if(y===void 0)return g??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 A(e.root,r);return r};var he=(e)=>{if(typeof e.value==="string")return A(e.root,e.value);if(Array.isArray(e.value))return e.value;let r=e.value;if(typeof r.from==="string")return A(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 S(n,{...e.options,root:{...e.root,result:r}}),n}return await A({...e.root,result:r},t.selector)};var Mr={};j(Mr,{PathManager:()=>T});import Q from"path";class T{constructor(){}static normalize(e){return Q.normalize(Q.resolve(e))}static resolveInContext(e,r){let t=r??process.cwd(),n=Q.isAbsolute(e)?e:Q.join(t,e);return this.normalize(n)}static isDirectoryPattern(e){return e.endsWith("/")}static isGlobPattern(e){return e.includes("*")}static toAbsolute(e,r){if(Q.isAbsolute(e))return e;return Q.join(r??process.cwd(),e)}}var Ar={};j(Ar,{conditionPredicatesTypes:()=>re,conditionPredicates:()=>W});var W={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)=>!W.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 Er=()=>({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=Y([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=$(n);if(await S(a,{...e.options,root:{...e.root,index:s,item:t[s],instance:a}}),r.extend?.result){let i=r.extend.result;a=Y([a,...Array.isArray(i)?i:[i]])}o.push(await be(e,a))}return o}}});var kr=()=>({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=$(t);await S(s,{...e.options,root:{...e.root,index:o,item:r[o],instance:s}}),n.push(await be(e,s))}return n}}});var Fr=()=>({concat:async(e)=>{let r=[];for(let t of Array.isArray(e.value)?e.value:[e.value])r.push(...await A(e.root,t));return r.filter((t)=>t!==void 0)}});var Sr=()=>({extends:async(e)=>{let r=async(t,n)=>{for(let o of Array.isArray(n)?n:[n]){let s=await A(e.root,o),a=$(s);if(a[e.key])await r(a,a[e.key]);await S(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 Dr=(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 S({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 jr=()=>({from:async({root:e,parent:r,value:t})=>{let n=await A(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 $r from"node:vm";var Rr=(e)=>({modules:async(r)=>{for(let[t,n]of Object.entries(r.value)){let o=$r.createContext({console,objector:e,document:r.root}),s=new $r.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 Wr=()=>({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 Nr=()=>({let:{fn:(e)=>{let r=e.value;return Object.assign(e.root,r),b.DeleteItem()}}});var Cr=()=>({tap:{fn:(e)=>{return console.log(`[tap] ${e.path}:`,e.value),e.value}}});var mn=(e,r)=>{let t=r.section.config.using,n=e.getFunctions();return t?Object.fromEntries(t.map((o)=>{if(o in n)return[o,n[o]];if(o in r.root)return[o,r.root[o]];throw Error(`Function or variable "${o}" not found for script section`)})):n},ve=(e,r,t,n,o=[])=>{let s=mn(e,t),a=["section","context","config","system",...Object.keys(s),...o],i=[r,t.root,t.section.config,e,...Object.values(s)];return[new Ge(...a,n).bind(t),i]},Lr=(e)=>async(r)=>{let t=[],n={write:(...a)=>{return t.push(...a),n},writeLine:(...a)=>{return t.push(...a.map((i)=>i+`
10
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 an("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 Nr=(e)=>({script:Wr(e)});import Cr from"fs/promises";import te from"path";var Lr=(e)=>({include:async(r)=>{let{file:t}=r.options.globalContext;return await J(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 B(r),file:async(r)=>await Cr.readFile(await _(r.args[0],e.getIncludeDirectories())).then((t)=>t.toString()),scan:async(r)=>{let t=[],o=(()=>{let i=r.args[2]??["**/node_modules/**"],u=typeof i==="string"?i.split(",").map((m)=>m.trim()):i;if(!Array.isArray(u))throw Error("Scan exclusion must be a list");return u})(),{file:s}=r.options.globalContext,a=r.args[1]?await _(r.args[1],e.getIncludeDirectories()):te.dirname(s);for await(let i of Cr.glob(r.args[0],{cwd:a,exclude:(u)=>o.some((m)=>te.matchesGlob(u,m))}))t.push(i);return t}});var Ir=()=>D({env:(e)=>process.env[e]});var _r={};j(_r,{tokenize:()=>Xe,stripIndent:()=>Ge,snake:()=>G,pascal:()=>X,padBlock:()=>C,changeCase:()=>K,capital:()=>ne,camel:()=>oe});var X=(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=X(e);return r.charAt(0).toLowerCase()+r.slice(1)},G=(e,r="_")=>e.replace(/([a-z])([A-Z])/g,`$1${r}$2`).replace(/\s+/g,r).toLowerCase(),K=(e,r)=>{switch(r){case"upper":return e.toUpperCase();case"lower":return e.toLowerCase();default:return e}},C=(e,r,t=`
12
- `,n=" ")=>{let o=n.repeat(r);return e.split(t).map((s)=>o+s).join(t)},Xe=(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)})},Ge=(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(`
13
- `)};var Ur=(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]??`
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:X,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)=>K(G(r,"_"),t),kebab:(r,t)=>K(G(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`[
15
- ${e.map((a)=>`${o}${ve(a,r+1)},`).join(`
11
+ `)),n},setOptions:(a)=>{return Object.assign(r.section,a),n},use:(a)=>{return a(n),n},getLines:()=>t},o=r.section.config.condition;if(o!==void 0){let[a,i]=ve(e,n,r,`return (${o})`);if(!await a(...i))return!1}let s=r.section.config.each;if(s){let[a,i]=ve(e,n,r,`return (${s})`),l=Array.isArray(s)?s:await a(...i);if(!Array.isArray(l))throw Error('The "each" property of a script section must return an array');let[g,y]=ve(e,n,r,r.section.content,["item"]);for(let d of l){let u=await g(...y,d);if(typeof u<"u")t.push(u)}}else{let[a,i]=ve(e,n,r,r.section.content),l=await a(...i);if(typeof l<"u")return l}if(t.length===0)return!1;return t.join("")};var Ir=(e)=>({script:Lr(e)});import _r from"fs/promises";import te from"path";var Ur=(e)=>({include:async(r)=>{let{file:t}=r.options.globalContext;return await J(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 B(r),file:async(r)=>await _r.readFile(await _(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((g)=>g.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 _(r.args[1],e.getIncludeDirectories()):te.dirname(s);for await(let i of _r.glob(r.args[0],{cwd:a,exclude:(l)=>o.some((g)=>te.matchesGlob(l,g))}))t.push(i);return t}});var Tr=()=>D({env:(e)=>process.env[e]});var Br={};j(Br,{tokenize:()=>Ke,stripIndent:()=>Ze,snake:()=>G,pascal:()=>X,padBlock:()=>C,changeCase:()=>K,capital:()=>ne,camel:()=>oe});var X=(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=X(e);return r.charAt(0).toLowerCase()+r.slice(1)},G=(e,r="_")=>e.replace(/([a-z])([A-Z])/g,`$1${r}$2`).replace(/\s+/g,r).toLowerCase(),K=(e,r)=>{switch(r){case"upper":return e.toUpperCase();case"lower":return e.toLowerCase();default:return e}},C=(e,r,t=`
12
+ `,n=" ")=>{let o=n.repeat(r);return e.split(t).map((s)=>o+s).join(t)},Ke=(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)})},Ze=(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(`
13
+ `)};var Yr=(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]??`
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:X,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)=>K(G(r,"_"),t),kebab:(r,t)=>K(G(r,"-"),t),encode:(r,t)=>Buffer.from(r).toString(t??"base64"),decode:(r,t)=>Buffer.from(r,t??"base64").toString()})});var Oe=(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`[
15
+ ${e.map((a)=>`${o}${Oe(a,r+1)},`).join(`
16
16
  `)}
17
- ${n}]`}else if(typeof e==="object"){let s=Object.entries(e).sort((i,u)=>t?.sortKeys?i[0].localeCompare(u[0]):0);if(s.length===0)return"{}";return`{
18
- ${s.map(([i,u])=>`${o}${i} = ${ve(u,r+1,t)}`).join(`
17
+ ${n}]`}else if(typeof e==="object"){let s=Object.entries(e).sort((i,l)=>t?.sortKeys?i[0].localeCompare(l[0]):0);if(s.length===0)return"{}";return`{
18
+ ${s.map(([i,l])=>`${o}${i} = ${Oe(l,r+1,t)}`).join(`
19
19
  `)}
20
20
  ${n}}`}else return String(e)},se=(e)=>{if(!e)return e;return e.replaceAll("\\n",`
21
- `).replaceAll("\\$","$").replaceAll("\\t","\t")};var Tr=()=>({...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((d)=>E({...r,...d},n)):e).join(a),u=t.pad?.[0]??"0",m=t.padChar?.[0]??" ",y=s&&i.length&&a?i+a:i;return u?C(y,parseInt(u),`
22
- `,m):y},list:({args:e})=>U(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 u=Array(e.length);for(let y=0;y<e.length;y++)try{u[y]=E({...n,...e[y]},s)}catch{u[y]=Symbol("invalid")}let m=[];for(let y=0;y<e.length;y++){let d=u[y];if(typeof d!=="symbol"&&t===void 0?a(d):a(d,t))m.push(e[y])}return m}let i=[];for(let u of e)if(t===void 0?a(u):a(u,t))i.push(u);return i}}});var Br=()=>({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 E(n,f.value),i=await E(n,e.value),u=await a(r),m=s.key?.[0],y=Array.isArray(i)?i:U(i),d=[],l=await Promise.all(t.map(async(f)=>await a(f))),c={...n,item:void 0,index:0,params:l,instance:void 0,parent:n.this,tags:s},h={...o,root:c};for(let f=0;f<y.length;f++){let w=R(u),p={instance:w},M=typeof u==="string"?p:w;if(c.item=y[f],c.index=f,c.instance=w,s?.root?.[0])Object.assign(c,await E(c,s.root[0]));if(await F(M,h),m!==void 0)d.push(await E(p.instance,m));else d.push(p.instance)}if(s.join?.length){if(d.length===0)return"";let f=se(s.join[0]),w=s.pad?.[0]??"0",p=s.padChar?.[0]??" ",M=s.finalize?.length&&f?f:"",g=`${d.join(f)}${M}`;return w?C(g,parseInt(w),`
23
- `,p):g}return d}}});var ie=async(e,r,t)=>e.rawArgs[r].quoted?e.rawArgs[r].value:await E(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 Qr=()=>D({log:console.log});var Xr=()=>({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 Gr=(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 Zr=()=>({...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"),u=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",u).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 Vr=()=>{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 Hr=()=>({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 qr=()=>({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 ln,dirname as un,basename as pn,normalize as fn,join as cn}from"path";var Pr=()=>({...D({pathJoin:(...e)=>cn(...e),resolve:(...e)=>ln(...e),dirname:(e)=>un(e),basename:(e,r)=>pn(e,r),normalize:(e)=>fn(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 Jr=()=>({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 Ke=(e)=>e.keys(mr(e)).keys(gr(e)).keys(Mr()).keys(Or()).keys(Sr()).keys(Er()).keys(Ar()).keys(kr(e)).keys(Dr(e)).keys(jr()).keys(Rr()).keys($r()).sources(Lr(e)).sources(Ir()).sources(Ur(e)).sources(Kr()).sources(Tr()).sources(Br()).sources(Yr()).sources(Qr()).sources(Xr()).sources(Gr(e)).sources(Zr()).sources(xr()).sources(Vr()).sources(Hr()).sources(qr()).sources(Pr()).sources(Jr()).sections(Nr(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 et={};j(et,{IncludeManager:()=>Me,DocumentIncludeProcessor:()=>Oe});import mn 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(mn.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 k={};j(k,{writeOutputs:()=>z,writeOutput:()=>ce,writeFormat:()=>fe,tokenize:()=>Xe,toObjectWithKey:()=>Le,toObject:()=>ee,toList:()=>U,stripIndent:()=>Ge,sortBy:()=>Ue,snake:()=>G,select:()=>E,processFields:()=>F,pascal:()=>X,padBlock:()=>C,nonNullMap:()=>Ie,navigate:()=>ye,mergeAll:()=>Y,merge:()=>N,makeFieldProcessorMap:()=>D,makeFieldProcessorList:()=>De,makeFieldProcessor:()=>q,locate:()=>_,loadFormat:()=>P,importList:()=>me,importGlob:()=>Ne,globMap:()=>J,getProcessor:()=>H,getArgs:()=>pe,find:()=>Ye,exists:()=>B,defined:()=>_e,deepClone:()=>R,conditionPredicates:()=>$,changeCase:()=>K,capital:()=>ne,camel:()=>oe,asyncMap:()=>Te,NavigateResult:()=>b,NavigateAction:()=>ge,Logger:()=>xe});S(k,pt(ot(),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,k);class st{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(Ke)}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"}),u=T.normalize(i.fullPath);if(this.currentContext.included.push(u),!i.content)return null;let m=this.cacheManager.get(u),y;if(m)y=m.raw;else y=i.content,this.cacheManager.set(u,{raw:y,timestamp:Date.now()});let d=R(y);i.content=d,await this.includeProcessor.processIncludes(i,t,this.currentContext);let l;if(n!==!0)l=await this.loadObject(i.content,t,{fileName:i.fullPath,folderPath:i.folderPath,fullPath:i.fullPath});else l=i.content;return this.currentContext.document=l,l}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,Xe as tokenize,Le as toObjectWithKey,ee as toObject,U as toList,Ge as stripIndent,Ue as sortBy,G as snake,E as select,F as processFields,X as pascal,C as padBlock,Ie as nonNullMap,ye as navigate,Y as mergeAll,N as merge,D as makeFieldProcessorMap,De as makeFieldProcessorList,q as makeFieldProcessor,_ as locate,P as loadFormat,me as importList,Ne as importGlob,J as globMap,H as getProcessor,pe as getArgs,Ye as find,B as exists,_e as defined,R as deepClone,$ as conditionPredicates,K as changeCase,ne as capital,oe as camel,Te as asyncMap,st as Objector,b as NavigateResult,ge as NavigateAction,xe as Logger};
21
+ `).replaceAll("\\$","$").replaceAll("\\t","\t")};var Qr=()=>({...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((d)=>A({...r,...d},n)):e).join(a),l=t.pad?.[0]??"0",g=t.padChar?.[0]??" ",y=s&&i.length&&a?i+a:i;return l?C(y,parseInt(l),`
22
+ `,g):y},list:({args:e})=>U(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(W)}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=W[r];if(s){let l=Array(e.length);for(let y=0;y<e.length;y++)try{l[y]=A({...n,...e[y]},s)}catch{l[y]=Symbol("invalid")}let g=[];for(let y=0;y<e.length;y++){let d=l[y];if(typeof d!=="symbol"&&t===void 0?a(d):a(d,t))g.push(e[y])}return g}let i=[];for(let l of e)if(t===void 0?a(l):a(l,t))i.push(l);return i}}});var Xr=()=>({each:{processArgs:!1,fn:async({rawArgs:[e,r,...t],root:n,options:o,tags:s})=>{let a=async(p)=>p.quoted?se(p.value):await A(n,p.value),i=await A(n,e.value),l=await a(r),g=s.key?.[0],y=Array.isArray(i)?i:U(i),d=[],u=await Promise.all(t.map(async(p)=>await a(p))),c={...n,item:void 0,index:0,params:u,instance:void 0,parent:n.this,tags:s},h={...o,root:c};for(let p=0;p<y.length;p++){let w=$(l),f={instance:w},O=typeof l==="string"?f:w;if(c.item=y[p],c.index=p,c.instance=w,s?.root?.[0])Object.assign(c,await A(c,s.root[0]));if(await S(O,h),g!==void 0)d.push(await A(f.instance,g));else d.push(f.instance)}if(s.join?.length){if(d.length===0)return"";let p=se(s.join[0]),w=s.pad?.[0]??"0",f=s.padChar?.[0]??" ",O=s.finalize?.length&&p?p:"",m=`${d.join(p)}${O}`;return w?C(m,parseInt(w),`
23
+ `,f):m}return d}}});var ie=async(e,r,t)=>e.rawArgs[r].quoted?e.rawArgs[r].value:await A(e.root,e.rawArgs[r].value,{defaultValue:t}),Gr=()=>({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 Kr=()=>D({log:console.log});var Zr=()=>({if:{types:{0:"boolean"},fn:(e)=>e.args[0]?e.args[1]:e.args[2]},check:{types:{0:Object.keys(W)},fn:(e)=>W[e.args[0]](...e.args.slice(1))},...D(W,{types:re})});var Vr=(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 Hr=()=>({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 qr=()=>({...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"),g=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",g)},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 Pr=()=>{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 Jr=()=>({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 zr=()=>({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 yn,dirname as dn,basename as wn,normalize as hn,join as bn}from"path";var et=()=>({...D({pathJoin:(...e)=>bn(...e),resolve:(...e)=>yn(...e),dirname:(e)=>dn(e),basename:(e,r)=>wn(e,r),normalize:(e)=>hn(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 rt=()=>({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 Ve=(e)=>e.keys(dr(e)).keys(wr(e)).keys(Er()).keys(kr()).keys(jr()).keys(Fr()).keys(Sr()).keys(Dr(e)).keys(Rr(e)).keys(Wr()).keys(Nr()).keys(Cr()).sources(Ur(e)).sources(Tr()).sources(Yr(e)).sources(Hr()).sources(Qr()).sources(Xr()).sources(Gr()).sources(Kr()).sources(Zr()).sources(Vr(e)).sources(qr()).sources(xr()).sources(Pr()).sources(Jr()).sources(zr()).sources(et()).sources(rt()).sections(Ir(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)=>Oe(r,0,{sortKeys:!!(t?.sort?.length??t?.sortKeys?.length)})}});var nt={};j(nt,{IncludeManager:()=>Me,DocumentIncludeProcessor:()=>Ae});import vn 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(vn.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 Ae{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 k={};j(k,{writeOutputs:()=>z,writeOutput:()=>ce,writeFormat:()=>pe,tokenize:()=>Ke,toObjectWithKey:()=>Ie,toObject:()=>ee,toList:()=>U,stripIndent:()=>Ze,sortBy:()=>Te,snake:()=>G,select:()=>A,processFields:()=>S,pascal:()=>X,padBlock:()=>C,nonNullMap:()=>_e,navigate:()=>ye,mergeAll:()=>Y,merge:()=>N,makeFieldProcessorMap:()=>D,makeFieldProcessorList:()=>je,makeFieldProcessor:()=>x,locate:()=>_,loadFormat:()=>P,importList:()=>ge,importGlob:()=>Ce,globMap:()=>J,getProcessor:()=>q,getArgs:()=>fe,find:()=>Qe,exists:()=>B,defined:()=>Ue,deepClone:()=>$,conditionPredicates:()=>W,changeCase:()=>K,capital:()=>ne,camel:()=>oe,asyncMap:()=>Be,NavigateResult:()=>b,NavigateAction:()=>me,Logger:()=>qe});F(k,yt(at(),1));class qe{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)}}F(R,k);var Ge=Object.getPrototypeOf(async function(){}).constructor;class lt{includeManager=new Me;includeProcessor;cacheManager=new de(100);outputs=[];vars={};funcs={};fields={sources:{},keys:{},sections:{}};objectMetadata={};currentContext=null;storedSections={};dataEncoders={};dataDecoders={};constructor(){this.includeProcessor=new Ae(this.includeManager,this.load.bind(this)),this.use(Ve)}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}functions(e){return this.funcs={...this.funcs,...e},this}getFunctions(){return this.funcs}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 S(e,{...this.fields,globalContext:{file:t?.fullPath??"@internal"},root:{...r,...this.fields.root,...this.vars,functions:this.funcs,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 g=this.cacheManager.get(l),y;if(g)y=g.raw;else y=i.content,this.cacheManager.set(l,{raw:y,timestamp:Date.now()});let d=$(y);i.content=d,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,pe as writeFormat,Ke as tokenize,Ie as toObjectWithKey,ee as toObject,U as toList,Ze as stripIndent,Te as sortBy,G as snake,A as select,S as processFields,X as pascal,C as padBlock,_e as nonNullMap,ye as navigate,Y as mergeAll,N as merge,D as makeFieldProcessorMap,je as makeFieldProcessorList,x as makeFieldProcessor,_ as locate,P as loadFormat,ge as importList,Ce as importGlob,J as globMap,q as getProcessor,fe as getArgs,Qe as find,B as exists,Ue as defined,$ as deepClone,W as conditionPredicates,K as changeCase,ne as capital,oe as camel,Be as asyncMap,lt as Objector,b as NavigateResult,me as NavigateAction,qe as Logger,Ge as AsyncFunction};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homedev/objector",
3
- "version": "1.2.56",
3
+ "version": "1.2.58",
4
4
  "description": "object extensions for YAML/JSON",
5
5
  "author": "julzor",
6
6
  "license": "ISC",