@homedev/objector 1.2.33 → 1.2.34

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
@@ -151,6 +151,11 @@ declare namespace libs {
151
151
  }
152
152
  export default libs;
153
153
 
154
+ declare interface LoadContext {
155
+ included: string[];
156
+ current: any;
157
+ }
158
+
154
159
  /**
155
160
  * @public
156
161
  * @param fileName
@@ -304,8 +309,8 @@ export declare class Objector {
304
309
  getAllMetadata(): Record<string, any>;
305
310
  filter(f: RegExp): this;
306
311
  private docIncludes;
307
- loadObject<T = any>(data: T, container?: any, options?: LoadObjectOptions): Promise<T>;
308
- load<T = any>(fileName: string, cwd?: string, container?: any, noProcess?: boolean): Promise<T | null>;
312
+ loadObject<T = any>(data: T, container?: any, options?: LoadObjectOptions, ld?: LoadContext): Promise<T>;
313
+ load<T = any>(fileName: string, cwd?: string, container?: any, noProcess?: boolean, ld?: LoadContext): Promise<T | null>;
309
314
  writeOutputs(options?: WriteOutputsOption): Promise<void>;
310
315
  }
311
316
 
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
- var at=Object.create;var{getPrototypeOf:it,defineProperty:L,getOwnPropertyNames:ee}=Object;var re=Object.prototype.hasOwnProperty,u=(e,r,t)=>{for(let o of ee(r))if(!re.call(e,o)&&o!=="default")L(e,o,{get:()=>r[o],enumerable:!0});if(t){for(let o of ee(r))if(!re.call(t,o)&&o!=="default")L(t,o,{get:()=>r[o],enumerable:!0});return t}},p=(e,r,t)=>{t=e!=null?at(it(e)):{};let o=r||!e||!e.__esModule?L(t,"default",{value:e,enumerable:!0}):t;for(let a of ee(e))if(!re.call(o,a))L(o,a,{get:()=>e[a],enumerable:!0});return o};var C=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var I=(e,r)=>{for(var t in r)L(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})};var K=C((po,Ae)=>{var{defineProperty:te,getOwnPropertyNames:st,getOwnPropertyDescriptor:lt}=Object,ut=Object.prototype.hasOwnProperty,he=new WeakMap,ft=(e)=>{var r=he.get(e),t;if(r)return r;if(r=te({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")st(e).map((o)=>!ut.call(r,o)&&te(r,o,{get:()=>e[o],enumerable:!(t=lt(e,o))||t.enumerable}));return he.set(e,r),r},pt=(e,r)=>{for(var t in r)te(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},ke={};pt(ke,{splitWithQuotes:()=>ct,splitNested:()=>mt});Ae.exports=ft(ke);var mt=(e,r,t="(",o=")")=>{let a=0,n="",s=[];for(let i of e){if(n+=i,i===t)a++;if(i===o)a--;if(a===0&&i===r)s.push(n.slice(0,-1)),n=""}if(n)s.push(n);return s},ct=(e,r=",")=>{let t=[],o=e.length,a=r.length,n=0,s=(i)=>{if(i+a>o)return!1;for(let f=0;f<a;f++)if(e[i+f]!==r[f])return!1;return!0};while(n<o){while(n<o&&e[n]===" ")n++;if(n>=o)break;let i="",f=e[n]==='"'||e[n]==="'";if(f){let c=e[n++];while(n<o&&e[n]!==c)i+=e[n++];if(n<o)n++}else{while(n<o&&!s(n)){let c=e[n];if(c==='"'||c==="'"){i+=c,n++;while(n<o&&e[n]!==c)i+=e[n++];if(n<o)i+=e[n++]}else i+=e[n++]}i=i.trim()}if(i)t.push({value:i,quoted:f});if(s(n))n+=a}return t}});var w=C((mo,Ne)=>{var{defineProperty:oe,getOwnPropertyNames:yt,getOwnPropertyDescriptor:gt}=Object,dt=Object.prototype.hasOwnProperty,Oe=new WeakMap,wt=(e)=>{var r=Oe.get(e),t;if(r)return r;if(r=oe({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")yt(e).map((o)=>!dt.call(r,o)&&oe(r,o,{get:()=>e[o],enumerable:!(t=gt(e,o))||t.enumerable}));return Oe.set(e,r),r},bt=(e,r)=>{for(var t in r)oe(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},Me={};bt(Me,{navigate:()=>$e,find:()=>vt,NavigateResult:()=>h,NavigateAction:()=>Pe});Ne.exports=wt(Me);var Pe;((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"})(Pe||={});class h{action;by;skipSibilings;reexplore;constructor(e,r,t,o){this.action=e,this.by=r,this.skipSibilings=t,this.reexplore=o}static ReplaceParent(e,r){return new h(3,e,void 0,r)}static SkipSiblings(){return new h(1)}static Explore(){return new h(0)}static NoExplore(){return new h(2)}static DeleteParent(){return new h(4)}static MergeParent(e){return new h(5,e)}static ReplaceItem(e,r){return new h(6,e,r)}static DeleteItem(e){return new h(7,void 0,e)}}var $e=async(e,r)=>{let t=async(a)=>{let n=a.key===null,s=n?{action:0}:await r(a);if(a.value&&typeof a.value==="object"&&s.action==0){if(!n)a.path.push(a.key),a.parents.push(a.parent);while(await o(a));if(!n)a.parents.pop(),a.path.pop()}return s},o=async(a)=>{for(let[n,s]of Object.entries(a.value)){let i=await t({key:n,value:s,path:a.path,parent:a.value,parents:a.parents});switch(i.action){case 3:if(!a.key)throw Error("Cannot replace root");if(a.parent[a.key]=i.by,i.reexplore)return a.value=i.by,!0;return;case 4:delete a.parent[a.key];return;case 5:delete a.value[n],Object.assign(a.value,i.by);break;case 1:return;case 6:if(a.value[n]=i.by,i.skipSibilings)return;break;case 7:if(delete a.value[n],i.skipSibilings)return;break}}};await t({key:null,value:e,path:[],parent:null,parents:[]})},vt=async(e,r)=>{let t=[];return await $e(e,(o)=>{if(r([...o.path,o.key].join("."),o.value))t.push(o.value);return h.Explore()}),t}});var b=C((co,je)=>{var{defineProperty:ae,getOwnPropertyNames:ht,getOwnPropertyDescriptor:kt}=Object,At=Object.prototype.hasOwnProperty,Ce=new WeakMap,Ot=(e)=>{var r=Ce.get(e),t;if(r)return r;if(r=ae({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")ht(e).map((o)=>!At.call(r,o)&&ae(r,o,{get:()=>e[o],enumerable:!(t=kt(e,o))||t.enumerable}));return Ce.set(e,r),r},Mt=(e,r)=>{for(var t in r)ae(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},Re={};Mt(Re,{select:()=>ie});je.exports=Ot(Re);var Pt=K(),ne=(e,r,t,o)=>{if(e.startsWith("{")){let a=e.substring(1,e.length-1);return ie(r,a,t).toString()}return o?e:void 0},$t=(e,r,t,o)=>{let a=ne(r,t,o);if(a)return ie(e,a,o);let n=/^\[([^=\]]*)([=]*)([^\]]*)\]$/.exec(r);if(n){let[i,f,c,m]=n,y=ne(f.trim(),t,o,!0),$=ne(m.trim(),t,o,!0);if(Array.isArray(e))switch(c){case"==":case"=":return e.find((O)=>O[y]==$)}}let s=/^([^[\]]*)\[([^\]]*)]/.exec(r);if(s)return e[s[1]][s[2]];return e[r]},ie=(e,r,t)=>{let o=void 0,a=void 0;r??="";let n=(m)=>m?.endsWith("?")?[m.substring(0,m.length-1),!0]:[m,!1],s=(m,y)=>{let[$,O]=n(y.pop());if($){let G=$t(m,$,e,t);if(G===void 0){if(O||t?.defaultValue!==void 0||t?.optional)return;throw Error(`Unknown path element: "${$}" in "${r}"`)}return o=m,a=$,s(G,y)}if(t?.set&&a)o[a]=t?.set;return m},i=Pt.splitNested(r,t?.separator??".","{","}"),f=i.length>0&&i[i.length-1].startsWith("?=")?i.pop()?.substring(2):void 0;i.reverse();let c=s(e,i);if(c===void 0)return f??t?.defaultValue;return c}});var v=C((yo,Ke)=>{var{defineProperty:se,getOwnPropertyNames:Nt,getOwnPropertyDescriptor:Ct}=Object,Rt=Object.prototype.hasOwnProperty,Ee=new WeakMap,jt=(e)=>{var r=Ee.get(e),t;if(r)return r;if(r=se({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")Nt(e).map((o)=>!Rt.call(r,o)&&se(r,o,{get:()=>e[o],enumerable:!(t=Ct(e,o))||t.enumerable}));return Ee.set(e,r),r},Et=(e,r)=>{for(var t in r)se(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},We={};Et(We,{processFields:()=>Ge,makeFieldProcessorMap:()=>xt,makeFieldProcessorList:()=>Jt,makeFieldProcessor:()=>fe,getProcessor:()=>le,getArgs:()=>Je});Ke.exports=jt(We);var Dt=K(),De=w(),Te=b(),Le=(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((o)=>{let a=o.trim();if(!isNaN(+a))return+a;return a})}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)},Y=(e,r,t,o,a,n)=>{let s=o?.(e)??e,i=a(s);if(i[0])return i[1];if(!r){let f=Te.select(t,e),c=a(f);if(c[0])return c[1]}throw Error(n)},_e=(e,r,t,o,a)=>{let n=typeof e.types==="function"?e.types(o,r.value,a):e.types?.[o];if(!n||n==="ref")return Le(r,(i)=>Te.select(t,i));let s=Le(r,()=>r.value);if(Array.isArray(n)){if(!n.includes(s))throw Error(`Argument ${o.toString()} must be one of [${n.join(", ")}]: ${s}`);return s}if(typeof n==="string"){if(n.endsWith("?")){let i=n.slice(0,-1);if(r.value==="null")return De.NavigateResult.ReplaceItem(null);if(r.value==="undefined")return De.NavigateResult.ReplaceItem(void 0);if(r.value==="")return"";n=i}switch(n){case"any":return s;case"array":return Y(s,r.quoted,t,null,(i)=>[Array.isArray(i),i],`Argument ${o.toString()} must be an array: ${s}`);case"object":return Y(s,r.quoted,t,null,(i)=>[typeof i==="object"&&i!==null,i],`Argument ${o.toString()} must be an object: ${s}`);case"number":return Y(s,r.quoted,t,(i)=>Number(i),(i)=>[!isNaN(i),i],`Argument ${o.toString()} must be a number: ${s}`);case"boolean":return Y(s,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 ${o.toString()} must be a boolean: ${s}`);case"string":return s.toString();default:throw Error(`Unknown type for argument ${o.toString()}: ${n}`)}}return n(s,t,o,r.quoted)},le=(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}},Ue=(e)=>!e.quoted&&e.value.startsWith("."),Lt=(e)=>{let r={};for(let t of e){if(!Ue(t))continue;let o=t.value.indexOf("="),a=o>-1?t.value.slice(1,o):t.value.slice(1),n=o>-1?t.value.slice(o+1):"";if(n.length>=2){let s=n[0],i=n[n.length-1];if(s==='"'&&i==='"'||s==="'"&&i==="'")n=n.slice(1,-1)}if(!r[a])r[a]=[];r[a].push(n)}return r},Je=(e,r,t)=>{let o=Dt.splitWithQuotes(e??""),a=Lt(o),n=o.filter((i)=>!Ue(i)),s=r.options.processArgs===!1?[]:n.map((i,f)=>_e(r.options,i,t,f,n));return{rawArgs:n,parsedArgs:s,tags:a}},R=w(),Ie=w(),It=(e,r)=>r.keys!==void 0&&e.key.startsWith(".")&&r.keys[e.key.substring(1)]!==void 0,Wt=async(e,r,t,o)=>{let{key:a,parent:n}=e,s=le(o.keys,a.substring(1));if(s.options.processArgs!==!1&&(typeof s.options.types==="function"||s.options.types?.[0]!==void 0))e.value=_e(s.options,{value:e.value,quoted:!1},t,0,[]);if(typeof e.value!=="string")await Ge(e.value,{...o,root:{...t,parent:e.parent,parents:e.parents},filters:[...o.filters??[],...s.options.filters??[]]});let i=await s.fn({path:r,root:t,parent:n,key:a,options:o,value:e.value,args:[e.value],rawArgs:[],tags:{}});return i instanceof Ie.NavigateResult?i:Ie.NavigateResult.ReplaceParent(i)},H=w(),Tt=b(),xe=(e)=>{let r=[],t=0;while(t<e.length)if(e[t]==="$"&&e[t+1]==="("&&(t===0||e[t-1]!=="\\")){let o=t;t+=2;let a=1;for(;t<e.length;t++)if(e[t]==="(")a++;else if(e[t]===")"){if(a--,a===0){r.push([o,t]);break}}if(a!==0)throw Error(`Unmatched opening $( at position ${o.toString()}`);t++}else t++;return r};class ue{value;constructor(e){this.value=e}}var Se=async(e,r,t)=>{for(let o=r.length-1;o>=0;o--){let[a,n]=r[o],s=e.slice(a+2,n),i=await Se(s,xe(s),t);if(typeof i==="object")return i;let f=await t(i,e);if(f instanceof ue)return f.value;e=e.slice(0,a)+f+e.slice(n+1)}return e},_t=async(e,r)=>Se(e,xe(e),r),Ut=async(e,r,t,o)=>{let a=await(async()=>{let n=/([\w\d.-_/]+):(.+)/.exec(e);if(!n)return await Tt.select(r,e);let[s,i,f]=n,c=le(o.sources,i),m=Je(f,c,r);return await c.fn({args:m.parsedArgs,rawArgs:m.rawArgs,tags:m.tags,key:i,options:o,root:r,path:t,value:null})})();if(a===null||a===void 0)return"";if(typeof a==="object")return new ue(a);return a},Be=async(e,r,t,o)=>{let a=await _t(r,(n)=>Ut(n,t,e,o));if(a instanceof H.NavigateResult)return a;if(a===r)return H.NavigateResult.Explore();if(typeof a==="string"){let n=await Be(e,a,t,o);if(n.action!==H.NavigateAction.Explore)return n}return H.NavigateResult.ReplaceItem(a)},Ge=async(e,r)=>{return r??={},await R.navigate(e,async(t)=>{let o=[...t.path,t.key].join(".");if(r?.filters?.length&&r.filters.some((i)=>i.test(o)))return R.NavigateResult.NoExplore();let a=t.path.length===0,n=t.parents.length>0?t.parents.toReversed():[];if(a){if(n.length>0)throw Error("Root object should not have a parent");n=r?.root?.parents?[r.root.parent,...r.root.parents.toReversed()]:[]}let s={...e,...r.root,this:t.parent,parent:n.length>0?n[0]:null,parents:n};try{if(t.key.startsWith("$"))return R.NavigateResult.NoExplore();let i=R.NavigateResult.Explore();if(typeof t.value==="string")switch(i=await Be(o,t.value,s,r),i.action){case R.NavigateAction.Explore:break;case R.NavigateAction.ReplaceItem:t.value=i.by;break;default:return i}if(It(t,r))i=await Wt(t,o,s,r);return i}catch(i){throw Error(`${i.message}
2
- (${o})`)}}),e},fe=(e,r)=>r?{fn:(t)=>e(...t.args),types:r}:(t)=>e(...t.args),Jt=(e,r)=>Object.fromEntries(e.map((t)=>[t.name,fe(t,r?.types?.[t.name])])),xt=(e,r)=>Object.fromEntries((r?.keys??Object.keys(e)).map((t)=>[t,fe(e[t],r?.types?.[t])]))});var J=C((yn,Ir)=>{var{defineProperty:de,getOwnPropertyNames:Kt,getOwnPropertyDescriptor:Yt}=Object,Ht=Object.prototype.hasOwnProperty,Er=new WeakMap,Qt=(e)=>{var r=Er.get(e),t;if(r)return r;if(r=de({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")Kt(e).map((o)=>!Ht.call(r,o)&&de(r,o,{get:()=>e[o],enumerable:!(t=Yt(e,o))||t.enumerable}));return Er.set(e,r),r},Zt=(e,r)=>{for(var t in r)de(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},Dr={};Zt(Dr,{tokenize:()=>eo,snake:()=>Ft,pascal:()=>Lr,padBlock:()=>zt,changeCase:()=>qt,capital:()=>Xt,camel:()=>Vt});Ir.exports=Qt(Dr);var Lr=(e)=>e.replace(/((?:[_ ]+)\w|^\w)/g,(r,t)=>t.toUpperCase()).replace(/[_ ]/g,""),Xt=(e)=>e.replace(/((?:[ ]+)\w|^\w)/g,(r,t)=>t.toUpperCase()),Vt=(e)=>Lr(e).replace(/((?:[ ]+\w)|^\w)/g,(r,t)=>t.toLowerCase()),Ft=(e,r)=>e.replace(/([a-z])([A-Z])/g,`$1${r}$2`).replace(/\s+/g,r),qt=(e,r)=>{switch(r){case"upper":return e.toUpperCase();case"lower":return e.toLowerCase();default:return e}},zt=(e,r,t=`
3
- `,o=" ")=>{let a=o.repeat(r);return e.split(t).map((n)=>a+n).join(t)},eo=(e,r,t=/\${([^}]+)}/g)=>{return e.replace(t,(o,a)=>r[a]??"")}});var F=C((vn,Jr)=>{var{defineProperty:we,getOwnPropertyNames:ro,getOwnPropertyDescriptor:to}=Object,oo=Object.prototype.hasOwnProperty,_r=new WeakMap,no=(e)=>{var r=_r.get(e),t;if(r)return r;if(r=we({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")ro(e).map((o)=>!oo.call(r,o)&&we(r,o,{get:()=>e[o],enumerable:!(t=to(e,o))||t.enumerable}));return _r.set(e,r),r},ao=(e,r)=>{for(var t in r)we(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},Ur={};ao(Ur,{toObjectWithKey:()=>so,toObject:()=>lo,toList:()=>io});Jr.exports=no(Ur);var io=(e,r="name")=>Object.entries(e).map(([t,o])=>({[r]:t,...o})),so=(e,r="name")=>Object.fromEntries(e.map((t)=>[t[r],t])),lo=(e,r="name")=>Object.fromEntries(e.map((t)=>{let{[r]:o,...a}=t;return[o,a]}))});var nt=p(v(),1);var qe={};I(qe,{writeOutputs:()=>X,writeOutput:()=>ce,writeFormat:()=>me,locate:()=>j,loadFormat:()=>Q,importList:()=>ye,importGlob:()=>Fe,globMap:()=>Z,exists:()=>W});import Ye from"fs/promises";import pe from"path";import St from"path";import Bt from"fs/promises";import Xe from"fs/promises";import He from"path";import Qe from"path";import Ze from"path";var W=async(e)=>{try{return await Ye.access(e,Ye.constants.R_OK),!0}catch{return!1}},j=async(e,r)=>{let t=!pe.isAbsolute(e)&&r?["",...r]:[""];for(let o of t){let a=pe.join(o,e);if(await W(a))return pe.resolve(a)}throw Error(`File not found: "${e}"`)},Q=async(e,r)=>{let t=await j(e,r?.dirs),o=await Bun.file(t).text(),a=St.dirname(t),n={"[.]json$":JSON.parse,"[.](yml|yaml)$":Bun.YAML.parse,"[.]toml$":Bun.TOML.parse,...r?.parsers},s=Object.entries(n).find((i)=>t.match(i[0]));if(!s)throw Error(`Unhandled file type: ${e}`);return{content:s[1](o),fullPath:t,folderPath:a}},me=async(e,r,t="text")=>{switch(t){case"yaml":await Bun.write(e,Bun.YAML.stringify(r));break;case"json":await Bun.write(e,JSON.stringify(r));break;case"text":default:await Bun.write(e,r.toString())}},Z=async(e,r)=>{if(typeof e==="string"&&!e.includes("*"))return await r.map(e,0,[]);let t=await Array.fromAsync(Bt.glob(e,{cwd:r.cwd})),o=r.filter?t.filter(r.filter):t;return await Promise.all(o.map(r.map))},X=async(e,r)=>{if(r?.targetDirectory&&r?.removeFirst)try{await Xe.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=He.join(r?.targetDirectory??".",e.name),o=He.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 Xe.mkdir(o,{recursive:!0})}catch(a){throw Error(`Failed to create target directory "${o}" for output "${t}": ${a.message}`)}try{await me(t,e.value,e.type??"text")}catch(a){throw Error(`Failed to write output "${t}": ${a.message}`)}},Ve=(e)=>e?Ze.isAbsolute(e)?e:Ze.join(process.cwd(),e):process.cwd(),ye=async(e,r)=>{let t=[];for(let o of e)try{let a=!Qe.isAbsolute(o)?Qe.join(Ve(r?.cwd),o):o;if(r?.filter?.(a)===!1)continue;let n=await import(a);if(r?.resolveDefault==="only"&&!n.default)throw Error(`Module ${o} does not have a default export`);let s=r?.resolveDefault?n.default??n:n,i=r?.map?await r.map(s,o):s;if(i!==void 0)t.push(i)}catch(a){if(r?.fail?.(o,a)===!1)continue;throw Error(`Failed to import module ${o}: ${a.message??a}`)}return t},Fe=async(e,r)=>{let t=[];for(let o of e){let a=await Array.fromAsync(new Bun.Glob(o).scan({cwd:Ve(r?.cwd),absolute:!0}));t.push(...await ye(a,r))}return t};var ze={};I(ze,{mergeAll:()=>T,merge:()=>M});var M=(e,r,t)=>{for(let o of Object.keys(r)){if(e[o]===void 0)continue;let a=r[o],n=e[o];if(typeof n!==typeof a||Array.isArray(n)!==Array.isArray(a)){let i=t?.mismatch?.(o,n,a,e,r);if(i!==void 0){r[o]=i;continue}throw Error(`Type mismatch: ${o}`)}let s=t?.mode?.(o,n,a,e,r)??r[".merge"]??"merge";switch(s){case"source":r[o]=n;continue;case"target":continue;case"skip":delete r[o],delete e[o];continue;case"merge":break;default:throw Error(`Unknown merge mode: ${s}`)}if(typeof n==="object")if(Array.isArray(n))a.push(...n);else{if(t?.navigate?.(o,n,a,e,r)===!1)continue;M(n,a,t)}else{if(n===a)continue;let i=t?.conflict?.(o,n,a,e,r);r[o]=i===void 0?a:i}}for(let o of Object.keys(e))if(r[o]===void 0)r[o]=e[o]},T=(e,r)=>{let t={};for(let o of e.toReversed())M(o,t,r);return t};import ot from"path";var er=p(w(),1),rr=(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 er.NavigateResult.SkipSiblings()}});var tr=p(w(),1);import Gt from"path";var or=(e)=>({load:async(r)=>{let t=r.options.globalContext;for(let{file:o}of Array.isArray(r.value)?r.value:[r.value]){if(!o)throw Error("File reference required");await e.load(o,t.file&&Gt.dirname(t.file))}return tr.NavigateResult.DeleteItem()}});var mr=p(v(),1);var nr=p(b(),1),ar=(e)=>{if(typeof e.value==="string")return e.parent;let r=e.value.model;if(!r)return e.parent;if(typeof r==="string")return nr.select(e.root,r);return r};var ge=p(b(),1),ir=(e)=>{if(typeof e.value==="string")return ge.select(e.root,e.value);if(Array.isArray(e.value))return e.value;let r=e.value;if(typeof r.from==="string")return ge.select(e.root,r.from);return r.from};var sr=p(v(),1),lr=p(b(),1),ur=async(e,r)=>{let t=e.value;if(t.selector===void 0)return r;if(typeof t.selector!=="string"){let o=JSON.parse(JSON.stringify(t.selector));return await sr.processFields(o,{...e.options,root:{...e.root,result:r}}),o}return await lr.select({...e.root,result:r},t.selector)};var fr={};I(fr,{deepClone:()=>k});var k=(e)=>globalThis.structuredClone!==void 0?structuredClone(e):JSON.parse(JSON.stringify(e));var pr={};I(pr,{conditionPredicatesTypes:()=>_,conditionPredicates:()=>A});var A={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)=>!A.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!=="")},_={and:()=>"boolean",or:()=>"boolean",xor:()=>"boolean",true:()=>"boolean",false:()=>"boolean",lt:()=>"number",le:()=>"number",gt:()=>"number",ge:()=>"number"};var cr=()=>({each:{filters:[/select|model/],fn:async(e)=>{let r=e.value;delete e.parent[e.key];let t=await ir(e),o=await ar(e);if(!Array.isArray(t))throw Error('Key "each" requires a source list');if(o===void 0)throw Error('Key "each" must define a model');if(r.extend?.model)o=T([r.model,...Array.isArray(r.extend.model)?r.extend.model:[r.extend.model]]);let a=[];for(let n=0;n<t.length;n++){let s=k(o);if(await mr.processFields(s,{...e.options,root:{...e.root,index:n,item:t[n],instance:s}}),r.extend?.result){let i=r.extend.result;s=T([s,...Array.isArray(i)?i:[i]])}a.push(await ur(e,s))}return a}}});var yr=p(b(),1),gr=()=>({concat:async(e)=>{let r=[];for(let t of Array.isArray(e.value)?e.value:[e.value])r.push(...await yr.select(e.root,t));return r.filter((t)=>t!==void 0)}});var dr=p(v(),1);var wr=p(w(),1),br=p(b(),1);var vr=()=>({extends:async(e)=>{let r=async(t,o)=>{for(let a of Array.isArray(o)?o:[o]){let n=await br.select(e.root,a),s=k(n);if(s[e.key])await r(s,s[e.key]);await dr.processFields(s,{...e.options}),M(s,t),delete t[e.key]}};return await r(e.parent,e.value),wr.NavigateResult.Explore()}});var hr=p(v(),1),P=p(w(),1),kr=(e)=>({skip:{types:{0:"boolean"},fn:(r)=>r.value?P.NavigateResult.DeleteParent():P.NavigateResult.DeleteItem()},metadata:({path:r,value:t})=>{return e.metadata(r,t),P.NavigateResult.DeleteItem()},if:{types:{0:"boolean"},fn:async(r)=>{let t=r.parent[".then"],o=r.parent[".else"];if(t!==void 0)delete r.parent[".then"];if(o!==void 0)delete r.parent[".else"];let a=r.value?t:o;if(a===void 0)return P.NavigateResult.DeleteItem();if(typeof a==="string")return(await hr.processFields({value:a},{...r.options,root:{...r.root}})).value;return P.NavigateResult.ReplaceParent(a,!0)}},switch:(r)=>{let t=r.value;if(!t.cases)throw Error("Missing cases for switch");if(t.cases[t.from]!==void 0)return P.NavigateResult.ReplaceParent(t.cases[t.from],!0);if(t.default!==void 0)return P.NavigateResult.ReplaceParent(t.default,!0);return P.NavigateResult.DeleteParent()}});var Ar=p(b(),1),Or=()=>({from:async({root:e,parent:r,value:t})=>{let o=await Ar.select(e,t);if(o===null||o===void 0)throw Error(`Unable to resolve reference: ${t}`);if(r.content){if(Array.isArray(r.content)&&Array.isArray(o))return[...o,...r.content];return M(o,r.content),r.content}return o}});var Pr=p(w(),1);import Mr from"node:vm";var $r=(e)=>({modules:async(r)=>{for(let[t,o]of Object.entries(r.value)){let a=Mr.createContext({console,objector:e,document:r.root}),n=new Mr.SourceTextModule(o,{identifier:t,context:a});await n.link((s)=>{throw Error(`Module ${s} is not allowed`)}),await n.evaluate(),e.sources(Object.fromEntries(Object.entries(n.namespace).map(([s,i])=>[`${t}.${s}`,(f)=>i(f,...f.args)])))}return Pr.NavigateResult.DeleteItem()}});import Nr from"fs/promises";import U from"path";var Cr=(e)=>({include:async(r)=>{let{file:t}=r.options.globalContext;return await Z(r.args[0],{cwd:U.dirname(t),filter:(o)=>U.basename(t)!==o,map:async(o)=>e.load(o,U.dirname(t),{parent:r.root})})},exists:async({args:[r]})=>await W(r),file:async(r)=>await Nr.readFile(await j(r.args[0],e.getIncludeDirectories())).then((t)=>t.toString()),scan:async(r)=>{let t=[],a=(()=>{let i=r.args[2]??["**/node_modules/**"],f=typeof i==="string"?i.split(",").map((c)=>c.trim()):i;if(!Array.isArray(f))throw Error("Scan exclusion must be a list");return f})(),{file:n}=r.options.globalContext,s=r.args[1]?await j(r.args[1],e.getIncludeDirectories()):U.dirname(n);for await(let i of Nr.glob(r.args[0],{cwd:s,exclude:(f)=>a.some((c)=>U.matchesGlob(f,c))}))t.push(i);return t}});var Rr=p(v(),1),jr=()=>Rr.makeFieldProcessorMap({env:(e)=>process.env[e]});var Wr=p(v(),1),d=p(J(),1);var V=(e,r=0,t)=>{let o=" ".repeat(r),a=" ".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`[
4
- ${e.map((s)=>`${a}${V(s,r+1)},`).join(`
1
+ var at=Object.create;var{getPrototypeOf:st,defineProperty:L,getOwnPropertyNames:re}=Object;var te=Object.prototype.hasOwnProperty,u=(e,r,t)=>{for(let o of re(r))if(!te.call(e,o)&&o!=="default")L(e,o,{get:()=>r[o],enumerable:!0});if(t){for(let o of re(r))if(!te.call(t,o)&&o!=="default")L(t,o,{get:()=>r[o],enumerable:!0});return t}},p=(e,r,t)=>{t=e!=null?at(st(e)):{};let o=r||!e||!e.__esModule?L(t,"default",{value:e,enumerable:!0}):t;for(let a of re(e))if(!te.call(o,a))L(o,a,{get:()=>e[a],enumerable:!0});return o};var C=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var W=(e,r)=>{for(var t in r)L(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})};var K=C((po,Me)=>{var{defineProperty:oe,getOwnPropertyNames:it,getOwnPropertyDescriptor:lt}=Object,ut=Object.prototype.hasOwnProperty,Ae=new WeakMap,ft=(e)=>{var r=Ae.get(e),t;if(r)return r;if(r=oe({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")it(e).map((o)=>!ut.call(r,o)&&oe(r,o,{get:()=>e[o],enumerable:!(t=lt(e,o))||t.enumerable}));return Ae.set(e,r),r},pt=(e,r)=>{for(var t in r)oe(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},Oe={};pt(Oe,{splitWithQuotes:()=>ct,splitNested:()=>mt});Me.exports=ft(Oe);var mt=(e,r,t="(",o=")")=>{let a=0,n="",i=[];for(let s of e){if(n+=s,s===t)a++;if(s===o)a--;if(a===0&&s===r)i.push(n.slice(0,-1)),n=""}if(n)i.push(n);return i},ct=(e,r=",")=>{let t=[],o=e.length,a=r.length,n=0,i=(s)=>{if(s+a>o)return!1;for(let f=0;f<a;f++)if(e[s+f]!==r[f])return!1;return!0};while(n<o){while(n<o&&e[n]===" ")n++;if(n>=o)break;let s="",f=e[n]==='"'||e[n]==="'";if(f){let c=e[n++];while(n<o&&e[n]!==c)s+=e[n++];if(n<o)n++}else{while(n<o&&!i(n)){let c=e[n];if(c==='"'||c==="'"){s+=c,n++;while(n<o&&e[n]!==c)s+=e[n++];if(n<o)s+=e[n++]}else s+=e[n++]}s=s.trim()}if(s)t.push({value:s,quoted:f});if(i(n))n+=a}return t}});var d=C((mo,Re)=>{var{defineProperty:ne,getOwnPropertyNames:yt,getOwnPropertyDescriptor:gt}=Object,wt=Object.prototype.hasOwnProperty,Pe=new WeakMap,dt=(e)=>{var r=Pe.get(e),t;if(r)return r;if(r=ne({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")yt(e).map((o)=>!wt.call(r,o)&&ne(r,o,{get:()=>e[o],enumerable:!(t=gt(e,o))||t.enumerable}));return Pe.set(e,r),r},bt=(e,r)=>{for(var t in r)ne(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},$e={};bt($e,{navigate:()=>Ce,find:()=>vt,NavigateResult:()=>h,NavigateAction:()=>Ne});Re.exports=dt($e);var Ne;((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"})(Ne||={});class h{action;by;skipSibilings;reexplore;constructor(e,r,t,o){this.action=e,this.by=r,this.skipSibilings=t,this.reexplore=o}static ReplaceParent(e,r){return new h(3,e,void 0,r)}static SkipSiblings(){return new h(1)}static Explore(){return new h(0)}static NoExplore(){return new h(2)}static DeleteParent(){return new h(4)}static MergeParent(e){return new h(5,e)}static ReplaceItem(e,r){return new h(6,e,r)}static DeleteItem(e){return new h(7,void 0,e)}}var Ce=async(e,r)=>{let t=async(a)=>{let n=a.key===null,i=n?{action:0}:await r(a);if(a.value&&typeof a.value==="object"&&i.action==0){if(!n)a.path.push(a.key),a.parents.push(a.parent);while(await o(a));if(!n)a.parents.pop(),a.path.pop()}return i},o=async(a)=>{for(let[n,i]of Object.entries(a.value)){let s=await t({key:n,value:i,path:a.path,parent:a.value,parents:a.parents});switch(s.action){case 3:if(!a.key)throw Error("Cannot replace root");if(a.parent[a.key]=s.by,s.reexplore)return a.value=s.by,!0;return;case 4:delete a.parent[a.key];return;case 5:delete a.value[n],Object.assign(a.value,s.by);break;case 1:return;case 6:if(a.value[n]=s.by,s.skipSibilings)return;break;case 7:if(delete a.value[n],s.skipSibilings)return;break}}};await t({key:null,value:e,path:[],parent:null,parents:[]})},vt=async(e,r)=>{let t=[];return await Ce(e,(o)=>{if(r([...o.path,o.key].join("."),o.value))t.push(o.value);return h.Explore()}),t}});var b=C((co,De)=>{var{defineProperty:se,getOwnPropertyNames:ht,getOwnPropertyDescriptor:kt}=Object,At=Object.prototype.hasOwnProperty,Ee=new WeakMap,Ot=(e)=>{var r=Ee.get(e),t;if(r)return r;if(r=se({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")ht(e).map((o)=>!At.call(r,o)&&se(r,o,{get:()=>e[o],enumerable:!(t=kt(e,o))||t.enumerable}));return Ee.set(e,r),r},Mt=(e,r)=>{for(var t in r)se(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},je={};Mt(je,{select:()=>ie});De.exports=Ot(je);var Pt=K(),ae=(e,r,t,o)=>{if(e.startsWith("{")){let a=e.substring(1,e.length-1);return ie(r,a,t).toString()}return o?e:void 0},$t=(e,r,t,o)=>{let a=ae(r,t,o);if(a)return ie(e,a,o);let n=/^\[([^=\]]*)([=]*)([^\]]*)\]$/.exec(r);if(n){let[s,f,c,m]=n,y=ae(f.trim(),t,o,!0),$=ae(m.trim(),t,o,!0);if(Array.isArray(e))switch(c){case"==":case"=":return e.find((O)=>O[y]==$)}}let i=/^([^[\]]*)\[([^\]]*)]/.exec(r);if(i)return e[i[1]][i[2]];return e[r]},ie=(e,r,t)=>{let o=void 0,a=void 0;r??="";let n=(m)=>m?.endsWith("?")?[m.substring(0,m.length-1),!0]:[m,!1],i=(m,y)=>{let[$,O]=n(y.pop());if($){let G=$t(m,$,e,t);if(G===void 0){if(O||t?.defaultValue!==void 0||t?.optional)return;throw Error(`Unknown path element: "${$}" in "${r}"`)}return o=m,a=$,i(G,y)}if(t?.set&&a)o[a]=t?.set;return m},s=Pt.splitNested(r,t?.separator??".","{","}"),f=s.length>0&&s[s.length-1].startsWith("?=")?s.pop()?.substring(2):void 0;s.reverse();let c=i(e,s);if(c===void 0)return f??t?.defaultValue;return c}});var v=C((yo,He)=>{var{defineProperty:le,getOwnPropertyNames:Nt,getOwnPropertyDescriptor:Ct}=Object,Rt=Object.prototype.hasOwnProperty,Le=new WeakMap,Et=(e)=>{var r=Le.get(e),t;if(r)return r;if(r=le({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")Nt(e).map((o)=>!Rt.call(r,o)&&le(r,o,{get:()=>e[o],enumerable:!(t=Ct(e,o))||t.enumerable}));return Le.set(e,r),r},jt=(e,r)=>{for(var t in r)le(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},Te={};jt(Te,{processFields:()=>Ye,makeFieldProcessorMap:()=>St,makeFieldProcessorList:()=>Jt,makeFieldProcessor:()=>pe,getProcessor:()=>ue,getArgs:()=>xe});He.exports=Et(Te);var Dt=K(),We=d(),Ue=b(),_e=(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((o)=>{let a=o.trim();if(!isNaN(+a))return+a;return a})}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)},Y=(e,r,t,o,a,n)=>{let i=o?.(e)??e,s=a(i);if(s[0])return s[1];if(!r){let f=Ue.select(t,e),c=a(f);if(c[0])return c[1]}throw Error(n)},Je=(e,r,t,o,a)=>{let n=typeof e.types==="function"?e.types(o,r.value,a):e.types?.[o];if(!n||n==="ref")return _e(r,(s)=>Ue.select(t,s));let i=_e(r,()=>r.value);if(Array.isArray(n)){if(!n.includes(i))throw Error(`Argument ${o.toString()} must be one of [${n.join(", ")}]: ${i}`);return i}if(typeof n==="string"){if(n.endsWith("?")){let s=n.slice(0,-1);if(r.value==="null")return We.NavigateResult.ReplaceItem(null);if(r.value==="undefined")return We.NavigateResult.ReplaceItem(void 0);if(r.value==="")return"";n=s}switch(n){case"any":return i;case"array":return Y(i,r.quoted,t,null,(s)=>[Array.isArray(s),s],`Argument ${o.toString()} must be an array: ${i}`);case"object":return Y(i,r.quoted,t,null,(s)=>[typeof s==="object"&&s!==null,s],`Argument ${o.toString()} must be an object: ${i}`);case"number":return Y(i,r.quoted,t,(s)=>Number(s),(s)=>[!isNaN(s),s],`Argument ${o.toString()} must be a number: ${i}`);case"boolean":return Y(i,r.quoted,t,null,(s)=>{if([!0,"true","1",1,"yes","on"].includes(s))return[!0,!0];if([!1,"false","0",0,"no","off"].includes(s))return[!0,!1];if([null,"null","undefined",void 0,""].includes(s))return[!0,!1];if(Array.isArray(s))return[!0,s.length>0];return[!1,!1]},`Argument ${o.toString()} must be a boolean: ${i}`);case"string":return i.toString();default:throw Error(`Unknown type for argument ${o.toString()}: ${n}`)}}return n(i,t,o,r.quoted)},ue=(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}},Se=(e)=>!e.quoted&&e.value.startsWith("."),Lt=(e)=>{let r={};for(let t of e){if(!Se(t))continue;let o=t.value.indexOf("="),a=o>-1?t.value.slice(1,o):t.value.slice(1),n=o>-1?t.value.slice(o+1):"";if(n.length>=2){let i=n[0],s=n[n.length-1];if(i==='"'&&s==='"'||i==="'"&&s==="'")n=n.slice(1,-1)}if(!r[a])r[a]=[];r[a].push(n)}return r},xe=(e,r,t)=>{let o=Dt.splitWithQuotes(e??""),a=Lt(o),n=o.filter((s)=>!Se(s)),i=r.options.processArgs===!1?[]:n.map((s,f)=>Je(r.options,s,t,f,n));return{rawArgs:n,parsedArgs:i,tags:a}},R=d(),Ie=d(),Wt=(e,r)=>r.keys!==void 0&&e.key.startsWith(".")&&r.keys[e.key.substring(1)]!==void 0,_t=async(e,r,t,o)=>{let{key:a,parent:n}=e,i=ue(o.keys,a.substring(1));if(i.options.processArgs!==!1&&(typeof i.options.types==="function"||i.options.types?.[0]!==void 0))e.value=Je(i.options,{value:e.value,quoted:!1},t,0,[]);if(typeof e.value!=="string")await Ye(e.value,{...o,root:{...t,parent:e.parent,parents:e.parents},filters:[...o.filters??[],...i.options.filters??[]]});let s=await i.fn({path:r,root:t,parent:n,key:a,options:o,value:e.value,args:[e.value],rawArgs:[],tags:{}});return s instanceof Ie.NavigateResult?s:Ie.NavigateResult.ReplaceParent(s)},H=d(),It=b(),Be=(e)=>{let r=[],t=0;while(t<e.length)if(e[t]==="$"&&e[t+1]==="("&&(t===0||e[t-1]!=="\\")){let o=t;t+=2;let a=1;for(;t<e.length;t++)if(e[t]==="(")a++;else if(e[t]===")"){if(a--,a===0){r.push([o,t]);break}}if(a!==0)throw Error(`Unmatched opening $( at position ${o.toString()}`);t++}else t++;return r};class fe{value;constructor(e){this.value=e}}var Ge=async(e,r,t)=>{for(let o=r.length-1;o>=0;o--){let[a,n]=r[o],i=e.slice(a+2,n),s=await Ge(i,Be(i),t);if(typeof s==="object")return s;let f=await t(s,e);if(f instanceof fe)return f.value;e=e.slice(0,a)+f+e.slice(n+1)}return e},Tt=async(e,r)=>Ge(e,Be(e),r),Ut=async(e,r,t,o)=>{let a=await(async()=>{let n=/([\w\d.-_/]+):(.+)/.exec(e);if(!n)return await It.select(r,e);let[i,s,f]=n,c=ue(o.sources,s),m=xe(f,c,r);return await c.fn({args:m.parsedArgs,rawArgs:m.rawArgs,tags:m.tags,key:s,options:o,root:r,path:t,value:null})})();if(a===null||a===void 0)return"";if(typeof a==="object")return new fe(a);return a},Ke=async(e,r,t,o)=>{let a=await Tt(r,(n)=>Ut(n,t,e,o));if(a instanceof H.NavigateResult)return a;if(a===r)return H.NavigateResult.Explore();if(typeof a==="string"){let n=await Ke(e,a,t,o);if(n.action!==H.NavigateAction.Explore)return n}return H.NavigateResult.ReplaceItem(a)},Ye=async(e,r)=>{return r??={},await R.navigate(e,async(t)=>{let o=[...t.path,t.key].join(".");if(r?.filters?.length&&r.filters.some((s)=>s.test(o)))return R.NavigateResult.NoExplore();let a=t.path.length===0,n=t.parents.length>0?t.parents.toReversed():[];if(a){if(n.length>0)throw Error("Root object should not have a parent");n=r?.root?.parents?[r.root.parent,...r.root.parents.toReversed()]:[]}let i={...e,...r.root,this:t.parent,parent:n.length>0?n[0]:null,parents:n};try{if(t.key.startsWith("$"))return R.NavigateResult.NoExplore();let s=R.NavigateResult.Explore();if(typeof t.value==="string")switch(s=await Ke(o,t.value,i,r),s.action){case R.NavigateAction.Explore:break;case R.NavigateAction.ReplaceItem:t.value=s.by;break;default:return s}if(Wt(t,r))s=await _t(t,o,i,r);return s}catch(s){throw Error(`${s.message}
2
+ (${o})`)}}),e},pe=(e,r)=>r?{fn:(t)=>e(...t.args),types:r}:(t)=>e(...t.args),Jt=(e,r)=>Object.fromEntries(e.map((t)=>[t.name,pe(t,r?.types?.[t.name])])),St=(e,r)=>Object.fromEntries((r?.keys??Object.keys(e)).map((t)=>[t,pe(e[t],r?.types?.[t])]))});var J=C((yn,_r)=>{var{defineProperty:be,getOwnPropertyNames:Kt,getOwnPropertyDescriptor:Yt}=Object,Ht=Object.prototype.hasOwnProperty,Dr=new WeakMap,Qt=(e)=>{var r=Dr.get(e),t;if(r)return r;if(r=be({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")Kt(e).map((o)=>!Ht.call(r,o)&&be(r,o,{get:()=>e[o],enumerable:!(t=Yt(e,o))||t.enumerable}));return Dr.set(e,r),r},Zt=(e,r)=>{for(var t in r)be(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},Lr={};Zt(Lr,{tokenize:()=>eo,snake:()=>Ft,pascal:()=>Wr,padBlock:()=>zt,changeCase:()=>qt,capital:()=>Xt,camel:()=>Vt});_r.exports=Qt(Lr);var Wr=(e)=>e.replace(/((?:[_ ]+)\w|^\w)/g,(r,t)=>t.toUpperCase()).replace(/[_ ]/g,""),Xt=(e)=>e.replace(/((?:[ ]+)\w|^\w)/g,(r,t)=>t.toUpperCase()),Vt=(e)=>Wr(e).replace(/((?:[ ]+\w)|^\w)/g,(r,t)=>t.toLowerCase()),Ft=(e,r)=>e.replace(/([a-z])([A-Z])/g,`$1${r}$2`).replace(/\s+/g,r),qt=(e,r)=>{switch(r){case"upper":return e.toUpperCase();case"lower":return e.toLowerCase();default:return e}},zt=(e,r,t=`
3
+ `,o=" ")=>{let a=o.repeat(r);return e.split(t).map((n)=>a+n).join(t)},eo=(e,r,t=/\${([^}]+)}/g)=>{return e.replace(t,(o,a)=>r[a]??"")}});var F=C((vn,Sr)=>{var{defineProperty:ve,getOwnPropertyNames:ro,getOwnPropertyDescriptor:to}=Object,oo=Object.prototype.hasOwnProperty,Ur=new WeakMap,no=(e)=>{var r=Ur.get(e),t;if(r)return r;if(r=ve({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")ro(e).map((o)=>!oo.call(r,o)&&ve(r,o,{get:()=>e[o],enumerable:!(t=to(e,o))||t.enumerable}));return Ur.set(e,r),r},ao=(e,r)=>{for(var t in r)ve(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},Jr={};ao(Jr,{toObjectWithKey:()=>io,toObject:()=>lo,toList:()=>so});Sr.exports=no(Jr);var so=(e,r="name")=>Object.entries(e).map(([t,o])=>({[r]:t,...o})),io=(e,r="name")=>Object.fromEntries(e.map((t)=>[t[r],t])),lo=(e,r="name")=>Object.fromEntries(e.map((t)=>{let{[r]:o,...a}=t;return[o,a]}))});var nt=p(v(),1);var er={};W(er,{writeOutputs:()=>X,writeOutput:()=>ye,writeFormat:()=>ce,locate:()=>E,loadFormat:()=>Q,importList:()=>ge,importGlob:()=>ze,globMap:()=>Z,exists:()=>_});import Qe from"fs/promises";import me from"path";import xt from"path";import Bt from"fs/promises";import Fe from"fs/promises";import Ze from"path";import Xe from"path";import Ve from"path";var _=async(e)=>{try{return await Qe.access(e,Qe.constants.R_OK),!0}catch{return!1}},E=async(e,r)=>{let t=!me.isAbsolute(e)&&r?["",...r]:[""];for(let o of t){let a=me.join(o,e);if(await _(a))return me.resolve(a)}throw Error(`File not found: "${e}"`)},Q=async(e,r)=>{let t=await E(e,r?.dirs),o=await Bun.file(t).text(),a=xt.dirname(t),n={"[.]json$":JSON.parse,"[.](yml|yaml)$":Bun.YAML.parse,"[.]toml$":Bun.TOML.parse,...r?.parsers},i=Object.entries(n).find((s)=>t.match(s[0]));if(!i)throw Error(`Unhandled file type: ${e}`);return{content:i[1](o),fullPath:t,folderPath:a}},ce=async(e,r,t="text")=>{switch(t){case"yaml":await Bun.write(e,Bun.YAML.stringify(r));break;case"json":await Bun.write(e,JSON.stringify(r));break;case"text":default:await Bun.write(e,r.toString())}},Z=async(e,r)=>{if(typeof e==="string"&&!e.includes("*"))return await r.map(e,0,[]);let t=await Array.fromAsync(Bt.glob(e,{cwd:r.cwd})),o=r.filter?t.filter(r.filter):t;return await Promise.all(o.map(r.map))},X=async(e,r)=>{if(r?.targetDirectory&&r?.removeFirst)try{await Fe.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 ye(t,r)},ye=async(e,r)=>{let t=Ze.join(r?.targetDirectory??".",e.name),o=Ze.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 Fe.mkdir(o,{recursive:!0})}catch(a){throw Error(`Failed to create target directory "${o}" for output "${t}": ${a.message}`)}try{await ce(t,e.value,e.type??"text")}catch(a){throw Error(`Failed to write output "${t}": ${a.message}`)}},qe=(e)=>e?Ve.isAbsolute(e)?e:Ve.join(process.cwd(),e):process.cwd(),ge=async(e,r)=>{let t=[];for(let o of e)try{let a=!Xe.isAbsolute(o)?Xe.join(qe(r?.cwd),o):o;if(r?.filter?.(a)===!1)continue;let n=await import(a);if(r?.resolveDefault==="only"&&!n.default)throw Error(`Module ${o} does not have a default export`);let i=r?.resolveDefault?n.default??n:n,s=r?.map?await r.map(i,o):i;if(s!==void 0)t.push(s)}catch(a){if(r?.fail?.(o,a)===!1)continue;throw Error(`Failed to import module ${o}: ${a.message??a}`)}return t},ze=async(e,r)=>{let t=[];for(let o of e){let a=await Array.fromAsync(new Bun.Glob(o).scan({cwd:qe(r?.cwd),absolute:!0}));t.push(...await ge(a,r))}return t};var rr={};W(rr,{mergeAll:()=>I,merge:()=>M});var M=(e,r,t)=>{for(let o of Object.keys(r)){if(e[o]===void 0)continue;let a=r[o],n=e[o];if(typeof n!==typeof a||Array.isArray(n)!==Array.isArray(a)){let s=t?.mismatch?.(o,n,a,e,r);if(s!==void 0){r[o]=s;continue}throw Error(`Type mismatch: ${o}`)}let i=t?.mode?.(o,n,a,e,r)??r[".merge"]??"merge";switch(i){case"source":r[o]=n;continue;case"target":continue;case"skip":delete r[o],delete e[o];continue;case"merge":break;default:throw Error(`Unknown merge mode: ${i}`)}if(typeof n==="object")if(Array.isArray(n))a.push(...n);else{if(t?.navigate?.(o,n,a,e,r)===!1)continue;M(n,a,t)}else{if(n===a)continue;let s=t?.conflict?.(o,n,a,e,r);r[o]=s===void 0?a:s}}for(let o of Object.keys(e))if(r[o]===void 0)r[o]=e[o]},I=(e,r)=>{let t={};for(let o of e.toReversed())M(o,t,r);return t};import z from"path";var tr=p(d(),1),or=(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 tr.NavigateResult.SkipSiblings()}});var nr=p(d(),1);import Gt from"path";var ar=(e)=>({load:async(r)=>{let t=r.options.globalContext;for(let{file:o}of Array.isArray(r.value)?r.value:[r.value]){if(!o)throw Error("File reference required");await e.load(o,t.file&&Gt.dirname(t.file))}return nr.NavigateResult.DeleteItem()}});var yr=p(v(),1);var sr=p(b(),1),ir=(e)=>{if(typeof e.value==="string")return e.parent;let r=e.value.model;if(!r)return e.parent;if(typeof r==="string")return sr.select(e.root,r);return r};var we=p(b(),1),lr=(e)=>{if(typeof e.value==="string")return we.select(e.root,e.value);if(Array.isArray(e.value))return e.value;let r=e.value;if(typeof r.from==="string")return we.select(e.root,r.from);return r.from};var ur=p(v(),1),fr=p(b(),1),pr=async(e,r)=>{let t=e.value;if(t.selector===void 0)return r;if(typeof t.selector!=="string"){let o=JSON.parse(JSON.stringify(t.selector));return await ur.processFields(o,{...e.options,root:{...e.root,result:r}}),o}return await fr.select({...e.root,result:r},t.selector)};var mr={};W(mr,{deepClone:()=>k});var k=(e)=>globalThis.structuredClone!==void 0?structuredClone(e):JSON.parse(JSON.stringify(e));var cr={};W(cr,{conditionPredicatesTypes:()=>T,conditionPredicates:()=>A});var A={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)=>!A.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!=="")},T={and:()=>"boolean",or:()=>"boolean",xor:()=>"boolean",true:()=>"boolean",false:()=>"boolean",lt:()=>"number",le:()=>"number",gt:()=>"number",ge:()=>"number"};var gr=()=>({each:{filters:[/select|model/],fn:async(e)=>{let r=e.value;delete e.parent[e.key];let t=await lr(e),o=await ir(e);if(!Array.isArray(t))throw Error('Key "each" requires a source list');if(o===void 0)throw Error('Key "each" must define a model');if(r.extend?.model)o=I([r.model,...Array.isArray(r.extend.model)?r.extend.model:[r.extend.model]]);let a=[];for(let n=0;n<t.length;n++){let i=k(o);if(await yr.processFields(i,{...e.options,root:{...e.root,index:n,item:t[n],instance:i}}),r.extend?.result){let s=r.extend.result;i=I([i,...Array.isArray(s)?s:[s]])}a.push(await pr(e,i))}return a}}});var wr=p(b(),1),dr=()=>({concat:async(e)=>{let r=[];for(let t of Array.isArray(e.value)?e.value:[e.value])r.push(...await wr.select(e.root,t));return r.filter((t)=>t!==void 0)}});var br=p(v(),1);var de=p(d(),1),vr=p(b(),1);var hr=()=>({extends:async(e)=>{let r=async(t,o)=>{for(let a of Array.isArray(o)?o:[o]){let n=await vr.select(e.root,a),i=k(n);if(i[e.key])await r(i,i[e.key]);await br.processFields(i,{...e.options}),M(i,t),delete t[e.key]}};return await r(e.parent,e.value),de.NavigateResult.Explore()},group:(e)=>{let r=e.root.parent,t=e.value,{items:o,...a}=t;return t.items.forEach((n)=>r.push({...a,...n})),de.NavigateResult.DeleteParent()}});var kr=p(v(),1),P=p(d(),1),Ar=(e)=>({skip:{types:{0:"boolean"},fn:(r)=>r.value?P.NavigateResult.DeleteParent():P.NavigateResult.DeleteItem()},metadata:({path:r,value:t})=>{return e.metadata(r,t),P.NavigateResult.DeleteItem()},if:{types:{0:"boolean"},fn:async(r)=>{let t=r.parent[".then"],o=r.parent[".else"];if(t!==void 0)delete r.parent[".then"];if(o!==void 0)delete r.parent[".else"];let a=r.value?t:o;if(a===void 0)return P.NavigateResult.DeleteItem();if(typeof a==="string")return(await kr.processFields({value:a},{...r.options,root:{...r.root}})).value;return P.NavigateResult.ReplaceParent(a,!0)}},switch:(r)=>{let t=r.value;if(!t.cases)throw Error("Missing cases for switch");if(t.cases[t.from]!==void 0)return P.NavigateResult.ReplaceParent(t.cases[t.from],!0);if(t.default!==void 0)return P.NavigateResult.ReplaceParent(t.default,!0);return P.NavigateResult.DeleteParent()}});var Or=p(b(),1),Mr=()=>({from:async({root:e,parent:r,value:t})=>{let o=await Or.select(e,t);if(o===null||o===void 0)throw Error(`Unable to resolve reference: ${t}`);if(r.content){if(Array.isArray(r.content)&&Array.isArray(o))return[...o,...r.content];return M(o,r.content),r.content}return o}});var $r=p(d(),1);import Pr from"node:vm";var Nr=(e)=>({modules:async(r)=>{for(let[t,o]of Object.entries(r.value)){let a=Pr.createContext({console,objector:e,document:r.root}),n=new Pr.SourceTextModule(o,{identifier:t,context:a});await n.link((i)=>{throw Error(`Module ${i} is not allowed`)}),await n.evaluate(),e.sources(Object.fromEntries(Object.entries(n.namespace).map(([i,s])=>[`${t}.${i}`,(f)=>s(f,...f.args)])))}return $r.NavigateResult.DeleteItem()}});import Cr from"fs/promises";import U from"path";var Rr=(e)=>({include:async(r)=>{let{file:t}=r.options.globalContext;return await Z(r.args[0],{cwd:U.dirname(t),filter:(o)=>U.basename(t)!==o,map:async(o)=>e.load(o,U.dirname(t),{parent:r.root})})},exists:async({args:[r]})=>await _(r),file:async(r)=>await Cr.readFile(await E(r.args[0],e.getIncludeDirectories())).then((t)=>t.toString()),scan:async(r)=>{let t=[],a=(()=>{let s=r.args[2]??["**/node_modules/**"],f=typeof s==="string"?s.split(",").map((c)=>c.trim()):s;if(!Array.isArray(f))throw Error("Scan exclusion must be a list");return f})(),{file:n}=r.options.globalContext,i=r.args[1]?await E(r.args[1],e.getIncludeDirectories()):U.dirname(n);for await(let s of Cr.glob(r.args[0],{cwd:i,exclude:(f)=>a.some((c)=>U.matchesGlob(f,c))}))t.push(s);return t}});var Er=p(v(),1),jr=()=>Er.makeFieldProcessorMap({env:(e)=>process.env[e]});var Ir=p(v(),1),w=p(J(),1);var V=(e,r=0,t)=>{let o=" ".repeat(r),a=" ".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`[
4
+ ${e.map((i)=>`${a}${V(i,r+1)},`).join(`
5
5
  `)}
6
- ${o}]`}else if(typeof e==="object"){let n=Object.entries(e).sort((i,f)=>t?.sortKeys?i[0].localeCompare(f[0]):0);if(n.length===0)return"{}";return`{
7
- ${n.map(([i,f])=>`${a}${i} = ${V(f,r+1,t)}`).join(`
6
+ ${o}]`}else if(typeof e==="object"){let n=Object.entries(e).sort((s,f)=>t?.sortKeys?s[0].localeCompare(f[0]):0);if(n.length===0)return"{}";return`{
7
+ ${n.map(([s,f])=>`${a}${s} = ${V(f,r+1,t)}`).join(`
8
8
  `)}
9
- ${o}}`}else return String(e)},x=(e)=>{if(!e)return e;return e.replaceAll("\\n",`
9
+ ${o}}`}else return String(e)},S=(e)=>{if(!e)return e;return e.replaceAll("\\n",`
10
10
  `).replaceAll("\\$","$").replaceAll("\\t","\t")};var Tr=()=>({substring:{types:{0:"ref",1:"number",2:"number"},fn:(e)=>e.args[0].substring(e.args[1],e.args[2])},repeat:{types:{0:"ref",1:"number"},fn:({args:[e,r]})=>e.repeat(r)},uuid:(e)=>crypto.randomUUID(),pad:{types:{0:"ref",1:"number",2:"string"},fn:({args:[e,r],tags:t})=>{let o=t.join?.[0]??`
11
- `,a=t.padChar?.[0]??" ";return d.padBlock(e,r??2,o,a)}},formatAs:{types:{1:["json","yaml","terraform"]},fn:({args:[e,r],tags:t})=>{switch(r){case"json":return JSON.stringify(e,null,2);case"yaml":return Bun.YAML.stringify(e,null,2);case"terraform":{let o=!!(t?.sort?.length||t?.sortKeys?.length);return V(e,0,{sortKeys:o})}}throw Error("Unsupported format: "+String(r))}},...Wr.makeFieldProcessorMap({pascal:d.pascal,camel:d.camel,capital:d.capital,fromYaml:Bun.YAML.parse,fromJson:JSON.parse,toYaml:(e,r)=>Bun.YAML.stringify(e,null,r??2),toJson:(e,r)=>JSON.stringify(e,null,r!==0?r??2:void 0),concat:(...e)=>e.join(""),len:(e)=>e.length,reverse:(e)=>e.split("").reverse().join(""),trim:(e)=>e.trim(),ltrim:(e)=>e.trimStart(),rtrim:(e)=>e.trimEnd(),lower:(e)=>e.toLowerCase(),upper:(e)=>e.toUpperCase(),snake:(e,r)=>d.changeCase(d.snake(e,"_"),r),kebab:(e,r)=>d.changeCase(d.snake(e,"-"),r),encode:(e,r)=>Buffer.from(e).toString(r??"base64"),decode:(e,r)=>Buffer.from(e,r??"base64").toString()})});var xr=p(v(),1),q=p(F(),1),be=p(b(),1),Sr=p(J(),1);var Br=()=>({...xr.makeFieldProcessorMap({merge:(...e)=>e.flatMap((r)=>r)}),join:({args:[e],root:r,tags:t})=>{let o=t.key?.[0],a=t.separator?.[0]??t.sep?.[0],n=t.finalize?.length>0,s=x(a);if(typeof e==="string"){if(n&&e.length&&s)return e+s;return e}if(!Array.isArray(e))throw Error("Object is not a list");let i=((o?.length)?e.map((y)=>be.select({...r,...y},o)):e).join(s),f=t.pad?.[0]??"0",c=t.padChar?.[0]??" ",m=n&&i.length&&s?i+s:i;return f?Sr.padBlock(m,parseInt(f),`
12
- `,c):m},list:({args:e})=>q.toList(e[0],e[1]),object:({args:e})=>q.toObject(e[0],e[1]),range:({args:[e,r,t]})=>{let o=parseInt(e),a=parseInt(r),n=parseInt(t)||1;if(isNaN(o))throw Error("Invalid range: start value '"+String(e)+"' is not a number");if(isNaN(a))throw Error("Invalid range: end value '"+String(r)+"' is not a number");if(n===0)throw Error("Invalid range: step cannot be zero");if((a-o)/n<0)throw Error("Invalid range: step "+String(n)+" has wrong direction for range "+String(o)+" to "+String(a));return Array.from({length:Math.floor((a-o)/n)+1},(s,i)=>o+i*n)},filter:{types:(e,r,t)=>{switch(e){case 0:return"array";case 1:return Object.keys(A)}return _[t[1].value]?.(e-2,r,t.slice(2))},fn:({args:[e,r,t],root:o,tags:a})=>{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 n=a.key?.[0],s=A[r];if(n){let f=Array(e.length);for(let m=0;m<e.length;m++)try{f[m]=be.select({...o,...e[m]},n)}catch{f[m]=Symbol("invalid")}let c=[];for(let m=0;m<e.length;m++){let y=f[m];if(typeof y!=="symbol"&&t===void 0?s(y):s(y,t))c.push(e[m])}return c}let i=[];for(let f of e)if(t===void 0?s(f):s(f,t))i.push(f);return i}}});var Gr=p(v(),1),Kr=p(F(),1),S=p(b(),1),Yr=p(J(),1);var Hr=()=>({each:{processArgs:!1,fn:async({rawArgs:[e,r,...t],root:o,options:a,tags:n})=>{let s=async(g)=>g.quoted?x(g.value):await S.select(o,g.value),i=await S.select(o,e.value),f=await s(r),c=n.key?.[0],m=Array.isArray(i)?i:Kr.toList(i),y=[],$=await Promise.all(t.map(async(g)=>await s(g))),O={...o,item:void 0,index:0,params:$,instance:void 0,parent:o.this,tags:n},G={...a,root:O};for(let g=0;g<m.length;g++){let N=k(f),D={instance:N},z=typeof f==="string"?D:N;if(O.item=m[g],O.index=g,O.instance=N,n?.root?.[0])Object.assign(O,await S.select(O,n.root[0]));if(await Gr.processFields(z,G),c!==void 0)y.push(await S.select(D.instance,c));else y.push(D.instance)}if(n.join?.length){if(y.length===0)return"";let g=x(n.join[0]),N=n.pad?.[0]??"0",D=n.padChar?.[0]??" ",z=n.finalize?.length&&g?g:"",ve=`${y.join(g)}${z}`;return N?Yr.padBlock(ve,parseInt(N),`
13
- `,D):ve}return y}}});var Qr=p(b(),1),B=async(e,r,t)=>e.rawArgs[r].quoted?e.rawArgs[r].value:await Qr.select(e.root,e.rawArgs[r].value,{defaultValue:t}),Zr=()=>({switch:{processArgs:!1,fn:async(e)=>{let r=await B(e,0,!1),t=await B(e,1);if(t[r]===void 0){if(e.rawArgs.length>2)return B(e,2);throw Error(`Unhandled switch case: ${r}`)}return t[r]}}});var Xr=p(v(),1),Vr=()=>Xr.makeFieldProcessorMap({log:console.log});var Fr=p(v(),1);var qr=()=>({if:{types:{0:"boolean"},fn:(e)=>e.args[0]?e.args[1]:e.args[2]},check:{types:{0:Object.keys(A)},fn:(e)=>A[e.args[0]](...e.args.slice(1))},...Fr.makeFieldProcessorMap(A,{types:_})});var zr=p(w(),1);var et=()=>({default:{processArgs:!1,fn:async(e)=>{for(let r=0;r<e.rawArgs.length;r++)if(e.rawArgs[r]?.value!==void 0){let o=await B(e,r,null);if(o!==null)return o}if(e.tags.nullable?.length)return zr.NavigateResult.DeleteItem();if(e.tags.fail?.length)throw Error(`No valid value found for default (${e.rawArgs.map((r)=>r.value).join(", ")})`);return""}}});var E=p(w(),1),rt=()=>({convert:({args:[e,r,t]})=>{switch(r){case"string":return String(e);case"number":{let o=Number(e);if(!isNaN(o))return E.NavigateResult.ReplaceItem(o);break}case"boolean":if(e==="true"||e===!0||e===1||e==="1"||e==="yes"||e==="on")return E.NavigateResult.ReplaceItem(!0);else if(e==="false"||e===!1||e===0||e==="0"||e==="no"||e==="off")return E.NavigateResult.ReplaceItem(!1);break;default:throw Error(`Unsupported type for convert: ${r}`)}if(t!==void 0)return E.NavigateResult.ReplaceItem(t);throw Error(`Failed to convert value to ${r}`)},isType:({args:[e,r]})=>{let o=(()=>{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 E.NavigateResult.ReplaceItem(o)},typeOf:({args:[e]})=>{if(e===null)return"null";else if(Array.isArray(e))return"array";else return typeof e}});var tt=(e)=>e.keys(rr(e)).keys(or(e)).keys(cr()).keys(Or()).keys(gr()).keys(vr()).keys(kr(e)).keys($r(e)).sources(Cr(e)).sources(jr()).sources(Tr()).sources(rt()).sources(Br()).sources(Hr()).sources(Zr()).sources(Vr()).sources(qr()).sources(et());var l={};I(l,{writeOutputs:()=>X,writeOutput:()=>ce,writeFormat:()=>me,mergeAll:()=>T,merge:()=>M,locate:()=>j,loadFormat:()=>Q,importList:()=>ye,importGlob:()=>Fe,globMap:()=>Z,exists:()=>W,deepClone:()=>k,conditionPredicates:()=>A});u(l,p(v(),1));u(l,p(w(),1));u(l,p(F(),1));u(l,p(b(),1));u(l,p(K(),1));u(l,p(J(),1));var ka=l;class uo{includeDirectories=[];includes=[];outputs=[];vars={};cache={};fields={sources:{},keys:{}};objectMetadata={};constructor(){this.use(tt)}use(e){return e(this),this}includeDirectory(...e){return this.includeDirectories.push(...e),this}getIncludeDirectories(){return this.includeDirectories}include(...e){return this.includes.push(...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}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}filter(e){return this.fields.filters??=[],this.fields.filters?.push(e),this}async docIncludes(e,r){let t=[];if(e.content.includes)t.push(...e.content.includes),delete e.content.includes;t.push(...this.includes),this.includes.length=0;for(let o of t)M(await this.load(o,e.folderPath,{parent:e.content,...r},!0),e.content)}async loadObject(e,r,t){return await nt.processFields(e,{...this.fields,globalContext:{file:t?.fullPath??"@internal"},root:{...this.fields.root,...this.vars,$document:{root:{content:e},fileName:t?.fileName??"@internal",folder:t?.folderPath??"@internal",fullPath:t?.fullPath??"@internal",...r}}}),e}async load(e,r,t,o){let a=r?[r]:[];a.push(...this.includeDirectories.map((m)=>ot.isAbsolute(m)?m:ot.join(r??process.cwd(),m)));let n=await Q(e,{dirs:a});if(!n.content)return null;let s=n.fullPath,i=this.cache[s]??n.content,f=k(i);n.content=f,await this.docIncludes(n,t);let c;if(o!==!0)c=await this.loadObject(n.content,t,{fileName:n.fullPath,folderPath:n.folderPath,fullPath:n.fullPath});else c=n.content;return this.cache[s]??=i,c}async writeOutputs(e){await X(this.getOutputs(),e)}}export{ka as default,uo as Objector};
11
+ `,a=t.padChar?.[0]??" ";return w.padBlock(e,r??2,o,a)}},formatAs:{types:{1:["json","yaml","terraform"]},fn:({args:[e,r],tags:t})=>{switch(r){case"json":return JSON.stringify(e,null,2);case"yaml":return Bun.YAML.stringify(e,null,2);case"terraform":{let o=!!(t?.sort?.length||t?.sortKeys?.length);return V(e,0,{sortKeys:o})}}throw Error("Unsupported format: "+String(r))}},...Ir.makeFieldProcessorMap({pascal:w.pascal,camel:w.camel,capital:w.capital,fromYaml:Bun.YAML.parse,fromJson:JSON.parse,toYaml:(e,r)=>Bun.YAML.stringify(e,null,r??2),toJson:(e,r)=>JSON.stringify(e,null,r!==0?r??2:void 0),concat:(...e)=>e.join(""),len:(e)=>e.length,reverse:(e)=>e.split("").reverse().join(""),trim:(e)=>e.trim(),ltrim:(e)=>e.trimStart(),rtrim:(e)=>e.trimEnd(),lower:(e)=>e.toLowerCase(),upper:(e)=>e.toUpperCase(),snake:(e,r)=>w.changeCase(w.snake(e,"_"),r),kebab:(e,r)=>w.changeCase(w.snake(e,"-"),r),encode:(e,r)=>Buffer.from(e).toString(r??"base64"),decode:(e,r)=>Buffer.from(e,r??"base64").toString()})});var xr=p(v(),1),q=p(F(),1),he=p(b(),1),Br=p(J(),1);var Gr=()=>({...xr.makeFieldProcessorMap({merge:(...e)=>e.flatMap((r)=>r)}),join:({args:[e],root:r,tags:t})=>{let o=t.key?.[0],a=t.separator?.[0]??t.sep?.[0],n=t.finalize?.length>0,i=S(a);if(typeof e==="string"){if(n&&e.length&&i)return e+i;return e}if(!Array.isArray(e))throw Error("Object is not a list");let s=((o?.length)?e.map((y)=>he.select({...r,...y},o)):e).join(i),f=t.pad?.[0]??"0",c=t.padChar?.[0]??" ",m=n&&s.length&&i?s+i:s;return f?Br.padBlock(m,parseInt(f),`
12
+ `,c):m},list:({args:e})=>q.toList(e[0],e[1]),object:({args:e})=>q.toObject(e[0],e[1]),range:({args:[e,r,t]})=>{let o=parseInt(e),a=parseInt(r),n=parseInt(t)||1;if(isNaN(o))throw Error("Invalid range: start value '"+String(e)+"' is not a number");if(isNaN(a))throw Error("Invalid range: end value '"+String(r)+"' is not a number");if(n===0)throw Error("Invalid range: step cannot be zero");if((a-o)/n<0)throw Error("Invalid range: step "+String(n)+" has wrong direction for range "+String(o)+" to "+String(a));return Array.from({length:Math.floor((a-o)/n)+1},(i,s)=>o+s*n)},filter:{types:(e,r,t)=>{switch(e){case 0:return"array";case 1:return Object.keys(A)}return T[t[1].value]?.(e-2,r,t.slice(2))},fn:({args:[e,r,t],root:o,tags:a})=>{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 n=a.key?.[0],i=A[r];if(n){let f=Array(e.length);for(let m=0;m<e.length;m++)try{f[m]=he.select({...o,...e[m]},n)}catch{f[m]=Symbol("invalid")}let c=[];for(let m=0;m<e.length;m++){let y=f[m];if(typeof y!=="symbol"&&t===void 0?i(y):i(y,t))c.push(e[m])}return c}let s=[];for(let f of e)if(t===void 0?i(f):i(f,t))s.push(f);return s}}});var Kr=p(v(),1),Yr=p(F(),1),x=p(b(),1),Hr=p(J(),1);var Qr=()=>({each:{processArgs:!1,fn:async({rawArgs:[e,r,...t],root:o,options:a,tags:n})=>{let i=async(g)=>g.quoted?S(g.value):await x.select(o,g.value),s=await x.select(o,e.value),f=await i(r),c=n.key?.[0],m=Array.isArray(s)?s:Yr.toList(s),y=[],$=await Promise.all(t.map(async(g)=>await i(g))),O={...o,item:void 0,index:0,params:$,instance:void 0,parent:o.this,tags:n},G={...a,root:O};for(let g=0;g<m.length;g++){let N=k(f),D={instance:N},ee=typeof f==="string"?D:N;if(O.item=m[g],O.index=g,O.instance=N,n?.root?.[0])Object.assign(O,await x.select(O,n.root[0]));if(await Kr.processFields(ee,G),c!==void 0)y.push(await x.select(D.instance,c));else y.push(D.instance)}if(n.join?.length){if(y.length===0)return"";let g=S(n.join[0]),N=n.pad?.[0]??"0",D=n.padChar?.[0]??" ",ee=n.finalize?.length&&g?g:"",ke=`${y.join(g)}${ee}`;return N?Hr.padBlock(ke,parseInt(N),`
13
+ `,D):ke}return y}}});var Zr=p(b(),1),B=async(e,r,t)=>e.rawArgs[r].quoted?e.rawArgs[r].value:await Zr.select(e.root,e.rawArgs[r].value,{defaultValue:t}),Xr=()=>({switch:{processArgs:!1,fn:async(e)=>{let r=await B(e,0,!1),t=await B(e,1);if(t[r]===void 0){if(e.rawArgs.length>2)return B(e,2);throw Error(`Unhandled switch case: ${r}`)}return t[r]}}});var Vr=p(v(),1),Fr=()=>Vr.makeFieldProcessorMap({log:console.log});var qr=p(v(),1);var zr=()=>({if:{types:{0:"boolean"},fn:(e)=>e.args[0]?e.args[1]:e.args[2]},check:{types:{0:Object.keys(A)},fn:(e)=>A[e.args[0]](...e.args.slice(1))},...qr.makeFieldProcessorMap(A,{types:T})});var et=p(d(),1);var rt=()=>({default:{processArgs:!1,fn:async(e)=>{for(let r=0;r<e.rawArgs.length;r++)if(e.rawArgs[r]?.value!==void 0){let o=await B(e,r,null);if(o!==null)return o}if(e.tags.nullable?.length)return et.NavigateResult.DeleteItem();if(e.tags.fail?.length)throw Error(`No valid value found for default (${e.rawArgs.map((r)=>r.value).join(", ")})`);return""}}});var j=p(d(),1),tt=()=>({convert:({args:[e,r,t]})=>{switch(r){case"string":return String(e);case"number":{let o=Number(e);if(!isNaN(o))return j.NavigateResult.ReplaceItem(o);break}case"boolean":if(e==="true"||e===!0||e===1||e==="1"||e==="yes"||e==="on")return j.NavigateResult.ReplaceItem(!0);else if(e==="false"||e===!1||e===0||e==="0"||e==="no"||e==="off")return j.NavigateResult.ReplaceItem(!1);break;default:throw Error(`Unsupported type for convert: ${r}`)}if(t!==void 0)return j.NavigateResult.ReplaceItem(t);throw Error(`Failed to convert value to ${r}`)},isType:({args:[e,r]})=>{let o=(()=>{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 j.NavigateResult.ReplaceItem(o)},typeOf:({args:[e]})=>{if(e===null)return"null";else if(Array.isArray(e))return"array";else return typeof e}});var ot=(e)=>e.keys(or(e)).keys(ar(e)).keys(gr()).keys(Mr()).keys(dr()).keys(hr()).keys(Ar(e)).keys(Nr(e)).sources(Rr(e)).sources(jr()).sources(Tr()).sources(tt()).sources(Gr()).sources(Qr()).sources(Xr()).sources(Fr()).sources(zr()).sources(rt());var l={};W(l,{writeOutputs:()=>X,writeOutput:()=>ye,writeFormat:()=>ce,mergeAll:()=>I,merge:()=>M,locate:()=>E,loadFormat:()=>Q,importList:()=>ge,importGlob:()=>ze,globMap:()=>Z,exists:()=>_,deepClone:()=>k,conditionPredicates:()=>A});u(l,p(v(),1));u(l,p(d(),1));u(l,p(F(),1));u(l,p(b(),1));u(l,p(K(),1));u(l,p(J(),1));var ka=l;class uo{includeDirectories=[];includes=[];outputs=[];vars={};cache={};fields={sources:{},keys:{}};objectMetadata={};constructor(){this.use(ot)}use(e){return e(this),this}includeDirectory(...e){return this.includeDirectories.push(...e),this}getIncludeDirectories(){return this.includeDirectories}include(...e){return this.includes.push(...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}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}filter(e){return this.fields.filters??=[],this.fields.filters?.push(e),this}async docIncludes(e,r,t){let o=[];if(e.content.includes)o.push(...e.content.includes),delete e.content.includes;o.push(...this.includes),this.includes.length=0;let a=[];for(let n of o)if(n.includes("*")){let i=new Bun.Glob(n);for await(let s of i.scan({cwd:e.folderPath,absolute:!0}))if(!t.included.includes(s))t.included.push(s),a.push(s)}else if(n.endsWith("/")){console.log("hjiii",n);let i=z.isAbsolute(n)?n:z.join(e.folderPath,n);this.includeDirectories.push(i)}else a.push(n);for(let n of a)M(await this.load(n,e.folderPath,{parent:e.content,...r},!0,t),e.content)}async loadObject(e,r,t,o){return await nt.processFields(e,{...this.fields,globalContext:{file:t?.fullPath??"@internal",load:o},root:{...this.fields.root,...this.vars,$document:{root:{content:e},fileName:t?.fileName??"@internal",folder:t?.folderPath??"@internal",fullPath:t?.fullPath??"@internal",...r}}}),e}async load(e,r,t,o,a){let n=r?[r]:[];a??={included:[],current:null},n.push(...this.includeDirectories.map((y)=>z.isAbsolute(y)?y:z.join(r??process.cwd(),y)));let i=await Q(e,{dirs:n});if(!i.content)return null;let s=i.fullPath,f=this.cache[s]??i.content,c=k(f);i.content=c,await this.docIncludes(i,t,a);let m;if(o!==!0)m=await this.loadObject(i.content,t,{fileName:i.fullPath,folderPath:i.folderPath,fullPath:i.fullPath},a);else m=i.content;return a.current=m,this.cache[s]??=f,m}async writeOutputs(e){await X(this.getOutputs(),e)}}export{ka as default,uo as Objector};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homedev/objector",
3
- "version": "1.2.33",
3
+ "version": "1.2.34",
4
4
  "description": "object extensions for YAML/JSON",
5
5
  "author": "julzor",
6
6
  "license": "ISC",