@homedev/fields 1.0.14 → 1.0.17

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
@@ -23,7 +23,6 @@ export declare interface FieldProcessorOptions {
23
23
  filters?: RegExp[];
24
24
  processArgs?: boolean;
25
25
  types?: Record<number, string | ((value: string, root: any, index: number, quoted: boolean) => any)>;
26
- keywords?: Record<number, string[]>;
27
26
  }
28
27
 
29
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:k}=Object,z=Object.prototype.hasOwnProperty;var I=new WeakMap,h=(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)=>!z.call(b,M)&&Z(b,M,{get:()=>F[M],enumerable:!(P=k(F,M))||P.enumerable}));return I.set(F,b),b};var r=(F,b)=>{for(var P in b)Z(F,P,{get:b[P],enumerable:!0,configurable:!0,set:(M)=>b[P]=()=>M})};var x={};r(x,{processFields:()=>y,getProcessor:()=>H});module.exports=h(x);var H=(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 J=require("@homedev/navigate");var G=require("@homedev/navigate");var A=require("@homedev/select"),K=(F,b,P,M)=>{if(F.quoted)return F.value;if(!isNaN(+F.value))return+F.value;if(typeof F.value==="string"){if(F.value.startsWith("[")&&F.value.endsWith("]"))return F.value.slice(1,-1).split(";").map((E)=>{let S=E.trim();if(!isNaN(+S))return+S;return S});if(F.value.startsWith("@")){let E=F.value.slice(1);if(!M?.[P]||M[P].includes(E))return E;throw new Error(`Unknown keyword "${E}" for argument ${P.toString()}`)}}return A.select(b,F.value)};var L=(F,b,P,M)=>{let E=F.types?.[M];if(E===void 0)return K(b,P,M,F.keywords);let{value:S,quoted:T}=b;if(typeof E==="string")switch(E){case"number":{let C=Number(S);if(isNaN(C))throw new Error(`Argument ${M.toString()} must be a number: ${S}`);return C}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,T)};var V=require("@homedev/select"),g=require("@homedev/split");var U=require("@homedev/navigate");var j=async(F,b,P,M,E)=>{if(b===null)return U.NavigateResult.DeleteParent();if(b===F)return U.NavigateResult.Explore();if(b instanceof U.NavigateResult)return b;if(typeof b==="string"){let S=await q(P,b,M,E);if(S.action!==U.NavigateAction.Explore)return S}return U.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 X{value;constructor(F){this.value=F}}var B=async(F,b,P)=>{for(let M=b.length-1;M>=0;M--){let[E,S]=b[M],T=F.slice(E+2,S),C=await B(T,_(T),P);if(typeof C==="object")return C;let $=await P(F,C);if($ instanceof X)return $.value;F=F.slice(0,E)+$+F.slice(S+1)}return F},f=async(F,b)=>B(F,_(F),b);var q=async(F,b,P,M)=>{let E=await f(b,async(S,T)=>{let C,$=/([\w\d.-_/]+):(.+)/.exec(T);if($!==null){let[Y,D,N]=$,Q=g.splitWithQuotes(N??""),[W,w]=H(M?.sources,D);C=await w({args:W.processArgs===!1?[]:Q.map((R,d)=>L(W,R,P,d)),rawArgs:Q,key:D,options:M,root:P})}else C=await V.select(P,T);return typeof C==="object"?new X(C):C??""});return j(b,E,F,P,M)};var O=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},S=F.key.substring(1),[T,C]=H(M.keys,S);if(T.processArgs!==!1)F.value=L(T,{value:F.value,quoted:!0},E,0);if(typeof F.value==="string"){let Y=await q(b,F.value,E,M);if(Y.by)F.value=Y.by}else await y(F.value,{...M,root:E,filters:[...M.filters??[],...T.filters??[]]});let $=await C({args:[F.value],rawArgs:[],path:b,value:F.value,root:P,parent:F.parent,key:F.key,options:M});if($ instanceof G.NavigateResult)return $;if($===null)return G.NavigateResult.DeleteParent();if($===void 0)return G.NavigateResult.Explore();return G.NavigateResult.ReplaceParent($)};var y=async(F,b)=>{return b??={},await J.navigate(F,async(P)=>{let M=[...P.path,P.key].join(".");if(b?.filters?.length&&b.filters.some((S)=>S.test(M)))return J.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 O(P,M,E,b);if(S!==null)return S;if(typeof P.value==="string")return await q(M,P.value,E,b);return J.NavigateResult.Explore()}catch(S){throw new Error(`${S.message}
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}
2
2
  (${M})`)}}),F};
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@homedev/fields",
3
- "version": "1.0.14",
3
+ "version": "1.0.17",
4
4
  "description": "field utilities",
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": {
9
+ "dependencies": {
11
10
  "@homedev/navigate": "^1.0.2",
12
11
  "@homedev/select": "^1.0.3",
13
12
  "@homedev/split": "^1.0.2"
14
- }
13
+ },
14
+ "typings": "dist/index.d.ts"
15
15
  }