{"_id":"traverse","_rev":"103-2b08a9331286343a956b6ab2bd7335bf","name":"traverse","description":"traverse and transform objects by visiting every node on a recursive walk","dist-tags":{"latest":"0.6.6"},"versions":{"0.1.2":{"name":"traverse","version":"0.1.2","description":"Traverse and transform objects by visiting every node on a recursive walk.","author":{"name":"James Halliday"},"license":"MIT/X11","modules":{"index":"./lib/traverse","web":"./lib/web","hash":"./lib/hash"},"repository":{"type":"git","url":"http://github.com/substack/js-traverse.git"},"_id":"traverse@0.1.2","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/traverse/-/traverse-0.1.2.tgz","shasum":"9c17eb594a2bf0ecaab41cfcb549e0999473ce26"},"directories":{}},"0.1.3":{"name":"traverse","version":"0.1.3","description":"Traverse and transform objects by visiting every node on a recursive walk.","author":{"name":"James Halliday"},"license":"MIT/X11","modules":{"index":"./lib/traverse","web":"./lib/web","hash":"./lib/hash"},"repository":{"type":"git","url":"http://github.com/substack/js-traverse.git"},"_id":"traverse@0.1.3","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/traverse/-/traverse-0.1.3.tgz","shasum":"84aa5d1be7d771cafa81433680cf667de13d1e2c"},"directories":{}},"0.2.0":{"name":"traverse","version":"0.2.0","description":"Traverse and transform objects by visiting every node on a recursive walk.","author":{"name":"James Halliday"},"license":"MIT/X11","modules":{"index":"./lib/traverse","web":"./lib/web","hash":"./lib/hash"},"repository":{"type":"git","url":"http://github.com/substack/js-traverse.git"},"_id":"traverse@0.2.0","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/traverse/-/traverse-0.2.0.tgz","shasum":"e8293bfbd78e9b71a916fed0ec34ee52d662f778"},"directories":{}},"0.2.1":{"name":"traverse","version":"0.2.1","description":"Traverse and transform objects by visiting every node on a recursive walk.","author":{"name":"James Halliday"},"license":"MIT/X11","modules":{"index":"./lib/traverse","web":"./lib/web","hash":"./lib/hash"},"repository":{"type":"git","url":"http://github.com/substack/js-traverse.git"},"_id":"traverse@0.2.1","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/traverse/-/traverse-0.2.1.tgz","shasum":"0182b4e69d7e3c41493e3020d670bc9ae74cf0a2"},"directories":{}},"0.2.2":{"name":"traverse","version":"0.2.2","description":"Traverse and transform objects by visiting every node on a recursive walk.","author":{"name":"James Halliday"},"license":"MIT/X11","modules":{"index":"./lib/traverse","web":"./lib/web","hash":"./lib/hash"},"repository":{"type":"git","url":"http://github.com/substack/js-traverse.git"},"_id":"traverse@0.2.2","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"tarball":"http://registry.npmjs.org/traverse/-/traverse-0.2.2.tgz","shasum":"8d256abdd34ff0e0efbc39cc8edd06a3f7746832"},"directories":{}},"0.2.3":{"name":"traverse","version":"0.2.3","description":"Traverse and transform objects by visiting every node on a recursive walk.","author":{"name":"James Halliday"},"license":"MIT/X11","modules":{"index":"./lib/traverse","web":"./lib/web","hash":"./lib/hash"},"repository":{"type":"git","url":"http://github.com/substack/js-traverse.git"},"_id":"traverse@0.2.3","engines":{"node":"*"},"_nodeSupported":true,"_npmVersion":"0.2.5-1","_nodeVersion":"v0.2.0","dist":{"tarball":"http://registry.npmjs.org/traverse/-/traverse-0.2.3.tgz","shasum":"5a5837fa020f5130426d68eb3f0e8f2547b5c1b5"},"directories":{}},"0.2.4":{"name":"traverse","version":"0.2.4","description":"Traverse and transform objects by visiting every node on a recursive walk.","author":{"name":"James Halliday"},"license":"MIT/X11","modules":{"index":"./lib/traverse","web":"./lib/web","hash":"./lib/hash"},"repository":{"type":"git","url":"http://github.com/substack/js-traverse.git"},"_id":"traverse@0.2.4","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.2.16","_nodeVersion":"v0.3.8-pre","directories":{"lib":"./lib"},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"8ce26dcecdb8401e197db6b79f557d41ff898917","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.2.4.tgz"}},"0.3.0":{"name":"traverse","version":"0.3.0","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"http://github.com/substack/js-traverse.git"},"devDependencies":{"seq":">=0.1.7","expresso":">=0.6.0"},"scripts":{"test":"expresso"},"_id":"traverse@0.3.0","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.2.18","_nodeVersion":"v0.3.8-pre","directories":{},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"cf49d694be787895764607e6c65586fda9202366","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.3.0.tgz"}},"0.3.1":{"name":"traverse","version":"0.3.1","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"http://github.com/substack/js-traverse.git"},"devDependencies":{"seq":">=0.1.7","expresso":">=0.6.0"},"scripts":{"test":"expresso"},"_id":"traverse@0.3.1","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.2.18","_nodeVersion":"v0.3.8-pre","directories":{},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"4d8c76ebf82b63656905cea66c4d817ec0020573","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.3.1.tgz"}},"0.2.5":{"name":"traverse","version":"0.2.5","description":"Traverse and transform objects by visiting every node on a recursive walk.","author":{"name":"James Halliday"},"license":"MIT/X11","repository":{"type":"git","url":"http://github.com/substack/js-traverse.git"},"_id":"traverse@0.2.5","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.2.18","_nodeVersion":"v0.3.8-pre","directories":{"lib":"./lib"},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"7eb267f28142261324999aa7e9b2f40d04dd1d7b","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.2.5.tgz"}},"0.2.6":{"name":"traverse","version":"0.2.6","description":"Traverse and transform objects by visiting every node on a recursive walk.","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./lib/traverse","repository":{"type":"git","url":"http://github.com/substack/js-traverse.git"},"_id":"traverse@0.2.6","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"0.2.18","_nodeVersion":"v0.3.8-pre","directories":{"lib":"./lib"},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"961cb5e4c324fe548d213ea0a9997093f26f8bfb","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.2.6.tgz"}},"0.3.2":{"name":"traverse","version":"0.3.2","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"seq":">=0.1.7","expresso":">=0.6.0"},"scripts":{"test":"expresso"},"dependencies":{},"_id":"traverse@0.3.2","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.1rc6","_nodeVersion":"v0.4.2","_defaultsLoaded":true,"dist":{"shasum":"24fc47fde29b1a2a74a0483b2a7b0d9f5ec70560","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.3.2.tgz"},"directories":{}},"0.3.3":{"name":"traverse","version":"0.3.3","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"seq":">=0.1.7","expresso":">=0.6.0"},"scripts":{"test":"expresso"},"dependencies":{},"_id":"traverse@0.3.3","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.1rc8","_nodeVersion":"v0.4.2","_defaultsLoaded":true,"dist":{"shasum":"40d9f3d038438fc39f3fc8fafdbf216cc60bd7d9","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.3.3.tgz"},"directories":{}},"0.3.4":{"name":"traverse","version":"0.3.4","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"seq":">=0.1.7","expresso":">=0.6.0"},"scripts":{"test":"expresso"},"dependencies":{},"_id":"traverse@0.3.4","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.1rc8","_nodeVersion":"v0.4.2","_defaultsLoaded":true,"dist":{"shasum":"6a56ac6db2f02d27ace34ed22c44827dd5dad948","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.3.4.tgz"},"directories":{}},"0.3.5":{"name":"traverse","version":"0.3.5","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"seq":">=0.1.7","expresso":">=0.6.0"},"scripts":{"test":"expresso"},"dependencies":{},"_id":"traverse@0.3.5","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.6","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"7c81e038211f351bb6002e3b5a1477f7cdbf3ed6","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.3.5.tgz"},"directories":{}},"0.3.6":{"name":"traverse","version":"0.3.6","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"seq":">=0.1.7","expresso":">=0.6.0"},"scripts":{"test":"expresso"},"dependencies":{},"_id":"traverse@0.3.6","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.6","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"b301ca2b08764718b762e7fa118aa0ab88b2b9c8","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.3.6.tgz"},"directories":{}},"0.3.7":{"name":"traverse","version":"0.3.7","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"expresso":"0.7.x"},"scripts":{"test":"expresso"},"dependencies":{},"_id":"traverse@0.3.7","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.6","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"0ac64e98b93317b437e13bea05dd7581af3830ce","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.3.7.tgz"},"directories":{}},"0.3.8":{"name":"traverse","version":"0.3.8","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"expresso":"0.7.x"},"scripts":{"test":"expresso"},"dependencies":{},"_id":"traverse@0.3.8","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.6","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"40a43ed5d7a1fbb662327a97dc5e5be570a2f032","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.3.8.tgz"},"directories":{}},"0.4.0":{"name":"traverse","version":"0.4.0","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"expresso":"0.7.x"},"scripts":{"test":"expresso"},"dependencies":{},"_id":"traverse@0.4.0","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.6","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"3abf25482c032ae80808b609fb4ee8883156ab19","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.4.0.tgz"},"directories":{}},"0.4.1":{"name":"traverse","version":"0.4.1","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"expresso":"0.7.x"},"scripts":{"test":"expresso"},"dependencies":{},"_id":"traverse@0.4.1","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.6","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"d119a3a401828cdc03080ab7333dfb307360e2cc","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.4.1.tgz"},"directories":{}},"0.4.2":{"name":"traverse","version":"0.4.2","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"expresso":"0.7.x"},"scripts":{"test":"expresso"},"dependencies":{},"_id":"traverse@0.4.2","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.6","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"f3af4583aa4f42b6082f1e020fd155200238bd0f","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.4.2.tgz"},"directories":{}},"0.3.9":{"name":"traverse","version":"0.3.9","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"expresso":"0.7.x"},"scripts":{"test":"expresso"},"_id":"traverse@0.3.9","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz"},"directories":{}},"0.4.3":{"name":"traverse","version":"0.4.3","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"expresso":"0.7.x"},"scripts":{"test":"expresso"},"_id":"traverse@0.4.3","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"316577b95481c1eadfbc3804aedd83cbef60baf5","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.4.3.tgz"},"directories":{}},"0.4.4":{"name":"traverse","version":"0.4.4","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"expresso":"0.7.x"},"scripts":{"test":"expresso"},"_id":"traverse@0.4.4","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"865f7e69ab8e64504d3080c32bb455a947690961","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.4.4.tgz"},"directories":{}},"0.4.5":{"name":"traverse","version":"0.4.5","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"expresso":"0.7.x"},"scripts":{"test":"expresso"},"_id":"traverse@0.4.5","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"325226aec754d71e4a49d6a091e58c1e6a169ee8","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.4.5.tgz"},"directories":{}},"0.4.6":{"name":"traverse","version":"0.4.6","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"expresso":"0.7.x"},"scripts":{"test":"expresso"},"_id":"traverse@0.4.6","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"d04b2280e4c792a5815429ef7b8b60c64c9ccc34","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.4.6.tgz"},"directories":{}},"0.5.0":{"name":"traverse","version":"0.5.0","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"expresso":"0.7.x"},"scripts":{"test":"expresso"},"_id":"traverse@0.5.0","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"ca057be9bb7e25d3fdf305a34382cd33276dd2f7","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.5.0.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.5.1":{"name":"traverse","version":"0.5.1","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"expresso":"0.7.x"},"scripts":{"test":"expresso"},"_id":"traverse@0.5.1","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"8b766f822404f401acc7572bc9975b218b9f0a37","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.5.1.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.5.2":{"name":"traverse","version":"0.5.2","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"expresso":"0.7.x"},"scripts":{"test":"expresso"},"_npmJsonOpts":{"file":"/home/substack/.npm/traverse/0.5.2/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"traverse@0.5.2","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.30","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"e203c58d5f7f0e37db6e74c0acb929bb09b61d85","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.5.2.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.6.0":{"name":"traverse","version":"0.6.0","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"expresso":"0.7.x"},"scripts":{"test":"expresso"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"traverse@0.6.0","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"e11243dc2eeedc9bbce6b605654b92df25f3dbc3","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.6.0.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.6.1":{"name":"traverse","version":"0.6.1","description":"Traverse and transform objects by visiting every node on a recursive walk","author":{"name":"James Halliday"},"license":"MIT/X11","main":"./index","repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"devDependencies":{"expresso":"0.7.x"},"scripts":{"test":"expresso"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"traverse@0.6.1","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"abba3297d8cd608796189e9bbcda6c7fc6b7a4f9","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.6.1.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"directories":{}},"0.6.2":{"name":"traverse","version":"0.6.2","description":"traverse and transform objects by visiting every node on a recursive walk","main":"index.js","bin":{},"directories":{"example":"example","test":"test"},"dependencies":{},"devDependencies":{"tap":"~0.2.5"},"scripts":{"test":"tap test/*.js"},"repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"homepage":"https://github.com/substack/js-traverse","keywords":["traverse","walk","recursive","map","forEach","deep","clone"],"author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"license":"MIT","engine":{"node":">=0.6"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"traverse@0.6.2","optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.19","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"d2f10768cfb8bfe23d56bb6c73059065834086d2","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.6.2.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}]},"0.6.3":{"name":"traverse","version":"0.6.3","description":"traverse and transform objects by visiting every node on a recursive walk","main":"index.js","bin":{},"directories":{"example":"example","test":"test"},"dependencies":{},"devDependencies":{"tap":"~0.2.5"},"scripts":{"test":"tap test/*.js"},"repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"homepage":"https://github.com/substack/js-traverse","keywords":["traverse","walk","recursive","map","forEach","deep","clone"],"author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"license":"MIT","engine":{"node":">=0.6"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"_id":"traverse@0.6.3","optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.19","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"a053ffa1b6179b9240ea16d74bfd604bd6b6e41b","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.6.3.tgz"},"maintainers":[{"name":"substack","email":"mail@substack.net"}]},"0.6.5":{"name":"traverse","version":"0.6.5","description":"traverse and transform objects by visiting every node on a recursive walk","main":"index.js","directories":{"example":"example","test":"test"},"devDependencies":{"tap":"~0.3.3","tape":"~0.1.1"},"scripts":{"test":"tap test/*.js"},"testling":{"files":"test/*.js","browsers":{"iexplore":["6.0","7.0","8.0","9.0"],"chrome":["10.0","20.0"],"firefox":["10.0","15.0"],"safari":["5.1"],"opera":["12.0"]}},"repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"homepage":"https://github.com/substack/js-traverse","keywords":["traverse","walk","recursive","map","forEach","deep","clone"],"author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"license":"MIT","bugs":{"url":"https://github.com/substack/js-traverse/issues"},"_id":"traverse@0.6.5","dist":{"shasum":"ec80ba79ce1eeea5a08624bb63ef9132419aacab","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.6.5.tgz"},"_from":".","_npmVersion":"1.3.7","_npmUser":{"name":"substack","email":"mail@substack.net"},"maintainers":[{"name":"substack","email":"mail@substack.net"}]},"0.6.6":{"name":"traverse","version":"0.6.6","description":"traverse and transform objects by visiting every node on a recursive walk","main":"index.js","directories":{"example":"example","test":"test"},"devDependencies":{"tape":"~1.0.4"},"scripts":{"test":"tape test/*.js"},"testling":{"files":"test/*.js","browsers":{"iexplore":["6.0","7.0","8.0","9.0"],"chrome":["10.0","20.0"],"firefox":["10.0","15.0"],"safari":["5.1"],"opera":["12.0"]}},"repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"homepage":"https://github.com/substack/js-traverse","keywords":["traverse","walk","recursive","map","forEach","deep","clone"],"author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"license":"MIT","bugs":{"url":"https://github.com/substack/js-traverse/issues"},"_id":"traverse@0.6.6","dist":{"shasum":"cbdf560fd7b9af632502fed40f918c157ea97137","tarball":"http://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz"},"_from":".","_npmVersion":"1.3.7","_npmUser":{"name":"substack","email":"mail@substack.net"},"maintainers":[{"name":"substack","email":"mail@substack.net"}]}},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"repository":{"type":"git","url":"git://github.com/substack/js-traverse.git"},"time":{"modified":"2014-08-27T08:30:14.036Z","created":"2011-02-03T11:29:55.497Z","0.1.2":"2011-02-03T11:29:55.497Z","0.1.3":"2011-02-03T11:29:55.497Z","0.2.0":"2011-02-03T11:29:55.497Z","0.2.1":"2011-02-03T11:29:55.497Z","0.2.2":"2011-02-03T11:29:55.497Z","0.2.3":"2011-02-03T11:29:55.497Z","0.2.4":"2011-02-03T11:29:55.497Z","0.3.0":"2011-02-18T12:27:57.800Z","0.3.1":"2011-02-19T00:38:39.744Z","0.2.5":"2011-02-19T00:47:01.323Z","0.2.6":"2011-02-21T03:51:44.195Z","0.3.2":"2011-04-10T09:21:37.669Z","0.3.3":"2011-04-15T08:39:12.893Z","0.3.4":"2011-04-17T02:51:02.989Z","0.3.5":"2011-05-29T01:21:03.986Z","0.3.6":"2011-06-03T08:15:23.466Z","0.3.7":"2011-06-06T04:29:19.831Z","0.3.8":"2011-06-07T06:53:50.488Z","0.4.0":"2011-06-11T00:04:01.061Z","0.4.1":"2011-06-11T03:56:58.839Z","0.4.2":"2011-06-11T07:09:48.273Z","0.3.9":"2011-06-15T05:24:38.007Z","0.4.3":"2011-06-15T05:28:21.739Z","0.4.4":"2011-07-20T10:02:05.346Z","0.4.5":"2011-07-24T22:53:13.891Z","0.4.6":"2011-07-28T06:19:05.356Z","0.5.0":"2011-08-23T12:51:28.029Z","0.5.1":"2011-08-23T13:26:49.780Z","0.5.2":"2011-10-16T10:34:56.862Z","0.6.0":"2012-02-21T02:42:17.711Z","0.6.1":"2012-04-07T05:31:38.268Z","0.6.2":"2012-06-16T07:48:32.652Z","0.6.3":"2012-06-19T02:44:09.239Z","0.6.5":"2013-08-30T21:55:35.238Z","0.6.6":"2013-09-24T05:13:48.593Z"},"users":{"fgribreau":true,"pragmadash":true,"lhyqy5":true,"tunnckocore":true,"gammasoft":true,"julien-f":true,"gliviu":true,"asfktz":true,"mjurincic":true,"eklem":true,"manishrc":true,"mondalaci":true,"pythondave":true,"strikingloud":true,"chocolateboy":true,"garrickajo":true,"nichoth":true,"capaj":true,"bdentino":true,"onheiron":true,"mast4461":true,"silentcloud":true,"bojand":true},"readme":"# traverse\n\nTraverse and transform objects by visiting every node on a recursive walk.\n\n[![browser support](http://ci.testling.com/substack/js-traverse.png)](http://ci.testling.com/substack/js-traverse)\n\n[![build status](https://secure.travis-ci.org/substack/js-traverse.png)](http://travis-ci.org/substack/js-traverse)\n\n# examples\n\n## transform negative numbers in-place\n\nnegative.js\n\n````javascript\nvar traverse = require('traverse');\nvar obj = [ 5, 6, -3, [ 7, 8, -2, 1 ], { f : 10, g : -13 } ];\n\ntraverse(obj).forEach(function (x) {\n if (x < 0) this.update(x + 128);\n});\n\nconsole.dir(obj);\n````\n\nOutput:\n\n [ 5, 6, 125, [ 7, 8, 126, 1 ], { f: 10, g: 115 } ]\n\n## collect leaf nodes\n\nleaves.js\n\n````javascript\nvar traverse = require('traverse');\n\nvar obj = {\n a : [1,2,3],\n b : 4,\n c : [5,6],\n d : { e : [7,8], f : 9 },\n};\n\nvar leaves = traverse(obj).reduce(function (acc, x) {\n if (this.isLeaf) acc.push(x);\n return acc;\n}, []);\n\nconsole.dir(leaves);\n````\n\nOutput:\n\n [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]\n\n## scrub circular references\n\nscrub.js:\n\n````javascript\nvar traverse = require('traverse');\n\nvar obj = { a : 1, b : 2, c : [ 3, 4 ] };\nobj.c.push(obj);\n\nvar scrubbed = traverse(obj).map(function (x) {\n if (this.circular) this.remove()\n});\nconsole.dir(scrubbed);\n````\n\noutput:\n\n { a: 1, b: 2, c: [ 3, 4 ] }\n\n# methods\n\nEach method that takes an `fn` uses the context documented below in the context\nsection.\n\n## .map(fn)\n\nExecute `fn` for each node in the object and return a new object with the\nresults of the walk. To update nodes in the result use `this.update(value)`.\n\n## .forEach(fn)\n\nExecute `fn` for each node in the object but unlike `.map()`, when\n`this.update()` is called it updates the object in-place.\n\n## .reduce(fn, acc)\n\nFor each node in the object, perform a\n[left-fold](http://en.wikipedia.org/wiki/Fold_(higher-order_function))\nwith the return value of `fn(acc, node)`.\n\nIf `acc` isn't specified, `acc` is set to the root object for the first step\nand the root element is skipped.\n\n## .paths()\n\nReturn an `Array` of every possible non-cyclic path in the object.\nPaths are `Array`s of string keys.\n\n## .nodes()\n\nReturn an `Array` of every node in the object.\n\n## .clone()\n\nCreate a deep clone of the object.\n\n## .get(path)\n\nGet the element at the array `path`.\n\n## .set(path, value)\n\nSet the element at the array `path` to `value`.\n\n## .has(path)\n\nReturn whether the element at the array `path` exists.\n\n# context\n\nEach method that takes a callback has a context (its `this` object) with these\nattributes:\n\n## this.node\n\nThe present node on the recursive walk\n\n## this.path\n\nAn array of string keys from the root to the present node\n\n## this.parent\n\nThe context of the node's parent.\nThis is `undefined` for the root node.\n\n## this.key\n\nThe name of the key of the present node in its parent.\nThis is `undefined` for the root node.\n\n## this.isRoot, this.notRoot\n\nWhether the present node is the root node\n\n## this.isLeaf, this.notLeaf\n\nWhether or not the present node is a leaf node (has no children)\n\n## this.level\n\nDepth of the node within the traversal\n\n## this.circular\n\nIf the node equals one of its parents, the `circular` attribute is set to the\ncontext of that parent and the traversal progresses no deeper.\n\n## this.update(value, stopHere=false)\n\nSet a new value for the present node.\n\nAll the elements in `value` will be recursively traversed unless `stopHere` is\ntrue.\n\n## this.remove(stopHere=false)\n\nRemove the current element from the output. If the node is in an Array it will\nbe spliced off. Otherwise it will be deleted from its parent.\n\n## this.delete(stopHere=false)\n\nDelete the current element from its parent in the output. Calls `delete` even on\nArrays.\n\n## this.before(fn)\n\nCall this function before any of the children are traversed.\n\nYou can assign into `this.keys` here to traverse in a custom order.\n\n## this.after(fn)\n\nCall this function after any of the children are traversed.\n\n## this.pre(fn)\n\nCall this function before each of the children are traversed.\n\n## this.post(fn)\n\nCall this function after each of the children are traversed.\n\n\n# install\n\nUsing [npm](http://npmjs.org) do:\n\n $ npm install traverse\n\n# license\n\nMIT\n","readmeFilename":"readme.markdown","homepage":"https://github.com/substack/js-traverse","keywords":["traverse","walk","recursive","map","forEach","deep","clone"],"bugs":{"url":"https://github.com/substack/js-traverse/issues"},"license":"MIT","_attachments":{},"_etag":"\"AK6TLBX1AQLG9KW6BHXF4BIBF\""}