@homedev/fields 1.1.0 → 1.1.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.d.ts CHANGED
@@ -45,7 +45,7 @@ export declare interface ProcessFieldsOptions {
45
45
  sources?: FieldProcessorMap;
46
46
  keys?: FieldProcessorMap;
47
47
  filters?: RegExp[];
48
- root?: any;
48
+ root?: Record<any, any>;
49
49
  globalContext?: any;
50
50
  }
51
51
 
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var{defineProperty:z,getOwnPropertyNames:B,getOwnPropertyDescriptor:m}=Object,N=Object.prototype.hasOwnProperty;var Z=new WeakMap,R=(F)=>{var f=Z.get(F),P;if(f)return f;if(f=z({},"__esModule",{value:!0}),F&&typeof F==="object"||typeof F==="function")B(F).map((g)=>!N.call(f,g)&&z(f,g,{get:()=>F[g],enumerable:!(P=m(F,g))||P.enumerable}));return Z.set(F,f),f};var k=(F,f)=>{for(var P in f)z(F,P,{get:f[P],enumerable:!0,configurable:!0,set:(g)=>f[P]=()=>g})};var n={};k(n,{processFields:()=>L,getProcessor:()=>A,getArgs:()=>H});module.exports=R(n);var D=require("@homedev/split");var G=require("@homedev/select"),_=(F,f)=>{if(typeof F.value==="string"){if(F.quoted)return F.value;if(F.value.startsWith("[")&&F.value.endsWith("]"))return F.value.slice(1,-1).split(";").map((P)=>{let g=P.trim();if(!isNaN(+g))return+g;return g});if(F.value.startsWith("@"))return F.value.slice(1);if(!isNaN(+F.value))return+F.value}return f(F.value)},q=(F,f,P,g,b,d)=>{let M=g?.(F)??F,S=b(M);if(S[0])return S[1];if(!f){let $=G.select(P,F),U=b($);if(U[0])return U[1]}throw new Error(d)},Q=(F,f,P,g)=>{let b=F.types?.[g];if(!b||b==="ref")return _(f,(M)=>G.select(P,M));let d=_(f,()=>f.value);if(Array.isArray(b)){if(!b.includes(d))throw new Error(`Argument ${g.toString()} must be one of [${b.join(", ")}]: ${d}`);return d}if(typeof b==="string")switch(b){case"number":return q(d,f.quoted,P,(M)=>Number(M),(M)=>[!isNaN(M),M],`Argument ${g.toString()} must be a number: ${d}`);case"boolean":return q(d,f.quoted,P,null,(M)=>{if([!0,"true","1",1,"yes","on"].includes(M))return[!0,!0];if([!1,"false","0",0,"no","off"].includes(M))return[!0,!1];if([null,"null","undefined",void 0,""].includes(M))return[!0,!1];if(Array.isArray(M))return[!0,M.length>0];return[!1,!1]},`Argument ${g.toString()} must be a boolean: ${d}`);case"string":return d.toString();default:throw new Error(`Unknown type for argument ${g.toString()}: ${b}`)}return b(d,P,g,f.quoted)};var A=(F,f)=>{let P=F[f];if(P===void 0)throw new Error(`Unhandled field processor type: ${f}`);return typeof P==="function"?{options:{},fn:P}:{options:P,fn:P.fn}},H=(F,f,P)=>{let g=D.splitWithQuotes(F??""),b=f.options.processArgs===!1?[]:g.map((d,M)=>Q(f.options,d,P,M));return{rawArgs:g,parsedArgs:b}};var E=require("@homedev/navigate");var J=require("@homedev/navigate");var I=(F,f)=>f.keys!==void 0&&F.key.startsWith(".")&&f.keys[F.key.substring(1)]!==void 0,y=async(F,f,P,g)=>{let{key:b,parent:d}=F,M=A(g.keys,b.substring(1));if(M.options.processArgs!==!1&&M.options.types?.[0]!==void 0)F.value=Q(M.options,{value:F.value,quoted:!1},P,0);if(typeof F.value!=="string")await L(F.value,{...g,root:P,filters:[...g.filters??[],...M.options.filters??[]]});let S=await M.fn({path:f,root:P,parent:d,key:b,options:g,value:F.value,args:[F.value],rawArgs:[]});return S instanceof J.NavigateResult?S:J.NavigateResult.ReplaceParent(S)};var C=require("@homedev/navigate"),j=require("@homedev/select");var T=(F)=>{let f=[],P=0;while(P<F.length)if(F[P]==="$"&&F[P+1]==="("&&(P===0||F[P-1]!=="\\")){let g=P;P+=2;let b=1;for(;P<F.length;P++)if(F[P]==="(")b++;else if(F[P]===")"){if(b--,b===0){f.push([g,P]);break}}if(b!==0)throw new Error(`Unmatched opening $( at position ${g.toString()}`);P++}else P++;return f};class W{value;constructor(F){this.value=F}}var K=async(F,f,P)=>{for(let g=f.length-1;g>=0;g--){let[b,d]=f[g],M=F.slice(b+2,d),S=await K(M,T(M),P);if(typeof S==="object")return S;let $=await P(S,F);if($ instanceof W)return $.value;F=F.slice(0,b)+$+F.slice(d+1)}return F},O=async(F,f)=>K(F,T(F),f);var x=async(F,f,P,g)=>{let b=await(async()=>{let d=/([\w\d.-_/]+):(.+)/.exec(F);if(!d)return await j.select(f,F);let[M,S,$]=d,U=A(g.sources,S),Y=H($,U,f);return await U.fn({args:Y.parsedArgs,rawArgs:Y.rawArgs,key:S,options:g,root:f,path:P,value:null})})();if(b===null||b===void 0)return"";if(typeof b==="object")return new W(b);return b},X=async(F,f,P,g)=>{let b=await O(f,(d)=>x(d,P,F,g));if(b instanceof C.NavigateResult)return b;if(b===f)return C.NavigateResult.Explore();if(typeof b==="string"){let d=await X(F,b,P,g);if(d.action!==C.NavigateAction.Explore)return d}return C.NavigateResult.ReplaceItem(b)};var L=async(F,f)=>{return f??={},await E.navigate(F,async(P)=>{let g=[...P.path,P.key].join(".");if(f?.filters?.length&&f.filters.some((d)=>d.test(g)))return E.NavigateResult.NoExplore();let b={...F,...f.root,this:P.parent,parent:P.parents.length>0?P.parents[P.parents.length-1]:{},parents:P.parents.toReversed()};try{if(P.key.startsWith("$"))return E.NavigateResult.NoExplore();let d=E.NavigateResult.Explore();if(typeof P.value==="string")switch(d=await X(g,P.value,b,f),d.action){case E.NavigateAction.Explore:break;case E.NavigateAction.ReplaceItem:P.value=d.by;break;default:return d}if(I(P,f))d=await y(P,g,b,f);return d}catch(d){throw new Error(`${d.message}
2
- (${g})`)}}),F};
1
+ var{defineProperty:z,getOwnPropertyNames:B,getOwnPropertyDescriptor:m}=Object,N=Object.prototype.hasOwnProperty;var Z=new WeakMap,R=(F)=>{var f=Z.get(F),P;if(f)return f;if(f=z({},"__esModule",{value:!0}),F&&typeof F==="object"||typeof F==="function")B(F).map((d)=>!N.call(f,d)&&z(f,d,{get:()=>F[d],enumerable:!(P=m(F,d))||P.enumerable}));return Z.set(F,f),f};var k=(F,f)=>{for(var P in f)z(F,P,{get:f[P],enumerable:!0,configurable:!0,set:(d)=>f[P]=()=>d})};var w={};k(w,{processFields:()=>L,getProcessor:()=>A,getArgs:()=>H});module.exports=R(w);var y=require("@homedev/split");var G=require("@homedev/select"),_=(F,f)=>{if(typeof F.value==="string"){if(F.quoted)return F.value;if(F.value.startsWith("[")&&F.value.endsWith("]"))return F.value.slice(1,-1).split(";").map((P)=>{let d=P.trim();if(!isNaN(+d))return+d;return d});if(F.value.startsWith("@"))return F.value.slice(1);if(!isNaN(+F.value))return+F.value}return f(F.value)},q=(F,f,P,d,g,b)=>{let M=d?.(F)??F,S=g(M);if(S[0])return S[1];if(!f){let $=G.select(P,F),U=g($);if(U[0])return U[1]}throw new Error(b)},Q=(F,f,P,d)=>{let g=F.types?.[d];if(!g||g==="ref")return _(f,(M)=>G.select(P,M));let b=_(f,()=>f.value);if(Array.isArray(g)){if(!g.includes(b))throw new Error(`Argument ${d.toString()} must be one of [${g.join(", ")}]: ${b}`);return b}if(typeof g==="string")switch(g){case"number":return q(b,f.quoted,P,(M)=>Number(M),(M)=>[!isNaN(M),M],`Argument ${d.toString()} must be a number: ${b}`);case"boolean":return q(b,f.quoted,P,null,(M)=>{if([!0,"true","1",1,"yes","on"].includes(M))return[!0,!0];if([!1,"false","0",0,"no","off"].includes(M))return[!0,!1];if([null,"null","undefined",void 0,""].includes(M))return[!0,!1];if(Array.isArray(M))return[!0,M.length>0];return[!1,!1]},`Argument ${d.toString()} must be a boolean: ${b}`);case"string":return b.toString();default:throw new Error(`Unknown type for argument ${d.toString()}: ${g}`)}return g(b,P,d,f.quoted)};var A=(F,f)=>{let P=F[f];if(P===void 0)throw new Error(`Unhandled field processor type: ${f}`);return typeof P==="function"?{options:{},fn:P}:{options:P,fn:P.fn}},H=(F,f,P)=>{let d=y.splitWithQuotes(F??""),g=f.options.processArgs===!1?[]:d.map((b,M)=>Q(f.options,b,P,M));return{rawArgs:d,parsedArgs:g}};var E=require("@homedev/navigate");var J=require("@homedev/navigate");var D=(F,f)=>f.keys!==void 0&&F.key.startsWith(".")&&f.keys[F.key.substring(1)]!==void 0,I=async(F,f,P,d)=>{let{key:g,parent:b}=F,M=A(d.keys,g.substring(1));if(M.options.processArgs!==!1&&M.options.types?.[0]!==void 0)F.value=Q(M.options,{value:F.value,quoted:!1},P,0);if(typeof F.value!=="string")await L(F.value,{...d,root:{...P,parent:F.parent,parents:F.parents},filters:[...d.filters??[],...M.options.filters??[]]});let S=await M.fn({path:f,root:P,parent:b,key:g,options:d,value:F.value,args:[F.value],rawArgs:[]});return S instanceof J.NavigateResult?S:J.NavigateResult.ReplaceParent(S)};var C=require("@homedev/navigate"),j=require("@homedev/select");var T=(F)=>{let f=[],P=0;while(P<F.length)if(F[P]==="$"&&F[P+1]==="("&&(P===0||F[P-1]!=="\\")){let d=P;P+=2;let g=1;for(;P<F.length;P++)if(F[P]==="(")g++;else if(F[P]===")"){if(g--,g===0){f.push([d,P]);break}}if(g!==0)throw new Error(`Unmatched opening $( at position ${d.toString()}`);P++}else P++;return f};class W{value;constructor(F){this.value=F}}var K=async(F,f,P)=>{for(let d=f.length-1;d>=0;d--){let[g,b]=f[d],M=F.slice(g+2,b),S=await K(M,T(M),P);if(typeof S==="object")return S;let $=await P(S,F);if($ instanceof W)return $.value;F=F.slice(0,g)+$+F.slice(b+1)}return F},O=async(F,f)=>K(F,T(F),f);var x=async(F,f,P,d)=>{let g=await(async()=>{let b=/([\w\d.-_/]+):(.+)/.exec(F);if(!b)return await j.select(f,F);let[M,S,$]=b,U=A(d.sources,S),Y=H($,U,f);return await U.fn({args:Y.parsedArgs,rawArgs:Y.rawArgs,key:S,options:d,root:f,path:P,value:null})})();if(g===null||g===void 0)return"";if(typeof g==="object")return new W(g);return g},X=async(F,f,P,d)=>{let g=await O(f,(b)=>x(b,P,F,d));if(g instanceof C.NavigateResult)return g;if(g===f)return C.NavigateResult.Explore();if(typeof g==="string"){let b=await X(F,g,P,d);if(b.action!==C.NavigateAction.Explore)return b}return C.NavigateResult.ReplaceItem(g)};var L=async(F,f)=>{return f??={},await E.navigate(F,async(P)=>{let d=[...P.path,P.key].join(".");if(f?.filters?.length&&f.filters.some((S)=>S.test(d)))return E.NavigateResult.NoExplore();let g=P.path.length===0,b=P.parents.length>0?P.parents.toReversed():[];if(g){if(b.length>0)throw new Error("Root object should not have a parent");b=f?.root?.parents?[f.root.parent,...f.root.parents.toReversed()]:[]}let M={...F,...f.root,this:P.parent,parent:b.length>0?b[0]:null,parents:b};try{if(P.key.startsWith("$"))return E.NavigateResult.NoExplore();let S=E.NavigateResult.Explore();if(typeof P.value==="string")switch(S=await X(d,P.value,M,f),S.action){case E.NavigateAction.Explore:break;case E.NavigateAction.ReplaceItem:P.value=S.by;break;default:return S}if(D(P,f))S=await I(P,d,M,f);return S}catch(S){throw new Error(`${S.message}
2
+ (${d})`)}}),F};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homedev/fields",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "field utilities",
5
5
  "author": "julzor",
6
6
  "license": "ISC",
@@ -8,7 +8,7 @@
8
8
  "type": "module",
9
9
  "typings": "dist/index.d.ts",
10
10
  "peerDependencies": {
11
- "@homedev/navigate": "^1.0.2",
11
+ "@homedev/navigate": "^1.1.0",
12
12
  "@homedev/select": "^1.0.3",
13
13
  "@homedev/split": "^1.0.2"
14
14
  }