@homedev/objector 1.2.1 → 1.2.2
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.js +3 -3
- package/package.json +3 -2
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
2
|
-
`);if(!Array.isArray(r))throw Error("Object is not a list");let
|
|
3
|
-
`).replaceAll("\\$","$").replaceAll("\\t","\t");
|
|
1
|
+
var Or=Object.create;var{getPrototypeOf:Fr,defineProperty:y,getOwnPropertyNames:L,getOwnPropertyDescriptor:Mr}=Object,R=Object.prototype.hasOwnProperty;var d=(e,r,o)=>{o=e!=null?Or(Fr(e)):{};let t=r||!e||!e.__esModule?y(o,"default",{value:e,enumerable:!0}):o;for(let s of L(e))if(!R.call(t,s))y(t,s,{get:()=>e[s],enumerable:!0});return t},I=new WeakMap,kr=(e)=>{var r=I.get(e),o;if(r)return r;if(r=y({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")L(e).map((t)=>!R.call(r,t)&&y(r,t,{get:()=>e[t],enumerable:!(o=Mr(e,t))||o.enumerable}));return I.set(e,r),r};var Ar=(e,r)=>{for(var o in r)y(e,o,{get:r[o],enumerable:!0,configurable:!0,set:(t)=>r[o]=()=>t})};var Pr={};Ar(Pr,{Objector:()=>dr});module.exports=kr(Pr);var gr=require("@homedev/fields"),M=require("@homedev/files"),yr=require("@homedev/merge"),_=d(require("path"));var $=require("@homedev/navigate"),N=(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 $.NavigateResult.SkipSiblings()}});var q=require("@homedev/navigate"),z=d(require("path")),B=(e)=>({load:async(r)=>{let o=r.options.globalContext;for(let{file:t}of Array.isArray(r.value)?r.value:[r.value]){if(!t)throw Error("File reference required");await e.load(t,o.file&&z.default.dirname(o.file))}return q.NavigateResult.DeleteItem()}});var h=require("@homedev/fields"),E=require("@homedev/merge"),b=require("@homedev/select"),J=(e)=>({each:{filters:[/select|model/],fn:async(r)=>{let o=r.value;delete r.parent[r.key];let t=()=>{let p=o.model;if(typeof r.value==="string"||!p)return r.parent;if(typeof p==="string")return b.select(r.root,p);return p},s=()=>{if(typeof r.value==="string")return b.select(r.root,r.value);if(Array.isArray(r.value))return r.value;if(typeof o.from==="string")return b.select(r.root,o.from);return o.from},a=async(p)=>{if(o.selector===void 0)return p;if(typeof o.selector!=="string"){let f=JSON.parse(JSON.stringify(o.selector));return await h.processFields(f,{...r.options,root:{...r.root,result:p}}),f}return await b.select({...r.root,result:p},o.selector)},n=await s(),i=await t();if(!Array.isArray(n))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=E.mergeAll([o.model,...Array.isArray(o.extend.model)?o.extend.model:[o.extend.model]]);let l=[];for(let p=0;p<n.length;p++){let f=JSON.parse(JSON.stringify(i));if(await h.processFields(f,{...r.options,root:{...r.root,index:p,item:n[p],instance:f}}),o.extend?.result)f=E.mergeAll([f,...Array.isArray(o.extend?.result)?o.extend.result:[Array.isArray(o.extend?.result)]]);l.push(await a(f))}return l}}});var U=require("@homedev/select"),T=(e)=>({concat:async(r)=>{let o=[];for(let t of Array.isArray(r.value)?r.value:[r.value])o.push(...await U.select(r.root,t));return o.filter((t)=>t!==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(t,s)=>{for(let a of Array.isArray(s)?s:[s]){let n=await K.select(r.root,a),i=JSON.parse(JSON.stringify(n));if(i[r.key])await o(i,i[r.key]);await G.processFields(i,{...r.options}),V.merge(i,t),delete t[r.key]}};return await o(r.parent,r.value),H.NavigateResult.Explore()}});var c=require("@homedev/navigate"),W=(e)=>({skip:{types:{0:"boolean"},fn:(r)=>r.value?c.NavigateResult.DeleteParent():c.NavigateResult.DeleteItem()},metadata:({path:r,value:o})=>{return e.metadata(r,o),c.NavigateResult.DeleteItem()},if:{types:{0:"boolean"},fn:(r)=>{let o=r.parent[".then"],t=r.parent[".else"];if(o)delete r.parent[".then"];if(t)delete r.parent[".else"];return r.value?o??c.NavigateResult.DeleteItem():t??c.NavigateResult.DeleteItem()}},switch:(r)=>{let o=r.value;if(!o.cases)throw Error("Missing cases for switch");return o.cases[o.from]??o.default??c.NavigateResult.DeleteParent()}});var X=require("@homedev/merge"),Y=require("@homedev/select"),Z=(e)=>({from:async({root:r,parent:o,value:t})=>{let s=await Y.select(r,t);if(o.content){if(Array.isArray(o.content)&&Array.isArray(s))return[...s,...o.content];return X.merge(s,o.content),o.content}return s}});var x=require("@homedev/navigate"),S=d(require("node:vm")),rr=(e)=>({modules:async(r)=>{for(let[o,t]of Object.entries(r.value)){let s=S.default.createContext({console,objector:e,document:r.root}),a=new S.default.SourceTextModule(t,{identifier:o,context:s});return await a.link((n)=>{throw Error(`Module ${n} is not allowed`)}),await a.evaluate(),e.sources(Object.fromEntries(Object.entries(a.namespace).map(([n,i])=>[`${o}.${n}`,(l)=>i(l,...l.args)]))),x.NavigateResult.DeleteItem()}}});var w=require("@homedev/files"),v=d(require("fs/promises")),g=d(require("path")),er=(e)=>({include:async(r)=>{let{file:o}=r.options.globalContext;return await w.globMap(r.args[0],{cwd:g.default.dirname(o),filter:(t)=>g.default.basename(o)!==t,map:async(t)=>e.load(t,g.default.dirname(o),{parent:r.root})})},file:async(r)=>await v.default.readFile(await w.locate(r.args[0],e.getIncludeDirectories())).then((o)=>o.toString()),scan:async(r)=>{let o=[],s=(()=>{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:a}=r.options.globalContext,n=r.args[1]?await w.locate(r.args[1],e.getIncludeDirectories()):g.default.dirname(a);for await(let i of v.default.glob(r.args[0],{cwd:n,exclude:(l)=>s.some((p)=>g.default.matchesGlob(l,p))}))o.push(i);return o}});var or=(e)=>({env:(r)=>process.env[r.args[0]]});var m=require("@homedev/string-utils"),tr=(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)=>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 F=require("@homedev/object-utils"),sr=require("@homedev/select"),ar=(e)=>({merge:(r)=>r.args.flatMap((o)=>o),join:({args:[r],root:o,tags:t})=>{let s=t.key?.[0],a=t.separator?.[0],n=t.finalize?.length>0,i=a?.replace("\\n",`
|
|
2
|
+
`);if(!Array.isArray(r))throw Error("Object is not a list");let l=((s?.length)?r.map((p)=>sr.select({...o,...p},s)):r).join(i);return n&&l.length&&i?l+i:l},list:({args:r})=>F.toList(r[0],r[1]),object:({args:r})=>F.toObject(r[0],r[1]),range:({args:[r,o,t]})=>{let s=parseInt(r),a=parseInt(o),n=parseInt(t)||1;if(isNaN(s)||isNaN(a))throw Error("Invalid range");return Array.from({length:Math.floor((a-s)/n)+1},(i,l)=>s+l*n)}});var nr=require("@homedev/fields"),ir=require("@homedev/object-utils"),C=require("@homedev/select"),pr=(e)=>({each:{processArgs:!1,fn:async({rawArgs:[r,o,t,...s],root:a,options:n,tags:i})=>{let{quoted:l}=o,p=await C.select(a,r.value),f=l?o.value.replaceAll("\\$","$"):await C.select(a,o.value),k=t?.value,D=Array.isArray(p)?p:ir.toList(p),O=[];for(let u=0;u<D.length;u++){let A=JSON.parse(JSON.stringify(f)),P={instance:A},br=typeof f==="string"?P:A,wr={...a,item:D[u],index:u,params:s.map((jr)=>jr.value),instance:A,parent:a.this};if(await nr.processFields(br,{...n,root:wr}),k!==void 0&&k!=="@")O.push(P.instance[k]);else O.push(P.instance)}if(i.join?.length){let u=i.join[0].replaceAll("\\n",`
|
|
3
|
+
`).replaceAll("\\$","$").replaceAll("\\t","\t");return O.join(u)+(i.finalize?.length?u:"")}return O}}});var lr=require("@homedev/select"),j=async(e,r,o)=>e.rawArgs[r].quoted?e.rawArgs[r].value:await lr.select(e.root,e.rawArgs[r].value,{defaultValue:o}),mr=(e)=>({default:{processArgs:!1,fn:async(r)=>{let o=r.rawArgs[1]?.value?await j(r,1):"";return j(r,0,o)}},switch:{processArgs:!1,fn:async(r)=>{let o=await j(r,0,!1),t=await j(r,1);if(t[o]===void 0){if(r.rawArgs.length>2)return j(r,2);throw Error(`Unhandled switch case: ${o}`)}return t[o]}}});var fr=(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,...t]=r.args;switch(o){case"eq":return t.every((s,a,n)=>s===n[0]);case"ne":return t.every((s,a,n)=>s!==n[0]);case"lt":return t[0]<t[1];case"le":return t[0]<=t[1];case"gt":return t[0]>t[1];case"ge":return t[0]>=t[1];case"in":return t[0].includes(t[1]);case"notin":return!t[0].includes(t[1]);case"null":return t.every((s,a,n)=>s===null||s===void 0);case"notnull":return t.every((s,a,n)=>s!==null&&s!==void 0);case"empty":return t.every((s,a,n)=>s==="");case"notempty":return t.every((s,a,n)=>s!=="");case"nullorempty":return t.every((s,a,n)=>s===null||s===void 0||s==="");case"notnullorempty":return t.every((s,a,n)=>s!==null&&s!==void 0&&s!=="")}}}});var cr=(e)=>e.keys(N(e)).keys(B(e)).keys(J(e)).keys(Z(e)).keys(T(e)).keys(Q(e)).keys(W(e)).keys(rr(e)).sources(er(e)).sources(or(e)).sources(tr(e)).sources(ar(e)).sources(pr(e)).sources(mr(e)).sources(fr(e)).sources(ur(e));class dr{includeDirectories=[];includes=[];outputs=[];vars={};cache={};fields={sources:{},keys:{}};objectMetadata={};constructor(){this.use(cr)}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 t of o)yr.merge(await this.load(t,e.folderPath,{parent:e.content,...r},!0),e.content)}async loadObject(e,r,o){return await gr.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,t){if(this.cache[e])return this.cache[e];let s=r?[r]:[];s.push(...this.includeDirectories.map((n)=>_.default.isAbsolute(n)?n:_.default.join(r??process.cwd(),n)));let a=await M.loadFormat(e,{dirs:s});if(!a.content)return null;if(await this.docIncludes(a,o),t!==!0)return this.loadObject(a.content,o,{fileName:a.fullPath,folderPath:a.folderPath,fullPath:a.fullPath});return a.content}async writeOutputs(e){await M.writeOutputs(this.getOutputs(),e)}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@homedev/objector",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"description": "object extensions for YAML/JSON",
|
|
5
5
|
"author": "julzor",
|
|
6
6
|
"license": "ISC",
|
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
"type": "module",
|
|
9
9
|
"typings": "dist/index.d.ts",
|
|
10
10
|
"peerDependencies": {
|
|
11
|
-
"@homedev/fields": "^1.1
|
|
11
|
+
"@homedev/fields": "^1.2.1",
|
|
12
12
|
"@homedev/files": "^1.0.2",
|
|
13
13
|
"@homedev/merge": "^1.0.2",
|
|
14
14
|
"@homedev/navigate": "^1.1.0",
|
|
15
15
|
"@homedev/object-utils": "^1.0.2",
|
|
16
16
|
"@homedev/select": "^1.1.0",
|
|
17
|
+
"@homedev/split": "^1.1.2",
|
|
17
18
|
"@homedev/string-utils": "^1.0.6",
|
|
18
19
|
"yaml": "^2.8.1"
|
|
19
20
|
}
|