New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

json-crawl

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

json-crawl - npm Package Compare versions

Comparing version 0.2.4 to 0.2.5

2

browser/crawl.d.ts

@@ -1,3 +0,3 @@

import { CrawlHook, SyncCrawlHook, CrawlParams } from "./types";
import type { CrawlHook, SyncCrawlHook, CrawlParams } from "./types";
export declare const crawl: <T, R = any>(data: any, hooks: CrawlHook<T, R> | CrawlHook<T, R>[], params?: CrawlParams<T, R>) => Promise<void>;
export declare const syncCrawl: <T, R = any>(data: any, hooks: SyncCrawlHook<T, R> | SyncCrawlHook<T, R>[], params?: CrawlParams<T, R>) => void;

@@ -1,41 +0,58 @@

const h = (u) => typeof u == "object" && u !== null, f = (u) => Array.isArray(u), p = (u = {}, n, o, s = {}) => {
const r = `/${n}`;
let e = u;
if (r in e)
e = e[r];
else if ("/*" in e)
e = e["/*"];
const p = (i = {}, n, l, s = {}) => {
const t = `/${n}`;
let o = i;
if (t in o)
o = o[t];
else if ("/*" in o)
o = o["/*"];
else
return "/**" in e ? (e = e["/**"], { ...typeof e == "function" ? e(o, s) : e, "/**": e }) : void 0;
return typeof e == "function" ? e(o, s) : e;
}, k = (u, n, o = {}) => {
let s = u;
for (let r = 0; r < n.length; r++)
if (s = p(s, n[r], n.slice(0, r), o), !s)
return "/**" in o ? (o = o["/**"], { ...typeof o == "function" ? o(l, s) : o, "/**": o }) : void 0;
return typeof o == "function" ? o(l, s) : o;
}, A = (i, n, l = {}) => {
let s = i;
for (let t = 0; t < n.length; t++)
if (s = p(s, n[t], n.slice(0, t), l), !s)
return;
return s;
}, g = async (u, n, o = {}) => {
var r;
n = f(n) ? n : [n];
const s = [{ data: u, state: o.state, path: [], keys: [], keyIndex: -1, rules: o.rules }];
for (; s.length > 0; ) {
const e = s[s.length - 1];
}, k = (i) => {
const n = {}, l = i.reduce((s, t) => (Object.keys(t).forEach((o) => s.add(o)), s), /* @__PURE__ */ new Set());
for (const s of l.keys()) {
const t = i.filter((o) => s in o);
if (t.length === 1) {
n[s] = t[0][s];
continue;
}
if (s.charAt(0) === "/")
n[s] = (o, e) => {
const u = t.map((c) => typeof c[s] == "function" ? c[s](o, e) : c[s]);
return k(u);
};
else
throw new Error(`Cannot merge rules. Duplicate key: ${s}. Rules should not have same Rule key`);
}
return n;
}, g = (i) => typeof i == "object" && i !== null, d = (i) => Array.isArray(i), x = async (i, n, l = {}) => {
var o;
n = d(n) ? n : [n];
const s = d(l.rules) ? k(l.rules) : l.rules, t = [{ data: i, state: l.state, path: [], keys: [], keyIndex: -1, rules: s }];
for (; t.length > 0; ) {
const e = t[t.length - 1];
if (e.keyIndex >= e.keys.length) {
for (; (r = e.hooks) != null && r.length; )
for (; (o = e.hooks) != null && o.length; )
e.hooks.pop()();
s.pop();
t.pop();
continue;
}
const l = e.keys[e.keyIndex++], [a, c, i] = s.length > 1 ? [e.data[l], [...e.path, l], p(e.rules, l, [...e.path, l], o.state)] : [e.data, e.path, o.rules];
let t = { value: a, state: e.state };
const u = e.keys[e.keyIndex++], [c, a, h] = t.length > 1 ? [e.data[u], [...e.path, u], p(e.rules, u, [...e.path, u], l.state)] : [e.data, e.path, s];
let r = { value: c, state: e.state };
const y = [];
for (const d of n)
if (!(!d || !t)) {
if (t = await d(t.value, { path: c, key: l, state: t.state, rules: i }), t != null && t.terminate)
for (const f of n)
if (!(!f || !r)) {
if (r = await f(r.value, { path: a, key: u, state: r.state, rules: h }), r != null && r.terminate)
return;
t != null && t.exitHook && y.push(t.exitHook);
r != null && r.exitHook && y.push(r.exitHook);
}
if (t && h(t.value)) {
const d = f(t.value) ? [...t.value.keys()] : Object.keys(t.value);
s.push({ hooks: y, state: t.state, data: t.value, path: c, keys: d, keyIndex: 0, rules: i });
if (r && g(r.value)) {
const f = d(r.value) ? [...r.value.keys()] : Object.keys(r.value);
t.push({ hooks: y, state: r.state, data: r.value, path: a, keys: f, keyIndex: 0, rules: h });
} else

@@ -45,26 +62,26 @@ for (; y.length; )

}
}, x = (u, n, o = {}) => {
var r;
n = f(n) ? n : [n];
const s = [{ data: u, state: o.state, path: [], keys: [], keyIndex: -1, rules: o.rules }];
for (; s.length > 0; ) {
const e = s[s.length - 1];
}, w = (i, n, l = {}) => {
var o;
n = d(n) ? n : [n];
const s = d(l.rules) ? k(l.rules) : l.rules, t = [{ data: i, state: l.state, path: [], keys: [], keyIndex: -1, rules: s }];
for (; t.length > 0; ) {
const e = t[t.length - 1];
if (e.keyIndex >= e.keys.length) {
for (; (r = e.hooks) != null && r.length; )
for (; (o = e.hooks) != null && o.length; )
e.hooks.pop()();
s.pop();
t.pop();
continue;
}
const l = e.keys[e.keyIndex++], [a, c, i] = s.length > 1 ? [e.data[l], [...e.path, l], p(e.rules, l, [...e.path, l], o.state)] : [e.data, e.path, o.rules];
let t = { value: a, state: e.state };
const u = e.keys[e.keyIndex++], [c, a, h] = t.length > 1 ? [e.data[u], [...e.path, u], p(e.rules, u, [...e.path, u], l.state)] : [e.data, e.path, s];
let r = { value: c, state: e.state };
const y = [];
for (const d of n)
if (!(!d || !t)) {
if (t = d(t.value, { path: c, key: l, state: t.state || e.state, rules: i }), t != null && t.terminate)
for (const f of n)
if (!(!f || !r)) {
if (r = f(r.value, { path: a, key: u, state: r.state || e.state, rules: h }), r != null && r.terminate)
return;
t != null && t.exitHook && y.push(t.exitHook);
r != null && r.exitHook && y.push(r.exitHook);
}
if (t && h(t.value)) {
const d = f(t.value) ? [...t.value.keys()] : Object.keys(t.value);
s.push({ hooks: y, state: t.state, data: t.value, path: c, keys: d, keyIndex: 0, rules: i });
if (r && g(r.value)) {
const f = d(r.value) ? [...r.value.keys()] : Object.keys(r.value);
t.push({ hooks: y, state: r.state, data: r.value, path: a, keys: f, keyIndex: 0, rules: h });
} else

@@ -74,56 +91,57 @@ for (; y.length; )

}
}, w = async (u, n = [], o = {}) => {
}, H = async (i, n = [], l = {}) => {
n = Array.isArray(n) ? n : [n];
const s = {}, r = async (l, { path: a, key: c, state: i }) => (c = a.length ? c : "#", i.node[c] = h(l) ? Array.isArray(l) ? [] : {} : l, { value: l, state: { ...i, node: i.node[c] } }), e = {
state: { ...o.state, root: s, node: s },
...o.rules ? { rules: o.rules } : {}
const s = {}, t = async (e, { path: u, key: c, state: a }) => (c = u.length ? c : "#", a.node[c] = g(e) ? Array.isArray(e) ? [] : {} : e, { value: e, state: { ...a, node: a.node[c] } }), o = {
state: { ...l.state, root: s, node: s },
...l.rules ? { rules: l.rules } : {}
};
return await g(u, [...n, r], e), s["#"];
}, A = (u, n = [], o = {}) => {
return await x(i, [...n, t], o), s["#"];
}, b = (i, n = [], l = {}) => {
n = Array.isArray(n) ? n : [n];
const s = {}, r = (l, { path: a, key: c, state: i }) => (c = a.length ? c : "#", i.node[c] = h(l) ? Array.isArray(l) ? [] : {} : l, { value: l, state: { ...i, node: i.node[c] } }), e = {
state: { ...o.state, root: s, node: s },
...o.rules ? { rules: o.rules } : {}
const s = {}, t = (e, { path: u, key: c, state: a }) => (c = u.length ? c : "#", a.node[c] = g(e) ? Array.isArray(e) ? [] : {} : e, { value: e, state: { ...a, node: a.node[c] } }), o = {
state: { ...l.state, root: s, node: s },
...l.rules ? { rules: l.rules } : {}
};
return x(u, [...n, r], e), s["#"];
}, H = (u, n) => {
if (u === n)
return w(i, [...n, t], o), s["#"];
}, _ = (i, n) => {
if (i === n)
return !0;
let o = !0;
return x(u, (r, { key: e, state: l }) => {
const a = e === void 0 ? l.value : l.value[e], c = { value: r, state: { value: a } };
if (r === a)
let l = !0;
return w(i, (t, { key: o, state: e }) => {
const u = o === void 0 ? e.value : e.value[o], c = { value: t, state: { value: u } };
if (t === u)
return c;
if (o = !1, typeof r != typeof a)
if (l = !1, typeof t != typeof u)
return null;
if (f(r) && r.length !== a.length)
if (d(t) && t.length !== u.length)
return { terminate: !0 };
if (typeof r == "object" && r !== null) {
const i = Object.keys(r), t = Object.keys(a);
if (i.length !== t.length || !i.every((y) => t.includes(y)))
if (typeof t == "object" && t !== null) {
const a = Object.keys(t), h = Object.keys(u);
if (a.length !== h.length || !a.every((r) => h.includes(r)))
return { terminate: !0 };
} else if (r !== a)
} else if (t !== u)
return { terminate: !0 };
return o = !0, c;
}, { state: { value: n } }), o;
}, b = async (u, n = [], o = {}) => {
n = f(n) ? n : [n];
const s = { "#": u }, r = async (l, { path: a, key: c, state: i }) => (c = a.length ? c : "#", l === void 0 ? f(i.node) && typeof c == "number" ? i.node.splice(c, 1) : delete i.node[c] : i.node[c] = l, { value: l, state: i }), e = {
state: { ...o.state, root: s, node: s },
...o.rules ? { rules: o.rules } : {}
return l = !0, c;
}, { state: { value: n } }), l;
}, j = async (i, n = [], l = {}) => {
n = d(n) ? n : [n];
const s = { "#": i }, t = async (e, { path: u, key: c, state: a }) => (c = u.length ? c : "#", e === void 0 ? d(a.node) && typeof c == "number" ? a.node.splice(c, 1) : delete a.node[c] : a.node[c] = e, { value: e, state: a }), o = {
state: { ...l.state, root: s, node: s },
...l.rules ? { rules: l.rules } : {}
};
return await g(u, [...n, r], e), s["#"];
return await x(i, [...n, t], o), s["#"];
};
export {
w as clone,
g as crawl,
H as equal,
k as findCrawlRules,
H as clone,
x as crawl,
_ as equal,
A as findCrawlRules,
p as getNodeRules,
f as isArray,
h as isObject,
A as syncClone,
x as syncCrawl,
b as transform
d as isArray,
g as isObject,
k as mergeRules,
b as syncClone,
w as syncCrawl,
j as transform
};
//# sourceMappingURL=json-crawl.es.js.map

@@ -1,2 +0,2 @@

(function(f,y){typeof exports=="object"&&typeof module<"u"?y(exports):typeof define=="function"&&define.amd?define(["exports"],y):(f=typeof globalThis<"u"?globalThis:f||self,y(f.JsonCrawl={}))})(this,function(f){"use strict";const y=u=>typeof u=="object"&&u!==null,g=u=>Array.isArray(u),p=(u={},n,o,s={})=>{const r=`/${n}`;let e=u;if(r in e)e=e[r];else if("/*"in e)e=e["/*"];else return"/**"in e?(e=e["/**"],{...typeof e=="function"?e(o,s):e,"/**":e}):void 0;return typeof e=="function"?e(o,s):e},b=(u,n,o={})=>{let s=u;for(let r=0;r<n.length;r++)if(s=p(s,n[r],n.slice(0,r),o),!s)return;return s},w=async(u,n,o={})=>{var r;n=g(n)?n:[n];const s=[{data:u,state:o.state,path:[],keys:[],keyIndex:-1,rules:o.rules}];for(;s.length>0;){const e=s[s.length-1];if(e.keyIndex>=e.keys.length){for(;(r=e.hooks)!=null&&r.length;)e.hooks.pop()();s.pop();continue}const l=e.keys[e.keyIndex++],[a,i,c]=s.length>1?[e.data[l],[...e.path,l],p(e.rules,l,[...e.path,l],o.state)]:[e.data,e.path,o.rules];let t={value:a,state:e.state};const d=[];for(const h of n)if(!(!h||!t)){if(t=await h(t.value,{path:i,key:l,state:t.state,rules:c}),t!=null&&t.terminate)return;t!=null&&t.exitHook&&d.push(t.exitHook)}if(t&&y(t.value)){const h=g(t.value)?[...t.value.keys()]:Object.keys(t.value);s.push({hooks:d,state:t.state,data:t.value,path:i,keys:h,keyIndex:0,rules:c})}else for(;d.length;)d.pop()()}},k=(u,n,o={})=>{var r;n=g(n)?n:[n];const s=[{data:u,state:o.state,path:[],keys:[],keyIndex:-1,rules:o.rules}];for(;s.length>0;){const e=s[s.length-1];if(e.keyIndex>=e.keys.length){for(;(r=e.hooks)!=null&&r.length;)e.hooks.pop()();s.pop();continue}const l=e.keys[e.keyIndex++],[a,i,c]=s.length>1?[e.data[l],[...e.path,l],p(e.rules,l,[...e.path,l],o.state)]:[e.data,e.path,o.rules];let t={value:a,state:e.state};const d=[];for(const h of n)if(!(!h||!t)){if(t=h(t.value,{path:i,key:l,state:t.state||e.state,rules:c}),t!=null&&t.terminate)return;t!=null&&t.exitHook&&d.push(t.exitHook)}if(t&&y(t.value)){const h=g(t.value)?[...t.value.keys()]:Object.keys(t.value);s.push({hooks:d,state:t.state,data:t.value,path:i,keys:h,keyIndex:0,rules:c})}else for(;d.length;)d.pop()()}},A=async(u,n=[],o={})=>{n=Array.isArray(n)?n:[n];const s={},r=async(l,{path:a,key:i,state:c})=>(i=a.length?i:"#",c.node[i]=y(l)?Array.isArray(l)?[]:{}:l,{value:l,state:{...c,node:c.node[i]}}),e={state:{...o.state,root:s,node:s},...o.rules?{rules:o.rules}:{}};return await w(u,[...n,r],e),s["#"]},H=(u,n=[],o={})=>{n=Array.isArray(n)?n:[n];const s={},r=(l,{path:a,key:i,state:c})=>(i=a.length?i:"#",c.node[i]=y(l)?Array.isArray(l)?[]:{}:l,{value:l,state:{...c,node:c.node[i]}}),e={state:{...o.state,root:s,node:s},...o.rules?{rules:o.rules}:{}};return k(u,[...n,r],e),s["#"]},j=(u,n)=>{if(u===n)return!0;let o=!0;return k(u,(r,{key:e,state:l})=>{const a=e===void 0?l.value:l.value[e],i={value:r,state:{value:a}};if(r===a)return i;if(o=!1,typeof r!=typeof a)return null;if(g(r)&&r.length!==a.length)return{terminate:!0};if(typeof r=="object"&&r!==null){const c=Object.keys(r),t=Object.keys(a);if(c.length!==t.length||!c.every(d=>t.includes(d)))return{terminate:!0}}else if(r!==a)return{terminate:!0};return o=!0,i},{state:{value:n}}),o},x=async(u,n=[],o={})=>{n=g(n)?n:[n];const s={"#":u},r=async(l,{path:a,key:i,state:c})=>(i=a.length?i:"#",l===void 0?g(c.node)&&typeof i=="number"?c.node.splice(i,1):delete c.node[i]:c.node[i]=l,{value:l,state:c}),e={state:{...o.state,root:s,node:s},...o.rules?{rules:o.rules}:{}};return await w(u,[...n,r],e),s["#"]};f.clone=A,f.crawl=w,f.equal=j,f.findCrawlRules=b,f.getNodeRules=p,f.isArray=g,f.isObject=y,f.syncClone=H,f.syncCrawl=k,f.transform=x,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});
(function(f,g){typeof exports=="object"&&typeof module<"u"?g(exports):typeof define=="function"&&define.amd?define(["exports"],g):(f=typeof globalThis<"u"?globalThis:f||self,g(f.JsonCrawl={}))})(this,function(f){"use strict";const g=(i={},n,l,s={})=>{const t=`/${n}`;let r=i;if(t in r)r=r[t];else if("/*"in r)r=r["/*"];else return"/**"in r?(r=r["/**"],{...typeof r=="function"?r(l,s):r,"/**":r}):void 0;return typeof r=="function"?r(l,s):r},j=(i,n,l={})=>{let s=i;for(let t=0;t<n.length;t++)if(s=g(s,n[t],n.slice(0,t),l),!s)return;return s},w=i=>{const n={},l=i.reduce((s,t)=>(Object.keys(t).forEach(r=>s.add(r)),s),new Set);for(const s of l.keys()){const t=i.filter(r=>s in r);if(t.length===1){n[s]=t[0][s];continue}if(s.charAt(0)==="/")n[s]=(r,e)=>{const c=t.map(u=>typeof u[s]=="function"?u[s](r,e):u[s]);return w(c)};else throw new Error(`Cannot merge rules. Duplicate key: ${s}. Rules should not have same Rule key`)}return n},k=i=>typeof i=="object"&&i!==null,d=i=>Array.isArray(i),b=async(i,n,l={})=>{var r;n=d(n)?n:[n];const s=d(l.rules)?w(l.rules):l.rules,t=[{data:i,state:l.state,path:[],keys:[],keyIndex:-1,rules:s}];for(;t.length>0;){const e=t[t.length-1];if(e.keyIndex>=e.keys.length){for(;(r=e.hooks)!=null&&r.length;)e.hooks.pop()();t.pop();continue}const c=e.keys[e.keyIndex++],[u,a,p]=t.length>1?[e.data[c],[...e.path,c],g(e.rules,c,[...e.path,c],l.state)]:[e.data,e.path,s];let o={value:u,state:e.state};const y=[];for(const h of n)if(!(!h||!o)){if(o=await h(o.value,{path:a,key:c,state:o.state,rules:p}),o!=null&&o.terminate)return;o!=null&&o.exitHook&&y.push(o.exitHook)}if(o&&k(o.value)){const h=d(o.value)?[...o.value.keys()]:Object.keys(o.value);t.push({hooks:y,state:o.state,data:o.value,path:a,keys:h,keyIndex:0,rules:p})}else for(;y.length;)y.pop()()}},A=(i,n,l={})=>{var r;n=d(n)?n:[n];const s=d(l.rules)?w(l.rules):l.rules,t=[{data:i,state:l.state,path:[],keys:[],keyIndex:-1,rules:s}];for(;t.length>0;){const e=t[t.length-1];if(e.keyIndex>=e.keys.length){for(;(r=e.hooks)!=null&&r.length;)e.hooks.pop()();t.pop();continue}const c=e.keys[e.keyIndex++],[u,a,p]=t.length>1?[e.data[c],[...e.path,c],g(e.rules,c,[...e.path,c],l.state)]:[e.data,e.path,s];let o={value:u,state:e.state};const y=[];for(const h of n)if(!(!h||!o)){if(o=h(o.value,{path:a,key:c,state:o.state||e.state,rules:p}),o!=null&&o.terminate)return;o!=null&&o.exitHook&&y.push(o.exitHook)}if(o&&k(o.value)){const h=d(o.value)?[...o.value.keys()]:Object.keys(o.value);t.push({hooks:y,state:o.state,data:o.value,path:a,keys:h,keyIndex:0,rules:p})}else for(;y.length;)y.pop()()}},H=async(i,n=[],l={})=>{n=Array.isArray(n)?n:[n];const s={},t=async(e,{path:c,key:u,state:a})=>(u=c.length?u:"#",a.node[u]=k(e)?Array.isArray(e)?[]:{}:e,{value:e,state:{...a,node:a.node[u]}}),r={state:{...l.state,root:s,node:s},...l.rules?{rules:l.rules}:{}};return await b(i,[...n,t],r),s["#"]},_=(i,n=[],l={})=>{n=Array.isArray(n)?n:[n];const s={},t=(e,{path:c,key:u,state:a})=>(u=c.length?u:"#",a.node[u]=k(e)?Array.isArray(e)?[]:{}:e,{value:e,state:{...a,node:a.node[u]}}),r={state:{...l.state,root:s,node:s},...l.rules?{rules:l.rules}:{}};return A(i,[...n,t],r),s["#"]},C=(i,n)=>{if(i===n)return!0;let l=!0;return A(i,(t,{key:r,state:e})=>{const c=r===void 0?e.value:e.value[r],u={value:t,state:{value:c}};if(t===c)return u;if(l=!1,typeof t!=typeof c)return null;if(d(t)&&t.length!==c.length)return{terminate:!0};if(typeof t=="object"&&t!==null){const a=Object.keys(t),p=Object.keys(c);if(a.length!==p.length||!a.every(o=>p.includes(o)))return{terminate:!0}}else if(t!==c)return{terminate:!0};return l=!0,u},{state:{value:n}}),l},I=async(i,n=[],l={})=>{n=d(n)?n:[n];const s={"#":i},t=async(e,{path:c,key:u,state:a})=>(u=c.length?u:"#",e===void 0?d(a.node)&&typeof u=="number"?a.node.splice(u,1):delete a.node[u]:a.node[u]=e,{value:e,state:a}),r={state:{...l.state,root:s,node:s},...l.rules?{rules:l.rules}:{}};return await b(i,[...n,t],r),s["#"]};f.clone=H,f.crawl=b,f.equal=C,f.findCrawlRules=j,f.getNodeRules=g,f.isArray=d,f.isObject=k,f.mergeRules=w,f.syncClone=_,f.syncCrawl=A,f.transform=I,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});
//# sourceMappingURL=json-crawl.umd.js.map
import { CrawlRules, JsonPath } from "./types";
export declare const getNodeRules: <R, T>(rules: CrawlRules<R, T> | undefined, key: string | number, path: JsonPath, state?: T) => CrawlRules<R, T> | undefined;
export declare const findCrawlRules: <R, T = any>(rules: CrawlRules<R, T>, path: JsonPath, state?: T) => CrawlRules<R, T> | undefined;
export declare const mergeRules: <R, T = any>(rules: CrawlRules<R, T>[]) => CrawlRules<R, T>;
export type JsonPath = (string | number)[];
export interface CrawlParams<T, R = any> {
state?: T;
rules?: CrawlRules<R, T>;
rules?: CrawlRules<R, T> | CrawlRules<R, T>[];
}

@@ -6,0 +6,0 @@ export interface CrawlContext<T, R = any> {

@@ -1,3 +0,3 @@

import { CrawlHook, SyncCrawlHook, CrawlParams } from "./types";
import type { CrawlHook, SyncCrawlHook, CrawlParams } from "./types";
export declare const crawl: <T, R = any>(data: any, hooks: CrawlHook<T, R> | CrawlHook<T, R>[], params?: CrawlParams<T, R>) => Promise<void>;
export declare const syncCrawl: <T, R = any>(data: any, hooks: SyncCrawlHook<T, R> | SyncCrawlHook<T, R>[], params?: CrawlParams<T, R>) => void;

@@ -5,8 +5,9 @@ "use strict";

const tslib_1 = require("tslib");
const rules_1 = require("./rules");
const utils_1 = require("./utils");
const rules_1 = require("./rules");
const crawl = (data, hooks, params = {}) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
var _a;
hooks = (0, utils_1.isArray)(hooks) ? hooks : [hooks];
const nodes = [{ data, state: params.state, path: [], keys: [], keyIndex: -1, rules: params.rules }];
const _rules = (0, utils_1.isArray)(params.rules) ? (0, rules_1.mergeRules)(params.rules) : params.rules;
const nodes = [{ data, state: params.state, path: [], keys: [], keyIndex: -1, rules: _rules }];
while (nodes.length > 0) {

@@ -26,3 +27,3 @@ const node = nodes[nodes.length - 1];

? [node.data[key], [...node.path, key], (0, rules_1.getNodeRules)(node.rules, key, [...node.path, key], params.state)]
: [node.data, node.path, params.rules]; // root node
: [node.data, node.path, _rules]; // root node
let result = { value, state: node.state };

@@ -59,3 +60,4 @@ const exitHooks = [];

hooks = (0, utils_1.isArray)(hooks) ? hooks : [hooks];
const nodes = [{ data, state: params.state, path: [], keys: [], keyIndex: -1, rules: params.rules }];
const _rules = (0, utils_1.isArray)(params.rules) ? (0, rules_1.mergeRules)(params.rules) : params.rules;
const nodes = [{ data, state: params.state, path: [], keys: [], keyIndex: -1, rules: _rules }];
while (nodes.length > 0) {

@@ -75,3 +77,3 @@ const node = nodes[nodes.length - 1];

? [node.data[key], [...node.path, key], (0, rules_1.getNodeRules)(node.rules, key, [...node.path, key], params.state)]
: [node.data, node.path, params.rules]; // root node
: [node.data, node.path, _rules]; // root node
let result = { value, state: node.state };

@@ -105,2 +107,2 @@ const exitHook = [];

exports.syncCrawl = syncCrawl;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jhd2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3Jhd2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLG1DQUEyQztBQUMzQyxtQ0FBc0M7QUFzQi9CLE1BQU0sS0FBSyxHQUFHLENBQW1CLElBQVMsRUFBRSxLQUEwQyxFQUFFLFNBQTRCLEVBQUUsRUFBaUIsRUFBRTs7SUFDOUksS0FBSyxHQUFHLElBQUEsZUFBTyxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFeEMsTUFBTSxLQUFLLEdBQXNCLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQU0sRUFBRSxDQUFDLENBQUE7SUFFekgsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN2QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQTtRQUVsQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckMsb0JBQW9CO1lBQ3BCLE9BQU8sTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxNQUFNLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUcsRUFBRSxDQUFBO2FBQUU7WUFFbEQsc0JBQXNCO1lBQ3RCLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQTtZQUNYLFNBQVE7U0FDVDtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFFdEMsTUFBTSxDQUFD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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jhd2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3Jhd2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLG1DQUFrRDtBQUNsRCxtQ0FBMkM7QUFzQnBDLE1BQU0sS0FBSyxHQUFHLENBQW1CLElBQVMsRUFBRSxLQUEwQyxFQUFFLFNBQTRCLEVBQUUsRUFBaUIsRUFBRTs7SUFDOUksS0FBSyxHQUFHLElBQUEsZUFBTyxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBQSxlQUFPLEVBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLGtCQUFVLEVBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFBO0lBRTlFLE1BQU0sS0FBSyxHQUFzQixDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU8sRUFBRSxDQUFDLENBQUE7SUFFbkgsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN2QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQTtRQUVsQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckMsb0JBQW9CO1lBQ3BCLE9BQU8sTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxNQUFNLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUcsRUFBRSxDQUFBO2FBQUU7WUFFbEQsc0JBQXNC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
import { CrawlRules, JsonPath } from "./types";
export declare const getNodeRules: <R, T>(rules: CrawlRules<R, T> | undefined, key: string | number, path: JsonPath, state?: T) => CrawlRules<R, T> | undefined;
export declare const findCrawlRules: <R, T = any>(rules: CrawlRules<R, T>, path: JsonPath, state?: T) => CrawlRules<R, T> | undefined;
export declare const mergeRules: <R, T = any>(rules: CrawlRules<R, T>[]) => CrawlRules<R, T>;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.findCrawlRules = exports.getNodeRules = void 0;
exports.mergeRules = exports.findCrawlRules = exports.getNodeRules = void 0;
const getNodeRules = (rules = {}, key, path, state = {}) => {

@@ -34,2 +34,28 @@ const rulesKey = `/${key}`;

exports.findCrawlRules = findCrawlRules;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRU8sTUFBTSxZQUFZLEdBQUcsQ0FDMUIsUUFBUSxFQUFzQixFQUM5QixHQUFvQixFQUNwQixJQUFjLEVBQ2QsUUFBUSxFQUFPLEVBQ2UsRUFBRTtJQUNoQyxNQUFNLFFBQVEsR0FBa0IsSUFBSSxHQUFHLEVBQUUsQ0FBQTtJQUV6QyxJQUFJLElBQUksR0FBNEMsS0FBSyxDQUFBO0lBQ3pELElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtRQUNwQixJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0tBQ3RCO1NBQU0sSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO1FBQ3ZCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7S0FDbEI7U0FBTSxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUU7UUFDeEIsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNsQix1Q0FBWSxPQUFPLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBRSxLQUFLLEVBQUUsSUFBSSxJQUFFO0tBQ2pGO1NBQU07UUFDTCxPQUFNO0tBQ1A7SUFFRCxPQUFPLE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0FBQzlELENBQUMsQ0FBQTtBQXJCWSxRQUFBLFlBQVksZ0JBcUJ4QjtBQUVNLE1BQU0sY0FBYyxHQUFHLENBQWEsS0FBdUIsRUFBRSxJQUFjLEVBQUUsUUFBUSxFQUFPLEVBQWdDLEVBQUU7SUFDbkksSUFBSSxJQUFJLEdBQTRDLEtBQUssQ0FBQTtJQUV6RCxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNoRCxJQUFJLEdBQUcsSUFBQSxvQkFBWSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFFLENBQUE7UUFFcEUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU07U0FBRTtLQUN0QjtJQUVELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyxDQUFBO0FBVlksUUFBQSxjQUFjLGtCQVUxQiJ9
const mergeRules = (rules) => {
const _rules = {};
const keys = rules.reduce((set, r) => {
Object.keys(r).forEach((key) => set.add(key));
return set;
}, new Set());
for (const key of keys.keys()) {
const arr = rules.filter((v) => key in v);
if (arr.length === 1) {
_rules[key] = arr[0][key];
continue;
}
if (key.charAt(0) === "/") {
// merge rules path
_rules[key] = (path, state) => {
const _arr = arr.map((v) => typeof v[key] === "function" ? v[key](path, state) : v[key]);
return (0, exports.mergeRules)(_arr);
};
}
else {
throw new Error(`Cannot merge rules. Duplicate key: ${key}. Rules should not have same Rule key`);
}
}
return _rules;
};
exports.mergeRules = mergeRules;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRU8sTUFBTSxZQUFZLEdBQUcsQ0FDMUIsUUFBUSxFQUFzQixFQUM5QixHQUFvQixFQUNwQixJQUFjLEVBQ2QsUUFBUSxFQUFPLEVBQ2UsRUFBRTtJQUNoQyxNQUFNLFFBQVEsR0FBa0IsSUFBSSxHQUFHLEVBQUUsQ0FBQTtJQUV6QyxJQUFJLElBQUksR0FBNEMsS0FBSyxDQUFBO0lBQ3pELElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtRQUNwQixJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0tBQ3RCO1NBQU0sSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO1FBQ3ZCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7S0FDbEI7U0FBTSxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUU7UUFDeEIsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNsQix1Q0FBWSxPQUFPLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBRSxLQUFLLEVBQUUsSUFBSSxJQUFFO0tBQ2pGO1NBQU07UUFDTCxPQUFNO0tBQ1A7SUFFRCxPQUFPLE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0FBQzlELENBQUMsQ0FBQTtBQXJCWSxRQUFBLFlBQVksZ0JBcUJ4QjtBQUVNLE1BQU0sY0FBYyxHQUFHLENBQWEsS0FBdUIsRUFBRSxJQUFjLEVBQUUsUUFBUSxFQUFPLEVBQWdDLEVBQUU7SUFDbkksSUFBSSxJQUFJLEdBQTRDLEtBQUssQ0FBQTtJQUV6RCxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNoRCxJQUFJLEdBQUcsSUFBQSxvQkFBWSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFFLENBQUE7UUFFcEUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU07U0FBRTtLQUN0QjtJQUVELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyxDQUFBO0FBVlksUUFBQSxjQUFjLGtCQVUxQjtBQUVNLE1BQU0sVUFBVSxHQUFHLENBQWEsS0FBeUIsRUFBb0IsRUFBRTtJQUNwRixNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUE7SUFFdEIsTUFBTSxJQUFJLEdBQWdCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUM3QyxPQUFPLEdBQUcsQ0FBQTtJQUNaLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBVSxDQUFDLENBQUE7SUFFckIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDN0IsTUFBTSxHQUFHLEdBQVEsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQzlDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUN6QixTQUFRO1NBQ1Q7UUFFRCxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO1lBQ3pCLG1CQUFtQjtZQUNuQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFjLEVBQUUsS0FBUSxFQUFFLEVBQUU7Z0JBQ3pDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7Z0JBQzdGLE9BQU8sSUFBQSxrQkFBVSxFQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3pCLENBQUMsQ0FBQTtTQUNGO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxHQUFHLHVDQUF1QyxDQUFDLENBQUE7U0FDbEc7S0FDRjtJQUVELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyxDQUFBO0FBM0JZLFFBQUEsVUFBVSxjQTJCdEIifQ==
export type JsonPath = (string | number)[];
export interface CrawlParams<T, R = any> {
state?: T;
rules?: CrawlRules<R, T>;
rules?: CrawlRules<R, T> | CrawlRules<R, T>[];
}

@@ -6,0 +6,0 @@ export interface CrawlContext<T, R = any> {

@@ -1,3 +0,3 @@

import { CrawlHook, SyncCrawlHook, CrawlParams } from "./types";
import type { CrawlHook, SyncCrawlHook, CrawlParams } from "./types";
export declare const crawl: <T, R = any>(data: any, hooks: CrawlHook<T, R> | CrawlHook<T, R>[], params?: CrawlParams<T, R>) => Promise<void>;
export declare const syncCrawl: <T, R = any>(data: any, hooks: SyncCrawlHook<T, R> | SyncCrawlHook<T, R>[], params?: CrawlParams<T, R>) => void;

@@ -5,8 +5,9 @@ "use strict";

const tslib_1 = require("tslib");
const rules_1 = require("./rules");
const utils_1 = require("./utils");
const rules_1 = require("./rules");
const crawl = (data, hooks, params = {}) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
var _a;
hooks = (0, utils_1.isArray)(hooks) ? hooks : [hooks];
const nodes = [{ data, state: params.state, path: [], keys: [], keyIndex: -1, rules: params.rules }];
const _rules = (0, utils_1.isArray)(params.rules) ? (0, rules_1.mergeRules)(params.rules) : params.rules;
const nodes = [{ data, state: params.state, path: [], keys: [], keyIndex: -1, rules: _rules }];
while (nodes.length > 0) {

@@ -26,3 +27,3 @@ const node = nodes[nodes.length - 1];

? [node.data[key], [...node.path, key], (0, rules_1.getNodeRules)(node.rules, key, [...node.path, key], params.state)]
: [node.data, node.path, params.rules]; // root node
: [node.data, node.path, _rules]; // root node
let result = { value, state: node.state };

@@ -59,3 +60,4 @@ const exitHooks = [];

hooks = (0, utils_1.isArray)(hooks) ? hooks : [hooks];
const nodes = [{ data, state: params.state, path: [], keys: [], keyIndex: -1, rules: params.rules }];
const _rules = (0, utils_1.isArray)(params.rules) ? (0, rules_1.mergeRules)(params.rules) : params.rules;
const nodes = [{ data, state: params.state, path: [], keys: [], keyIndex: -1, rules: _rules }];
while (nodes.length > 0) {

@@ -75,3 +77,3 @@ const node = nodes[nodes.length - 1];

? [node.data[key], [...node.path, key], (0, rules_1.getNodeRules)(node.rules, key, [...node.path, key], params.state)]
: [node.data, node.path, params.rules]; // root node
: [node.data, node.path, _rules]; // root node
let result = { value, state: node.state };

@@ -105,2 +107,2 @@ const exitHook = [];

exports.syncCrawl = syncCrawl;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jhd2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3Jhd2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLG1DQUEyQztBQUMzQyxtQ0FBc0M7QUFzQi9CLE1BQU0sS0FBSyxHQUFHLENBQW1CLElBQVMsRUFBRSxLQUEwQyxFQUFFLFNBQTRCLEVBQUUsRUFBaUIsRUFBRTs7SUFDOUksS0FBSyxHQUFHLElBQUEsZUFBTyxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFeEMsTUFBTSxLQUFLLEdBQXNCLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQU0sRUFBRSxDQUFDLENBQUE7SUFFekgsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN2QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQTtRQUVsQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckMsb0JBQW9CO1lBQ3BCLE9BQU8sTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxNQUFNLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUcsRUFBRSxDQUFBO2FBQUU7WUFFbEQsc0JBQXNCO1lBQ3RCLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQTtZQUNYLFNBQVE7U0FDVDtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFFdEMsTUFBTSxDQUFD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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jhd2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3Jhd2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLG1DQUFrRDtBQUNsRCxtQ0FBMkM7QUFzQnBDLE1BQU0sS0FBSyxHQUFHLENBQW1CLElBQVMsRUFBRSxLQUEwQyxFQUFFLFNBQTRCLEVBQUUsRUFBaUIsRUFBRTs7SUFDOUksS0FBSyxHQUFHLElBQUEsZUFBTyxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBQSxlQUFPLEVBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLGtCQUFVLEVBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFBO0lBRTlFLE1BQU0sS0FBSyxHQUFzQixDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU8sRUFBRSxDQUFDLENBQUE7SUFFbkgsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN2QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQTtRQUVsQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckMsb0JBQW9CO1lBQ3BCLE9BQU8sTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxNQUFNLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUcsRUFBRSxDQUFBO2FBQUU7WUFFbEQsc0JBQXNC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
import { CrawlRules, JsonPath } from "./types";
export declare const getNodeRules: <R, T>(rules: CrawlRules<R, T> | undefined, key: string | number, path: JsonPath, state?: T) => CrawlRules<R, T> | undefined;
export declare const findCrawlRules: <R, T = any>(rules: CrawlRules<R, T>, path: JsonPath, state?: T) => CrawlRules<R, T> | undefined;
export declare const mergeRules: <R, T = any>(rules: CrawlRules<R, T>[]) => CrawlRules<R, T>;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.findCrawlRules = exports.getNodeRules = void 0;
exports.mergeRules = exports.findCrawlRules = exports.getNodeRules = void 0;
const getNodeRules = (rules = {}, key, path, state = {}) => {

@@ -34,2 +34,28 @@ const rulesKey = `/${key}`;

exports.findCrawlRules = findCrawlRules;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRU8sTUFBTSxZQUFZLEdBQUcsQ0FDMUIsUUFBUSxFQUFzQixFQUM5QixHQUFvQixFQUNwQixJQUFjLEVBQ2QsUUFBUSxFQUFPLEVBQ2UsRUFBRTtJQUNoQyxNQUFNLFFBQVEsR0FBa0IsSUFBSSxHQUFHLEVBQUUsQ0FBQTtJQUV6QyxJQUFJLElBQUksR0FBNEMsS0FBSyxDQUFBO0lBQ3pELElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtRQUNwQixJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0tBQ3RCO1NBQU0sSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO1FBQ3ZCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7S0FDbEI7U0FBTSxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUU7UUFDeEIsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNsQix1Q0FBWSxPQUFPLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBRSxLQUFLLEVBQUUsSUFBSSxJQUFFO0tBQ2pGO1NBQU07UUFDTCxPQUFNO0tBQ1A7SUFFRCxPQUFPLE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0FBQzlELENBQUMsQ0FBQTtBQXJCWSxRQUFBLFlBQVksZ0JBcUJ4QjtBQUVNLE1BQU0sY0FBYyxHQUFHLENBQWEsS0FBdUIsRUFBRSxJQUFjLEVBQUUsUUFBUSxFQUFPLEVBQWdDLEVBQUU7SUFDbkksSUFBSSxJQUFJLEdBQTRDLEtBQUssQ0FBQTtJQUV6RCxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNoRCxJQUFJLEdBQUcsSUFBQSxvQkFBWSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFFLENBQUE7UUFFcEUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU07U0FBRTtLQUN0QjtJQUVELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyxDQUFBO0FBVlksUUFBQSxjQUFjLGtCQVUxQiJ9
const mergeRules = (rules) => {
const _rules = {};
const keys = rules.reduce((set, r) => {
Object.keys(r).forEach((key) => set.add(key));
return set;
}, new Set());
for (const key of keys.keys()) {
const arr = rules.filter((v) => key in v);
if (arr.length === 1) {
_rules[key] = arr[0][key];
continue;
}
if (key.charAt(0) === "/") {
// merge rules path
_rules[key] = (path, state) => {
const _arr = arr.map((v) => typeof v[key] === "function" ? v[key](path, state) : v[key]);
return (0, exports.mergeRules)(_arr);
};
}
else {
throw new Error(`Cannot merge rules. Duplicate key: ${key}. Rules should not have same Rule key`);
}
}
return _rules;
};
exports.mergeRules = mergeRules;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRU8sTUFBTSxZQUFZLEdBQUcsQ0FDMUIsUUFBUSxFQUFzQixFQUM5QixHQUFvQixFQUNwQixJQUFjLEVBQ2QsUUFBUSxFQUFPLEVBQ2UsRUFBRTtJQUNoQyxNQUFNLFFBQVEsR0FBa0IsSUFBSSxHQUFHLEVBQUUsQ0FBQTtJQUV6QyxJQUFJLElBQUksR0FBNEMsS0FBSyxDQUFBO0lBQ3pELElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtRQUNwQixJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0tBQ3RCO1NBQU0sSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO1FBQ3ZCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7S0FDbEI7U0FBTSxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUU7UUFDeEIsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNsQix1Q0FBWSxPQUFPLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBRSxLQUFLLEVBQUUsSUFBSSxJQUFFO0tBQ2pGO1NBQU07UUFDTCxPQUFNO0tBQ1A7SUFFRCxPQUFPLE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0FBQzlELENBQUMsQ0FBQTtBQXJCWSxRQUFBLFlBQVksZ0JBcUJ4QjtBQUVNLE1BQU0sY0FBYyxHQUFHLENBQWEsS0FBdUIsRUFBRSxJQUFjLEVBQUUsUUFBUSxFQUFPLEVBQWdDLEVBQUU7SUFDbkksSUFBSSxJQUFJLEdBQTRDLEtBQUssQ0FBQTtJQUV6RCxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNoRCxJQUFJLEdBQUcsSUFBQSxvQkFBWSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFFLENBQUE7UUFFcEUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU07U0FBRTtLQUN0QjtJQUVELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyxDQUFBO0FBVlksUUFBQSxjQUFjLGtCQVUxQjtBQUVNLE1BQU0sVUFBVSxHQUFHLENBQWEsS0FBeUIsRUFBb0IsRUFBRTtJQUNwRixNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUE7SUFFdEIsTUFBTSxJQUFJLEdBQWdCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUM3QyxPQUFPLEdBQUcsQ0FBQTtJQUNaLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBVSxDQUFDLENBQUE7SUFFckIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDN0IsTUFBTSxHQUFHLEdBQVEsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQzlDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUN6QixTQUFRO1NBQ1Q7UUFFRCxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO1lBQ3pCLG1CQUFtQjtZQUNuQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFjLEVBQUUsS0FBUSxFQUFFLEVBQUU7Z0JBQ3pDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7Z0JBQzdGLE9BQU8sSUFBQSxrQkFBVSxFQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3pCLENBQUMsQ0FBQTtTQUNGO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxHQUFHLHVDQUF1QyxDQUFDLENBQUE7U0FDbEc7S0FDRjtJQUVELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyxDQUFBO0FBM0JZLFFBQUEsVUFBVSxjQTJCdEIifQ==
export type JsonPath = (string | number)[];
export interface CrawlParams<T, R = any> {
state?: T;
rules?: CrawlRules<R, T>;
rules?: CrawlRules<R, T> | CrawlRules<R, T>[];
}

@@ -6,0 +6,0 @@ export interface CrawlContext<T, R = any> {

{
"name": "json-crawl",
"version": "0.2.4",
"version": "0.2.5",
"description": "Async and sync crawler for json object",

@@ -5,0 +5,0 @@ "module": "dist/esm/index.js",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc