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