@homedev/objector 1.2.1 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +3 -3
  2. package/package.json +12 -11
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var Mr=Object.create;var{getPrototypeOf:dr,defineProperty:b,getOwnPropertyNames:v,getOwnPropertyDescriptor:kr}=Object,L=Object.prototype.hasOwnProperty;var w=(e,r,o)=>{o=e!=null?Mr(dr(e)):{};let s=r||!e||!e.__esModule?b(o,"default",{value:e,enumerable:!0}):o;for(let t of v(e))if(!L.call(s,t))b(s,t,{get:()=>e[t],enumerable:!0});return s},R=new WeakMap,jr=(e)=>{var r=R.get(e),o;if(r)return r;if(r=b({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")v(e).map((s)=>!L.call(r,s)&&b(r,s,{get:()=>e[s],enumerable:!(o=kr(e,s))||o.enumerable}));return R.set(e,r),r};var Pr=(e,r)=>{for(var o in r)b(e,o,{get:r[o],enumerable:!0,configurable:!0,set:(s)=>r[o]=()=>s})};var Ar={};Pr(Ar,{Objector:()=>br});module.exports=jr(Ar);var yr=require("@homedev/fields"),j=require("@homedev/files"),cr=require("@homedev/merge"),D=w(require("path"));var N=require("@homedev/navigate"),B=(e)=>({output:(r)=>{delete r.parent[r.key];for(let o of Array.isArray(r.value)?r.value:[r.value])if(typeof o==="string")e.output({name:o,value:r.parent});else e.output({...o,value:o.value??r.parent});return N.NavigateResult.SkipSiblings()}});var U=require("@homedev/navigate"),$=w(require("path")),q=(e)=>({load:async(r)=>{let o=r.options.globalContext;for(let{file:s}of Array.isArray(r.value)?r.value:[r.value]){if(!s)throw Error("File reference required");await e.load(s,o.file&&$.default.dirname(o.file))}return U.NavigateResult.DeleteItem()}});var E=require("@homedev/fields"),C=require("@homedev/merge"),O=require("@homedev/select"),J=(e)=>({each:{filters:[/select|model/],fn:async(r)=>{let o=r.value;delete r.parent[r.key];let s=()=>{let m=o.model;if(typeof r.value==="string"||!m)return r.parent;if(typeof m==="string")return O.select(r.root,m);return m},t=()=>{if(typeof r.value==="string")return O.select(r.root,r.value);if(Array.isArray(r.value))return r.value;if(typeof o.from==="string")return O.select(r.root,o.from);return o.from},n=async(m)=>{if(o.selector===void 0)return m;if(typeof o.selector!=="string"){let l=JSON.parse(JSON.stringify(o.selector));return await E.processFields(l,{...r.options,root:{...r.root,result:m}}),l}return await O.select({...r.root,result:m},o.selector)},a=await t(),i=await s();if(!Array.isArray(a))throw Error('Key "each" requires a source list');if(i===void 0)throw Error('Key "each" must define a model');if(o.extend?.model)i=C.mergeAll([o.model,...Array.isArray(o.extend.model)?o.extend.model:[o.extend.model]]);let p=[];for(let m=0;m<a.length;m++){let l=JSON.parse(JSON.stringify(i));if(await E.processFields(l,{...r.options,root:{...r.root,index:m,item:a[m],instance:l}}),o.extend?.result)l=C.mergeAll([l,...Array.isArray(o.extend?.result)?o.extend.result:[Array.isArray(o.extend?.result)]]);p.push(await n(l))}return p}}});var T=require("@homedev/select"),z=(e)=>({concat:async(r)=>{let o=[];for(let s of Array.isArray(r.value)?r.value:[r.value])o.push(...await T.select(r.root,s));return o.filter((s)=>s!==void 0)}});var G=require("@homedev/fields"),V=require("@homedev/merge"),H=require("@homedev/navigate"),K=require("@homedev/select"),Q=(e)=>({extends:async(r)=>{let o=async(s,t)=>{for(let n of Array.isArray(t)?t:[t]){let a=await K.select(r.root,n),i=JSON.parse(JSON.stringify(a));if(i[r.key])await o(i,i[r.key]);await G.processFields(i,{...r.options}),V.merge(i,s),delete s[r.key]}};return await o(r.parent,r.value),H.NavigateResult.Explore()}});var y=require("@homedev/navigate"),W=(e)=>({skip:{types:{0:"boolean"},fn:(r)=>r.value?y.NavigateResult.DeleteParent():y.NavigateResult.DeleteItem()},metadata:({path:r,value:o})=>{return e.metadata(r,o),y.NavigateResult.DeleteItem()},if:{types:{0:"boolean"},fn:(r)=>{let o=r.parent[".then"],s=r.parent[".else"];if(o)delete r.parent[".then"];if(s)delete r.parent[".else"];return r.value?o??y.NavigateResult.DeleteItem():s??y.NavigateResult.DeleteItem()}},switch:(r)=>{let o=r.value;if(!o.cases)throw Error("Missing cases for switch");return o.cases[o.from]??o.default??y.NavigateResult.DeleteParent()}});var X=require("@homedev/merge"),Y=require("@homedev/select"),Z=(e)=>({from:async({root:r,parent:o,value:s})=>{let t=await Y.select(r,s);if(o.content){if(Array.isArray(o.content)&&Array.isArray(t))return[...t,...o.content];return X.merge(t,o.content),o.content}return t}});var x=require("@homedev/navigate"),S=w(require("node:vm")),rr=(e)=>({modules:async(r)=>{for(let[o,s]of Object.entries(r.value)){let t=S.default.createContext({console,objector:e,document:r.root}),n=new S.default.SourceTextModule(s,{identifier:o,context:t});return await n.link((a)=>{throw Error(`Module ${a} is not allowed`)}),await n.evaluate(),e.sources(Object.fromEntries(Object.entries(n.namespace).map(([a,i])=>[`${o}.${a}`,(p)=>i(p,...p.args)]))),x.NavigateResult.DeleteItem()}}});var F=require("@homedev/files"),_=w(require("fs/promises")),c=w(require("path")),er=(e)=>({include:async(r)=>{let{file:o}=r.options.globalContext;return await F.globMap(r.args[0],{cwd:c.default.dirname(o),filter:(s)=>c.default.basename(o)!==s,map:async(s)=>e.load(s,c.default.dirname(o),{parent:r.root})})},file:async(r)=>await _.default.readFile(await F.locate(r.args[0],e.getIncludeDirectories())).then((o)=>o.toString()),scan:async(r)=>{let o=[],t=(()=>{let i=r.args[2]??["**/node_modules/**"],p=typeof i==="string"?i.split(",").map((m)=>m.trim()):i;if(!Array.isArray(p))throw Error("Scan exclusion must be a list");return p})(),{file:n}=r.options.globalContext,a=r.args[1]?await F.locate(r.args[1],e.getIncludeDirectories()):c.default.dirname(n);for await(let i of _.default.glob(r.args[0],{cwd:a,exclude:(p)=>t.some((m)=>c.default.matchesGlob(p,m))}))o.push(i);return o}});var or=(e)=>({env:(r)=>process.env[r.args[0]]});var f=require("@homedev/string-utils"),sr=(e)=>({len:(r)=>r.args[0].length,reverse:(r)=>r.args[0].split("").reverse().join(""),substring:{types:{0:"ref",1:"number",2:"number"},fn:(r)=>r.args[0].substring(r.args[1],r.args[2])},concat:(r)=>r.args.join(""),lower:(r)=>r.args[0].toLowerCase(),upper:(r)=>r.args[0].toUpperCase(),pascal:(r)=>f.pascal(r.args[0]),camel:(r)=>f.camel(r.args[0]),capital:(r)=>f.capital(r.args[0]),snake:(r)=>f.changeCase(f.snake(r.args[0],"_"),r.args[1]),kebab:(r)=>f.changeCase(f.snake(r.args[0],"-"),r.args[1]),encode:(r)=>Buffer.from(r.args[0]).toString(r.args[1]??"base64"),decode:(r)=>Buffer.from(r.args[0],r.args[1]??"base64").toString(),uuid:(r)=>crypto.randomUUID()});var k=require("@homedev/object-utils"),tr=require("@homedev/select"),ar=(e)=>({merge:(r)=>r.args.flatMap((o)=>o),join:({args:[r,o,s,t],root:n})=>{let a=s?.replace("\\n",`
2
- `);if(!Array.isArray(r))throw Error("Object is not a list");let i=((o?.length)?r.map((p)=>tr.select({...n,...p},o)):r).join(a);return t==="true"&&i.length&&a?i+a:i},list:({args:r})=>k.toList(r[0],r[1]),object:({args:r})=>k.toObject(r[0],r[1]),range:({args:[r,o,s]})=>{let t=parseInt(r),n=parseInt(o),a=parseInt(s)||1;if(isNaN(t)||isNaN(n))throw Error("Invalid range");return Array.from({length:Math.floor((n-t)/a)+1},(i,p)=>t+p*a)}});var nr=require("@homedev/fields"),ir=require("@homedev/object-utils"),h=require("@homedev/select"),mr=(e)=>({each:{processArgs:!1,fn:async({rawArgs:[r,o,s,t,...n],root:a,options:i})=>{let{quoted:p}=o,m=await h.select(a,r.value),l=p?o.value.replaceAll("\\$","$"):await h.select(a,o.value),P=s?.value,I=Array.isArray(m)?m:ir.toList(m),d=[];for(let g=0;g<I.length;g++){let u=JSON.parse(JSON.stringify(l)),A={instance:u},wr=typeof l==="string"?A:u,Or={...a,item:I[g],index:g,params:n.map((Fr)=>Fr.value),instance:u,parent:a.this};if(await nr.processFields(wr,{...i,root:Or}),P!==void 0&&P!=="@")d.push(A.instance[P]);else d.push(A.instance)}if(t){if(t.quoted){let g=!1,u=t.value.replaceAll("\\n",`
3
- `).replaceAll("\\$","$").replaceAll("\\t","\t");if(u.endsWith("!")&&!u.endsWith("\\!"))u=u.slice(0,-1),g=!0;return d.join(u)+(g?u:"")}else if(t.value!=="false")throw Error(`Join must be a quoted string or false, got ${t.value}`)}return d}}});var pr=require("@homedev/select"),M=async(e,r,o)=>e.rawArgs[r].quoted?e.rawArgs[r].value:await pr.select(e.root,e.rawArgs[r].value,{defaultValue:o}),fr=(e)=>({default:{processArgs:!1,fn:async(r)=>{let o=r.rawArgs[1]?.value?await M(r,1):"";return M(r,0,o)}},switch:{processArgs:!1,fn:async(r)=>{let o=await M(r,0,!1),s=await M(r,1);if(s[o]===void 0){if(r.rawArgs.length>2)return M(r,2);throw Error(`Unhandled switch case: ${o}`)}return s[o]}}});var lr=(e)=>({log:(r)=>{console.log(...r.args)}});var ur=(e)=>({if:{types:{0:"boolean"},fn:(r)=>r.args[0]?r.args[1]:r.args[2]},check:{types:{0:["eq","ne","lt","le","gt","ge","in","notin","null","notnull","empty","notempty","nullorempty","notnullorempty"]},fn:(r)=>{let[o,...s]=r.args;switch(o){case"eq":return s.every((t,n,a)=>t===a[0]);case"ne":return s.every((t,n,a)=>t!==a[0]);case"lt":return s[0]<s[1];case"le":return s[0]<=s[1];case"gt":return s[0]>s[1];case"ge":return s[0]>=s[1];case"in":return s[0].includes(s[1]);case"notin":return!s[0].includes(s[1]);case"null":return s.every((t,n,a)=>t===null||t===void 0);case"notnull":return s.every((t,n,a)=>t!==null&&t!==void 0);case"empty":return s.every((t,n,a)=>t==="");case"notempty":return s.every((t,n,a)=>t!=="");case"nullorempty":return s.every((t,n,a)=>t===null||t===void 0||t==="");case"notnullorempty":return s.every((t,n,a)=>t!==null&&t!==void 0&&t!=="")}}}});var gr=(e)=>e.keys(B(e)).keys(q(e)).keys(J(e)).keys(Z(e)).keys(z(e)).keys(Q(e)).keys(W(e)).keys(rr(e)).sources(er(e)).sources(or(e)).sources(sr(e)).sources(ar(e)).sources(mr(e)).sources(fr(e)).sources(lr(e)).sources(ur(e));class br{includeDirectories=[];includes=[];outputs=[];vars={};cache={};fields={sources:{},keys:{}};objectMetadata={};constructor(){this.use(gr)}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 o=[];if(e.content.includes)o.push(...e.content.includes),delete e.content.includes;o.push(...this.includes),this.includes.length=0;for(let s of o)cr.merge(await this.load(s,e.folderPath,{parent:e.content,...r},!0),e.content)}async loadObject(e,r,o){return await yr.processFields(e,{...this.fields,globalContext:{file:o?.fullPath??"@internal"},root:{...this.fields.root,...this.vars,$document:{root:{content:e},fileName:o?.fileName??"@internal",folder:o?.folderPath??"@internal",fullPath:o?.fullPath??"@internal",...r}}}),e}async load(e,r,o,s){if(this.cache[e])return this.cache[e];let t=r?[r]:[];t.push(...this.includeDirectories.map((a)=>D.default.isAbsolute(a)?a:D.default.join(r??process.cwd(),a)));let n=await j.loadFormat(e,{dirs:t});if(!n.content)return null;if(await this.docIncludes(n,o),s!==!0)return this.loadObject(n.content,o,{fileName:n.fullPath,folderPath:n.folderPath,fullPath:n.fullPath});return n.content}async writeOutputs(e){await j.writeOutputs(this.getOutputs(),e)}}
1
+ var br=Object.create;var{getPrototypeOf:Mr,defineProperty:g,getOwnPropertyNames:I,getOwnPropertyDescriptor:kr}=Object,L=Object.prototype.hasOwnProperty;var y=(r,e,o)=>{o=r!=null?br(Mr(r)):{};let s=e||!r||!r.__esModule?g(o,"default",{value:r,enumerable:!0}):o;for(let a of I(r))if(!L.call(s,a))g(s,a,{get:()=>r[a],enumerable:!0});return s},D=new WeakMap,Ar=(r)=>{var e=D.get(r),o;if(e)return e;if(e=g({},"__esModule",{value:!0}),r&&typeof r==="object"||typeof r==="function")I(r).map((s)=>!L.call(e,s)&&g(e,s,{get:()=>r[s],enumerable:!(o=kr(r,s))||o.enumerable}));return D.set(r,e),e};var Pr=(r,e)=>{for(var o in e)g(r,o,{get:e[o],enumerable:!0,configurable:!0,set:(s)=>e[o]=()=>s})};var hr={};Pr(hr,{Objector:()=>yr});module.exports=Ar(hr);var cr=require("@homedev/fields"),k=require("@homedev/files"),gr=require("@homedev/merge"),C=y(require("path"));var R=require("@homedev/navigate"),$=(r)=>({output:(e)=>{delete e.parent[e.key];for(let o of Array.isArray(e.value)?e.value:[e.value])if(typeof o==="string")r.output({name:o,value:e.parent});else r.output({...o,value:o.value??e.parent});return R.NavigateResult.SkipSiblings()}});var N=require("@homedev/navigate"),q=y(require("path")),z=(r)=>({load:async(e)=>{let o=e.options.globalContext;for(let{file:s}of Array.isArray(e.value)?e.value:[e.value]){if(!s)throw Error("File reference required");await r.load(s,o.file&&q.default.dirname(o.file))}return N.NavigateResult.DeleteItem()}});var j=require("@homedev/fields"),O=require("@homedev/merge"),d=require("@homedev/select"),B=()=>({each:{filters:[/select|model/],fn:async(r)=>{let e=r.value;delete r.parent[r.key];let o=()=>{let i=e.model;if(typeof r.value==="string"||!i)return r.parent;if(typeof i==="string")return d.select(r.root,i);return i},s=()=>{if(typeof r.value==="string")return d.select(r.root,r.value);if(Array.isArray(r.value))return r.value;if(typeof e.from==="string")return d.select(r.root,e.from);return e.from},a=async(i)=>{if(e.selector===void 0)return i;if(typeof e.selector!=="string"){let p=JSON.parse(JSON.stringify(e.selector));return await j.processFields(p,{...r.options,root:{...r.root,result:i}}),p}return await d.select({...r.root,result:i},e.selector)},t=await s(),n=await o();if(!Array.isArray(t))throw Error('Key "each" requires a source list');if(n===void 0)throw Error('Key "each" must define a model');if(e.extend?.model)n=O.mergeAll([e.model,...Array.isArray(e.extend.model)?e.extend.model:[e.extend.model]]);let l=[];for(let i=0;i<t.length;i++){let p=JSON.parse(JSON.stringify(n));if(await j.processFields(p,{...r.options,root:{...r.root,index:i,item:t[i],instance:p}}),e.extend?.result)p=O.mergeAll([p,...Array.isArray(e.extend?.result)?e.extend.result:[Array.isArray(e.extend?.result)]]);l.push(await a(p))}return l}}});var J=require("@homedev/select"),U=()=>({concat:async(r)=>{let e=[];for(let o of Array.isArray(r.value)?r.value:[r.value])e.push(...await J.select(r.root,o));return e.filter((o)=>o!==void 0)}});var T=require("@homedev/fields"),G=require("@homedev/merge"),V=require("@homedev/navigate"),H=require("@homedev/select"),K=()=>({extends:async(r)=>{let e=async(o,s)=>{for(let a of Array.isArray(s)?s:[s]){let t=await H.select(r.root,a),n=JSON.parse(JSON.stringify(t));if(n[r.key])await e(n,n[r.key]);await T.processFields(n,{...r.options}),G.merge(n,o),delete o[r.key]}};return await e(r.parent,r.value),V.NavigateResult.Explore()}});var u=require("@homedev/navigate"),Q=(r)=>({skip:{types:{0:"boolean"},fn:(e)=>e.value?u.NavigateResult.DeleteParent():u.NavigateResult.DeleteItem()},metadata:({path:e,value:o})=>{return r.metadata(e,o),u.NavigateResult.DeleteItem()},if:{types:{0:"boolean"},fn:(e)=>{let o=e.parent[".then"],s=e.parent[".else"];if(o)delete e.parent[".then"];if(s)delete e.parent[".else"];return e.value?o??u.NavigateResult.DeleteItem():s??u.NavigateResult.DeleteItem()}},switch:(e)=>{let o=e.value;if(!o.cases)throw Error("Missing cases for switch");return o.cases[o.from]??o.default??u.NavigateResult.DeleteParent()}});var W=require("@homedev/merge"),X=require("@homedev/select"),Y=()=>({from:async({root:r,parent:e,value:o})=>{let s=await X.select(r,o);if(e.content){if(Array.isArray(e.content)&&Array.isArray(s))return[...s,...e.content];return W.merge(s,e.content),e.content}return s}});var Z=require("@homedev/navigate"),E=y(require("node:vm")),x=(r)=>({modules:async(e)=>{for(let[o,s]of Object.entries(e.value)){let a=E.default.createContext({console,objector:r,document:e.root}),t=new E.default.SourceTextModule(s,{identifier:o,context:a});return await t.link((n)=>{throw Error(`Module ${n} is not allowed`)}),await t.evaluate(),r.sources(Object.fromEntries(Object.entries(t.namespace).map(([n,l])=>[`${o}.${n}`,(i)=>l(i,...i.args)]))),Z.NavigateResult.DeleteItem()}}});var w=require("@homedev/files"),S=y(require("fs/promises")),c=y(require("path")),rr=(r)=>({include:async(e)=>{let{file:o}=e.options.globalContext;return await w.globMap(e.args[0],{cwd:c.default.dirname(o),filter:(s)=>c.default.basename(o)!==s,map:async(s)=>r.load(s,c.default.dirname(o),{parent:e.root})})},file:async(e)=>await S.default.readFile(await w.locate(e.args[0],r.getIncludeDirectories())).then((o)=>o.toString()),scan:async(e)=>{let o=[],a=(()=>{let l=e.args[2]??["**/node_modules/**"],i=typeof l==="string"?l.split(",").map((p)=>p.trim()):l;if(!Array.isArray(i))throw Error("Scan exclusion must be a list");return i})(),{file:t}=e.options.globalContext,n=e.args[1]?await w.locate(e.args[1],r.getIncludeDirectories()):c.default.dirname(t);for await(let l of S.default.glob(e.args[0],{cwd:n,exclude:(i)=>a.some((p)=>c.default.matchesGlob(i,p))}))o.push(l);return o}});var er=()=>({env:(r)=>process.env[r.args[0]]});var m=require("@homedev/string-utils"),or=()=>({len:(r)=>r.args[0].length,reverse:(r)=>r.args[0].split("").reverse().join(""),substring:{types:{0:"ref",1:"number",2:"number"},fn:(r)=>r.args[0].substring(r.args[1],r.args[2])},concat:(r)=>r.args.join(""),lower:(r)=>r.args[0].toLowerCase(),upper:(r)=>r.args[0].toUpperCase(),pascal:(r)=>m.pascal(r.args[0]),camel:(r)=>m.camel(r.args[0]),capital:(r)=>m.capital(r.args[0]),snake:(r)=>m.changeCase(m.snake(r.args[0],"_"),r.args[1]),kebab:(r)=>m.changeCase(m.snake(r.args[0],"-"),r.args[1]),encode:(r)=>Buffer.from(r.args[0]).toString(r.args[1]??"base64"),decode:(r)=>Buffer.from(r.args[0],r.args[1]??"base64").toString(),uuid:(r)=>crypto.randomUUID()});var M=require("@homedev/object-utils"),sr=require("@homedev/select"),tr=()=>({merge:(r)=>r.args.flatMap((e)=>e),join:({args:[r],root:e,tags:o})=>{let s=o.key?.[0],a=o.separator?.[0],t=o.finalize?.length>0,n=a?.replace("\\n",`
2
+ `);if(!Array.isArray(r))throw Error("Object is not a list");let l=((s?.length)?r.map((i)=>sr.select({...e,...i},s)):r).join(n);return t&&l.length&&n?l+n:l},list:({args:r})=>M.toList(r[0],r[1]),object:({args:r})=>M.toObject(r[0],r[1]),range:({args:[r,e,o]})=>{let s=parseInt(r),a=parseInt(e),t=parseInt(o)||1;if(isNaN(s)||isNaN(a))throw Error("Invalid range");return Array.from({length:Math.floor((a-s)/t)+1},(n,l)=>s+l*t)}});var ar=require("@homedev/fields"),nr=require("@homedev/object-utils"),v=require("@homedev/select"),ir=()=>({each:{processArgs:!1,fn:async({rawArgs:[r,e,o,...s],root:a,options:t,tags:n})=>{let{quoted:l}=e,i=await v.select(a,r.value),p=l?e.value.replaceAll("\\$","$"):await v.select(a,e.value),A=o?.value,_=Array.isArray(i)?i:nr.toList(i),b=[];for(let f=0;f<_.length;f++){let P=JSON.parse(JSON.stringify(p)),h={instance:P},dr=typeof p==="string"?h:P,wr={...a,item:_[f],index:f,params:s.map((Fr)=>Fr.value),instance:P,parent:a.this};if(await ar.processFields(dr,{...t,root:wr}),A!==void 0&&A!=="@")b.push(h.instance[A]);else b.push(h.instance)}if(n.join?.length){let f=n.join[0].replaceAll("\\n",`
3
+ `).replaceAll("\\$","$").replaceAll("\\t","\t");return b.join(f)+(n.finalize?.length?f:"")}return b}}});var lr=require("@homedev/select"),F=async(r,e,o)=>r.rawArgs[e].quoted?r.rawArgs[e].value:await lr.select(r.root,r.rawArgs[e].value,{defaultValue:o}),pr=()=>({default:{processArgs:!1,fn:async(r)=>{let e=r.rawArgs[1]?.value?await F(r,1):"";return F(r,0,e)}},switch:{processArgs:!1,fn:async(r)=>{let e=await F(r,0,!1),o=await F(r,1);if(o[e]===void 0){if(r.rawArgs.length>2)return F(r,2);throw Error(`Unhandled switch case: ${e}`)}return o[e]}}});var mr=()=>({log:(r)=>{console.log(...r.args)}});var fr=()=>({if:{types:{0:"boolean"},fn:(r)=>r.args[0]?r.args[1]:r.args[2]},check:{types:{0:["eq","ne","lt","le","gt","ge","in","notin","null","notnull","empty","notempty","nullorempty","notnullorempty"]},fn:(r)=>{let[e,...o]=r.args;switch(e){case"eq":return o.every((s,a,t)=>s===t[0]);case"ne":return o.every((s,a,t)=>s!==t[0]);case"lt":return o[0]<o[1];case"le":return o[0]<=o[1];case"gt":return o[0]>o[1];case"ge":return o[0]>=o[1];case"in":return o[0].includes(o[1]);case"notin":return!o[0].includes(o[1]);case"null":return o.every((s,a,t)=>s===null||s===void 0);case"notnull":return o.every((s,a,t)=>s!==null&&s!==void 0);case"empty":return o.every((s,a,t)=>s==="");case"notempty":return o.every((s,a,t)=>s!=="");case"nullorempty":return o.every((s,a,t)=>s===null||s===void 0||s==="");case"notnullorempty":return o.every((s,a,t)=>s!==null&&s!==void 0&&s!=="")}}}});var ur=(r)=>r.keys($(r)).keys(z(r)).keys(B()).keys(Y()).keys(U()).keys(K()).keys(Q(r)).keys(x(r)).sources(rr(r)).sources(er()).sources(or()).sources(tr()).sources(ir()).sources(pr()).sources(mr()).sources(fr());class yr{includeDirectories=[];includes=[];outputs=[];vars={};cache={};fields={sources:{},keys:{}};objectMetadata={};constructor(){this.use(ur)}use(r){return r(this),this}includeDirectory(...r){return this.includeDirectories.push(...r),this}getIncludeDirectories(){return this.includeDirectories}include(...r){return this.includes.push(...r),this}keys(r){return Object.assign(this.fields.keys,{...this.fields.keys,...r}),this}sources(r){return Object.assign(this.fields.sources,{...this.fields.sources,...r}),this}variables(r){return this.vars={...this.vars,...r},this}getOutputs(){return this.outputs}output(r){return this.outputs.push(r),this}metadata(r,e){return this.objectMetadata[r]=e,this}getMetadata(r){return this.objectMetadata[r]}getAllMetadata(){return this.objectMetadata}filter(r){return this.fields.filters??=[],this.fields.filters?.push(r),this}async docIncludes(r,e){let o=[];if(r.content.includes)o.push(...r.content.includes),delete r.content.includes;o.push(...this.includes),this.includes.length=0;for(let s of o)gr.merge(await this.load(s,r.folderPath,{parent:r.content,...e},!0),r.content)}async loadObject(r,e,o){return await cr.processFields(r,{...this.fields,globalContext:{file:o?.fullPath??"@internal"},root:{...this.fields.root,...this.vars,$document:{root:{content:r},fileName:o?.fileName??"@internal",folder:o?.folderPath??"@internal",fullPath:o?.fullPath??"@internal",...e}}}),r}async load(r,e,o,s){if(this.cache[r])return this.cache[r];let a=e?[e]:[];a.push(...this.includeDirectories.map((n)=>C.default.isAbsolute(n)?n:C.default.join(e??process.cwd(),n)));let t=await k.loadFormat(r,{dirs:a});if(!t.content)return null;if(await this.docIncludes(t,o),s!==!0)return this.loadObject(t.content,o,{fileName:t.fullPath,folderPath:t.folderPath,fullPath:t.fullPath});return t.content}async writeOutputs(r){await k.writeOutputs(this.getOutputs(),r)}}
package/package.json CHANGED
@@ -1,20 +1,21 @@
1
1
  {
2
2
  "name": "@homedev/objector",
3
- "version": "1.2.1",
3
+ "version": "1.2.3",
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
- "typings": "dist/index.d.ts",
10
- "peerDependencies": {
11
- "@homedev/fields": "^1.1.2",
12
- "@homedev/files": "^1.0.2",
13
- "@homedev/merge": "^1.0.2",
14
- "@homedev/navigate": "^1.1.0",
15
- "@homedev/object-utils": "^1.0.2",
16
- "@homedev/select": "^1.1.0",
17
- "@homedev/string-utils": "^1.0.6",
9
+ "dependencies": {
10
+ "@homedev/fields": "^1.2.5",
11
+ "@homedev/files": "^1.0.3",
12
+ "@homedev/merge": "^1.0.3",
13
+ "@homedev/navigate": "^1.1.1",
14
+ "@homedev/object-utils": "^1.0.3",
15
+ "@homedev/select": "^1.1.2",
16
+ "@homedev/split": "^1.1.3",
17
+ "@homedev/string-utils": "^1.0.8",
18
18
  "yaml": "^2.8.1"
19
- }
19
+ },
20
+ "typings": "dist/index.d.ts"
20
21
  }