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.1.0 to 0.2.0

browser/rules.d.ts

6

browser/clone.d.ts

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

import { CloneHook, SyncCloneHook } from "./types";
export declare const clone: <T>(data: any, hooks?: CloneHook<T> | CloneHook<T>[], state?: T) => Promise<any>;
export declare const syncClone: <T>(data: any, hooks?: SyncCloneHook<T> | SyncCloneHook<T>[], state?: T) => any;
import { CloneHook, CloneState, CrawlParams, SyncCloneHook } from "./types";
export declare const clone: <T, R>(data: any, hooks?: CloneHook<T, R> | CloneHook<T, R>[], params?: CrawlParams<CloneState<T>, R>) => Promise<any>;
export declare const syncClone: <T, R, C>(data: any, hooks?: SyncCloneHook<T, R> | SyncCloneHook<T, R>[], params?: CrawlParams<CloneState<T>, R>) => any;

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

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

@@ -6,1 +6,2 @@ export * from "./crawl";

export * from "./transform";
export * from "./rules";

@@ -1,21 +0,37 @@

const h = (c) => typeof c == "object" && c !== null, p = (c) => Array.isArray(c), u = async (c, n, i) => {
var l;
n = p(n) ? n : [n];
const o = [{ data: c, state: i, path: [], keys: [], keyIndex: -1 }];
for (; o.length > 0; ) {
const e = o[o.length - 1];
const h = (r) => typeof r == "object" && r !== null, y = (r) => Array.isArray(r), p = (r = {}, t, o, n = {}) => {
const c = `/${t}`;
let e = r;
if (c in e)
e = e[c];
else if ("/*" in e)
e = e["/*"];
else
return;
return typeof e == "function" ? e(o, n) : e;
}, w = (r, t, o = {}) => {
let n = r;
for (let c = 0; c < t.length; c++)
if (n = p(n, t[c], t.slice(0, c), o), !n)
return;
return n;
}, g = async (r, t, o = {}) => {
var c;
t = y(t) ? t : [t];
const n = [{ data: r, state: o.state, path: [], keys: [], keyIndex: -1, rules: o.rules }];
for (; n.length > 0; ) {
const e = n[n.length - 1];
if (e.keyIndex >= e.keys.length) {
for (; (l = e.hooks) != null && l.length; )
for (; (c = e.hooks) != null && c.length; )
e.hooks.pop()();
o.pop();
n.pop();
continue;
}
const r = e.keys[e.keyIndex++], [s, a] = o.length > 1 ? [e.data[r], [...e.path, r]] : [e.data, e.path];
let t = { value: s, state: e.state };
const i = e.keys[e.keyIndex++], [l, a, f] = n.length > 1 ? [e.data[i], [...e.path, i], p(e.rules, i, [...e.path, i], o.state)] : [e.data, e.path, o.rules];
let s = { value: l, state: e.state };
const d = [];
for (const y of n)
!y || !t || (t = await y(t.value, { path: a, key: r, state: t.state }), t != null && t.exitHook && d.push(t.exitHook));
if (t && h(t.value)) {
const y = p(t.value) ? [...t.value.keys()] : Object.keys(t.value);
o.push({ hooks: d, state: t.state, data: t.value, path: a, keys: y, keyIndex: 0 });
for (const u of t)
!u || !s || (s = await u(s.value, { path: a, key: i, state: s.state, rules: f }), s != null && s.exitHook && d.push(s.exitHook));
if (s && h(s.value)) {
const u = y(s.value) ? [...s.value.keys()] : Object.keys(s.value);
n.push({ hooks: d, state: s.state, data: s.value, path: a, keys: u, keyIndex: 0, rules: f });
} else

@@ -25,22 +41,22 @@ for (; d.length; )

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

@@ -50,24 +66,26 @@ for (; d.length; )

}
}, g = async (c, n = [], i = {}) => {
n = Array.isArray(n) ? n : [n];
const o = {}, l = async (e, { path: r, key: s, state: a }) => (s = r.length ? s : "#", a.node[s] = h(e) ? Array.isArray(e) ? [] : {} : e, { value: e, state: { ...a, node: a.node[s] } });
return await u(c, [...n, l], { ...i, root: o, node: o }), o["#"];
}, x = (c, n = [], i = {}) => {
n = Array.isArray(n) ? n : [n];
const o = {}, l = (e, { path: r, key: s, state: a }) => (s = r.length ? s : "#", a.node[s] = h(e) ? Array.isArray(e) ? [] : {} : e, { value: e, state: { ...a, node: a.node[s] } });
return f(c, [...n, l], { ...i, root: o, node: o }), o["#"];
}, w = async (c, n = [], i = {}) => {
n = p(n) ? n : [n];
const o = { "#": c }, l = async (e, { path: r, key: s, state: a }) => (s = r.length ? s : "#", e === void 0 ? p(a.node) && typeof s == "number" ? a.node.splice(s, 1) : delete a.node[s] : a.node[s] = e, { value: e, state: a });
return await u(c, [...n, l], { ...i, root: o, node: o }), o["#"];
}, A = async (r, t = [], o = {}) => {
t = Array.isArray(t) ? t : [t];
const n = {}, c = async (e, { path: i, key: l, state: a }) => (l = i.length ? l : "#", a.node[l] = h(e) ? Array.isArray(e) ? [] : {} : e, { value: e, state: { ...a, node: a.node[l] } });
return await g(r, [...t, c], { ...o, state: { ...o.state, root: n, node: n } }), n["#"];
}, H = (r, t = [], o = {}) => {
t = Array.isArray(t) ? t : [t];
const n = {}, c = (e, { path: i, key: l, state: a }) => (l = i.length ? l : "#", a.node[l] = h(e) ? Array.isArray(e) ? [] : {} : e, { value: e, state: { ...a, node: a.node[l] } });
return x(r, [...t, c], { ...o, state: { ...o.state, root: n, node: n } }), n["#"];
}, k = async (r, t = [], o = {}) => {
t = y(t) ? t : [t];
const n = { "#": r }, c = async (e, { path: i, key: l, state: a }) => (l = i.length ? l : "#", e === void 0 ? y(a.node) && typeof l == "number" ? a.node.splice(l, 1) : delete a.node[l] : a.node[l] = e, { value: e, state: a });
return await g(r, [...t, c], { ...o, state: { ...o.state, root: n, node: n } }), n["#"];
};
export {
g as clone,
u as crawl,
p as isArray,
A as clone,
g as crawl,
w as findCrawlRules,
p as getNodeRules,
y as isArray,
h as isObject,
x as syncClone,
f as syncCrawl,
w as transform
H as syncClone,
x as syncCrawl,
k as transform
};
//# sourceMappingURL=json-crawl.es.js.map

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

(function(l,d){typeof exports=="object"&&typeof module<"u"?d(exports):typeof define=="function"&&define.amd?define(["exports"],d):(l=typeof globalThis<"u"?globalThis:l||self,d(l.JsonCrawl={}))})(this,function(l){"use strict";const d=c=>typeof c=="object"&&c!==null,u=c=>Array.isArray(c),h=async(c,n,y)=>{var r;n=u(n)?n:[n];const o=[{data:c,state:y,path:[],keys:[],keyIndex:-1}];for(;o.length>0;){const e=o[o.length-1];if(e.keyIndex>=e.keys.length){for(;(r=e.hooks)!=null&&r.length;)e.hooks.pop()();o.pop();continue}const i=e.keys[e.keyIndex++],[s,a]=o.length>1?[e.data[i],[...e.path,i]]:[e.data,e.path];let t={value:s,state:e.state};const f=[];for(const p of n)!p||!t||(t=await p(t.value,{path:a,key:i,state:t.state}),t!=null&&t.exitHook&&f.push(t.exitHook));if(t&&d(t.value)){const p=u(t.value)?[...t.value.keys()]:Object.keys(t.value);o.push({hooks:f,state:t.state,data:t.value,path:a,keys:p,keyIndex:0})}else for(;f.length;)f.pop()()}},g=(c,n,y)=>{var r;n=u(n)?n:[n];const o=[{data:c,state:y,path:[],keys:[],keyIndex:-1}];for(;o.length>0;){const e=o[o.length-1];if(e.keyIndex>=e.keys.length){for(;(r=e.hooks)!=null&&r.length;)e.hooks.pop()();o.pop();continue}const i=e.keys[e.keyIndex++],[s,a]=o.length>1?[e.data[i],[...e.path,i]]:[e.data,e.path];let t={value:s,state:e.state};const f=[];for(const p of n)!p||!t||(t=p(t.value,{path:a,key:i,state:t.state||e.state}),t!=null&&t.exitHook&&f.push(t.exitHook));if(t&&d(t.value)){const p=u(t.value)?[...t.value.keys()]:Object.keys(t.value);o.push({hooks:f,state:t.state,data:t.value,path:a,keys:p,keyIndex:0})}else for(;f.length;)f.pop()()}},w=async(c,n=[],y={})=>{n=Array.isArray(n)?n:[n];const o={},r=async(e,{path:i,key:s,state:a})=>(s=i.length?s:"#",a.node[s]=d(e)?Array.isArray(e)?[]:{}:e,{value:e,state:{...a,node:a.node[s]}});return await h(c,[...n,r],{...y,root:o,node:o}),o["#"]},A=(c,n=[],y={})=>{n=Array.isArray(n)?n:[n];const o={},r=(e,{path:i,key:s,state:a})=>(s=i.length?s:"#",a.node[s]=d(e)?Array.isArray(e)?[]:{}:e,{value:e,state:{...a,node:a.node[s]}});return g(c,[...n,r],{...y,root:o,node:o}),o["#"]},x=async(c,n=[],y={})=>{n=u(n)?n:[n];const o={"#":c},r=async(e,{path:i,key:s,state:a})=>(s=i.length?s:"#",e===void 0?u(a.node)&&typeof s=="number"?a.node.splice(s,1):delete a.node[s]:a.node[s]=e,{value:e,state:a});return await h(c,[...n,r],{...y,root:o,node:o}),o["#"]};l.clone=w,l.crawl=h,l.isArray=u,l.isObject=d,l.syncClone=A,l.syncCrawl=g,l.transform=x,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
(function(d,u){typeof exports=="object"&&typeof module<"u"?u(exports):typeof define=="function"&&define.amd?define(["exports"],u):(d=typeof globalThis<"u"?globalThis:d||self,u(d.JsonCrawl={}))})(this,function(d){"use strict";const u=i=>typeof i=="object"&&i!==null,h=i=>Array.isArray(i),p=(i={},t,o,n={})=>{const c=`/${t}`;let e=i;if(c in e)e=e[c];else if("/*"in e)e=e["/*"];else return;return typeof e=="function"?e(o,n):e},b=(i,t,o={})=>{let n=i;for(let c=0;c<t.length;c++)if(n=p(n,t[c],t.slice(0,c),o),!n)return;return n},w=async(i,t,o={})=>{var c;t=h(t)?t:[t];const n=[{data:i,state:o.state,path:[],keys:[],keyIndex:-1,rules:o.rules}];for(;n.length>0;){const e=n[n.length-1];if(e.keyIndex>=e.keys.length){for(;(c=e.hooks)!=null&&c.length;)e.hooks.pop()();n.pop();continue}const a=e.keys[e.keyIndex++],[l,r,g]=n.length>1?[e.data[a],[...e.path,a],p(e.rules,a,[...e.path,a],o.state)]:[e.data,e.path,o.rules];let s={value:l,state:e.state};const y=[];for(const f of t)!f||!s||(s=await f(s.value,{path:r,key:a,state:s.state,rules:g}),s!=null&&s.exitHook&&y.push(s.exitHook));if(s&&u(s.value)){const f=h(s.value)?[...s.value.keys()]:Object.keys(s.value);n.push({hooks:y,state:s.state,data:s.value,path:r,keys:f,keyIndex:0,rules:g})}else for(;y.length;)y.pop()()}},A=(i,t,o={})=>{var c;t=h(t)?t:[t];const n=[{data:i,state:o.state,path:[],keys:[],keyIndex:-1,rules:o.rules}];for(;n.length>0;){const e=n[n.length-1];if(e.keyIndex>=e.keys.length){for(;(c=e.hooks)!=null&&c.length;)e.hooks.pop()();n.pop();continue}const a=e.keys[e.keyIndex++],[l,r,g]=n.length>1?[e.data[a],[...e.path,a],p(e.rules,a,[...e.path,a],o.state)]:[e.data,e.path,o.rules];let s={value:l,state:e.state};const y=[];for(const f of t)!f||!s||(s=f(s.value,{path:r,key:a,state:s.state||e.state,rules:g}),s!=null&&s.exitHook&&y.push(s.exitHook));if(s&&u(s.value)){const f=h(s.value)?[...s.value.keys()]:Object.keys(s.value);n.push({hooks:y,state:s.state,data:s.value,path:r,keys:f,keyIndex:0,rules:g})}else for(;y.length;)y.pop()()}},x=async(i,t=[],o={})=>{t=Array.isArray(t)?t:[t];const n={},c=async(e,{path:a,key:l,state:r})=>(l=a.length?l:"#",r.node[l]=u(e)?Array.isArray(e)?[]:{}:e,{value:e,state:{...r,node:r.node[l]}});return await w(i,[...t,c],{...o,state:{...o.state,root:n,node:n}}),n["#"]},H=(i,t=[],o={})=>{t=Array.isArray(t)?t:[t];const n={},c=(e,{path:a,key:l,state:r})=>(l=a.length?l:"#",r.node[l]=u(e)?Array.isArray(e)?[]:{}:e,{value:e,state:{...r,node:r.node[l]}});return A(i,[...t,c],{...o,state:{...o.state,root:n,node:n}}),n["#"]},k=async(i,t=[],o={})=>{t=h(t)?t:[t];const n={"#":i},c=async(e,{path:a,key:l,state:r})=>(l=a.length?l:"#",e===void 0?h(r.node)&&typeof l=="number"?r.node.splice(l,1):delete r.node[l]:r.node[l]=e,{value:e,state:r});return await w(i,[...t,c],{...o,state:{...o.state,root:n,node:n}}),n["#"]};d.clone=x,d.crawl=w,d.findCrawlRules=b,d.getNodeRules=p,d.isArray=h,d.isObject=u,d.syncClone=H,d.syncCrawl=A,d.transform=k,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})});
//# sourceMappingURL=json-crawl.umd.js.map

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

import type { CloneHook } from "./types";
export declare const transform: <T>(data: any, hooks?: CloneHook<T> | CloneHook<T>[], state?: T) => Promise<any>;
import type { CloneHook, CloneState, CrawlParams } from "./types";
export declare const transform: <T, R>(data: any, hooks?: CloneHook<T, R> | CloneHook<T, R>[], params?: CrawlParams<CloneState<T>, R>) => Promise<any>;
export type JsonPath = (string | number)[];
export interface CrawlContext<T> {
export interface CrawlParams<T, R = any> {
state?: T;
rules?: CrawlRules<R, T>;
}
export interface CrawlContext<T, R = any> {
readonly path: JsonPath;
readonly key: string | number;
state: T;
rules?: CrawlRules<R, T>;
}

@@ -18,6 +23,11 @@ export type ExitHook = () => void;

node: any;
} & T;
export type CloneHook<T> = CrawlHook<CloneState<T>>;
export type CrawlHook<T> = (value: unknown, ctx: CrawlContext<T>) => Promise<CrawlHookResponse<T> | null> | CrawlHookResponse<T> | null;
export type SyncCloneHook<T> = SyncCrawlHook<CloneState<T>>;
export type SyncCrawlHook<T> = (value: unknown, ctx: CrawlContext<T>) => CrawlHookResponse<T> | null;
} & (T | {});
export type CloneHook<T = any, R = any> = CrawlHook<CloneState<T>, R>;
export type CrawlHook<T = any, R = any> = (value: unknown, ctx: CrawlContext<T, R>) => Promise<CrawlHookResponse<T> | null> | CrawlHookResponse<T> | null;
export type SyncCloneHook<T = any, R = any> = SyncCrawlHook<CloneState<T>, R>;
export type SyncCrawlHook<T = any, R = any> = (value: unknown, ctx: CrawlContext<T, R>) => CrawlHookResponse<T> | null;
export type CrawlRulesFunc<R, T = any> = (path: JsonPath, state: T) => CrawlRules<R, T>;
export type CrawlRulesKey = `/${string | number}`;
export type CrawlRules<R, T = any> = {
[key: CrawlRulesKey | '/*']: CrawlRules<R, T> | CrawlRulesFunc<R, T>;
} & (R | {});

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

import { CloneHook, SyncCloneHook } from "./types";
export declare const clone: <T>(data: any, hooks?: CloneHook<T> | CloneHook<T>[], state?: T) => Promise<any>;
export declare const syncClone: <T>(data: any, hooks?: SyncCloneHook<T> | SyncCloneHook<T>[], state?: T) => any;
import { CloneHook, CloneState, CrawlParams, SyncCloneHook } from "./types";
export declare const clone: <T, R>(data: any, hooks?: CloneHook<T, R> | CloneHook<T, R>[], params?: CrawlParams<CloneState<T>, R>) => Promise<any>;
export declare const syncClone: <T, R, C>(data: any, hooks?: SyncCloneHook<T, R> | SyncCloneHook<T, R>[], params?: CrawlParams<CloneState<T>, R>) => any;

@@ -7,3 +7,3 @@ "use strict";

const utils_1 = require("./utils");
const clone = (data, hooks = [], state = {}) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const clone = (data, hooks = [], params = {}) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
hooks = Array.isArray(hooks) ? hooks : [hooks];

@@ -16,7 +16,7 @@ const root = {};

});
yield (0, crawl_1.crawl)(data, [...hooks, cloneHook], Object.assign(Object.assign({}, state), { root, node: root }));
yield (0, crawl_1.crawl)(data, [...hooks, cloneHook], Object.assign(Object.assign({}, params), { state: Object.assign(Object.assign({}, params.state), { root, node: root }) }));
return root["#"];
});
exports.clone = clone;
const syncClone = (data, hooks = [], state = {}) => {
const syncClone = (data, hooks = [], params = {}) => {
hooks = Array.isArray(hooks) ? hooks : [hooks];

@@ -29,6 +29,6 @@ const root = {};

};
(0, crawl_1.syncCrawl)(data, [...hooks, cloneHook], Object.assign(Object.assign({}, state), { root, node: root }));
(0, crawl_1.syncCrawl)(data, [...hooks, cloneHook], Object.assign(Object.assign({}, params), { state: Object.assign(Object.assign({}, params.state), { root, node: root }) }));
return root["#"];
};
exports.syncClone = syncClone;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLG1DQUEwQztBQUMxQyxtQ0FBa0M7QUFFM0IsTUFBTSxLQUFLLEdBQUcsQ0FBVSxJQUFTLEVBQUUsUUFBdUMsRUFBRSxFQUFFLFFBQVEsRUFBTyxFQUFFLEVBQUU7SUFDdEcsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM5QyxNQUFNLElBQUksR0FBUSxFQUFFLENBQUE7SUFFcEIsTUFBTSxTQUFTLEdBQWlCLENBQU8sS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQ3BFLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtRQUM3QixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7UUFDNUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsZ0NBQUssS0FBSyxLQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFtQixFQUFFLENBQUE7SUFDL0UsQ0FBQyxDQUFBLENBQUE7SUFFRCxNQUFNLElBQUEsYUFBSyxFQUFnQixJQUFJLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxTQUFTLENBQUMsa0NBQU8sS0FBSyxLQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFHLENBQUE7SUFFdkYsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDbEIsQ0FBQyxDQUFBLENBQUE7QUFiWSxRQUFBLEtBQUssU0FhakI7QUFFTSxNQUFNLFNBQVMsR0FBRyxDQUFJLElBQVMsRUFBRSxRQUErQyxFQUFFLEVBQUUsUUFBUSxFQUFPLEVBQUUsRUFBRTtJQUM1RyxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzlDLE1BQU0sSUFBSSxHQUFRLEVBQUUsQ0FBQTtJQUVwQixNQUFNLFNBQVMsR0FBcUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDbEUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO1FBQzdCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBQSxnQkFBUSxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUM1RSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxnQ0FBSyxLQUFLLEtBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQW1CLEVBQUUsQ0FBQTtJQUMvRSxDQUFDLENBQUE7SUFFRCxJQUFBLGlCQUFTLEVBQWdCLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLFNBQVMsQ0FBQyxrQ0FBTyxLQUFLLEtBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUcsQ0FBQTtJQUVyRixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNsQixDQUFDLENBQUE7QUFiWSxRQUFBLFNBQVMsYUFhckIifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLG1DQUEwQztBQUMxQyxtQ0FBa0M7QUFFM0IsTUFBTSxLQUFLLEdBQUcsQ0FBYSxJQUFTLEVBQUUsUUFBNkMsRUFBRSxFQUFFLFNBQXlDLEVBQUUsRUFBRSxFQUFFO0lBQzNJLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDOUMsTUFBTSxJQUFJLEdBQVEsRUFBRSxDQUFBO0lBRXBCLE1BQU0sU0FBUyxHQUFvQixDQUFPLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUN2RSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUE7UUFDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFBLGdCQUFRLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO1FBQzVFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGdDQUFLLEtBQUssS0FBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBbUIsRUFBRSxDQUFBO0lBQy9FLENBQUMsQ0FBQSxDQUFBO0lBRUQsTUFBTSxJQUFBLGFBQUssRUFBbUIsSUFBSSxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsU0FBUyxDQUFDLGtDQUFPLE1BQU0sS0FBRSxLQUFLLGtDQUFPLE1BQU0sQ0FBQyxLQUFLLEtBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLE9BQUssQ0FBQTtJQUV2SCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNsQixDQUFDLENBQUEsQ0FBQTtBQWJZLFFBQUEsS0FBSyxTQWFqQjtBQUVNLE1BQU0sU0FBUyxHQUFHLENBQVUsSUFBUyxFQUFFLFFBQXFELEVBQUUsRUFBRSxTQUF3QyxFQUFFLEVBQUUsRUFBRTtJQUNuSixLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzlDLE1BQU0sSUFBSSxHQUFRLEVBQUUsQ0FBQTtJQUVwQixNQUFNLFNBQVMsR0FBd0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDckUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO1FBQzdCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBQSxnQkFBUSxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUM1RSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxnQ0FBSyxLQUFLLEtBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQW1CLEVBQUUsQ0FBQTtJQUMvRSxDQUFDLENBQUE7SUFFRCxJQUFBLGlCQUFTLEVBQW1CLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLFNBQVMsQ0FBQyxrQ0FBTyxNQUFNLEtBQUUsS0FBSyxrQ0FBTyxNQUFNLENBQUMsS0FBSyxLQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxPQUFLLENBQUE7SUFFckgsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDbEIsQ0FBQyxDQUFBO0FBYlksUUFBQSxTQUFTLGFBYXJCIn0=

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

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

@@ -6,6 +6,7 @@ "use strict";

const utils_1 = require("./utils");
const crawl = (data, hooks, state) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
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, path: [], keys: [], keyIndex: -1 }];
const nodes = [{ data, state: params.state, path: [], keys: [], keyIndex: -1, rules: params.rules }];
while (nodes.length > 0) {

@@ -23,5 +24,5 @@ const node = nodes[nodes.length - 1];

const key = node.keys[node.keyIndex++];
const [value, path] = nodes.length > 1
? [node.data[key], [...node.path, key]]
: [node.data, node.path]; // root node
const [value, path, rules] = 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
let result = { value, state: node.state };

@@ -34,3 +35,3 @@ const exitHooks = [];

}
result = yield hook(result.value, { path, key, state: result.state });
result = yield hook(result.value, { path, key, state: result.state, rules });
(result === null || result === void 0 ? void 0 : result.exitHook) && exitHooks.push(result.exitHook);

@@ -42,3 +43,3 @@ }

// move to child nodes
nodes.push({ hooks: exitHooks, state: result.state, data: result.value, path, keys, keyIndex: 0 });
nodes.push({ hooks: exitHooks, state: result.state, data: result.value, path, keys, keyIndex: 0, rules });
}

@@ -54,6 +55,6 @@ else {

exports.crawl = crawl;
const syncCrawl = (data, hooks, state) => {
const syncCrawl = (data, hooks, params = {}) => {
var _a;
hooks = (0, utils_1.isArray)(hooks) ? hooks : [hooks];
const nodes = [{ data, state, path: [], keys: [], keyIndex: -1 }];
const nodes = [{ data, state: params.state, path: [], keys: [], keyIndex: -1, rules: params.rules }];
while (nodes.length > 0) {

@@ -71,5 +72,5 @@ const node = nodes[nodes.length - 1];

const key = node.keys[node.keyIndex++];
const [value, path] = nodes.length > 1
? [node.data[key], [...node.path, key]]
: [node.data, node.path]; // root node
const [value, path, rules] = 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
let result = { value, state: node.state };

@@ -82,3 +83,3 @@ const exitHook = [];

}
result = hook(result.value, { path, key, state: result.state || node.state });
result = hook(result.value, { path, key, state: result.state || node.state, rules });
(result === null || result === void 0 ? void 0 : result.exitHook) && exitHook.push(result.exitHook);

@@ -90,3 +91,3 @@ }

// move to child nodes
nodes.push({ hooks: exitHook, state: result.state, data: result.value, path, keys, keyIndex: 0 });
nodes.push({ hooks: exitHook, state: result.state, data: result.value, path, keys, keyIndex: 0, rules });
}

@@ -102,2 +103,2 @@ else {

exports.syncCrawl = syncCrawl;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jhd2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3Jhd2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLG1DQUEyQztBQW1CcEMsTUFBTSxLQUFLLEdBQUcsQ0FBVSxJQUFTLEVBQUUsS0FBb0MsRUFBRSxLQUFRLEVBQWlCLEVBQUU7O0lBQ3pHLEtBQUssR0FBRyxJQUFBLGVBQU8sRUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRXhDLE1BQU0sS0FBSyxHQUFtQixDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUVqRixPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFBO1FBRWxDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyQyxvQkFBb0I7WUFDcEIsT0FBTyxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLE1BQU0sRUFBRTtnQkFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRyxFQUFFLENBQUE7YUFBRTtZQUVsRCxzQkFBc0I7WUFDdEIsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFBO1lBQ1gsU0FBUTtTQUNUO1FBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUV0QyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FB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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jhd2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3Jhd2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLG1DQUEyQztBQUMzQyxtQ0FBc0M7QUFzQi9CLE1BQU0sS0FBSyxHQUFHLENBQW1CLElBQVMsRUFBRSxLQUEwQyxFQUFFLFNBQTRCLEVBQUUsRUFBaUIsRUFBRTs7SUFDOUksS0FBSyxHQUFHLElBQUEsZUFBTyxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFeEMsTUFBTSxLQUFLLEdBQXNCLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQU0sRUFBRSxDQUFDLENBQUE7SUFFekgsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN2QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQTtRQUVsQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckMsb0JBQW9CO1lBQ3BCLE9BQU8sTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxNQUFNLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUcsRUFBRSxDQUFBO2FBQUU7WUFFbEQsc0JBQXNCO1lBQ3RCLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQTtZQUNYLFNBQVE7U0FDVDtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFFdEMsTUFBTSxDQUFD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

@@ -6,1 +6,2 @@ export * from "./crawl";

export * from "./transform";
export * from "./rules";

@@ -9,2 +9,3 @@ "use strict";

tslib_1.__exportStar(require("./transform"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQXVCO0FBQ3ZCLGtEQUF1QjtBQUN2QixrREFBdUI7QUFDdkIsa0RBQXVCO0FBQ3ZCLHNEQUEyQiJ9
tslib_1.__exportStar(require("./rules"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQXVCO0FBQ3ZCLGtEQUF1QjtBQUN2QixrREFBdUI7QUFDdkIsa0RBQXVCO0FBQ3ZCLHNEQUEyQjtBQUMzQixrREFBdUIifQ==

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

import type { CloneHook } from "./types";
export declare const transform: <T>(data: any, hooks?: CloneHook<T> | CloneHook<T>[], state?: T) => Promise<any>;
import type { CloneHook, CloneState, CrawlParams } from "./types";
export declare const transform: <T, R>(data: any, hooks?: CloneHook<T, R> | CloneHook<T, R>[], params?: CrawlParams<CloneState<T>, R>) => Promise<any>;

@@ -7,3 +7,3 @@ "use strict";

const crawl_1 = require("./crawl");
const transform = (data, hooks = [], state = {}) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const transform = (data, hooks = [], params = {}) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
hooks = (0, utils_1.isArray)(hooks) ? hooks : [hooks];

@@ -26,6 +26,6 @@ const root = { "#": data };

});
yield (0, crawl_1.crawl)(data, [...hooks, transformHook], Object.assign(Object.assign({}, state), { root, node: root }));
yield (0, crawl_1.crawl)(data, [...hooks, transformHook], Object.assign(Object.assign({}, params), { state: Object.assign(Object.assign({}, params.state), { root, node: root }) }));
return root["#"];
});
exports.transform = transform;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsbUNBQWlDO0FBQ2pDLG1DQUErQjtBQUV4QixNQUFNLFNBQVMsR0FBRyxDQUFVLElBQVMsRUFBRSxRQUF1QyxFQUFFLEVBQUUsUUFBUSxFQUFRLEVBQUUsRUFBRTtJQUMzRyxLQUFLLEdBQUcsSUFBQSxlQUFPLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN4QyxNQUFNLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUUxQixNQUFNLGFBQWEsR0FBaUIsQ0FBTyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDeEUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO1FBQzdCLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QixJQUFJLElBQUEsZUFBTyxFQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7Z0JBQ2xELEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTthQUMxQjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDdkI7U0FDRjthQUFNO1lBQ0wsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUE7U0FDeEI7UUFDRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFBO0lBQ3pCLENBQUMsQ0FBQSxDQUFBO0lBRUQsTUFBTSxJQUFBLGFBQUssRUFBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxhQUFhLENBQUMsa0NBQU8sS0FBSyxLQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFHLENBQUE7SUFFNUUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDbEIsQ0FBQyxDQUFBLENBQUE7QUFyQlksUUFBQSxTQUFTLGFBcUJyQiJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsbUNBQWlDO0FBQ2pDLG1DQUErQjtBQUV4QixNQUFNLFNBQVMsR0FBRyxDQUFhLElBQVMsRUFBRSxRQUE2QyxFQUFFLEVBQUUsU0FBd0MsRUFBRSxFQUFFLEVBQUU7SUFDOUksS0FBSyxHQUFHLElBQUEsZUFBTyxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDeEMsTUFBTSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUE7SUFFMUIsTUFBTSxhQUFhLEdBQW9CLENBQU8sS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzNFLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtRQUM3QixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsSUFBSSxJQUFBLGVBQU8sRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO2dCQUNsRCxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUE7YUFDMUI7aUJBQU07Z0JBQ0wsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ3ZCO1NBQ0Y7YUFBTTtZQUNMLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFBO1NBQ3hCO1FBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQTtJQUN6QixDQUFDLENBQUEsQ0FBQTtJQUVELE1BQU0sSUFBQSxhQUFLLEVBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsYUFBYSxDQUFDLGtDQUFPLE1BQU0sS0FBRSxLQUFLLGtDQUFPLE1BQU0sQ0FBQyxLQUFLLEtBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLE9BQUssQ0FBQTtJQUV6RyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNsQixDQUFDLENBQUEsQ0FBQTtBQXJCWSxRQUFBLFNBQVMsYUFxQnJCIn0=
export type JsonPath = (string | number)[];
export interface CrawlContext<T> {
export interface CrawlParams<T, R = any> {
state?: T;
rules?: CrawlRules<R, T>;
}
export interface CrawlContext<T, R = any> {
readonly path: JsonPath;
readonly key: string | number;
state: T;
rules?: CrawlRules<R, T>;
}

@@ -18,6 +23,11 @@ export type ExitHook = () => void;

node: any;
} & T;
export type CloneHook<T> = CrawlHook<CloneState<T>>;
export type CrawlHook<T> = (value: unknown, ctx: CrawlContext<T>) => Promise<CrawlHookResponse<T> | null> | CrawlHookResponse<T> | null;
export type SyncCloneHook<T> = SyncCrawlHook<CloneState<T>>;
export type SyncCrawlHook<T> = (value: unknown, ctx: CrawlContext<T>) => CrawlHookResponse<T> | null;
} & (T | {});
export type CloneHook<T = any, R = any> = CrawlHook<CloneState<T>, R>;
export type CrawlHook<T = any, R = any> = (value: unknown, ctx: CrawlContext<T, R>) => Promise<CrawlHookResponse<T> | null> | CrawlHookResponse<T> | null;
export type SyncCloneHook<T = any, R = any> = SyncCrawlHook<CloneState<T>, R>;
export type SyncCrawlHook<T = any, R = any> = (value: unknown, ctx: CrawlContext<T, R>) => CrawlHookResponse<T> | null;
export type CrawlRulesFunc<R, T = any> = (path: JsonPath, state: T) => CrawlRules<R, T>;
export type CrawlRulesKey = `/${string | number}`;
export type CrawlRules<R, T = any> = {
[key: CrawlRulesKey | '/*']: CrawlRules<R, T> | CrawlRulesFunc<R, T>;
} & (R | {});

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

import { CloneHook, SyncCloneHook } from "./types";
export declare const clone: <T>(data: any, hooks?: CloneHook<T> | CloneHook<T>[], state?: T) => Promise<any>;
export declare const syncClone: <T>(data: any, hooks?: SyncCloneHook<T> | SyncCloneHook<T>[], state?: T) => any;
import { CloneHook, CloneState, CrawlParams, SyncCloneHook } from "./types";
export declare const clone: <T, R>(data: any, hooks?: CloneHook<T, R> | CloneHook<T, R>[], params?: CrawlParams<CloneState<T>, R>) => Promise<any>;
export declare const syncClone: <T, R, C>(data: any, hooks?: SyncCloneHook<T, R> | SyncCloneHook<T, R>[], params?: CrawlParams<CloneState<T>, R>) => any;

@@ -7,3 +7,3 @@ "use strict";

const utils_1 = require("./utils");
const clone = (data, hooks = [], state = {}) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const clone = (data, hooks = [], params = {}) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
hooks = Array.isArray(hooks) ? hooks : [hooks];

@@ -16,7 +16,7 @@ const root = {};

});
yield (0, crawl_1.crawl)(data, [...hooks, cloneHook], Object.assign(Object.assign({}, state), { root, node: root }));
yield (0, crawl_1.crawl)(data, [...hooks, cloneHook], Object.assign(Object.assign({}, params), { state: Object.assign(Object.assign({}, params.state), { root, node: root }) }));
return root["#"];
});
exports.clone = clone;
const syncClone = (data, hooks = [], state = {}) => {
const syncClone = (data, hooks = [], params = {}) => {
hooks = Array.isArray(hooks) ? hooks : [hooks];

@@ -29,6 +29,6 @@ const root = {};

};
(0, crawl_1.syncCrawl)(data, [...hooks, cloneHook], Object.assign(Object.assign({}, state), { root, node: root }));
(0, crawl_1.syncCrawl)(data, [...hooks, cloneHook], Object.assign(Object.assign({}, params), { state: Object.assign(Object.assign({}, params.state), { root, node: root }) }));
return root["#"];
};
exports.syncClone = syncClone;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLG1DQUEwQztBQUMxQyxtQ0FBa0M7QUFFM0IsTUFBTSxLQUFLLEdBQUcsQ0FBVSxJQUFTLEVBQUUsUUFBdUMsRUFBRSxFQUFFLFFBQVEsRUFBTyxFQUFFLEVBQUU7SUFDdEcsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM5QyxNQUFNLElBQUksR0FBUSxFQUFFLENBQUE7SUFFcEIsTUFBTSxTQUFTLEdBQWlCLENBQU8sS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQ3BFLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtRQUM3QixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7UUFDNUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsZ0NBQUssS0FBSyxLQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFtQixFQUFFLENBQUE7SUFDL0UsQ0FBQyxDQUFBLENBQUE7SUFFRCxNQUFNLElBQUEsYUFBSyxFQUFnQixJQUFJLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxTQUFTLENBQUMsa0NBQU8sS0FBSyxLQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFHLENBQUE7SUFFdkYsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDbEIsQ0FBQyxDQUFBLENBQUE7QUFiWSxRQUFBLEtBQUssU0FhakI7QUFFTSxNQUFNLFNBQVMsR0FBRyxDQUFJLElBQVMsRUFBRSxRQUErQyxFQUFFLEVBQUUsUUFBUSxFQUFPLEVBQUUsRUFBRTtJQUM1RyxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzlDLE1BQU0sSUFBSSxHQUFRLEVBQUUsQ0FBQTtJQUVwQixNQUFNLFNBQVMsR0FBcUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDbEUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO1FBQzdCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBQSxnQkFBUSxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUM1RSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxnQ0FBSyxLQUFLLEtBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQW1CLEVBQUUsQ0FBQTtJQUMvRSxDQUFDLENBQUE7SUFFRCxJQUFBLGlCQUFTLEVBQWdCLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLFNBQVMsQ0FBQyxrQ0FBTyxLQUFLLEtBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUcsQ0FBQTtJQUVyRixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNsQixDQUFDLENBQUE7QUFiWSxRQUFBLFNBQVMsYUFhckIifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLG1DQUEwQztBQUMxQyxtQ0FBa0M7QUFFM0IsTUFBTSxLQUFLLEdBQUcsQ0FBYSxJQUFTLEVBQUUsUUFBNkMsRUFBRSxFQUFFLFNBQXlDLEVBQUUsRUFBRSxFQUFFO0lBQzNJLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDOUMsTUFBTSxJQUFJLEdBQVEsRUFBRSxDQUFBO0lBRXBCLE1BQU0sU0FBUyxHQUFvQixDQUFPLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUN2RSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUE7UUFDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFBLGdCQUFRLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO1FBQzVFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGdDQUFLLEtBQUssS0FBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBbUIsRUFBRSxDQUFBO0lBQy9FLENBQUMsQ0FBQSxDQUFBO0lBRUQsTUFBTSxJQUFBLGFBQUssRUFBbUIsSUFBSSxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsU0FBUyxDQUFDLGtDQUFPLE1BQU0sS0FBRSxLQUFLLGtDQUFPLE1BQU0sQ0FBQyxLQUFLLEtBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLE9BQUssQ0FBQTtJQUV2SCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNsQixDQUFDLENBQUEsQ0FBQTtBQWJZLFFBQUEsS0FBSyxTQWFqQjtBQUVNLE1BQU0sU0FBUyxHQUFHLENBQVUsSUFBUyxFQUFFLFFBQXFELEVBQUUsRUFBRSxTQUF3QyxFQUFFLEVBQUUsRUFBRTtJQUNuSixLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzlDLE1BQU0sSUFBSSxHQUFRLEVBQUUsQ0FBQTtJQUVwQixNQUFNLFNBQVMsR0FBd0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDckUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO1FBQzdCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBQSxnQkFBUSxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUM1RSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxnQ0FBSyxLQUFLLEtBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQW1CLEVBQUUsQ0FBQTtJQUMvRSxDQUFDLENBQUE7SUFFRCxJQUFBLGlCQUFTLEVBQW1CLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLFNBQVMsQ0FBQyxrQ0FBTyxNQUFNLEtBQUUsS0FBSyxrQ0FBTyxNQUFNLENBQUMsS0FBSyxLQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxPQUFLLENBQUE7SUFFckgsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDbEIsQ0FBQyxDQUFBO0FBYlksUUFBQSxTQUFTLGFBYXJCIn0=

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

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

@@ -6,6 +6,7 @@ "use strict";

const utils_1 = require("./utils");
const crawl = (data, hooks, state) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
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, path: [], keys: [], keyIndex: -1 }];
const nodes = [{ data, state: params.state, path: [], keys: [], keyIndex: -1, rules: params.rules }];
while (nodes.length > 0) {

@@ -23,5 +24,5 @@ const node = nodes[nodes.length - 1];

const key = node.keys[node.keyIndex++];
const [value, path] = nodes.length > 1
? [node.data[key], [...node.path, key]]
: [node.data, node.path]; // root node
const [value, path, rules] = 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
let result = { value, state: node.state };

@@ -34,3 +35,3 @@ const exitHooks = [];

}
result = yield hook(result.value, { path, key, state: result.state });
result = yield hook(result.value, { path, key, state: result.state, rules });
(result === null || result === void 0 ? void 0 : result.exitHook) && exitHooks.push(result.exitHook);

@@ -42,3 +43,3 @@ }

// move to child nodes
nodes.push({ hooks: exitHooks, state: result.state, data: result.value, path, keys, keyIndex: 0 });
nodes.push({ hooks: exitHooks, state: result.state, data: result.value, path, keys, keyIndex: 0, rules });
}

@@ -54,6 +55,6 @@ else {

exports.crawl = crawl;
const syncCrawl = (data, hooks, state) => {
const syncCrawl = (data, hooks, params = {}) => {
var _a;
hooks = (0, utils_1.isArray)(hooks) ? hooks : [hooks];
const nodes = [{ data, state, path: [], keys: [], keyIndex: -1 }];
const nodes = [{ data, state: params.state, path: [], keys: [], keyIndex: -1, rules: params.rules }];
while (nodes.length > 0) {

@@ -71,5 +72,5 @@ const node = nodes[nodes.length - 1];

const key = node.keys[node.keyIndex++];
const [value, path] = nodes.length > 1
? [node.data[key], [...node.path, key]]
: [node.data, node.path]; // root node
const [value, path, rules] = 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
let result = { value, state: node.state };

@@ -82,3 +83,3 @@ const exitHook = [];

}
result = hook(result.value, { path, key, state: result.state || node.state });
result = hook(result.value, { path, key, state: result.state || node.state, rules });
(result === null || result === void 0 ? void 0 : result.exitHook) && exitHook.push(result.exitHook);

@@ -90,3 +91,3 @@ }

// move to child nodes
nodes.push({ hooks: exitHook, state: result.state, data: result.value, path, keys, keyIndex: 0 });
nodes.push({ hooks: exitHook, state: result.state, data: result.value, path, keys, keyIndex: 0, rules });
}

@@ -102,2 +103,2 @@ else {

exports.syncCrawl = syncCrawl;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jhd2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3Jhd2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLG1DQUEyQztBQW1CcEMsTUFBTSxLQUFLLEdBQUcsQ0FBVSxJQUFTLEVBQUUsS0FBb0MsRUFBRSxLQUFRLEVBQWlCLEVBQUU7O0lBQ3pHLEtBQUssR0FBRyxJQUFBLGVBQU8sRUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRXhDLE1BQU0sS0FBSyxHQUFtQixDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUVqRixPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFBO1FBRWxDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyQyxvQkFBb0I7WUFDcEIsT0FBTyxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLE1BQU0sRUFBRTtnQkFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRyxFQUFFLENBQUE7YUFBRTtZQUVsRCxzQkFBc0I7WUFDdEIsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFBO1lBQ1gsU0FBUTtTQUNUO1FBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUV0QyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FB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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jhd2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3Jhd2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLG1DQUEyQztBQUMzQyxtQ0FBc0M7QUFzQi9CLE1BQU0sS0FBSyxHQUFHLENBQW1CLElBQVMsRUFBRSxLQUEwQyxFQUFFLFNBQTRCLEVBQUUsRUFBaUIsRUFBRTs7SUFDOUksS0FBSyxHQUFHLElBQUEsZUFBTyxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFeEMsTUFBTSxLQUFLLEdBQXNCLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQU0sRUFBRSxDQUFDLENBQUE7SUFFekgsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN2QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQTtRQUVsQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckMsb0JBQW9CO1lBQ3BCLE9BQU8sTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxNQUFNLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUcsRUFBRSxDQUFBO2FBQUU7WUFFbEQsc0JBQXNCO1lBQ3RCLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQTtZQUNYLFNBQVE7U0FDVDtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFFdEMsTUFBTSxDQUFD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

@@ -6,1 +6,2 @@ export * from "./crawl";

export * from "./transform";
export * from "./rules";

@@ -9,2 +9,3 @@ "use strict";

tslib_1.__exportStar(require("./transform"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQXVCO0FBQ3ZCLGtEQUF1QjtBQUN2QixrREFBdUI7QUFDdkIsa0RBQXVCO0FBQ3ZCLHNEQUEyQiJ9
tslib_1.__exportStar(require("./rules"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQXVCO0FBQ3ZCLGtEQUF1QjtBQUN2QixrREFBdUI7QUFDdkIsa0RBQXVCO0FBQ3ZCLHNEQUEyQjtBQUMzQixrREFBdUIifQ==

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

import type { CloneHook } from "./types";
export declare const transform: <T>(data: any, hooks?: CloneHook<T> | CloneHook<T>[], state?: T) => Promise<any>;
import type { CloneHook, CloneState, CrawlParams } from "./types";
export declare const transform: <T, R>(data: any, hooks?: CloneHook<T, R> | CloneHook<T, R>[], params?: CrawlParams<CloneState<T>, R>) => Promise<any>;

@@ -7,3 +7,3 @@ "use strict";

const crawl_1 = require("./crawl");
const transform = (data, hooks = [], state = {}) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const transform = (data, hooks = [], params = {}) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
hooks = (0, utils_1.isArray)(hooks) ? hooks : [hooks];

@@ -26,6 +26,6 @@ const root = { "#": data };

});
yield (0, crawl_1.crawl)(data, [...hooks, transformHook], Object.assign(Object.assign({}, state), { root, node: root }));
yield (0, crawl_1.crawl)(data, [...hooks, transformHook], Object.assign(Object.assign({}, params), { state: Object.assign(Object.assign({}, params.state), { root, node: root }) }));
return root["#"];
});
exports.transform = transform;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsbUNBQWlDO0FBQ2pDLG1DQUErQjtBQUV4QixNQUFNLFNBQVMsR0FBRyxDQUFVLElBQVMsRUFBRSxRQUF1QyxFQUFFLEVBQUUsUUFBUSxFQUFRLEVBQUUsRUFBRTtJQUMzRyxLQUFLLEdBQUcsSUFBQSxlQUFPLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN4QyxNQUFNLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUUxQixNQUFNLGFBQWEsR0FBaUIsQ0FBTyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDeEUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO1FBQzdCLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QixJQUFJLElBQUEsZUFBTyxFQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7Z0JBQ2xELEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTthQUMxQjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDdkI7U0FDRjthQUFNO1lBQ0wsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUE7U0FDeEI7UUFDRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFBO0lBQ3pCLENBQUMsQ0FBQSxDQUFBO0lBRUQsTUFBTSxJQUFBLGFBQUssRUFBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxhQUFhLENBQUMsa0NBQU8sS0FBSyxLQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFHLENBQUE7SUFFNUUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDbEIsQ0FBQyxDQUFBLENBQUE7QUFyQlksUUFBQSxTQUFTLGFBcUJyQiJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsbUNBQWlDO0FBQ2pDLG1DQUErQjtBQUV4QixNQUFNLFNBQVMsR0FBRyxDQUFhLElBQVMsRUFBRSxRQUE2QyxFQUFFLEVBQUUsU0FBd0MsRUFBRSxFQUFFLEVBQUU7SUFDOUksS0FBSyxHQUFHLElBQUEsZUFBTyxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDeEMsTUFBTSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUE7SUFFMUIsTUFBTSxhQUFhLEdBQW9CLENBQU8sS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzNFLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtRQUM3QixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsSUFBSSxJQUFBLGVBQU8sRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO2dCQUNsRCxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUE7YUFDMUI7aUJBQU07Z0JBQ0wsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ3ZCO1NBQ0Y7YUFBTTtZQUNMLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFBO1NBQ3hCO1FBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQTtJQUN6QixDQUFDLENBQUEsQ0FBQTtJQUVELE1BQU0sSUFBQSxhQUFLLEVBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsYUFBYSxDQUFDLGtDQUFPLE1BQU0sS0FBRSxLQUFLLGtDQUFPLE1BQU0sQ0FBQyxLQUFLLEtBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLE9BQUssQ0FBQTtJQUV6RyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNsQixDQUFDLENBQUEsQ0FBQTtBQXJCWSxRQUFBLFNBQVMsYUFxQnJCIn0=
export type JsonPath = (string | number)[];
export interface CrawlContext<T> {
export interface CrawlParams<T, R = any> {
state?: T;
rules?: CrawlRules<R, T>;
}
export interface CrawlContext<T, R = any> {
readonly path: JsonPath;
readonly key: string | number;
state: T;
rules?: CrawlRules<R, T>;
}

@@ -18,6 +23,11 @@ export type ExitHook = () => void;

node: any;
} & T;
export type CloneHook<T> = CrawlHook<CloneState<T>>;
export type CrawlHook<T> = (value: unknown, ctx: CrawlContext<T>) => Promise<CrawlHookResponse<T> | null> | CrawlHookResponse<T> | null;
export type SyncCloneHook<T> = SyncCrawlHook<CloneState<T>>;
export type SyncCrawlHook<T> = (value: unknown, ctx: CrawlContext<T>) => CrawlHookResponse<T> | null;
} & (T | {});
export type CloneHook<T = any, R = any> = CrawlHook<CloneState<T>, R>;
export type CrawlHook<T = any, R = any> = (value: unknown, ctx: CrawlContext<T, R>) => Promise<CrawlHookResponse<T> | null> | CrawlHookResponse<T> | null;
export type SyncCloneHook<T = any, R = any> = SyncCrawlHook<CloneState<T>, R>;
export type SyncCrawlHook<T = any, R = any> = (value: unknown, ctx: CrawlContext<T, R>) => CrawlHookResponse<T> | null;
export type CrawlRulesFunc<R, T = any> = (path: JsonPath, state: T) => CrawlRules<R, T>;
export type CrawlRulesKey = `/${string | number}`;
export type CrawlRules<R, T = any> = {
[key: CrawlRulesKey | '/*']: CrawlRules<R, T> | CrawlRulesFunc<R, T>;
} & (R | {});
{
"name": "json-crawl",
"version": "0.1.0",
"version": "0.2.0",
"description": "Async and sync crawler for json object",

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

# json-crawl
<img alt="npm" src="https://img.shields.io/npm/v/json-crawl"> <img alt="npm" src="https://img.shields.io/npm/dm/json-crawl?label=npm"> <img alt="npm type definitions" src="https://img.shields.io/npm/types/json-crawl"> <img alt="GitHub" src="https://img.shields.io/github/license/udamir/json-crawl">
This package provides utility functions for crawling/cloning json objcts like a tree
This package provides utility functions for crawling/cloning json objects like a tree

@@ -45,11 +45,17 @@

const initialState = {
// Initial state object for hooks (optional)
const params = {
state: {
// Initial state object for hooks (optional)
},
rules: {
// Crawl rules map
}
};
// deep Clone
const cloned = syncClone(data, hooks, initialState)
const cloned = syncClone(data, hooks, params)
// crawl
syncCrawl(data, hooks, initialState)
syncCrawl(data, hooks, params)

@@ -56,0 +62,0 @@ ```

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