@homedev/fields 1.0.15 → 1.0.18

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