@homedev/objector 1.2.32 → 1.2.33

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
@@ -70,60 +70,83 @@ declare const find: (from: any, cb: (path: string, value: string) => any) => Pro
70
70
 
71
71
  declare const globMap: <T>(pattern: string | string[], options: FilePatternOptions) => Promise<T[] | T>;
72
72
 
73
+ /**
74
+ * @public
75
+ */
76
+ declare const importGlob: (patterns: string[], options?: ImportOptions) => Promise<any[]>;
77
+
78
+ /**
79
+ * @public
80
+ */
81
+ declare const importList: (modules: string[], options?: ImportOptions) => Promise<any[]>;
82
+
83
+ /**
84
+ * @public
85
+ */
86
+ declare interface ImportOptions {
87
+ cwd?: string;
88
+ resolveDefault?: boolean | 'only';
89
+ filter?: (name: string) => boolean | undefined;
90
+ fail?: (name: string, error: any) => boolean | undefined;
91
+ map?: (module: any, name: string) => any;
92
+ }
93
+
73
94
  declare namespace libs {
74
95
  export {
96
+ conditionPredicates,
97
+ deepClone,
75
98
  FieldContext,
76
- FieldProcessorMap,
77
- makeFieldProcessorMap,
78
99
  FieldProcessor,
79
100
  FieldProcessorFunc,
101
+ FieldProcessorMap,
80
102
  FieldProcessorOptions,
81
103
  FieldProcessorTypeChecker,
82
104
  FieldProcessorTypeCheckers,
83
105
  FieldProcessorTypedFunc,
84
- ProcessFieldsOptions,
85
106
  makeFieldProcessor,
86
107
  makeFieldProcessorList,
108
+ makeFieldProcessorMap,
87
109
  processFields,
88
- LoadOptions,
89
- LoadResult,
90
- Output,
91
- WriteOutputOption,
92
- WriteOutputsOption,
110
+ ProcessFieldsOptions,
93
111
  exists,
94
112
  globMap,
113
+ importGlob,
114
+ importList,
115
+ ImportOptions,
95
116
  loadFormat,
117
+ LoadOptions,
118
+ LoadResult,
96
119
  locate,
120
+ Output,
97
121
  writeFormat,
98
122
  writeOutput,
123
+ WriteOutputOption,
99
124
  writeOutputs,
100
- MergeMode,
101
- MergeOptions,
125
+ WriteOutputsOption,
102
126
  merge,
103
127
  mergeAll,
128
+ MergeMode,
129
+ MergeOptions,
130
+ find,
131
+ navigate,
104
132
  NavigateAction,
105
133
  NavigateCallback,
106
134
  NavigateContext,
107
- navigate,
108
135
  NavigateResult,
109
- find,
110
136
  toList,
111
137
  toObject,
112
138
  toObjectWithKey,
113
- SelectOptions,
114
139
  select,
140
+ SelectOptions,
115
141
  splitNested,
116
142
  splitWithQuotes,
117
143
  camel,
118
144
  capital,
119
- pascal,
120
- snake,
121
145
  changeCase,
122
146
  padBlock,
123
- tokenize,
124
- deepClone,
125
- conditionPredicates,
126
- Objector
147
+ pascal,
148
+ snake,
149
+ tokenize
127
150
  }
128
151
  }
129
152
  export default libs;
@@ -177,6 +200,11 @@ declare const makeFieldProcessorMap: <T = unknown>(source: Record<keyof T, Sourc
177
200
  */
178
201
  declare const merge: (source: any, target: any, options?: MergeOptions) => void;
179
202
 
203
+ /**
204
+ * @public
205
+ * @param elements
206
+ * @param options
207
+ */
180
208
  declare const mergeAll: (elements: any[], options?: MergeOptions) => any;
181
209
 
182
210
  /**
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
- import{createRequire as At}from"node:module";var vt=Object.create;var{getPrototypeOf:ht,defineProperty:ne,getOwnPropertyNames:Ot}=Object;var kt=Object.prototype.hasOwnProperty;var u=(e,r,t)=>{t=e!=null?vt(ht(e)):{};let o=r||!e||!e.__esModule?ne(t,"default",{value:e,enumerable:!0}):t;for(let a of Ot(e))if(!kt.call(o,a))ne(o,a,{get:()=>e[a],enumerable:!0});return o};var R=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var Pt=(e,r)=>{for(var t in r)ne(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})};var A=At(import.meta.url);var Q=R((Yo,je)=>{var{defineProperty:ae,getOwnPropertyNames:Mt,getOwnPropertyDescriptor:Nt}=Object,Ct=Object.prototype.hasOwnProperty,Ce=new WeakMap,$t=(e)=>{var r=Ce.get(e),t;if(r)return r;if(r=ae({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")Mt(e).map((o)=>!Ct.call(r,o)&&ae(r,o,{get:()=>e[o],enumerable:!(t=Nt(e,o))||t.enumerable}));return Ce.set(e,r),r},jt=(e,r)=>{for(var t in r)ae(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},$e={};jt($e,{splitWithQuotes:()=>Et,splitNested:()=>Rt});je.exports=$t($e);var Rt=(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},Et=(e,r=",")=>{let t=[],o=e.length,a=r.length,n=0,s=(i)=>{if(i+a>o)return!1;for(let l=0;l<a;l++)if(e[i+l]!==r[l])return!1;return!0};while(n<o){while(n<o&&e[n]===" ")n++;if(n>=o)break;let i="",l=e[n]==='"'||e[n]==="'";if(l){let p=e[n++];while(n<o&&e[n]!==p)i+=e[n++];if(n<o)n++}else{while(n<o&&!s(n)){let p=e[n];if(p==='"'||p==="'"){i+=p,n++;while(n<o&&e[n]!==p)i+=e[n++];if(n<o)i+=e[n++]}else i+=e[n++]}i=i.trim()}if(i)t.push({value:i,quoted:l});if(s(n))n+=a}return t}});var b=R((Zo,_e)=>{var{defineProperty:ie,getOwnPropertyNames:Dt,getOwnPropertyDescriptor:Wt}=Object,_t=Object.prototype.hasOwnProperty,Re=new WeakMap,It=(e)=>{var r=Re.get(e),t;if(r)return r;if(r=ie({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")Dt(e).map((o)=>!_t.call(r,o)&&ie(r,o,{get:()=>e[o],enumerable:!(t=Wt(e,o))||t.enumerable}));return Re.set(e,r),r},Tt=(e,r)=>{for(var t in r)ie(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},Ee={};Tt(Ee,{navigate:()=>We,find:()=>Lt,NavigateResult:()=>k,NavigateAction:()=>De});_e.exports=It(Ee);var De;((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"})(De||={});class k{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 k(3,e,void 0,r)}static SkipSiblings(){return new k(1)}static Explore(){return new k(0)}static NoExplore(){return new k(2)}static DeleteParent(){return new k(4)}static MergeParent(e){return new k(5,e)}static ReplaceItem(e,r){return new k(6,e,r)}static DeleteItem(e){return new k(7,void 0,e)}}var We=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:[]})},Lt=async(e,r)=>{let t=[];return await We(e,(o)=>{if(r([...o.path,o.key].join("."),o.value))t.push(o.value);return k.Explore()}),t}});var v=R((Xo,Le)=>{var{defineProperty:le,getOwnPropertyNames:Ft,getOwnPropertyDescriptor:Ut}=Object,Jt=Object.prototype.hasOwnProperty,Ie=new WeakMap,St=(e)=>{var r=Ie.get(e),t;if(r)return r;if(r=le({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")Ft(e).map((o)=>!Jt.call(r,o)&&le(r,o,{get:()=>e[o],enumerable:!(t=Ut(e,o))||t.enumerable}));return Ie.set(e,r),r},xt=(e,r)=>{for(var t in r)le(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},Te={};xt(Te,{select:()=>ue});Le.exports=St(Te);var Gt=Q(),se=(e,r,t,o)=>{if(e.startsWith("{")){let a=e.substring(1,e.length-1);return ue(r,a,t).toString()}return o?e:void 0},Kt=(e,r,t,o)=>{let a=se(r,t,o);if(a)return ue(e,a,o);let n=/^\[([^=\]]*)([=]*)([^\]]*)\]$/.exec(r);if(n){let[i,l,p,f]=n,y=se(l.trim(),t,o,!0),j=se(f.trim(),t,o,!0);if(Array.isArray(e))switch(p){case"==":case"=":return e.find((P)=>P[y]==j)}}let s=/^([^[\]]*)\[([^\]]*)]/.exec(r);if(s)return e[s[1]][s[2]];return e[r]},ue=(e,r,t)=>{let o=void 0,a=void 0;r??="";let n=(f)=>f?.endsWith("?")?[f.substring(0,f.length-1),!0]:[f,!1],s=(f,y)=>{let[j,P]=n(y.pop());if(j){let H=Kt(f,j,e,t);if(H===void 0){if(P||t?.defaultValue!==void 0||t?.optional)return;throw Error(`Unknown path element: "${j}" in "${r}"`)}return o=f,a=j,s(H,y)}if(t?.set&&a)o[a]=t?.set;return f},i=Gt.splitNested(r,t?.separator??".","{","}"),l=i.length>0&&i[i.length-1].startsWith("?=")?i.pop()?.substring(2):void 0;i.reverse();let p=s(e,i);if(p===void 0)return l??t?.defaultValue;return p}});var h=R((Bo,Ve)=>{var{defineProperty:fe,getOwnPropertyNames:Ht,getOwnPropertyDescriptor:Qt}=Object,Yt=Object.prototype.hasOwnProperty,Fe=new WeakMap,Zt=(e)=>{var r=Fe.get(e),t;if(r)return r;if(r=fe({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")Ht(e).map((o)=>!Yt.call(r,o)&&fe(r,o,{get:()=>e[o],enumerable:!(t=Qt(e,o))||t.enumerable}));return Fe.set(e,r),r},Xt=(e,r)=>{for(var t in r)fe(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},xe={};Xt(xe,{processFields:()=>Be,makeFieldProcessorMap:()=>no,makeFieldProcessorList:()=>oo,makeFieldProcessor:()=>me,getProcessor:()=>pe,getArgs:()=>Qe});Ve.exports=Zt(xe);var Bt=Q(),Ue=b(),Ge=v(),Je=(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 l=Ge.select(t,e),p=a(l);if(p[0])return p[1]}throw Error(n)},Ke=(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 Je(r,(i)=>Ge.select(t,i));let s=Je(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 Ue.NavigateResult.ReplaceItem(null);if(r.value==="undefined")return Ue.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)},pe=(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}},He=(e)=>!e.quoted&&e.value.startsWith("."),Vt=(e)=>{let r={};for(let t of e){if(!He(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},Qe=(e,r,t)=>{let o=Bt.splitWithQuotes(e??""),a=Vt(o),n=o.filter((i)=>!He(i)),s=r.options.processArgs===!1?[]:n.map((i,l)=>Ke(r.options,i,t,l,n));return{rawArgs:n,parsedArgs:s,tags:a}},_=b(),Se=b(),qt=(e,r)=>r.keys!==void 0&&e.key.startsWith(".")&&r.keys[e.key.substring(1)]!==void 0,zt=async(e,r,t,o)=>{let{key:a,parent:n}=e,s=pe(o.keys,a.substring(1));if(s.options.processArgs!==!1&&(typeof s.options.types==="function"||s.options.types?.[0]!==void 0))e.value=Ke(s.options,{value:e.value,quoted:!1},t,0,[]);if(typeof e.value!=="string")await Be(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 Se.NavigateResult?i:Se.NavigateResult.ReplaceParent(i)},Z=b(),eo=v(),Ye=(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 ce{value;constructor(e){this.value=e}}var Ze=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 Ze(s,Ye(s),t);if(typeof i==="object")return i;let l=await t(i,e);if(l instanceof ce)return l.value;e=e.slice(0,a)+l+e.slice(n+1)}return e},ro=async(e,r)=>Ze(e,Ye(e),r),to=async(e,r,t,o)=>{let a=await(async()=>{let n=/([\w\d.-_/]+):(.+)/.exec(e);if(!n)return await eo.select(r,e);let[s,i,l]=n,p=pe(o.sources,i),f=Qe(l,p,r);return await p.fn({args:f.parsedArgs,rawArgs:f.rawArgs,tags:f.tags,key:i,options:o,root:r,path:t,value:null})})();if(a===null||a===void 0)return"";if(typeof a==="object")return new ce(a);return a},Xe=async(e,r,t,o)=>{let a=await ro(r,(n)=>to(n,t,e,o));if(a instanceof Z.NavigateResult)return a;if(a===r)return Z.NavigateResult.Explore();if(typeof a==="string"){let n=await Xe(e,a,t,o);if(n.action!==Z.NavigateAction.Explore)return n}return Z.NavigateResult.ReplaceItem(a)},Be=async(e,r)=>{return r??={},await _.navigate(e,async(t)=>{let o=[...t.path,t.key].join(".");if(r?.filters?.length&&r.filters.some((i)=>i.test(o)))return _.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 _.NavigateResult.NoExplore();let i=_.NavigateResult.Explore();if(typeof t.value==="string")switch(i=await Xe(o,t.value,s,r),i.action){case _.NavigateAction.Explore:break;case _.NavigateAction.ReplaceItem:t.value=i.by;break;default:return i}if(qt(t,r))i=await zt(t,o,s,r);return i}catch(i){throw Error(`${i.message}
2
- (${o})`)}}),e},me=(e,r)=>r?{fn:(t)=>e(...t.args),types:r}:(t)=>e(...t.args),oo=(e,r)=>Object.fromEntries(e.map((t)=>[t.name,me(t,r?.types?.[t.name])])),no=(e,r)=>Object.fromEntries((r?.keys??Object.keys(e)).map((t)=>[t,me(e[t],r?.types?.[t])]))});var X=R((Vo,ur)=>{var ao=Object.create,{getPrototypeOf:io,defineProperty:U,getOwnPropertyNames:rr,getOwnPropertyDescriptor:so}=Object,tr=Object.prototype.hasOwnProperty,M=(e,r,t)=>{t=e!=null?ao(io(e)):{};let o=r||!e||!e.__esModule?U(t,"default",{value:e,enumerable:!0}):t;for(let a of rr(e))if(!tr.call(o,a))U(o,a,{get:()=>e[a],enumerable:!0});return o},qe=new WeakMap,lo=(e)=>{var r=qe.get(e),t;if(r)return r;if(r=U({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")rr(e).map((o)=>!tr.call(r,o)&&U(r,o,{get:()=>e[o],enumerable:!(t=so(e,o))||t.enumerable}));return qe.set(e,r),r},uo=(e,r)=>{for(var t in r)U(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},or={};uo(or,{writeOutputs:()=>bo,writeOutput:()=>lr,writeFormat:()=>ir,locate:()=>ar,loadFormat:()=>mo,globMap:()=>wo,exists:()=>nr});ur.exports=lo(or);var ze=M(A("fs/promises")),nr=async(e)=>{try{return await ze.default.access(e,ze.default.constants.R_OK),!0}catch{return!1}},ye=M(A("path")),ar=async(e,r)=>{let t=!ye.default.isAbsolute(e)&&r?["",...r]:[""];for(let o of t){let a=ye.default.join(o,e);if(await nr(a))return ye.default.resolve(a)}throw Error(`File not found: "${e}"`)},fo=M(A("fs/promises")),po=M(A("path")),co=M(A("yaml")),mo=async(e,r)=>{let t=await ar(e,r?.dirs),o=await fo.default.readFile(t),a=po.default.dirname(t),n={"[.](yml|yaml)$":co.default.parse,"[.]json$":JSON.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.toString()),fullPath:t,folderPath:a}},ge=M(A("fs/promises")),yo=M(A("yaml")),ir=async(e,r,t="text")=>{switch(t){case"yaml":await ge.default.writeFile(e,yo.default.stringify(r));break;case"json":await ge.default.writeFile(e,JSON.stringify(r));break;case"text":default:await ge.default.writeFile(e,r.toString())}},go=M(A("fs/promises")),wo=async(e,r)=>{if(typeof e==="string"&&!e.includes("*"))return await r.map(e,0,[]);let t=await Array.fromAsync(go.default.glob(e,{cwd:r.cwd})),o=r.filter?t.filter(r.filter):t;return await Promise.all(o.map(r.map))},sr=M(A("fs/promises")),er=M(A("path")),bo=async(e,r)=>{if(r?.targetDirectory&&r?.removeFirst)try{await sr.default.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 lr(t,r)},lr=async(e,r)=>{let t=er.default.join(r?.targetDirectory??".",e.name),o=er.default.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 sr.default.mkdir(o,{recursive:!0})}catch(a){throw Error(`Failed to create target directory "${o}" for output "${t}": ${a.message}`)}try{await ir(t,e.value,e.type??"text")}catch(a){throw Error(`Failed to write output "${t}": ${a.message}`)}}});var I=R((qo,cr)=>{var{defineProperty:de,getOwnPropertyNames:vo,getOwnPropertyDescriptor:ho}=Object,Oo=Object.prototype.hasOwnProperty,fr=new WeakMap,ko=(e)=>{var r=fr.get(e),t;if(r)return r;if(r=de({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")vo(e).map((o)=>!Oo.call(r,o)&&de(r,o,{get:()=>e[o],enumerable:!(t=ho(e,o))||t.enumerable}));return fr.set(e,r),r},Po=(e,r)=>{for(var t in r)de(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},pr={};Po(pr,{mergeAll:()=>Ao,merge:()=>we});cr.exports=ko(pr);var we=(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;we(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]},Ao=(e,r)=>{let t={};for(let o of e.toReversed())we(o,t,r);return t}});var S=R((Sn,Yr)=>{var{defineProperty:he,getOwnPropertyNames:No,getOwnPropertyDescriptor:Co}=Object,$o=Object.prototype.hasOwnProperty,Kr=new WeakMap,jo=(e)=>{var r=Kr.get(e),t;if(r)return r;if(r=he({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")No(e).map((o)=>!$o.call(r,o)&&he(r,o,{get:()=>e[o],enumerable:!(t=Co(e,o))||t.enumerable}));return Kr.set(e,r),r},Ro=(e,r)=>{for(var t in r)he(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},Hr={};Ro(Hr,{tokenize:()=>To,snake:()=>Wo,pascal:()=>Qr,padBlock:()=>Io,changeCase:()=>_o,capital:()=>Eo,camel:()=>Do});Yr.exports=jo(Hr);var Qr=(e)=>e.replace(/((?:[_ ]+)\w|^\w)/g,(r,t)=>t.toUpperCase()).replace(/[_ ]/g,""),Eo=(e)=>e.replace(/((?:[ ]+)\w|^\w)/g,(r,t)=>t.toUpperCase()),Do=(e)=>Qr(e).replace(/((?:[ ]+\w)|^\w)/g,(r,t)=>t.toLowerCase()),Wo=(e,r)=>e.replace(/([a-z])([A-Z])/g,`$1${r}$2`).replace(/\s+/g,r),_o=(e,r)=>{switch(r){case"upper":return e.toUpperCase();case"lower":return e.toLowerCase();default:return e}},Io=(e,r,t=`
3
- `,o=" ")=>{let a=o.repeat(r);return e.split(t).map((n)=>a+n).join(t)},To=(e,r,t=/\${([^}]+)}/g)=>{return e.replace(t,(o,a)=>r[a]??"")}});var q=R((Yn,qr)=>{var{defineProperty:ke,getOwnPropertyNames:Lo,getOwnPropertyDescriptor:Fo}=Object,Uo=Object.prototype.hasOwnProperty,Br=new WeakMap,Jo=(e)=>{var r=Br.get(e),t;if(r)return r;if(r=ke({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")Lo(e).map((o)=>!Uo.call(r,o)&&ke(r,o,{get:()=>e[o],enumerable:!(t=Fo(e,o))||t.enumerable}));return Br.set(e,r),r},So=(e,r)=>{for(var t in r)ke(e,t,{get:r[t],enumerable:!0,configurable:!0,set:(o)=>r[t]=()=>o})},Vr={};So(Vr,{toObjectWithKey:()=>Go,toObject:()=>Ko,toList:()=>xo});qr.exports=Jo(Vr);var xo=(e,r="name")=>Object.entries(e).map(([t,o])=>({[r]:t,...o})),Go=(e,r="name")=>Object.fromEntries(e.map((t)=>[t[r],t])),Ko=(e,r="name")=>Object.fromEntries(e.map((t)=>{let{[r]:o,...a}=t;return[o,a]}))});var wt=u(h(),1),te=u(X(),1),bt=u(I(),1);import dt from"path";var mr=u(b(),1),yr=(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 mr.NavigateResult.SkipSiblings()}});var gr=u(b(),1);import Mo from"path";var dr=(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&&Mo.dirname(t.file))}return gr.NavigateResult.DeleteItem()}});var Pr=u(h(),1),ve=u(I(),1);var wr=u(v(),1),br=(e)=>{if(typeof e.value==="string")return e.parent;let r=e.value.model;if(!r)return e.parent;if(typeof r==="string")return wr.select(e.root,r);return r};var be=u(v(),1),vr=(e)=>{if(typeof e.value==="string")return be.select(e.root,e.value);if(Array.isArray(e.value))return e.value;let r=e.value;if(typeof r.from==="string")return be.select(e.root,r.from);return r.from};var hr=u(h(),1),Or=u(v(),1),kr=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 hr.processFields(o,{...e.options,root:{...e.root,result:r}}),o}return await Or.select({...e.root,result:r},t.selector)};var N=(e)=>globalThis.structuredClone!==void 0?structuredClone(e):JSON.parse(JSON.stringify(e));var C={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)=>!C.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!=="")},B={and:()=>"boolean",or:()=>"boolean",xor:()=>"boolean",true:()=>"boolean",false:()=>"boolean",lt:()=>"number",le:()=>"number",gt:()=>"number",ge:()=>"number"};var Ar=()=>({each:{filters:[/select|model/],fn:async(e)=>{let r=e.value;delete e.parent[e.key];let t=await vr(e),o=await br(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=ve.mergeAll([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=N(o);if(await Pr.processFields(s,{...e.options,root:{...e.root,index:n,item:t[n],instance:s}}),r.extend?.result){let i=r.extend.result;s=ve.mergeAll([s,...Array.isArray(i)?i:[i]])}a.push(await kr(e,s))}return a}}});var Mr=u(v(),1),Nr=()=>({concat:async(e)=>{let r=[];for(let t of Array.isArray(e.value)?e.value:[e.value])r.push(...await Mr.select(e.root,t));return r.filter((t)=>t!==void 0)}});var Cr=u(h(),1),$r=u(I(),1),jr=u(b(),1),Rr=u(v(),1);var Er=()=>({extends:async(e)=>{let r=async(t,o)=>{for(let a of Array.isArray(o)?o:[o]){let n=await Rr.select(e.root,a),s=N(n);if(s[e.key])await r(s,s[e.key]);await Cr.processFields(s,{...e.options}),$r.merge(s,t),delete t[e.key]}};return await r(e.parent,e.value),jr.NavigateResult.Explore()}});var Dr=u(h(),1),$=u(b(),1),Wr=(e)=>({skip:{types:{0:"boolean"},fn:(r)=>r.value?$.NavigateResult.DeleteParent():$.NavigateResult.DeleteItem()},metadata:({path:r,value:t})=>{return e.metadata(r,t),$.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 $.NavigateResult.DeleteItem();if(typeof a==="string")return(await Dr.processFields({value:a},{...r.options,root:{...r.root}})).value;return $.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 $.NavigateResult.ReplaceParent(t.cases[t.from],!0);if(t.default!==void 0)return $.NavigateResult.ReplaceParent(t.default,!0);return $.NavigateResult.DeleteParent()}});var _r=u(I(),1),Ir=u(v(),1),Tr=()=>({from:async({root:e,parent:r,value:t})=>{let o=await Ir.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 _r.merge(o,r.content),r.content}return o}});var Fr=u(b(),1);import Lr from"node:vm";var Ur=(e)=>({modules:async(r)=>{for(let[t,o]of Object.entries(r.value)){let a=Lr.createContext({console,objector:e,document:r.root}),n=new Lr.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}`,(l)=>i(l,...l.args)])))}return Fr.NavigateResult.DeleteItem()}});var D=u(X(),1);import Jr from"fs/promises";import J from"path";var Sr=(e)=>({include:async(r)=>{let{file:t}=r.options.globalContext;return await D.globMap(r.args[0],{cwd:J.dirname(t),filter:(o)=>J.basename(t)!==o,map:async(o)=>e.load(o,J.dirname(t),{parent:r.root})})},exists:async({args:[r]})=>await D.exists(r),file:async(r)=>await Jr.readFile(await D.locate(r.args[0],e.getIncludeDirectories())).then((t)=>t.toString()),scan:async(r)=>{let t=[],a=(()=>{let i=r.args[2]??["**/node_modules/**"],l=typeof i==="string"?i.split(",").map((p)=>p.trim()):i;if(!Array.isArray(l))throw Error("Scan exclusion must be a list");return l})(),{file:n}=r.options.globalContext,s=r.args[1]?await D.locate(r.args[1],e.getIncludeDirectories()):J.dirname(n);for await(let i of Jr.glob(r.args[0],{cwd:s,exclude:(l)=>a.some((p)=>J.matchesGlob(l,p))}))t.push(i);return t}});var xr=u(h(),1),Gr=()=>xr.makeFieldProcessorMap({env:(e)=>process.env[e]});var Zr=u(h(),1),d=u(S(),1);import Oe from"yaml";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`[
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
4
  ${e.map((s)=>`${a}${V(s,r+1)},`).join(`
5
5
  `)}
6
- ${o}]`}else if(typeof e==="object"){let n=Object.entries(e).sort((i,l)=>t?.sortKeys?i[0].localeCompare(l[0]):0);if(n.length===0)return"{}";return`{
7
- ${n.map(([i,l])=>`${a}${i} = ${V(l,r+1,t)}`).join(`
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(`
8
8
  `)}
9
9
  ${o}}`}else return String(e)},x=(e)=>{if(!e)return e;return e.replaceAll("\\n",`
10
- `).replaceAll("\\$","$").replaceAll("\\t","\t")};var Xr=()=>({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 Oe.stringify(e,null,{indent:2});case"terraform":{let o=!!(t?.sort?.length||t?.sortKeys?.length);return V(e,0,{sortKeys:o})}}throw Error("Unsupported format: "+String(r))}},...Zr.makeFieldProcessorMap({pascal:d.pascal,camel:d.camel,capital:d.capital,fromYaml:Oe.parse,fromJson:JSON.parse,toYaml:(e,r)=>Oe.stringify(e,null,{indent: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 zr=u(h(),1),z=u(q(),1),Pe=u(v(),1),et=u(S(),1);var rt=()=>({...zr.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)=>Pe.select({...r,...y},o)):e).join(s),l=t.pad?.[0]??"0",p=t.padChar?.[0]??" ",f=n&&i.length&&s?i+s:i;return l?et.padBlock(f,parseInt(l),`
12
- `,p):f},list:({args:e})=>z.toList(e[0],e[1]),object:({args:e})=>z.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(C)}return B[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=C[r];if(n){let l=Array(e.length);for(let f=0;f<e.length;f++)try{l[f]=Pe.select({...o,...e[f]},n)}catch{l[f]=Symbol("invalid")}let p=[];for(let f=0;f<e.length;f++){let y=l[f];if(typeof y!=="symbol"&&t===void 0?s(y):s(y,t))p.push(e[f])}return p}let i=[];for(let l of e)if(t===void 0?s(l):s(l,t))i.push(l);return i}}});var tt=u(h(),1),ot=u(q(),1),G=u(v(),1),nt=u(S(),1);var at=()=>({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 G.select(o,g.value),i=await G.select(o,e.value),l=await s(r),p=n.key?.[0],f=Array.isArray(i)?i:ot.toList(i),y=[],j=await Promise.all(t.map(async(g)=>await s(g))),P={...o,item:void 0,index:0,params:j,instance:void 0,parent:o.this,tags:n},H={...a,root:P};for(let g=0;g<f.length;g++){let W=N(l),F={instance:W},oe=typeof l==="string"?F:W;if(P.item=f[g],P.index=g,P.instance=W,n?.root?.[0])Object.assign(P,await G.select(P,n.root[0]));if(await tt.processFields(oe,H),p!==void 0)y.push(await G.select(F.instance,p));else y.push(F.instance)}if(n.join?.length){if(y.length===0)return"";let g=x(n.join[0]),W=n.pad?.[0]??"0",F=n.padChar?.[0]??" ",oe=n.finalize?.length&&g?g:"",Ne=`${y.join(g)}${oe}`;return W?nt.padBlock(Ne,parseInt(W),`
13
- `,F):Ne}return y}}});var it=u(v(),1),K=async(e,r,t)=>e.rawArgs[r].quoted?e.rawArgs[r].value:await it.select(e.root,e.rawArgs[r].value,{defaultValue:t}),st=()=>({switch:{processArgs:!1,fn:async(e)=>{let r=await K(e,0,!1),t=await K(e,1);if(t[r]===void 0){if(e.rawArgs.length>2)return K(e,2);throw Error(`Unhandled switch case: ${r}`)}return t[r]}}});var lt=u(h(),1),ut=()=>lt.makeFieldProcessorMap({log:console.log});var ft=u(h(),1);var pt=()=>({if:{types:{0:"boolean"},fn:(e)=>e.args[0]?e.args[1]:e.args[2]},check:{types:{0:Object.keys(C)},fn:(e)=>C[e.args[0]](...e.args.slice(1))},...ft.makeFieldProcessorMap(C,{types:B})});var ct=u(b(),1);var mt=()=>({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 K(e,r,null);if(o!==null)return o}if(e.tags.nullable?.length)return ct.NavigateResult.DeleteItem();if(e.tags.fail?.length)throw Error(`No valid value found for default (${e.rawArgs.map((r)=>r.value).join(", ")})`);return""}}});var T=u(b(),1),yt=()=>({convert:({args:[e,r,t]})=>{switch(r){case"string":return String(e);case"number":{let o=Number(e);if(!isNaN(o))return T.NavigateResult.ReplaceItem(o);break}case"boolean":if(e==="true"||e===!0||e===1||e==="1"||e==="yes"||e==="on")return T.NavigateResult.ReplaceItem(!0);else if(e==="false"||e===!1||e===0||e==="0"||e==="no"||e==="off")return T.NavigateResult.ReplaceItem(!1);break;default:throw Error(`Unsupported type for convert: ${r}`)}if(t!==void 0)return T.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 T.NavigateResult.ReplaceItem(o)},typeOf:({args:[e]})=>{if(e===null)return"null";else if(Array.isArray(e))return"array";else return typeof e}});var gt=(e)=>e.keys(yr(e)).keys(dr(e)).keys(Ar()).keys(Tr()).keys(Nr()).keys(Er()).keys(Wr(e)).keys(Ur(e)).sources(Sr(e)).sources(Gr()).sources(Xr()).sources(yt()).sources(rt()).sources(at()).sources(st()).sources(ut()).sources(pt()).sources(mt());var Ae={};Pt(Ae,{writeOutputs:()=>m.writeOutputs,writeOutput:()=>m.writeOutput,writeFormat:()=>m.writeFormat,tokenize:()=>w.tokenize,toObjectWithKey:()=>L.toObjectWithKey,toObject:()=>L.toObject,toList:()=>L.toList,splitWithQuotes:()=>re.splitWithQuotes,splitNested:()=>re.splitNested,snake:()=>w.snake,select:()=>ee.select,processFields:()=>c.processFields,pascal:()=>w.pascal,padBlock:()=>w.padBlock,navigate:()=>O.navigate,mergeAll:()=>E.mergeAll,merge:()=>E.merge,makeFieldProcessorMap:()=>c.makeFieldProcessorMap,makeFieldProcessorList:()=>c.makeFieldProcessorList,makeFieldProcessor:()=>c.makeFieldProcessor,locate:()=>m.locate,loadFormat:()=>m.loadFormat,globMap:()=>m.globMap,find:()=>O.find,exists:()=>m.exists,deepClone:()=>N,conditionPredicates:()=>C,changeCase:()=>w.changeCase,capital:()=>w.capital,camel:()=>w.camel,WriteOutputsOption:()=>m.WriteOutputsOption,WriteOutputOption:()=>m.WriteOutputOption,SelectOptions:()=>ee.SelectOptions,ProcessFieldsOptions:()=>c.ProcessFieldsOptions,Output:()=>m.Output,Objector:()=>Me,NavigateResult:()=>O.NavigateResult,NavigateContext:()=>O.NavigateContext,NavigateCallback:()=>O.NavigateCallback,NavigateAction:()=>O.NavigateAction,MergeOptions:()=>E.MergeOptions,MergeMode:()=>E.MergeMode,LoadResult:()=>m.LoadResult,LoadOptions:()=>m.LoadOptions,FieldProcessorTypedFunc:()=>c.FieldProcessorTypedFunc,FieldProcessorTypeCheckers:()=>c.FieldProcessorTypeCheckers,FieldProcessorTypeChecker:()=>c.FieldProcessorTypeChecker,FieldProcessorOptions:()=>c.FieldProcessorOptions,FieldProcessorMap:()=>c.FieldProcessorMap,FieldProcessorFunc:()=>c.FieldProcessorFunc,FieldProcessor:()=>c.FieldProcessor,FieldContext:()=>c.FieldContext});var c=u(h(),1),m=u(X(),1),E=u(I(),1),O=u(b(),1),L=u(q(),1),ee=u(v(),1),re=u(Q(),1),w=u(S(),1);var Ja=Ae;class Me{includeDirectories=[];includes=[];outputs=[];vars={};cache={};fields={sources:{},keys:{}};objectMetadata={};constructor(){this.use(gt)}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)bt.merge(await this.load(o,e.folderPath,{parent:e.content,...r},!0),e.content)}async loadObject(e,r,t){return await wt.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((f)=>dt.isAbsolute(f)?f:dt.join(r??process.cwd(),f)));let n=await te.loadFormat(e,{dirs:a});if(!n.content)return null;let s=n.fullPath,i=this.cache[s]??n.content,l=N(i);n.content=l,await this.docIncludes(n,t);let p;if(o!==!0)p=await this.loadObject(n.content,t,{fileName:n.fullPath,folderPath:n.folderPath,fullPath:n.fullPath});else p=n.content;return this.cache[s]??=i,p}async writeOutputs(e){await te.writeOutputs(this.getOutputs(),e)}}export{Ja as default,Me as Objector};
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};
package/package.json CHANGED
@@ -1,14 +1,11 @@
1
1
  {
2
2
  "name": "@homedev/objector",
3
- "version": "1.2.32",
3
+ "version": "1.2.33",
4
4
  "description": "object extensions for YAML/JSON",
5
5
  "author": "julzor",
6
6
  "license": "ISC",
7
7
  "main": "dist/index.js",
8
8
  "type": "module",
9
- "types": "./index.d.ts",
10
- "dependencies": {
11
- "yaml": "^2.8.2"
12
- },
9
+ "dependencies": {},
13
10
  "typings": "dist/index.d.ts"
14
11
  }